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 584E9440E1; Tue, 28 May 2024 03:30:06 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D910340649; Tue, 28 May 2024 03:30:01 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2110.outbound.protection.outlook.com [40.107.220.110]) by mails.dpdk.org (Postfix) with ESMTP id 0D185402F0 for ; Tue, 28 May 2024 03:30:00 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UznCIoi0w4bqPIwXiXUdCMsd7FEGCL5R3sSIYuNXVVlgmo4ZXec4HGnD3E4dM6LQk9SjGmbPjyKGuOZtzrslhnAGZv8uIaeLeuobXUnjbhPOrBGD2CUlpP/wn3JreZd8ZbgJt9RvJqsWdPIiNHe0dl0+aglWyqf2vndXKrndK1tCxL1rydUFr35DZDPcp9mtEfgUVO7+9k4ftrPj9n9RILHUQCmhCeavXSoR+vetbp0SBg3EHBabBiLyK4U4/8yzpD81iVvx/bhDV4hGd589ZHiu5aKZPoN5ZJ5acmH21f3zN6I2mIrxlg1BO2duwb5PX022IFxhQuZc9OtjNthM/w== 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=FVwRN7CAKU1H6e5Z1lUlX7BmhRzReey2wF/S+ugLn/w=; b=Wg2KYygYuYkWnaaKVrtnPD0bs0mPN95Sis/pjQNek+R7GsmKFZnVqP9Im08hIt1XvmolKdkFNpFfhAJT5MqGOxVifJye/rNSW52sT1wqNNEB6rcJi2oXBsIz2ZtOYJjtr8SEBW5SUm+RVAQnnaKHu7RlmZZm27rQE5AbQapNK6G85y34+v94rUL5j4PljfOw+UOXvcdJmJIhPmi4Kf50fb3uAnphSWddK9lM4ncx8SftDDzceRzPKJhHPEZQY/WfNRc+FkBlM32VZkyjRwQIxywDvMCappIH9ZroNC8yXYSyWwXsFjgeLhYA10DTriTMPorKStA9OeR1cyiy34/YjQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FVwRN7CAKU1H6e5Z1lUlX7BmhRzReey2wF/S+ugLn/w=; b=epi0MbCRkvarK8Xaw0o9cezGaz/Li5LKQuIrkugoVF6sQAZ+fxpkOQihIpSfSLwIYZF9dgY6TdLtM8u6DK9SN28J8CrWvi+eMQN8YcvudSmNnI8dKmt0ytnuANwG5HX3FTcL/jWR+rDGLRVxHIFnmUnGqnV1DDjTSW/G75vgGnI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by SA0PR13MB3917.namprd13.prod.outlook.com (2603:10b6:806:99::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.16; Tue, 28 May 2024 01:29:58 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%7]) with mapi id 15.20.7633.001; Tue, 28 May 2024 01:29:58 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH 1/2] net/nfp: refactor the firmware load logic Date: Tue, 28 May 2024 09:29:32 +0800 Message-Id: <20240528012933.2345436-2-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240528012933.2345436-1-chaoyong.he@corigine.com> References: <20240528012933.2345436-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SI1PR02CA0049.apcprd02.prod.outlook.com (2603:1096:4:1f5::18) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SA0PR13MB3917:EE_ X-MS-Office365-Filtering-Correlation-Id: b74f2955-fab3-4530-a851-08dc7eb5af3e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|366007|52116005|376005|1800799015|38350700005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VIFfveFY1L6ViP6oKy9+FzBuMlayL7rD3r3KrnL0HDu8/h1ygX+Fj9mH++n3?= =?us-ascii?Q?sQx6bJiv9IAkuiMcfgJlFNRIn8vFvNEqdB+AdR0eD8Utci7zLtUDYDi2y9oL?= =?us-ascii?Q?0cr9G17IB5R2attG6tmYFLFThe8V8X7SN64chhUfPLpLmEbh+sc7hbt6dWhl?= =?us-ascii?Q?JQYVKXSK0sENZEq5tJsYLBzqqg0+UKAFvLIkeQ1o/zjIrAwOEhTsKf2D1PcK?= =?us-ascii?Q?ITAZM7D4JSZWL+AR7BZx8NUXl7YVvcXVnNT52QxWSsLcFJlEK8qYzWtBRghr?= =?us-ascii?Q?4wYNHmEviJb/8BgGgo5UHm4EnKrRXDeSQARpJFSc7EIOW6mmxKun3dSGYJ53?= =?us-ascii?Q?s2WbOiur2K3u06EWot1l3wwNf09j4NaYTt5MqlECqIV2l1/KcgJuWOy8tPca?= =?us-ascii?Q?hPl7jNSoQg7CaaEIxC9P8gWbn5wmbpVM5hGwGD+b3qCnrH+Fau7KBkKSAKrK?= =?us-ascii?Q?QgV7P9jRz/wJLQ8zmoS4lZLdhF9d6nfmLHWQa5y4CrSaOW6ZwcIOA3QuduZn?= =?us-ascii?Q?AhWTYlcQls2oswHw+UNBmtbsh9MlwEBlpVVWbP0ygOqXLXcCwipJobakR10g?= =?us-ascii?Q?zKyzb1E5827Q87tj2iIrRYFkvKn3NkQshoutnH8IzWanSeHF5ju5uwUno7EE?= =?us-ascii?Q?E9+RLEdB2b67KUDwzCzLVtxpYEV+GlnM7oCUnG1SbKwZ/Mt3IjQIcVtKBcGA?= =?us-ascii?Q?VUbF2+oQ+DjV4ITwe1eWo1WGp7bhbAyOkTuZfT+UnrG297r6JlU5qWl1i7VK?= =?us-ascii?Q?EnAOz/JSIq1db2PQlu55GTrH4jMMKoElNpjEpz0dwB6BQT+6eBPy1+BO9JyU?= =?us-ascii?Q?isC8jJevHEEHnT9JHbkC6bY3HA5i8TEWYOkjnmAfy4Z+PgDPwAhMSJHOIcvm?= =?us-ascii?Q?XEBpnhxBzr6EJDOCgqVkMQkHlZNKB+HWb8A8M05RNZuaAcvsksYOVaXw+BEF?= =?us-ascii?Q?DbkDzlssvEY74rGxE4Hi884jKhHdJMBzm5//zfbtODWCyfLZ9CpYlzOIWBV6?= =?us-ascii?Q?J6wokjwG/YMz87PcwnZVNgi3fqjTs/2KsifXmfgis3hKMz4Id0UH3RjWtWxC?= =?us-ascii?Q?qESu/I4KItaCFs8s0aJI5vAaTn5SXfUgGsEbAv7rcBepm6OKalY+sks/mUER?= =?us-ascii?Q?QJ5GPOmu+ryYv3BpdHfyKoCoOs06y6Yk0On3V6HHLXOi/u17mL/g0CANGDJF?= =?us-ascii?Q?Sr5hHRcwpqThod6qnwmwNQw8w7oRl6mIrBuoIUubZeU00GxIXWuo+bU217H5?= =?us-ascii?Q?paKIj3a1WV17wC8ihMt/VmCPxuAYY0dCf33CzSgGnoiDrXUK+VnEsKrEW8sx?= =?us-ascii?Q?OWefTTMg46d3fsQdMtZifFVeP6m5UFtzzRV2wzFscaywbQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(52116005)(376005)(1800799015)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?597UK2CZLPfVY+ONe6arFKcNMXsL1/88YOP7Qy/t0DJXDAKasLDkH8onGlBh?= =?us-ascii?Q?RVXlgjaJ5mXFeMITa4v+q34266F3Ncd1p9aQsOjt0+BD9ehabcZS2rFU+6I8?= =?us-ascii?Q?vgaxplZDjVVyUwiE1zfIjR90U23ZbiJ2gelu9WdCkMtT3pBBZ+Q4CMG9Mjvp?= =?us-ascii?Q?khLbyYKJ4xGoxVU6ghO4I/K7dgHO6cjTZBDIEp7alwh3/v8EGWwx3djwIzpJ?= =?us-ascii?Q?un+5Fzwpmk6LjJ3y74izBhP4ecVew+e2xGYqfF5YZl3MQjM0pZF1ECUDBdvP?= =?us-ascii?Q?TWlgh+c/6p17XyKuktszwblwMBwsw29JyDud7l5dDJ4958+uNFBu9dQiKJsh?= =?us-ascii?Q?eARj5IqC6nskqopFcu+PMnl4TiqK6mQ5A0uGGRas+YMwT4tOJuyOZLYtOhEB?= =?us-ascii?Q?aO2gJwPCQ5+irNV3fH/0v3RpRYG7o9uWHgcC8WNk5EEOldiAUSQ89a5uRFDA?= =?us-ascii?Q?qZ229egO0XBXRwt4wdqw1VDW2a4xoV1iat1qVeaK+DdmpLTTqdPNMZgX5C5Q?= =?us-ascii?Q?1Gxf4DPC3P0yiPPaCsCIfr98NPQJ3BBKTcS43Gs7WpdQtexGfmUAgLbi6N0n?= =?us-ascii?Q?WZhm4LeXHjxnVApPRHmz4FkkpyyCELR+UMSYbkfD51+guB/OjZHKoVurF5pQ?= =?us-ascii?Q?3Y9N5C6U3u1olIajSlzyUfzwvrTe2X4xOn7OrAloISWJd0RU6+D5oy900w8k?= =?us-ascii?Q?tja6xMUZu5zHSbLXpUy0bNNqeM3wGnLBD9CrwjVYr7Vcmc0YMfl1Gio1WnrV?= =?us-ascii?Q?NS11N3INR8Hfuu/uiPERFuf3fOi4GR9+kj2bIG+Aj6B+y+Sc4tgXODbslR5O?= =?us-ascii?Q?bEH5K11U+x8o21Jx8jxs7+HoDFxokrRlc+blEyJ5Px/vNIz3hYaJNdd5/SbX?= =?us-ascii?Q?rNhMXwD7Pia+PIJx6mV5q6mCjLsD4y+cKc1XeeZ1cRde3B9+hgZHGU3+y4Ux?= =?us-ascii?Q?gCk98GS4m+H7GLq8z+BrnEzk/yv6z2FoNrNDWVgp1vfa7obOhFFz6o2Nwxm6?= =?us-ascii?Q?qLGl/KD9Fn5sGyTTsz14kDuUfxUO/0wEgHj+o3Ovz0QVH1qdqiedKqOHK3aR?= =?us-ascii?Q?xOIXFYDTI/opxiAS/MsWZamhj6VxHnaF/jEdHY4n3A7ENswmgqL+h/Y3H68X?= =?us-ascii?Q?xVMiGjJOju7EApNkBC3Yv5s3ck8ThN2+X9q++4uouKTzrMfZaDHqpGYx1/4G?= =?us-ascii?Q?ghLPwZW15/RftuZML4lI83ygDAPueAjZ7kbiUhVY95kyJcLT5Bv9pJZ3gt0U?= =?us-ascii?Q?fiWRtWXU4XawjQwLXZnMOqyVAmuLCuKIfHk3KcBMerap4/KAFU+/TgzaZFbw?= =?us-ascii?Q?Rpbakfxjdf9bjAx853DlskUIrzJh1mhFEm0Xvv3wVrH+H+bEylfNB8mSu/U0?= =?us-ascii?Q?p4ntccBBFK8kx/nvcVIQBsVeQOF3cDFpvdxT4i8wMOelhtRk4XCiIMbo0MgF?= =?us-ascii?Q?LaT8UeO8HsJwGRROoncvHWr0LoodH50Qd4iSL42OCnCS9nnMK7RZDB0aoZLU?= =?us-ascii?Q?EvMRvdPXaiyMrcOdx+R1VaGA/pAXblkN4xOd+DxVPDBqJPvmfZV9yRyIxVQN?= =?us-ascii?Q?boZj1wi1aoahith1Q8PTFF22D/EabZsxdPU6CKqPMirGC6iUjrkph6XlXqNq?= =?us-ascii?Q?Vg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b74f2955-fab3-4530-a851-08dc7eb5af3e X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2024 01:29:57.5732 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1FHpGjenNgPrftKVKRanu9SE7aLi/+pI8jtC/2gsYWti3mKpCFQwcH4MrvPyYyZC99FFA7kOWNUjeh4IFoqirx1MLAjzcS46J9wFDRt9sRY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR13MB3917 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 Refactor the firmware load logic, make it more specific and clear. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev.c | 66 ++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index cdc946faff..771137db92 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -1081,16 +1081,18 @@ nfp_net_init(struct rte_eth_dev *eth_dev, static int nfp_fw_get_name(struct rte_pci_device *dev, - struct nfp_nsp *nsp, - char *card, + struct nfp_cpp *cpp, + struct nfp_eth_table *nfp_eth_table, + struct nfp_hwinfo *hwinfo, char *fw_name, size_t fw_size) { char serial[40]; uint16_t interface; + char card_desc[100]; uint32_t cpp_serial_len; + const char *nfp_fw_model; const uint8_t *cpp_serial; - struct nfp_cpp *cpp = nfp_nsp_cpp(nsp); cpp_serial_len = nfp_cpp_serial(cpp, &cpp_serial); if (cpp_serial_len != NFP_SERIAL_LEN) @@ -1119,8 +1121,20 @@ nfp_fw_get_name(struct rte_pci_device *dev, if (access(fw_name, F_OK) == 0) return 0; + nfp_fw_model = nfp_hwinfo_lookup(hwinfo, "nffw.partno"); + if (nfp_fw_model == NULL) { + nfp_fw_model = nfp_hwinfo_lookup(hwinfo, "assembly.partno"); + if (nfp_fw_model == NULL) { + PMD_DRV_LOG(ERR, "firmware model NOT found"); + return -EIO; + } + } + /* Finally try the card type and media */ - snprintf(fw_name, fw_size, "%s/%s", DEFAULT_FW_PATH, card); + snprintf(card_desc, sizeof(card_desc), "nic_%s_%dx%d.nffw", + nfp_fw_model, nfp_eth_table->count, + nfp_eth_table->ports[0].speed / 1000); + snprintf(fw_name, fw_size, "%s/%s", DEFAULT_FW_PATH, card_desc); PMD_DRV_LOG(DEBUG, "Trying with fw file: %s", fw_name); if (access(fw_name, F_OK) == 0) return 0; @@ -1364,49 +1378,20 @@ nfp_fw_setup(struct rte_pci_device *dev, { int err; char fw_name[125]; - char card_desc[100]; struct nfp_nsp *nsp; - const char *nfp_fw_model; - - nfp_fw_model = nfp_hwinfo_lookup(hwinfo, "nffw.partno"); - if (nfp_fw_model == NULL) - nfp_fw_model = nfp_hwinfo_lookup(hwinfo, "assembly.partno"); - - if (nfp_fw_model != NULL) { - PMD_DRV_LOG(INFO, "firmware model found: %s", nfp_fw_model); - } else { - PMD_DRV_LOG(ERR, "firmware model NOT found"); - return -EIO; - } - if (nfp_eth_table->count == 0 || nfp_eth_table->count > 8) { - PMD_DRV_LOG(ERR, "NFP ethernet table reports wrong ports: %u", - nfp_eth_table->count); - return -EIO; + err = nfp_fw_get_name(dev, cpp, nfp_eth_table, hwinfo, fw_name, sizeof(fw_name)); + if (err != 0) { + PMD_DRV_LOG(ERR, "Can't find suitable firmware."); + return err; } - PMD_DRV_LOG(INFO, "NFP ethernet port table reports %u ports", - nfp_eth_table->count); - - PMD_DRV_LOG(INFO, "Port speed: %u", nfp_eth_table->ports[0].speed); - - snprintf(card_desc, sizeof(card_desc), "nic_%s_%dx%d.nffw", - nfp_fw_model, nfp_eth_table->count, - nfp_eth_table->ports[0].speed / 1000); - nsp = nfp_nsp_open(cpp); if (nsp == NULL) { PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle"); return -EIO; } - err = nfp_fw_get_name(dev, nsp, card_desc, fw_name, sizeof(fw_name)); - if (err != 0) { - PMD_DRV_LOG(ERR, "Can't find suitable firmware."); - nfp_nsp_close(nsp); - return err; - } - if (multi_pf->enabled) err = nfp_fw_reload_for_multi_pf(nsp, fw_name, cpp, dev_info, multi_pf, force_reload_fw); @@ -1853,6 +1838,13 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto hwinfo_cleanup; } + if (nfp_eth_table->count == 0 || nfp_eth_table->count > 8) { + PMD_INIT_LOG(ERR, "NFP ethernet table reports wrong ports: %u", + nfp_eth_table->count); + ret = -EIO; + goto eth_table_cleanup; + } + pf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp); pf_dev->multi_pf.function_id = function_id; -- 2.39.1