From patchwork Mon Dec 11 03:08:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134995 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 72F45436C3; Mon, 11 Dec 2023 04:09:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC54940A6E; Mon, 11 Dec 2023 04:09:24 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2124.outbound.protection.outlook.com [40.107.243.124]) by mails.dpdk.org (Postfix) with ESMTP id 229E0402B2 for ; Mon, 11 Dec 2023 04:09:22 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D/N1TVHMlYLJ1F1zrOOmNiBURaJhNhuyLlrAArk9bCGB8egkcodH+WVzS4cHWcljVQVl6xTL8q5l/FGHSAEh0wAuWEFM+jPPWy5HbvHn9l9VM2/1twuz6MiR7FbpFo61X4/PSHGEP6t5uVLb55WNeW9xbkfc2jrxkPtv1lqL/9XU9QwLsMt5P9n2iCt4qW/SJUDN9rmbjdYIHkQdWeyqzbZehG26q1c90nl/DE6oK7r+0j4miLSVxpI0+MFEyly/TJFpIbXDP7r8lWPkH6co2w7yEuwS2Fe95hZd+ympTgKuC6YiQS3Cy/e1mzVSQuB/TmjCc5Ixi8rTQtbK52dpGQ== 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=mt+yinRuCYD8AvWITK3IEJwuR8+75Lew3Sjhn8uyzT4=; b=i8Al95P4OUp7gFi0/8tQPalb/icG7iQsHOHtwqtyPFU9VKS50pNqNgOK5HvZR+9SS2byAxU7z4GX8nmZEQKCJEroCHC3StzYcLGz88cQniCzYfTV3UOiXXYD2+I2u2eemo6vm6d2YvEN3bvuR8vH7dCQeI6DWLyvtSve6gGXlOaHwRBuQxrNU35ty2RojLiLHg1Y+zdhIwl823N8//fUA3ZDvvZw4y4majoXwWqEZrAQslQms1sUSGCTMNrZUqNxHws1RBJARjCTJugpO3CI+rPD1BW6YufL3il0KUlmsM0P74ScasDxAeiTOmoVfdNd4O+RpfkmuXWY49Pym1ovCA== 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=mt+yinRuCYD8AvWITK3IEJwuR8+75Lew3Sjhn8uyzT4=; b=okctvaX4/NEOGwDWXkQc9Q0exuIwvVuWUXgziqs5MbWdVPFGnisXXK+kqzs4vftvmFzxN1ej/vWg736CnzjjasVTPJcZK9jrK0THbVb5P97+ZNiCO4BvMxIiVVGESymbGUyGt7sngWpOUcsEIoGUEmMLHIHId87rLXgz3TZN3eI= 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 PH0PR13MB5666.namprd13.prod.outlook.com (2603:10b6:510:111::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 03:09:20 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.7068.031; Mon, 11 Dec 2023 03:09:20 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Zerun Fu , Long Wu , Peng Zhang , Chaoyong He Subject: [PATCH 1/7] net/nfp: set a new parameter to hwinfo Date: Mon, 11 Dec 2023 11:08:52 +0800 Message-Id: <20231211030858.1693240-2-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231211030858.1693240-1-chaoyong.he@corigine.com> References: <20231211030858.1693240-1-chaoyong.he@corigine.com> X-ClientProxiedBy: SJ0PR13CA0166.namprd13.prod.outlook.com (2603:10b6:a03:2c7::21) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|PH0PR13MB5666:EE_ X-MS-Office365-Filtering-Correlation-Id: 62ed89b2-5951-47f2-9766-08dbf9f6914f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jKCpJfZffDR5p7RFlm2463t17u+RVkdCbAnLdwy6NfFOleoKzAJSMAUa5x4xrUiIQPnV/pnE4YpSsmT1EF8vmJsQT06IGHDj2uo83lhYJe7q0cWnwSvFtT9KGtfSNwbA7wTFegPeLM8xYq8DIugh3rq3FOKinz7Wdy6tU9wdgBC/AkrtbcctvwAIfULMix1QzL7ZiTdenhzfTudNJuIaReTxuGJ/BY5TgX/2MdSE6QjWHpStPTYnA1OlKhzaoIskdtNvhMqYOXzLoIvQAGgShpeyDk3dwpTvtyivvMYCuwJJp61QQaPsEsy7oxBxMPKiuwsNChcFioEk/6ZJQs2NUILLw+70GTvAuvsScyfZOPOAoaWNTwNqnr7Gx+lwGf5TBgMxBHAMAttlMBHjTqnNS9dK783Qk4YZHzmr3seFDY5ep91Nj4K20c5Ydfp6jwK0+dn0qczvxDZnxVd9cpjCnx1FkU6LyGRJLoyvi5o7uAOmSdnWYauzGp2Ha4B9IJKfLOsSzczqMkgWy4XuLXuCeFtmUdDsLGvQE+A36pT7+2VJBFtncO9TbBu3w/YgBTDnmmuQwmPJAMjJojyL79GSc/e/1SXmAMiXRgfJ2H0Gw0bWDmsdTzR5v40afTNrX/mZylToiwFPR3T3ymAW72iSZY/wpmdyA3lTonaiyzUs97Y= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39830400003)(136003)(376002)(396003)(346002)(366004)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(41300700001)(5660300002)(38350700005)(2906002)(6512007)(6506007)(107886003)(2616005)(1076003)(6666004)(52116002)(36756003)(478600001)(6486002)(38100700002)(83380400001)(26005)(8936002)(8676002)(4326008)(86362001)(6916009)(66476007)(66556008)(54906003)(316002)(66946007)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hNCm+oXDYnc/Zj2I4CdquajbI+/4xGg03fXeBnXCi5S6pSue7QiNN54jFqnBExrWhQBQc66f7w8ZvFPD0eIFHM0bnMSltxAxZ5IatXHILguaH0vMuwkpeyR1hiQzpNyCf9MX+5mkz/W4UQQmbJ68FjZU57q5zp4F728VGn825aThw1Rh2TMKysKzSWt1nCUL0fHSsHTqElL+xeoyutezEisKeCu/XmoUyT9xQ2/TATq5LTqo87XzgiIttVh5GAd5LXmb3Lg+WExaLZAiBdvZ/vdFeLql6IZQSYuw6Xarq+exxXDvux5z+CRU7uahlaSOmSpFVkjZFPbTPRslDPACecLfZi2FOmEnw1ngegO411YCvk3Por63/ZcrP2U/hUzrXVHRTwwTVzWT/MdOW72Z35aK3JMqH+1t/8BJRLf23CdSefOaVbVwKkNEXtMIVF7fjF9YsMBDrsTW8p49QhEOlc63uuHKIedA7Ha+8DJYYGdHo3AudN++pwH5T/ghB3LTu8u/mbKgMpgW57X6CjSW2zEiDkZOEpUIhcD3Ynqr8G0p6nsEwrT2YP5PQDPDAdhGK/04+Oq6kpXmBHHEiP4gpAyMOHkqw2xRY85zqwfJiyivRwSMqEd8zXmNnjqjSc8IN7okjZ9eIrDiNBzbE8mDGG3gdluepRJVSUH3p/+1sYcnKs/4BK4NbtPGXpxWUeag44sjW0A4gWquEfqz5tD2il1YmUeJCzwhZjffdsyX55ykMsgmRf7uJgu162xosxi3ThkV1sf6ILlwVmD+/7ouRIYvrCZGXxay5W14hhEDf7UHOAB9ojonLGEzQ+4hnXdAHPPIpboC/xM+efS0gxMi8wcfygpM8uPzWSNtSLQBo+tXoY85kFmy58ycIIJFKTbhT8dAysc7se/TDbhXR/hR9QUIBw/VaxdvbtJzjnj1Cj1u/qY56KKw1DeAvydDcGRVsX2+Q5IK2XSCenW0xS3j4GZy0tzJcDgvVEGabFhr7BGewA5pnagJrTCsOIeC7oP4muftIns6mbDVT1jGOf3dy2pHDGtxezFBm7unUX4xQDU4qzdYk0TCN4Rv+A77LULPXjid3lkIZxtuYSpAZP5uavvxR2p24/6YLrW0CXjBDWnhU3ejUzd0jZB3MyI0VWP02tWQLd6vyVBFYxwmV/QOkZom44qTIuAVl5ypP85qOoZUqIAsb/2UoLs3w5EfYXfbdYTdybMaqe5Se6g1a3SJvMux7b5Ok06GLwOIAdAdqx049MaXDXN1ZxU6KW6ZIBb0qX/pEzqXU4o+QbuZuHbUCYlLHAzKQPemBFQwmTnitALNklqoo0y4rILrLgLJ89ewh6hhQ6bIvavz78VixvfnNElQvVNmcbtwRByO4EF65aAdbL91z21h0J+wnsSAPdtr79yJSOCCYjfOGMYGKaGTK0HQOnz9emSEr+9FA4nhcz1pcIVXpbhNfrNkvt/My5OEG6U5j/hDFxq6aCzxN66lAreiksekr0Q0YhXmjsR+GTgjW+GlhrjsCVhx3gQ5HJl65ooNH6WA7ExCwZTe33D3jshhSLhf4ZJf/i0U7hi1CaKI4PxNAu9E0WcfFhmbjYnlLnB080CrsTZSGvB5/qgIlg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62ed89b2-5951-47f2-9766-08dbf9f6914f X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 03:09:20.1298 (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: t+Zn+Zygmz+R7wx9dny8VhTe/jLJwnjtq2DYpPzSnKS8QbjV8nu52qZzExkWbZRpimYxCv3xk/vgjT0Zm4dJX+G3Hh/5DJBdgGgy5whmZX4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB5666 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 From: Zerun Fu When switching speed the BSP needs to be informed whether the firmware needs to be switched. Considering that whether application firmware is indifferent to port speed is a firmware property instead of port property, now use a new rtsym to get the property. So 'sp_indiff' is written to hwinfo to notify BSP. Signed-off-by: Zerun Fu Reviewed-by: Long Wu Reviewed-by: Peng Zhang Reviewed-by: Chaoyong He --- drivers/net/nfp/nfp_ethdev.c | 51 +++++++++++++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_nsp.c | 17 +++++++++++ drivers/net/nfp/nfpcore/nfp_nsp.h | 3 ++ 3 files changed, 71 insertions(+) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 336d18491e..ef0b0dcd48 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -25,6 +25,9 @@ #include "nfp_logs.h" #include "nfp_net_flow.h" +/* 64-bit per app capabilities */ +#define NFP_NET_APP_CAP_SP_INDIFF RTE_BIT64(0) /* Indifferent to port speed */ + #define NFP_PF_DRIVER_NAME net_nfp_pf static void @@ -1227,6 +1230,46 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, return ret; } +static int +nfp_net_hwinfo_set(uint8_t function_id, + struct nfp_rtsym_table *sym_tbl, + struct nfp_cpp *cpp) +{ + int ret = 0; + uint64_t app_cap; + uint8_t sp_indiff; + struct nfp_nsp *nsp; + char hw_info[RTE_ETH_NAME_MAX_LEN]; + char app_cap_name[RTE_ETH_NAME_MAX_LEN]; + + /* Read the app capabilities of the firmware loaded */ + snprintf(app_cap_name, sizeof(app_cap_name), "_pf%u_net_app_cap", function_id); + app_cap = nfp_rtsym_read_le(sym_tbl, app_cap_name, &ret); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Couldn't read app_fw_cap from firmware."); + return ret; + } + + /* Calculate the value of sp_indiff and write to hw_info */ + sp_indiff = app_cap & NFP_NET_APP_CAP_SP_INDIFF; + snprintf(hw_info, sizeof(hw_info), "sp_indiff=%u", sp_indiff); + + nsp = nfp_nsp_open(cpp); + if (nsp == NULL) { + PMD_INIT_LOG(ERR, "Couldn't get NSP."); + return -EIO; + } + + ret = nfp_nsp_hwinfo_set(nsp, hw_info, sizeof(hw_info)); + nfp_nsp_close(nsp); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Failed to set parameter to hwinfo."); + return ret; + } + + return 0; +} + static int nfp_pf_init(struct rte_pci_device *pci_dev) { @@ -1337,6 +1380,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto sym_tbl_cleanup; } + /* Write sp_indiff to hw_info */ + ret = nfp_net_hwinfo_set(function_id, sym_tbl, cpp); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Failed to set hwinfo."); + ret = -EIO; + goto sym_tbl_cleanup; + } + /* Populate the newly created PF device */ pf_dev->app_fw_id = app_fw_id; pf_dev->cpp = cpp; diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c index e5aaef8d55..e57176adb3 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp.c @@ -711,3 +711,20 @@ nfp_nsp_read_sensors(struct nfp_nsp *state, return nfp_nsp_command_buf(state, &sensors); } + +int +nfp_nsp_hwinfo_set(struct nfp_nsp *state, + const void *buf, + size_t size) +{ + struct nfp_nsp_command_buf_arg hwinfo_set = { + { + .code = SPCODE_HWINFO_SET, + .option = size, + }, + .in_buf = buf, + .in_size = size, + }; + + return nfp_nsp_command_buf(state, &hwinfo_set); +} diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.h b/drivers/net/nfp/nfpcore/nfp_nsp.h index 9f506a0b2e..f99ca941d5 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.h +++ b/drivers/net/nfp/nfpcore/nfp_nsp.h @@ -169,6 +169,9 @@ void *nfp_nsp_config_entries(struct nfp_nsp *state); struct nfp_cpp *nfp_nsp_cpp(struct nfp_nsp *state); bool nfp_nsp_config_modified(struct nfp_nsp *state); uint32_t nfp_nsp_config_idx(struct nfp_nsp *state); +int nfp_nsp_hwinfo_set(struct nfp_nsp *state, + const void *buf, + size_t size); static inline bool nfp_eth_can_support_fec(struct nfp_eth_table_port *eth_port)