From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770072.outbound.protection.outlook.com [40.107.77.72]) by dpdk.org (Postfix) with ESMTP id 1937B1B61F for ; Wed, 19 Dec 2018 01:42:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4nk9mHPTvqww/ZiZ/q5SWw6zQEVaXRrizJxKunCq4E0=; b=jjD9Qo0Fo10x37deoN5miZRqJ3416q/txZCqMpGmxhpvaBABeoVPwVQB6SVhYcmWXmQUeyJy96OCLOcrGPJUkTkBzONlhC+XqUlS79t4TXlJd+WIie/xnqBXFr/2/bYLmQtZdqal8+I15ePXZVQwiLffAWrNV5ygl60g5crxHSM= Received: from BYAPR07MB5365.namprd07.prod.outlook.com (20.177.125.18) by BYAPR07MB4311.namprd07.prod.outlook.com (52.135.223.145) 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 00:42:43 +0000 Received: from BYAPR07MB5365.namprd07.prod.outlook.com ([fe80::514:ce1d:4236:9b9]) by BYAPR07MB5365.namprd07.prod.outlook.com ([fe80::514:ce1d:4236:9b9%3]) with mapi id 15.20.1425.021; Wed, 19 Dec 2018 00:42:43 +0000 From: "Mody, Rasesh" To: "stable@dpdk.org" CC: "Mody, Rasesh" , "yskoh@mellanox.com" , Dept-Eng DPDK Dev Thread-Topic: [PATCH 17.11 5/5] net/qede/base: fix to handle stag update event Thread-Index: AQHUlzPAJr3Y/sI8pki5B1khJPLyJg== Date: Wed, 19 Dec 2018 00:42:43 +0000 Message-ID: <1545180127-3202-5-git-send-email-rasesh.mody@cavium.com> References: <1545180127-3202-1-git-send-email-rasesh.mody@cavium.com> In-Reply-To: <1545180127-3202-1-git-send-email-rasesh.mody@cavium.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR05CA0098.namprd05.prod.outlook.com (2603:10b6:a03:e0::39) To BYAPR07MB5365.namprd07.prod.outlook.com (2603:10b6:a03:64::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [198.186.1.5] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BYAPR07MB4311; 6:y0eMfe5UZ2p4HB302KFLYTmf6ifyWtalxqY42OxJ7v2fZ3uZ+5GYzHgzrTqutDpbd4sFS+2U2IvDMP6yrm30mtOj2YTXqJm9svsRgB09kDVDmFFMgVoVTsZ3DlWUXDU5KyQgda2IZjt/jdmiRhYSDPqlBBFqrioSQyvq+W1wi22XfCEAH0PLwmg3Vp8NH/+oUvY+MCqhQNJwU7mb8f5PUP90Hz8AUKVclaBauotsQK/5he523VwC2Xh0+xWg3rXfqwd7RVORTNxJa758fqIQEiowGs44WfXRrJhMeuvM2tyIar/cejsl8dLEm/Ohj/H2MPh5UgSQcPWk+jPrgH0IQtlsFoO2JRa/atJBLokl9B1soodOGXRnzDRTrlqOtuPh4mh23aUP/5eaUVXUTnID4xJmVesN6jSMfvU2BRHEUob9As7TAYol5Z8ydsXGIMyLhYZgQ5dUegT7VAqy+vQ6yg==; 5:RJ7fOe4TW0DJ3prUqRh+sZZ9L7oPDM8i7BbC2vn3QsleH8htlJ2fNN5y2K9ZDJyr3v6d0K230UBkINfMddZbJOeQbUeZ8QgrsjkXJvRsQjwEm+nV1Dc8bMXR1v3lVk7YVYt3gzboiq5pk8vg1TzhMdtKZIWtJ7cG2ZEkHJHy77g=; 7:igEU34r6auYlpwk1CrDMT4OiuxvTyQ+EkTNKk0rLcAdTgt8Evj2ku7I837QOAoqxcKC/H1fpNcH8VcpH4ZhZMBA5HBBEyp5cK7djgUfErwo49ZLNSXIiRU5vbiECcdQ7Pl3xs0NhO7YhVFFpt/gx6Q== x-ms-office365-filtering-correlation-id: 04d6aa15-1c83-43a3-27c6-08d6654ae2cb x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR07MB4311; x-ms-traffictypediagnostic: BYAPR07MB4311: 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)(823302103)(3231475)(944501520)(52105112)(93006095)(93001095)(3002001)(10201501046)(148016)(149066)(150057)(6041310)(20161123562045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:BYAPR07MB4311; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB4311; x-forefront-prvs: 0891BC3F3D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(346002)(396003)(366004)(376002)(189003)(199004)(68736007)(6486002)(305945005)(6436002)(36756003)(25786009)(66066001)(72206003)(76176011)(99286004)(102836004)(7736002)(26005)(6506007)(386003)(575784001)(71200400001)(71190400001)(15650500001)(256004)(14444005)(86362001)(478600001)(8936002)(316002)(2616005)(11346002)(8676002)(4326008)(476003)(81156014)(1730700003)(81166006)(107886003)(186003)(53936002)(54906003)(5640700003)(2501003)(97736004)(14454004)(6512007)(2351001)(6916009)(52116002)(2906002)(106356001)(105586002)(3846002)(446003)(5660300001)(6116002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB4311; H:BYAPR07MB5365.namprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: s5G0oupJi8rpW5gJ+d99ndwGRI4YQYN2D9026dJC3Sbho/YNkniUOK3uOIgldNzgB/Q5hMelxs8G0f9ysxwnFl9clXCIYF8EyF8Ux3xHilZp5ftS7mE4oFoZwRKROxGMF3eaxqBIAtPEXDD8MNeLZ7HBTyCrphsw3yYMOGXwgfXnLxn4fRqF6TqMAYbkq1eYpmHt6n596YKVPzac6WJ+0QO/ne6vGv1NkZpMLTEpN7eBCIqCZH94DnHcT2gxXramzHmRvoyx8TcIqiIsSUgFajFzeFt8r9RzQCFCfcUm8nLwek3mj6lEbGjACCwoBW82 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04d6aa15-1c83-43a3-27c6-08d6654ae2cb X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2018 00:42:43.0516 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB4311 Subject: [dpdk-stable] [PATCH 17.11 5/5] net/qede/base: fix to handle stag update event 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 00:42:44 -0000 [ upstream commit cb71992793940ce5b642d843e07c934a11f3c13b ] This fix adds a ecore_mcp_update_stag() handler to handle the STAG update events from management FW and program the STAG value. It also clears the stag config on PF, when management FW invalidates the stag value. Fixes: ec94dbc57362 ("qede: add base driver") Signed-off-by: Rasesh Mody --- drivers/net/qede/base/bcm_osal.h | 1 + drivers/net/qede/base/ecore_mcp.c | 46 +++++++++++++++++++++++++++++= ++++ drivers/net/qede/base/ecore_mcp_api.h | 4 +++ drivers/net/qede/base/mcp_public.h | 1 + drivers/net/qede/base/reg_addr.h | 5 ++++ 5 files changed, 57 insertions(+) diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_o= sal.h index 52c2f0e..a5dde7a 100644 --- a/drivers/net/qede/base/bcm_osal.h +++ b/drivers/net/qede/base/bcm_osal.h @@ -449,6 +449,7 @@ void qede_get_mcp_proto_stats(struct ecore_dev *, enum = ecore_mcp_protocol_type, #define OSAL_CRC8(table, pdata, nbytes, crc) 0 #define OSAL_MFW_TLV_REQ(p_hwfn) nothing #define OSAL_MFW_FILL_TLV_DATA(type, buf, data) (0) +#define OSAL_HW_INFO_CHANGE(p_hwfn, change) nothing #define OSAL_MFW_CMD_PREEMPT(p_hwfn) nothing #define OSAL_PF_VALIDATE_MODIFY_TUNN_CONFIG(p_hwfn, mask, b_update, tunn) = 0 =20 diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecor= e_mcp.c index 8edd2e9..8adb7fb 100644 --- a/drivers/net/qede/base/ecore_mcp.c +++ b/drivers/net/qede/base/ecore_mcp.c @@ -1648,6 +1648,49 @@ static void ecore_read_pf_bandwidth(struct ecore_hwf= n *p_hwfn, ¶m); } =20 +static void ecore_mcp_update_stag(struct ecore_hwfn *p_hwfn, + struct ecore_ptt *p_ptt) +{ + struct public_func shmem_info; + u32 resp =3D 0, param =3D 0; + + ecore_mcp_get_shmem_func(p_hwfn, p_ptt, &shmem_info, + MCP_PF_ID(p_hwfn)); + + p_hwfn->mcp_info->func_info.ovlan =3D (u16)shmem_info.ovlan_stag & + FUNC_MF_CFG_OV_STAG_MASK; + p_hwfn->hw_info.ovlan =3D p_hwfn->mcp_info->func_info.ovlan; + if (OSAL_TEST_BIT(ECORE_MF_OVLAN_CLSS, &p_hwfn->p_dev->mf_bits)) { + if (p_hwfn->hw_info.ovlan !=3D ECORE_MCP_VLAN_UNSET) { + ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_VALUE, + p_hwfn->hw_info.ovlan); + ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_EN, 1); + + /* Configure DB to add external vlan to EDPM packets */ + ecore_wr(p_hwfn, p_ptt, DORQ_REG_TAG1_OVRD_MODE, 1); + ecore_wr(p_hwfn, p_ptt, DORQ_REG_PF_EXT_VID_BB_K2, + p_hwfn->hw_info.ovlan); + } else { + ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_EN, 0); + ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_VALUE, 0); + + /* Configure DB to add external vlan to EDPM packets */ + ecore_wr(p_hwfn, p_ptt, DORQ_REG_TAG1_OVRD_MODE, 0); + ecore_wr(p_hwfn, p_ptt, DORQ_REG_PF_EXT_VID_BB_K2, 0); + } + + ecore_sp_pf_update_stag(p_hwfn); + } + + DP_VERBOSE(p_hwfn, ECORE_MSG_SP, "ovlan =3D %d hw_mode =3D 0x%x\n", + p_hwfn->mcp_info->func_info.ovlan, p_hwfn->hw_info.hw_mode); + OSAL_HW_INFO_CHANGE(p_hwfn, ECORE_HW_INFO_CHANGE_OVLAN); + + /* Acknowledge the MFW */ + ecore_mcp_cmd(p_hwfn, p_ptt, DRV_MSG_CODE_S_TAG_UPDATE_ACK, 0, + &resp, ¶m); +} + static void ecore_mcp_handle_fan_failure(struct ecore_hwfn *p_hwfn) { /* A single notification should be sent to upper driver in CMT mode */ @@ -2033,6 +2076,9 @@ enum _ecore_status_t ecore_mcp_handle_events(struct e= core_hwfn *p_hwfn, case MFW_DRV_MSG_BW_UPDATE: ecore_mcp_update_bw(p_hwfn, p_ptt); break; + case MFW_DRV_MSG_S_TAG_UPDATE: + ecore_mcp_update_stag(p_hwfn, p_ptt); + break; case MFW_DRV_MSG_FAILURE_DETECTED: ecore_mcp_handle_fan_failure(p_hwfn); break; diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/= ecore_mcp_api.h index be3e91f..6b7a987 100644 --- a/drivers/net/qede/base/ecore_mcp_api.h +++ b/drivers/net/qede/base/ecore_mcp_api.h @@ -523,6 +523,10 @@ struct ecore_mfw_tlv_iscsi { struct ecore_mfw_tlv_iscsi iscsi; }; =20 +enum ecore_hw_info_change { + ECORE_HW_INFO_CHANGE_OVLAN, +}; + /** * @brief - returns the link params of the hw function * diff --git a/drivers/net/qede/base/mcp_public.h b/drivers/net/qede/base/mcp= _public.h index b83b241..8070d28 100644 --- a/drivers/net/qede/base/mcp_public.h +++ b/drivers/net/qede/base/mcp_public.h @@ -1259,6 +1259,7 @@ struct public_drv_mb { */ #define DRV_MSG_GET_RESOURCE_ALLOC_MSG 0x34000000 #define DRV_MSG_SET_RESOURCE_VALUE_MSG 0x35000000 +#define DRV_MSG_CODE_S_TAG_UPDATE_ACK 0x3b000000 =20 /*deprecated don't use*/ #define DRV_MSG_CODE_INITIATE_FLR_DEPRECATED 0x02000000 diff --git a/drivers/net/qede/base/reg_addr.h b/drivers/net/qede/base/reg_a= ddr.h index 8f226ad..da89ade 100644 --- a/drivers/net/qede/base/reg_addr.h +++ b/drivers/net/qede/base/reg_addr.h @@ -1237,3 +1237,8 @@ #define MCP_REG_CPU_STATE_SOFT_HALTED (0x1 << 10) #define PRS_REG_SEARCH_TENANT_ID 0x1f044cUL #define PGLUE_B_REG_VF_BAR1_SIZE 0x2aae68UL + +#define NIG_REG_LLH_FUNC_TAG_EN 0x5019b0UL +#define NIG_REG_LLH_FUNC_TAG_VALUE 0x5019d0UL +#define DORQ_REG_TAG1_OVRD_MODE 0x1008b4UL +#define DORQ_REG_PF_EXT_VID_BB_K2 0x1008c8UL --=20 1.7.10.3