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 40EDE45495; Wed, 19 Jun 2024 12:01:01 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5683942E5D; Wed, 19 Jun 2024 11:59:23 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2117.outbound.protection.outlook.com [40.107.243.117]) by mails.dpdk.org (Postfix) with ESMTP id 0326742E5C for ; Wed, 19 Jun 2024 11:59:20 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WCm7FU28izLIJ3Racxjcg3PSMSzoE0IqXnys7yQiKZbQXjRiKQ1PC66QDQZ1APxrkYbJiuWEHvJrdtAZvliS2thqjkd7LGNFoPjbVGUYKh88X1OeCaHza4RrXDyAp414JGMAS/J3RaRJSZWJdXIhjlA2vV4QAjN6qV5shB6aFCesTFwTr6UlMvHTK7LCw/rWX2xnMZiLEXNfFtEbwg2G9FAozOXjbUEAJXr5Xk94HVc+V/FF9CGm3ZoKnzK0DFujYoamGbKm8F/Xqar1l2E/KI/EjK0yzPObPIefsNuSl9AsL2XJ2VkMpPtxKXSRC5SS0KyJGQ+XIg7zjyiV1cZSZA== 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=l0ovoU/tUKCLyyiOfXk53QII9vJR99/Qed18q6z0y+U=; b=E2FWG8BneHIZh0tWSqaQCKRYzMXK2GbPcbBFdT6/eilIuHTT1fbpKtCYd94eY+vQ+jmCKaFDZK1cyn27nan+ClQEJcbhd/V9U7cx3tZ8NrcXPWKOttfgLky4QdzQLRZfihga2F8n7wBN11SqDl2g1nlYAYKtEruXbAqexT+OVY5yBGdCE4lT3ccd/BxFCWk+Wh50MdvYqRmzbMo7sCwEixi83OAS/vpAEd6+nCG+TNCrGSq6WpF2I4cs8ONRFSvGQCrvDKJ6pNhuF12ij+sKsad7yRfSqVRwnuN6wUAu1KruGHSFIhP90u2bCgj7QRLT1nY550BydJv6s3mU/c7A5w== 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=l0ovoU/tUKCLyyiOfXk53QII9vJR99/Qed18q6z0y+U=; b=bSDEtVNBzDYjpWJn6eZKQYG7R5VXSgTzz/hj/QaQj8cB4Zi5DZNvT6DnFQp9C0JM2M6UMNovq64WOuglvufy5rfrEoxKNzmy184JcSB/vkfp5igTo79w6spc3HDQnoDzTCsYH9nt26K5f4ASFZOH+N8QtMUEGP2MmF8QbBIdCwE= 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 MN2PR13MB3912.namprd13.prod.outlook.com (2603:10b6:208:263::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.31; Wed, 19 Jun 2024 09:59:18 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%4]) with mapi id 15.20.7677.030; Wed, 19 Jun 2024 09:59:18 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 15/23] net/nfp: add the VF table to record the VF information Date: Wed, 19 Jun 2024 17:58:22 +0800 Message-Id: <20240619095830.3479757-16-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240619095830.3479757-1-chaoyong.he@corigine.com> References: <20240619095830.3479757-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SJ0PR13CA0057.namprd13.prod.outlook.com (2603:10b6:a03:2c2::32) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|MN2PR13MB3912:EE_ X-MS-Office365-Filtering-Correlation-Id: 52d3283d-cdc7-4e4f-ee25-08dc90467be4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230037|366013|376011|52116011|1800799021|38350700011; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?FHBDPTvItG2VYUc1nbF2Hu3uCyqbDN2oMvzo0OCQCbl2IB6uVIHZGxbr4EtT?= =?us-ascii?Q?5I6o7IZi0mzYRaIEmVZNSDo9LFm5hqiSSrCv7STLY70tdnu1XCYikjw7SmUZ?= =?us-ascii?Q?hL6Bgx0M6yJnJ+TxqRYO4BFm/qJVEBXFmY/AeXhhYq2WT1ZNSUrGVtD6nXiP?= =?us-ascii?Q?TDmQI3YQxh3ZDXq27vJwe8SKReoALQVI6sDfDq+iTS5HmnPqYBz5LLNgw5Z0?= =?us-ascii?Q?wxZVUDg2RuhZlU8W2TYLfP/Jp2QeOFyqT8E9Y81hu0JJC/TgRvJSqEST10oX?= =?us-ascii?Q?mASGb4VbeZ3V9v483tGIFnp11jui1YX0rsT51Gk0em3HN9MmfP452xyRffew?= =?us-ascii?Q?Pdq7WAIdo74+QBXCJD0ApCw8YbS3jjtiCCV6D53TkeRObFbVQK1VtkRJ2/4m?= =?us-ascii?Q?2L5ToIVIG6TZwtbJC+BYe6pnvbG8uw4vmmcLJDTSAgCVpQJFtX6+8WhDgKqz?= =?us-ascii?Q?Hl2Mo7pzu1oI6tSr0Z8pOH9fSjGW19T8DNjXRRv13v+4B/WwfLkOe/PYtH8z?= =?us-ascii?Q?W+rAM/mTYPBJV4hQTBZu2IaH6ptAgu+erd8Djrn37/azIyYQ2FNqeqgVVaRt?= =?us-ascii?Q?mkRYIh/MD/0pXxG1nXRCr1UmgzQFIVxKJOS4G8NPErn3ODxFZrFQODlmqFga?= =?us-ascii?Q?TIxtTewWmqcWbQygjXyMd/zvqQcX54CnqvjwZIFxkGzE62ZoIBR0Djtse7XA?= =?us-ascii?Q?xil8SUsYdun8jVs81b5GAn6ILG/uwE4H3qzueQu5AaGciY5FqFvYop7CRSAi?= =?us-ascii?Q?Y912vlrkW0jQWPmNZ4wb58SRDElyKW4nlb9gDvtOFBXdAJTKpOnhYbBGUIYY?= =?us-ascii?Q?WozBMIf5GpYO354F0ezO7s1xK00xtCXjWJKmApIZxdf+Yj4taIUQlMB0aknM?= =?us-ascii?Q?TsDWxN9yJd9xdc1gPRhkcqgyTUZisPhjEBJB+YLpTpRxNtbcSJQcgu3/q/yv?= =?us-ascii?Q?GdVF39n72Wd4EQSG6zuc81jyPMpeItJ2Gik6CuzABBqAH0m5my8p4OvdL3q3?= =?us-ascii?Q?8wENN0l6ytvg1JjzQv6F5oYe5UbMsIJ3ChJOoEXwSiaMt/6sMUtiSXR7vcSu?= =?us-ascii?Q?ioPDEMSR1YNIH3UF73U/IrmBBdn7shNEKrEqz05And/N3V+gLwNWJ72OqmNY?= =?us-ascii?Q?Ka8l401NNplIzk6rvNwanpeJJT31MeIwpTqg8ywqE5QJ3cUjNPn+ccmJo2IG?= =?us-ascii?Q?GMGQJNH0YyhLw9l73kkg6RgaCC7WiZ1bcFVCEhiEK+3mBipUNneT2cIfz2VP?= =?us-ascii?Q?oOAIBpx52gAcqCm7k8hipObesNQUJh9mQ6dJ6MDQRq8QEH+lJsw/iVw5aYEf?= =?us-ascii?Q?39utxC8aSD4FSO60PFgVjZfvuh+w9PMGf/XYE4fVMJc9e5RMpf2novCupyXz?= =?us-ascii?Q?uX1EuPY=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:(13230037)(366013)(376011)(52116011)(1800799021)(38350700011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WvhMRK0UAfKv90Jcqqv8IISyaZgHbshnjNFUUWfSuXEug/kklg4TNaNMAuYG?= =?us-ascii?Q?FdgAVPF91cwa6OTn7U6n8Cq2pdulra7gjNjpIEB9KiG6MJQKhLkAjryXBcF8?= =?us-ascii?Q?Shlp/54/VnvZ50pkkM8O7Sd2VFMpF87TxwRA02B+xytXQualVgUd+rC5tRpm?= =?us-ascii?Q?MZHJg5KHJSYGk1YhPGmSa3q2XFZzLGjE7om7N5z4MvaYSdV0uq3E0pm9B1Q4?= =?us-ascii?Q?LSM8lymStoE0/I91KW++XqL+XatnTWuK14WwFAmPt3UrQ0pAxA3s0iF1lq+T?= =?us-ascii?Q?yd/KgDFApfR/FmcUdk1KtKEBbGJ0qciXDTsH9TLq9OXQQn/XqPMsF1+9qn1P?= =?us-ascii?Q?jep+H25v8WuX9ZXvIZ8XgV6I5BddJQXVO/jt7L4BzYwdOJ4YAo9wJQfheJSg?= =?us-ascii?Q?0fYqn8fGI55Qr5Z632zWlGnWaEEKoRHQpn+qoFXferIjcrmwizczKLqmh7Ox?= =?us-ascii?Q?Y9ABXZKalW4kGWrtkrSx4YXEy56NiXFWbfSpgfwcQYbeSw6w3JHWo0p9xaI8?= =?us-ascii?Q?BKJGZZW1Cao+JeDVTYa29MNdenOb9zqCXn8fc9ERCmDHHvssGYYxo+ispVEi?= =?us-ascii?Q?a0JdtMQmYvnL6g1fCx5twcqBBIF7vHOmZhlLSEfp7enfXwoM4PndAzSPFd46?= =?us-ascii?Q?YqSmha8wH1N9f6LbjkEyR1wuLbu4u2Jl3IdK6tkpRd3NKnymYXpruxiURG8L?= =?us-ascii?Q?/vbHJdXiDIIxbgLyADWnaXP0gCy/Ep2qAmG5nlEFiLjJy2rYk8KcmGSRYali?= =?us-ascii?Q?kv9rZxilH4luxFbxQPnZu9ncsoyUJP30qoGOepjHb4bctGMHgVNqUL2FTIKK?= =?us-ascii?Q?AyykWkT0s7hJ+hG0eyzgS5EgOl/lb2lQZPxcmkQpXCwt34Ikmte1riT4hxWl?= =?us-ascii?Q?O9zmfWyzwM8BISCHDlphzyvluesbSS8/p/uNXHu3QgLW13ENzBBcuFXWApb3?= =?us-ascii?Q?vQ2aUD9+sbKD98BwKFeboUy9w43VIjbTxcuQfzpklckBLA7fMjBnIs/poBb6?= =?us-ascii?Q?mJsu9C2wAzDZLRJZXVnkYEZPLRjcDlDlfknlVxpg8tvKc4xUBa3oSFFeB/SX?= =?us-ascii?Q?cQPBj6MabuLh55FUXCTjLQHxiQEmkfwKb2qlf+YVDMwDKVJ/ZmHL/iRQFUGm?= =?us-ascii?Q?LdJz/8jGM7MSYDyyIicMc8Y69Lht9l2spAntFPok7rTTret1swDmpnQ3tRqw?= =?us-ascii?Q?UDucea643g9fUgZG3z2TSsXyAtCA7AqLUFcfv4zlpXgZBAzzLMmNfdgJHVXb?= =?us-ascii?Q?wgZQJBpCZo5jlViA9FeykR3o9jBVk9q7xpB9F/WZo3cjkcR80xQ6wGm0IU5X?= =?us-ascii?Q?RgDXIQV2iNVPpYeXdHf8725Sy8rGMl1nPbE2jUt00XNALDUJefBKeNGA45w3?= =?us-ascii?Q?Mnhk501b80tFndcDTOFKZnzKjU9s9xlmi+FqytQBwoIbsbxBk0uMGuY3/QX3?= =?us-ascii?Q?QBBMCI1dRm3C7E5kPYTshT0XjwZtkilut+KL2em2pWPEglb0k76HQvbSLk5n?= =?us-ascii?Q?Yk2PAil53MNt+MwEqQEx8pKle9bHCnr0Xg/LIGbe0vNz90Em7z85/BDhFryk?= =?us-ascii?Q?elua7iXs8RyGAKlrcyLx9rVQ8OiBbPI/vty9UF6v49wG87gJJ6s0p9jX9jVP?= =?us-ascii?Q?tw=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52d3283d-cdc7-4e4f-ee25-08dc90467be4 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2024 09:59:18.3536 (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: DeV6UbrzRKili/wfePaSK2y0UApnWZxah2FBm6mDv0Mu+iKJg91pnlEoYSpgjjHOMCASQJPLv7HQEHFlfGNg1hKM1LDASEMtqngTiY+ma+Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3912 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: Peng Zhang In multiple PF case, different VF of different PF has different VF configure, so need add the VF table to record the VF information. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/common/nfp/nfp_common_ctrl.h | 8 ++++ drivers/net/nfp/nfp_ethdev.c | 64 +++++++++++++++++++++++++++- drivers/net/nfp/nfp_net_common.h | 9 ++++ 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/drivers/common/nfp/nfp_common_ctrl.h b/drivers/common/nfp/nfp_common_ctrl.h index 6badf769fc..e108720ff6 100644 --- a/drivers/common/nfp/nfp_common_ctrl.h +++ b/drivers/common/nfp/nfp_common_ctrl.h @@ -13,6 +13,14 @@ */ #define NFP_NET_CFG_BAR_SZ (32 * 1024) +/* + * Configuration sriov VF. + * The configuration memory begins with a mailbox region for communication with + * the firmware followed by individual VF entries. + */ +#define NFP_NET_VF_CFG_SZ 16 +#define NFP_NET_VF_CFG_MB_SZ 16 + /* * @NFP_NET_TXR_MAX: Maximum number of TX rings * @NFP_NET_TXR_MASK: Mask for TX rings diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 482d23eb5c..dc3890ef53 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -633,6 +633,16 @@ nfp_uninit_app_fw_nic(struct nfp_pf_dev *pf_dev) rte_free(pf_dev->app_fw_priv); } +static void +nfp_net_vf_config_uninit(struct nfp_pf_dev *pf_dev) +{ + if (pf_dev->sriov_vf == 0) + return; + + nfp_cpp_area_release_free(pf_dev->vf_cfg_tbl_area); + nfp_cpp_area_release_free(pf_dev->vf_area); +} + void nfp_pf_uninit(struct nfp_net_hw_priv *hw_priv) { @@ -640,6 +650,7 @@ nfp_pf_uninit(struct nfp_net_hw_priv *hw_priv) if (pf_dev->devargs.cpp_service_enable) nfp_disable_cpp_service(pf_dev); + nfp_net_vf_config_uninit(pf_dev); nfp_cpp_area_release_free(pf_dev->mac_stats_area); nfp_cpp_area_release_free(pf_dev->qc_area); free(pf_dev->sym_tbl); @@ -1957,6 +1968,47 @@ nfp_net_get_vf_info(struct nfp_pf_dev *pf_dev, return 0; } +static int +nfp_net_vf_config_init(struct nfp_pf_dev *pf_dev) +{ + int ret = 0; + uint32_t min_size; + char vf_bar_name[RTE_ETH_NAME_MAX_LEN]; + char vf_cfg_name[RTE_ETH_NAME_MAX_LEN]; + + if (pf_dev->sriov_vf == 0) + return 0; + + min_size = NFP_NET_CFG_BAR_SZ * pf_dev->sriov_vf; + snprintf(vf_bar_name, sizeof(vf_bar_name), "_pf%d_net_vf_bar", + pf_dev->multi_pf.function_id); + pf_dev->vf_bar = nfp_rtsym_map_offset(pf_dev->sym_tbl, vf_bar_name, + NFP_NET_CFG_BAR_SZ * pf_dev->vf_base_id, + min_size, &pf_dev->vf_area); + if (pf_dev->vf_bar == NULL) { + PMD_INIT_LOG(ERR, "Failed to get vf cfg."); + return -EIO; + } + + min_size = NFP_NET_VF_CFG_SZ * pf_dev->sriov_vf + NFP_NET_VF_CFG_MB_SZ; + snprintf(vf_cfg_name, sizeof(vf_cfg_name), "_pf%d_net_vf_cfg2", + pf_dev->multi_pf.function_id); + pf_dev->vf_cfg_tbl_bar = nfp_rtsym_map(pf_dev->sym_tbl, vf_cfg_name, + min_size, &pf_dev->vf_cfg_tbl_area); + if (pf_dev->vf_cfg_tbl_bar == NULL) { + PMD_INIT_LOG(ERR, "Failed to get vf configure table."); + ret = -EIO; + goto vf_bar_cleanup; + } + + return 0; + +vf_bar_cleanup: + nfp_cpp_area_release_free(pf_dev->vf_area); + + return ret; +} + static int nfp_pf_init(struct rte_pci_device *pci_dev) { @@ -2149,6 +2201,12 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto hwqueues_cleanup; } + ret = nfp_net_vf_config_init(pf_dev); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Failed to init VF config."); + goto mac_stats_cleanup; + } + hw_priv->pf_dev = pf_dev; hw_priv->dev_info = dev_info; @@ -2159,7 +2217,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) ret = nfp_fw_app_primary_init(hw_priv); if (ret != 0) { PMD_INIT_LOG(ERR, "Failed to init hw app primary."); - goto mac_stats_cleanup; + goto vf_cfg_tbl_cleanup; } /* Register the CPP bridge service here for primary use */ @@ -2167,12 +2225,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) ret = nfp_enable_cpp_service(pf_dev); if (ret != 0) { PMD_INIT_LOG(ERR, "Enable CPP service failed."); - goto hwqueues_cleanup; + goto vf_cfg_tbl_cleanup; } } return 0; +vf_cfg_tbl_cleanup: + nfp_net_vf_config_uninit(pf_dev); mac_stats_cleanup: nfp_cpp_area_release_free(pf_dev->mac_stats_area); hwqueues_cleanup: diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index d3c70a21d4..c4d469599f 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -117,6 +117,15 @@ struct nfp_pf_dev { struct nfp_cpp_area *ctrl_area; struct nfp_cpp_area *qc_area; + /** Pointer to the CPP area for the VF configuration BAR */ + struct nfp_cpp_area *vf_area; + /** Pointer to mapped VF configuration area */ + uint8_t *vf_bar; + /** Pointer to the CPP area for the VF config table */ + struct nfp_cpp_area *vf_cfg_tbl_area; + /** Pointer to mapped VF config table */ + uint8_t *vf_cfg_tbl_bar; + uint8_t *qc_bar; struct nfp_cpp_area *mac_stats_area; -- 2.39.1