From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 9FEA71B59B for ; Wed, 19 Dec 2018 23:18:26 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wBJMF62k012329; Wed, 19 Dec 2018 14:18:26 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=ZH5+mm52gd4xpeSGt5H/Tkz1l/lLT+CUeP2pLEXw6bE=; b=jto8rEDtXo3gs8KtMYfMnMjom6msd9hFHXj+pCbpyVW1LH1mp+TPL8BYDFL+RtO+VT0f Dj4HOdNzgsKcgobuHsv03S3xyS6+5zFlfRO7N8eIMkk5LCQaOMlG1N7Qh9dIq/ZkQuUL Gm9LHhNVUsGoUTt9Gi8xKXWYhl4hqpCdB/nvTEhZjlBbjXURcHIONM77574Xfae/GgEX EAOhZ1cIG0Syq1OC02ZvIcpn+pyq55H3Tt18kVXcyrytOc8lUcPYmw+RX4sXyHFMtdjR 3ZsMkyWauR2pCcQjIZQ2UR0m5tX5XtJw7ukoJlBBm+9YBZcvR0s0ZTBE/XkYuc5/59sD WQ== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 2pfwjt8chb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 19 Dec 2018 14:18:25 -0800 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 19 Dec 2018 14:18:24 -0800 Received: from NAM03-DM3-obe.outbound.protection.outlook.com (104.47.41.56) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 19 Dec 2018 14:18:24 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZH5+mm52gd4xpeSGt5H/Tkz1l/lLT+CUeP2pLEXw6bE=; b=JadPzAjtxWdhafdkg8Iah2gi0mnwdRmIeQZgK+5i8OUBo6dcqB0R8WJ69m6JUuYKHPXFiRcCMzgUb1b7bm3brrgEgqx4w7GKUEkGlJ3rVaD4kr9/bJReMcLje4gH9E7QHNPkmu4j/Gps5QyU7ibgpwA5Ob67C2+XyQOW5RQkMoc= Received: from CO2PR18MB0057.namprd18.prod.outlook.com (10.161.83.147) by CO2PR18MB0076.namprd18.prod.outlook.com (10.161.83.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.22; Wed, 19 Dec 2018 22:18:22 +0000 Received: from CO2PR18MB0057.namprd18.prod.outlook.com ([fe80::a9f5:70cd:1362:db16]) by CO2PR18MB0057.namprd18.prod.outlook.com ([fe80::a9f5:70cd:1362:db16%5]) with mapi id 15.20.1446.020; Wed, 19 Dec 2018 22:18:21 +0000 From: Rasesh Mody To: Yongseok Koh , "Mody, Rasesh" CC: "stable@dpdk.org" , "Shaikh, Shahed" , Dept-Eng DPDK Dev Thread-Topic: [PATCH 17.11 1/5] net/qede/base: fix MFW FLR flow Thread-Index: AQHUlzO6BJhUXNxlvU6aeBEQAlJSm6WGfxSAgAAifyA= Date: Wed, 19 Dec 2018 22:18:20 +0000 Message-ID: References: <1545180127-3202-1-git-send-email-rasesh.mody@cavium.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [198.186.1.5] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CO2PR18MB0076; 20:7yA8bgZG+zO7E23H8Hcwv7j9BqmHYOdQyQgBPOmLFgEZzhzDRGL7EUWqMjR1lWXlKAtut8K+dzCANkDeXvr1LSpa6YJB38YY6tUAVXD7RkPExXxzWzr+7UN0Dbt2tAmMK0W9UgAw0LCsdRLgWRIpDMJ3xJ3DGWCGBoYNn1eixwA= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: cf5e5977-c534-40cb-aa3b-08d665ffe279 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:CO2PR18MB0076; x-ms-traffictypediagnostic: CO2PR18MB0076: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(999002)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231475)(944501520)(52105112)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:CO2PR18MB0076; BCL:0; PCL:0; RULEID:; SRVR:CO2PR18MB0076; x-forefront-prvs: 0891BC3F3D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(396003)(376002)(346002)(136003)(39860400002)(199004)(189003)(71200400001)(71190400001)(74316002)(5660300001)(33656002)(86362001)(9686003)(305945005)(55016002)(6436002)(53936002)(14454004)(478600001)(6246003)(4326008)(11346002)(446003)(229853002)(6116002)(7696005)(3846002)(76176011)(25786009)(6506007)(186003)(97736004)(8936002)(81166006)(102836004)(26005)(7736002)(66066001)(105586002)(106356001)(476003)(2906002)(217873002)(110136005)(68736007)(99286004)(54906003)(256004)(486006)(8676002)(316002)(81156014)(14444005); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR18MB0076; H:CO2PR18MB0057.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: axWOVfht144lr0jaFz0SmHBmtrqlzJBsV+YUem5mqke6ewWAwMeZsN49Oxf6DeoP4b5+JJYr+ycaxeBqvUqhXAJVsIM3l+K5oRcWC71WfktHfzCmtU2NOrZKmOy1h2yMiKKSj6nmR6B92ftwO4lqgpdZMOap03uIvqXSYBSLvmLtHiXRqPrzFhL/AKuqi1Msu2mZTmHxpE6sjh/8DQ79UK9kb32MGzak03V8CDj/cvmg7YWaTtaddgd74eSSplSt3UE1Y/jajm6xacSwDc4TL4ZDpMS4ZLO+I4qQr10yUUtH9BLPDTlZxuK71XWGpMRb spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: cf5e5977-c534-40cb-aa3b-08d665ffe279 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2018 22:18:20.8862 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR18MB0076 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-12-19_11:, , signatures=0 X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1812190174 X-Mailman-Approved-At: Thu, 20 Dec 2018 09:52:58 +0100 Subject: Re: [dpdk-stable] [PATCH 17.11 1/5] net/qede/base: fix MFW FLR flow X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Dec 2018 22:18:26 -0000 >From: Yongseok Koh >Sent: Wednesday, December 19, 2018 12:09 PM > >> On Dec 18, 2018, at 4:42 PM, Mody, Rasesh >wrote: >> >> From: Shahed Shaikh >> >> [ backported from upstream commit >> 797ce8eec7c1b9e37dd9398403e9bc888cca0013 ] >> >> Management firmware does not properly clean IGU block in PF FLR flow >> which may result in undelivered attentions for link events from >> default status block. >> Add a workaround in PMD to execute extra IGU cleanup right after PF >> FLR is done. >> >> Fixes: 9e2f08a4ad5f ("net/qede/base: add request for PF FLR before >> load request") >> >> Signed-off-by: Shahed Shaikh > >Thanks, I was waiting for patches from you. :-) > >Series applied to stable/18.11 Thanks, you mean stable/17.11, right? -Rasesh > >Yongseok > >> --- >> drivers/net/qede/base/ecore_dev.c | 7 +++++++ >> drivers/net/qede/base/ecore_int.c | 32 >++++++++++++++++++++++++++++++++ >> drivers/net/qede/base/ecore_int.h | 1 + >> drivers/net/qede/base/mcp_public.h | 2 ++ >> drivers/net/qede/base/reg_addr.h | 15 +++++++++++++++ >> 5 files changed, 57 insertions(+) >> >> diff --git a/drivers/net/qede/base/ecore_dev.c >> b/drivers/net/qede/base/ecore_dev.c >> index 092606b..6a3046d 100644 >> --- a/drivers/net/qede/base/ecore_dev.c >> +++ b/drivers/net/qede/base/ecore_dev.c >> @@ -4096,6 +4096,13 @@ void ecore_prepare_hibernate(struct ecore_dev >*p_dev) >> rc =3D ecore_mcp_initiate_pf_flr(p_hwfn, p_hwfn->p_main_pt= t); >> if (rc !=3D ECORE_SUCCESS) >> DP_NOTICE(p_hwfn, false, "Failed to initiate PF >> FLR\n"); >> + >> + /* Workaround for MFW issue where PF FLR does not cleanup >> + * IGU block >> + */ >> + if (!(p_hwfn->mcp_info->capabilities & >> + FW_MB_PARAM_FEATURE_SUPPORT_IGU_CLEANUP)) >> + ecore_pf_flr_igu_cleanup(p_hwfn); >> } >> >> /* Check if mdump logs/data are present and update the epoch >> value */ diff --git a/drivers/net/qede/base/ecore_int.c >> b/drivers/net/qede/base/ecore_int.c >> index 61e36a4..b2582aa 100644 >> --- a/drivers/net/qede/base/ecore_int.c >> +++ b/drivers/net/qede/base/ecore_int.c >> @@ -2679,3 +2679,35 @@ enum _ecore_status_t >> ecore_int_get_sb_dbg(struct ecore_hwfn *p_hwfn, >> >> return ECORE_SUCCESS; >> } >> + >> +void ecore_pf_flr_igu_cleanup(struct ecore_hwfn *p_hwfn) { >> + struct ecore_ptt *p_ptt =3D p_hwfn->p_main_ptt; >> + struct ecore_ptt *p_dpc_ptt =3D ecore_get_reserved_ptt(p_hwfn, >> + RESERVED_PTT_= DPC); >> + int i; >> + >> + /* Do not reorder the following cleanup sequence */ >> + /* Ack all attentions */ >> + ecore_wr(p_hwfn, p_ptt, IGU_REG_ATTENTION_ACK_BITS, 0xfff); >> + >> + /* Clear driver attention */ >> + ecore_wr(p_hwfn, p_dpc_ptt, >> + ((p_hwfn->rel_pf_id << 3) + >> + MISC_REG_AEU_GENERAL_ATTN_0), 0); >> + >> + /* Clear per-PF IGU registers to restore them as if the IGU >> + * was reset for this PF >> + */ >> + ecore_wr(p_hwfn, p_ptt, IGU_REG_LEADING_EDGE_LATCH, 0); >> + ecore_wr(p_hwfn, p_ptt, IGU_REG_TRAILING_EDGE_LATCH, 0); >> + ecore_wr(p_hwfn, p_ptt, IGU_REG_PF_CONFIGURATION, 0); >> + >> + /* Execute IGU clean up*/ >> + ecore_wr(p_hwfn, p_ptt, IGU_REG_PF_FUNCTIONAL_CLEANUP, 1); >> + >> + /* Clear Stats */ >> + ecore_wr(p_hwfn, p_ptt, >IGU_REG_STATISTIC_NUM_OF_INTA_ASSERTED, >> + 0); >> + >> + for (i =3D 0; i < IGU_REG_PBA_STS_PF_SIZE; i++) >> + ecore_wr(p_hwfn, p_ptt, IGU_REG_PBA_STS_PF + i * 4, 0); >> +} >> diff --git a/drivers/net/qede/base/ecore_int.h >> b/drivers/net/qede/base/ecore_int.h >> index 563051c..ebee68b 100644 >> --- a/drivers/net/qede/base/ecore_int.h >> +++ b/drivers/net/qede/base/ecore_int.h >> @@ -258,4 +258,5 @@ enum _ecore_status_t >> ecore_int_set_timer_res(struct ecore_hwfn *p_hwfn, enum >_ecore_status_t ecore_pglueb_rbc_attn_handler(struct ecore_hwfn >*p_hwfn, >> struct ecore_ptt >> *p_ptt); >> >> +void ecore_pf_flr_igu_cleanup(struct ecore_hwfn *p_hwfn); >> #endif /* __ECORE_INT_H__ */ >> diff --git a/drivers/net/qede/base/mcp_public.h >> b/drivers/net/qede/base/mcp_public.h >> index 81ca663..b83b241 100644 >> --- a/drivers/net/qede/base/mcp_public.h >> +++ b/drivers/net/qede/base/mcp_public.h >> @@ -1777,6 +1777,8 @@ struct public_drv_mb { >> #define FW_MB_PARAM_FEATURE_SUPPORT_SMARTLINQ 0x00000001 >> /* MFW supports EEE */ >> #define FW_MB_PARAM_FEATURE_SUPPORT_EEE 0x00000002 >> +/* MFW support complete IGU cleanup upon FLR */ >> +#define FW_MB_PARAM_FEATURE_SUPPORT_IGU_CLEANUP >0x00000080 >> /* MFW supports virtual link */ >> #define FW_MB_PARAM_FEATURE_SUPPORT_VLINK 0x00010000 >> >> diff --git a/drivers/net/qede/base/reg_addr.h >> b/drivers/net/qede/base/reg_addr.h >> index ad15d28..8f226ad 100644 >> --- a/drivers/net/qede/base/reg_addr.h >> +++ b/drivers/net/qede/base/reg_addr.h >> @@ -332,6 +332,21 @@ >> 0x180820UL >> #define IGU_REG_ATTN_MSG_ADDR_H \ >> 0x180824UL >> +#define IGU_REG_LEADING_EDGE_LATCH \ >> + 0x18082cUL >> +#define IGU_REG_TRAILING_EDGE_LATCH \ >> + 0x180830UL >> +#define IGU_REG_ATTENTION_ACK_BITS \ >> + 0x180838UL >> +#define IGU_REG_PBA_STS_PF \ >> + 0x180d20UL >> +#define IGU_REG_PF_FUNCTIONAL_CLEANUP \ >> + 0x181210UL >> +#define IGU_REG_STATISTIC_NUM_OF_INTA_ASSERTED \ >> + 0x18042cUL >> +#define IGU_REG_PBA_STS_PF_SIZE 5 >> +#define IGU_REG_PBA_STS_PF \ >> + 0x180d20UL >> #define MISC_REG_AEU_GENERAL_ATTN_0 \ >> 0x008400UL >> #define CAU_REG_SB_ADDR_MEMORY \ >> -- >> 1.7.10.3 >>