From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EA82FA00C5; Tue, 21 Jun 2022 14:19:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 990AE4069C; Tue, 21 Jun 2022 14:19:19 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2079.outbound.protection.outlook.com [40.107.220.79]) by mails.dpdk.org (Postfix) with ESMTP id 302C240151 for ; Tue, 21 Jun 2022 14:19:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TrCnWxtFRQTyRGx+EoZo98J3fZ1P7Jzgr03m26OW/HVopgvLBIAYGJDTdf7CcjSwETvt8jCcLsMfOKg6NhDsccU4PfjvRI4pa/KOvElJQ9Bae+4t0q9c1SopPIBU3Wkt1ql1cg7xbDLCCDGf5ELkBofxUBcshunPf5HuK4PYWYioYA5jy/2yO+kXzMvIJcy61DZnXtZXNZAXhgg6XObY85YhAaIM+zEsYOcID3/2n8dea2WcwP/a2jCvamBhlGMMJ0tepbflDcO01tb48cmRdwHPStPYniw28gDjBEveZj6uoApf9oI3eYtT4E0vd1YzmAsQlWwr5fmxWbj+H4wy3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wsMnRIkcsKI9s8KakXCtAk03rhZDfltXwbgL2YMLDdA=; b=jRato66yX7ObgZRYiCOEWyRyAcaC+Y5OYWY+mX7DLqScvyixQDr7L5QQDj0gDdLfGBbqSF6FcOrJtywMDlwryYKonxZPuhvubnfpMYXVeTq54DdmYWwJCn5T4JbMtB1x9GymzSnJ3dDqRhK8ZgJ97NfRI/PeZwCPVyD3YQ9xxch7vyorK+n4LN7DYoQgZ5fiPpzkrx/CfGrzvTiMxUpNKqen4gq0x2OS80oQGaGUQNZqdNnL1UWlSV/f9jQ1hxd42D6jWBuKKwu/XRNsjpON4QW4OAUpRDSXGGH9ipViJLe9z+N09W6KxbgC8M+mEv0A1KvxHB5utXlRlOTRv28zOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.80.198) smtp.rcpttodomain=trustnetic.com smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wsMnRIkcsKI9s8KakXCtAk03rhZDfltXwbgL2YMLDdA=; b=ERE1TTTOh95sdBEIQ0BkIKNFNqoBZ0aembn4L7hFcsOapmKF61QFKjjtWXP81txozTBhhZV9FDmZDOdTPUwiv+P0fdRoivIo4p6DxKbuSNRMR7okSv8q5UKOcfrtH7IVve/w/rgVoyU1YvIKQrarZz+bneDpYq9bk4+Xjx6Bc9Y= Received: from DM5PR06CA0084.namprd06.prod.outlook.com (2603:10b6:3:4::22) by DM6PR02MB4314.namprd02.prod.outlook.com (2603:10b6:5:27::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.19; Tue, 21 Jun 2022 12:19:15 +0000 Received: from DM3NAM02FT026.eop-nam02.prod.protection.outlook.com (2603:10b6:3:4:cafe::3a) by DM5PR06CA0084.outlook.office365.com (2603:10b6:3:4::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Tue, 21 Jun 2022 12:19:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.80.198) smtp.mailfrom=xilinx.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.80.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.80.198; helo=xir-pvapexch02.xlnx.xilinx.com; pr=C Received: from xir-pvapexch02.xlnx.xilinx.com (149.199.80.198) by DM3NAM02FT026.mail.protection.outlook.com (10.13.5.129) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5353.14 via Frontend Transport; Tue, 21 Jun 2022 12:19:14 +0000 Received: from xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) by xir-pvapexch02.xlnx.xilinx.com (172.21.17.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Tue, 21 Jun 2022 13:19:13 +0100 Received: from smtp.xilinx.com (172.21.105.198) by xir-pvapexch01.xlnx.xilinx.com (172.21.17.15) with Microsoft SMTP Server id 15.1.2176.14 via Frontend Transport; Tue, 21 Jun 2022 13:19:13 +0100 Envelope-to: jiawenwu@trustnetic.com, dev@dpdk.org Received: from [10.71.119.54] (port=50168) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1o3cqe-0004ND-Rb; Tue, 21 Jun 2022 13:19:13 +0100 Message-ID: <8f02e428-e303-0deb-1be2-6b3cec9e9eec@xilinx.com> Date: Tue, 21 Jun 2022 13:19:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH 1/7] net/txgbe: support OEM subsystem vendor ID Content-Language: en-US To: Jiawen Wu , References: <20220620075512.588744-1-jiawenwu@trustnetic.com> <20220620075512.588744-2-jiawenwu@trustnetic.com> From: Ferruh Yigit In-Reply-To: <20220620075512.588744-2-jiawenwu@trustnetic.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c32d1eaf-b488-48a0-14eb-08da538041b1 X-MS-TrafficTypeDiagnostic: DM6PR02MB4314:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FAglQk7DX396JRzuYv+q0uwBJHJvWcl7cOQv+oqz/EwfqJkBu7Kd2H+niMTMeMf1p5oNZTn1u2Mq9bdMR+zUn+Z0qsHEOoH8a4g6Avssh577MMV8/HqhU6JqkNXciD1uINGnCkg2VTlKelz/j3aSBEVO495ecEt9sw0BB3A640w0n6s5qY0eDtScspEt5JdQ2fza4jnKQtIqgKkvBzg/HbhMt1xUxM0MfdZcdv9PWvEbS9XurdPssH4kQGr7F6rYlm8yCP2C4tWJaZysRyMXVYkVaDKy6JTw4n2NZjxPwG5sHh99cyWLZh5Opwy1i7UCNeIPWjJkFdxuQmp+/pM7SduQei4gqMz3bMTxj+7q2Y/LmV7rFHQG+/rSieEpb1A2QthXDKWQZ1gnw8ijA4opJ7J0p+MFu2Z2VV6yZkgtywbqE39GEWQ+kZm2zJ1Ca1du0/L3MurDbGvumtWJJBES02/yQ5+PPqr/UD5F6Kr+0fpzFepYS9reGlmAY4fKL0JtH7A+57J9zv9wlUbTBzhSZObubBkWWbV/JmQsnf21cEP9TukSp3gpgqUL1SeS0duvkGSbVIPmRmGXUp63FDB7j9ys8qE2rCIkp6tWC/t/NGf6ONsr0J6q+b03p/dLA4PhR3K8Hiek60EVGHIqQFBMSJNsdJ3cUdNdkTcmRdXSZcZWbgfYXUVhDvdiwxcaFcDqGp8CVRfsrOLm8ha8I4qCgb84JXlqB54CKU/XC2n7N5JRYjqpowF4lF/9jqCgJYgatWGzRd1hNuV69/SWJnj62Q== X-Forefront-Antispam-Report: CIP:149.199.80.198; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:xir-pvapexch02.xlnx.xilinx.com; PTR:unknown-80-198.xilinx.com; CAT:NONE; SFS:(13230016)(4636009)(346002)(136003)(39860400002)(396003)(376002)(46966006)(40470700004)(36840700001)(53546011)(5660300002)(7636003)(26005)(31686004)(356005)(82740400003)(2616005)(41300700001)(82310400005)(40460700003)(36860700001)(36756003)(31696002)(40480700001)(186003)(47076005)(83380400001)(2906002)(44832011)(336012)(426003)(110136005)(70586007)(316002)(8936002)(70206006)(9786002)(478600001)(8676002)(50156003)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2022 12:19:14.6421 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c32d1eaf-b488-48a0-14eb-08da538041b1 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.80.198]; Helo=[xir-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: DM3NAM02FT026.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4314 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 6/20/2022 8:55 AM, Jiawen Wu wrote: > Add support for OEM subsystem vendor ID. > > Signed-off-by: Jiawen Wu > --- > doc/guides/rel_notes/release_22_07.rst | 4 +++ > drivers/net/txgbe/base/txgbe_hw.c | 37 ++++++++++++++++++++++++++ > drivers/net/txgbe/base/txgbe_hw.h | 2 ++ > drivers/net/txgbe/txgbe_ethdev.c | 12 +++++++++ > 4 files changed, 55 insertions(+) > > diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst > index 6fc044edaa..96db85a707 100644 > --- a/doc/guides/rel_notes/release_22_07.rst > +++ b/doc/guides/rel_notes/release_22_07.rst > @@ -167,6 +167,10 @@ New Features > > * Added support for yt8531s PHY. > > +* **Updated Wangxun txgbe driver.** > + > + * Added support for OEM subsystem vendor ID. > + > * **Added Elliptic Curve Diffie-Hellman (ECDH) algorithm in cryptodev.** > > Added support for Elliptic Curve Diffie Hellman (ECDH) asymmetric > diff --git a/drivers/net/txgbe/base/txgbe_hw.c b/drivers/net/txgbe/base/txgbe_hw.c > index 6a045cba79..8acebf8b60 100644 > --- a/drivers/net/txgbe/base/txgbe_hw.c > +++ b/drivers/net/txgbe/base/txgbe_hw.c > @@ -2608,6 +2608,43 @@ s32 txgbe_prot_autoc_write_raptor(struct txgbe_hw *hw, bool locked, u64 autoc) > return err; > } > > +/* cmd_addr is used for some special command: > + * 1. to be sector address, when implemented erase sector command > + * 2. to be flash address when implemented read, write flash address > + */ > +u32 txgbe_fmgr_cmd_op(struct txgbe_hw *hw, u32 cmd, u32 cmd_addr) > +{ > + u32 cmd_val = 0; > + u32 i = 0; > + No need to initialize these variables. > + cmd_val = TXGBE_SPICMD_CMD(cmd) | TXGBE_SPICMD_CLK(3) | cmd_addr; > + wr32(hw, TXGBE_SPICMD, cmd_val); > + > + for (i = 0; i < 10000; i++) { May be good to have a macro for time, up to you #defile TXGBE_100MS 100000 #define TXGBE_10US 10 for (delay = 0; delay < TXGBE_100MS; delay += TXGBE_10US) { ... usec_delay(TXGBE_10US); } > + if (rd32(hw, TXGBE_SPISTAT) & TXGBE_SPISTAT_OPDONE) > + break; > + > + usec_delay(10); > + } > + if (i == 10000) > + return 1; > + May be good to comment function that it will return '1' on timeout (since some caller functions in the chain are checking explicit '0x1' return value.) > + return 0; > +} > + > +u32 txgbe_flash_read_dword(struct txgbe_hw *hw, u32 addr) > +{ > + u32 status = 0; > + no initialization is required. > + status = txgbe_fmgr_cmd_op(hw, 1, addr); > + if (status) { > + DEBUGOUT("Read flash timeout."); > + return status; > + } > + > + return rd32(hw, TXGBE_SPIDAT); > +} > + > /** > * txgbe_init_ops_pf - Inits func ptrs and MAC type > * @hw: pointer to hardware structure > diff --git a/drivers/net/txgbe/base/txgbe_hw.h b/drivers/net/txgbe/base/txgbe_hw.h > index fd2f7d784c..7031589f7c 100644 > --- a/drivers/net/txgbe/base/txgbe_hw.h > +++ b/drivers/net/txgbe/base/txgbe_hw.h > @@ -111,4 +111,6 @@ s32 txgbe_prot_autoc_read_raptor(struct txgbe_hw *hw, bool *locked, u64 *value); > s32 txgbe_prot_autoc_write_raptor(struct txgbe_hw *hw, bool locked, u64 value); > s32 txgbe_reinit_fdir_tables(struct txgbe_hw *hw); > bool txgbe_verify_lesm_fw_enabled_raptor(struct txgbe_hw *hw); > +u32 txgbe_fmgr_cmd_op(struct txgbe_hw *hw, u32 cmd, u32 cmd_addr); > +u32 txgbe_flash_read_dword(struct txgbe_hw *hw, u32 addr); > #endif /* _TXGBE_HW_H_ */ > diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c > index f0994f028d..6fb91cdf07 100644 > --- a/drivers/net/txgbe/txgbe_ethdev.c > +++ b/drivers/net/txgbe/txgbe_ethdev.c > @@ -552,6 +552,7 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused) > const struct rte_memzone *mz; > uint32_t ctrl_ext; > uint16_t csum; > + u32 ssid = 0; This is only used in 'else' block, you can move it to the context it is used, and again it seems not required to initialize. > int err, i, ret; > > PMD_INIT_FUNC_TRACE(); > @@ -594,6 +595,17 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused) > /* Vendor and Device ID need to be set before init of shared code */ > hw->device_id = pci_dev->id.device_id; > hw->vendor_id = pci_dev->id.vendor_id; > + if (pci_dev->id.subsystem_vendor_id == PCI_VENDOR_ID_WANGXUN) { > + hw->subsystem_device_id = pci_dev->id.subsystem_device_id; > + } else { > + ssid = txgbe_flash_read_dword(hw, 0xFFFDC); > + if (ssid == 0x1) { > + PMD_INIT_LOG(ERR, > + "Read of internal subsystem device id failed\n"); > + return -ENODEV; > + } > + hw->subsystem_device_id = (u16)ssid >> 8 | (u16)ssid << 8; > + } > hw->hw_addr = (void *)pci_dev->mem_resource[0].addr; > hw->allow_unsupported_sfp = 1; >