From patchwork Thu Nov 2 02:23:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133748 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 7301843267; Thu, 2 Nov 2023 03:23:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7A57342E4B; Thu, 2 Nov 2023 03:23:49 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2105.outbound.protection.outlook.com [40.107.96.105]) by mails.dpdk.org (Postfix) with ESMTP id 5F0B6402D9 for ; Thu, 2 Nov 2023 03:23:46 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PT/X4AiRfrg4v0Qd/Mi31o9qmMO5tSXaiZg6Bo0oU4u8yPTO1L7/p01gypitBiNvOb8goeyaPJ99OKruJmRqxKHgszphQ4euFZQqLH88OHgv6NAiyW48lMqNIWhxb7xgXpTabmsz/3Y1+x5taOZxVXJatRl8V1GScb0Nhs4n32AXfwQi0bmNkIe4LKVck7ewCrFdzFHRJJxVyLUU2+hc8WnyIEZOIii60TWMjtEC9RZQxKOH7FCS4TNMdpHn/eleF//LbOFkJ/WznXplp2PBuMzUJ0fEN019zeLvJrOoBInTllod+XenGiUR4yscwyYQIA0H8A3rzXKhiMbZ43QslA== 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=M8IUbLqnMH475+n5W6fhe/87botfZzwbcxd2MJhSF4o=; b=Q0YcZ5g7TY/MEMEC6D7h2pe9igQf6fv3HmUj2ddCz/TqjlGXsCvzwx2cIeD505vuc3ajKKbCKLqVyzUjsOP8v7CLvYiJAV5yt/xjTk/TPsIVg3lxwG4lOhcOvEu7GQwiGsju7h4T/hpsy0osWHaqi+nNkBTYet9K3JzMq64YR49kbzROoU9CUSGk+p6Cw8t7ZPRXmvqT5MFzqPks6yPFV3DJSgy3cx+UQbreI/89GCNuyHGqZ/gpwc1Nmj8h9RoLBaH7yaSNsmXUsbxsH6412iFSLNJsKRiRNCM3LG3A9sw5Wk8V4K1bvibmh7nFabgy77Ka/SOAiUZMVdPlI7huqQ== 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=M8IUbLqnMH475+n5W6fhe/87botfZzwbcxd2MJhSF4o=; b=BMnu7nJrpKQVGYp5+uYK2eL/xjEF2JrPmSwvYSn8pYpFIDg6J+d4PHyYWGZfHQwv2myLRpELf5cyR0aa86zi0H+gUG0xw8+jRQY7iXUlmgbq8NR9DveF+qzxt4z6ah52DQQRrStfrWtq4fs5iYP+BRVjYVQ/E828Zb8DsM0SJnY= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:44 +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.6933.027; Thu, 2 Nov 2023 02:23:44 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Peng Zhang , Long Wu Subject: [PATCH 01/11] net/nfp: refactor the probe logic of the secondary process Date: Thu, 2 Nov 2023 10:23:11 +0800 Message-Id: <20231102022321.2254224-2-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: f9b9b9e0-64aa-4f2c-f177-08dbdb4abcb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gx2SWtUp1akS/J4YuQGjFD0xOmXZhB9/7m2U/+M5/29bNB8LuqtemdDl8dyovKKynJTcd6EkoPBMSQ0llCcdh4bnz5tKlsiKG1n6RD85lirUPENsatGYAuIdWBPnooc4G914Cu3Kqbn7r5M4+o8KuAeQV9Z3hylxAs0FfE25Zn31JlZTpOA6opAgBmRacy/X0LBxb5NnlKKcz9xNmYDaM9yQ60Ynk+7ScLiZwQc7RzSO19TkM62AddkRtPzhXfdNLIetDxiYCZ0WpdM6mz+T2ERGTFx0VJSiKqzNoOJjrmpg+gRbTkI/B5WrX/ddrgvWWzHRBJWUat2AIS9LuwSf1OnoVJp8kMYuRHQ5LySukv8A7Se1rFoXeGikcc9RY9cwWxWlX+ODWduQ61FVtKgJZgckivjmgzHTQhz5UM5Ozq7LAU0+DZKbsizBlGuqJOc808MpKdx9Y6VF+FMYJiLKomG3wB2w97mBD7obMCfZkgPaHPKsf3WC0XyAyTCtctAHojZcFbkRqP4GNbdxcw3EjiW8JpQE1cYRuF0eMgZdP9odjIX2ZURtlyLUDVqaDEvoQtefnnfNUuCxh7wurMYJkvhiYd85q7A3jWDl7XEwCS6ZnJOE36I5nS5895M6JDwyaCJYDKMLF/2FemE3igE9/+HzbPnMxQGIHFv3cktT5uc= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xnKTnORJNvdMtjbxgpwGGC6ZptMXZ+CxaE5UBXq0FFgpS5g6YoFz1/29J6lRZ+ddo/knCnld0z81PdrQkgM9zAOtPZwj4hOzSV/AU8juOmr+rbb0PU170h57TTZqJ2iWB8ONiLsPabmBKYLZqgnhvP4kMs9awSrClMbE4ScOQ+42Kc3Nz3esa5n0tiMoZx7oTQlzG2pZ8IBWKo0R0mkdc/kR8EXMHnT3oIgEykUppCby9xp23J+FncmgVc/EFXHmIrI6NsrYE904wmB1j/4VeeqCWlcuanaRhvwAqD3XbQN8skxQmSnW4qT59LDAHtYF8GroaWXBKpJdEvGF2rk5ZNQKj70WjLFRjvflvJDPxyF/jq2ZbIKlVdq5SGhi59SN+iwTQD7iEacLi/GuxTM6lLVYJMvk3GPwj4Bpxi28f0h8FyMZcUrwmemMUyOrXoKAC6eHpEHawcYM9aNzp97Ifk1s0BH2Qu4vZ7F9dKg8fW5hAnNYsy132C7/a4vym3dzyQaKgGkkERW2Nj2kjKnwLEyMNloFQkGLMnYC5GPfaaYUvPhxwYG9JPR6i+8MyjNsIrgUY6ekQPK3iWgUpwGC5jbbh+6vPwsoJElUqYpgJEXWdqx/UUpSheg0DBqA1NC/rH8gk/RFwRFecmSqSsqC2MZcUhbJ8NrM4gSjvdqLZ+jsqY73e3aeSgnVgpAJ7lTFaObbPte83yI9PSXBc3QBRe1+b40u27eVGt7ItadxCsAt7Lb/tOm6FvCmLMfrNMpo9VZwVK22DHNd48knob5/l5pdbqxDpxu8itHkyokTi4L1HDxVhdy2AzKzTuRE+bhDKREgidTX0kwhV572wXlRYfkIqjP5bH4BRKK43cNs7geomgKnsX4UsPffIJW6Ovz3+yRMuVv/DI5TJ5iwgPZKS/xWIB5KMCP6VkuOxIi/raTbzRmMGHzTksLZZilc3NSQx5tUZSD4e1bU3Jy09QyxYwzQjeoU2lhZc73M8wS3ph1g490x/M+5V5jV8AK9WpFDbZ5le7Wg9Ev3YGxLwX2zxuXTDoG7nvorvvtsxdMvtXF64HUfDK5P9HQYgfgcJ+T7yRKq//y9uOvti4vFz6/ZXvz+cmfdhZb/WWL9hIozS73Q2CkTkAhOUHDDq1Ga8WjS8S5vepL5CKf6gG6GgVHb3FsHwDwVPMoLc4xh/ReiGoFCaYY2dKOHuJrvipZSH3oerT+gwO+EeoEeRKzVBniSe3PuWR1W8zZpLoh1k/37zSj++ToJdOSZFPnA2FRzXTQgxXd3hAmRC/JBdM/cead35ujMkBvACqPydM25oBqbR5jypPeb97Vx9tDoqeskz8pZeAXG3kjywrmqwCAvZEMWfPjs4q4CdaOuM+JU4UdkkUlpQPcl3wax+A2d41bbp2JGI0ExtHgfeUxUQKgKi5whZ4ld0aals0INyvil4dKqctTXFeUwztN/7NOvuCcLAiRSPK95NjnzfSN5pdWK2Cj9O0q0H77UBLIWwhe6+H+6X27IUcz0EjuW7LP12vXunN3bmDUVTBmgrkyY4Jx6XBYY+Y48WFx1UMoRPrZzhZlaEoNzxQi8T6kAWohRYowU9Ndfp0d4kKPPZnB9j1sj18PyKg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9b9b9e0-64aa-4f2c-f177-08dbdb4abcb7 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:44.6463 (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: W/4vyqkIbwpenX9RaxlSLX4t2iiOvT0xMIAgQ5OqcnTriqxU5Xielu4BTYgl4nmbcvPwe3vNTUIvYcqql9pcsKVngu5Bnyhvp42FTyCiMp0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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 The probe logic of the secondary process of PF PMD now is not very similarly with the logic of the primary process, which cause we need two different logics when we add new feature in some case. Refactor the probe logic of the secondary process to solve this problem. Signed-off-by: Chaoyong He Signed-off-by: Peng Zhang Reviewed-by: Long Wu --- drivers/net/nfp/flower/nfp_flower.c | 4 +-- drivers/net/nfp/flower/nfp_flower.h | 2 +- drivers/net/nfp/nfp_ethdev.c | 42 ++++++++++++++++++++++------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c index f2e6eb6a6f..6b523d98b0 100644 --- a/drivers/net/nfp/flower/nfp_flower.c +++ b/drivers/net/nfp/flower/nfp_flower.c @@ -859,7 +859,7 @@ nfp_init_app_fw_flower(struct nfp_pf_dev *pf_dev, } int -nfp_secondary_init_app_fw_flower(struct nfp_cpp *cpp) +nfp_secondary_init_app_fw_flower(struct nfp_pf_dev *pf_dev) { struct rte_eth_dev *eth_dev; const char *port_name = "pf_vnic_eth_dev"; @@ -872,7 +872,7 @@ nfp_secondary_init_app_fw_flower(struct nfp_cpp *cpp) return -ENODEV; } - eth_dev->process_private = cpp; + eth_dev->process_private = pf_dev->cpp; eth_dev->dev_ops = &nfp_flower_pf_vnic_ops; eth_dev->rx_pkt_burst = nfp_net_recv_pkts; eth_dev->tx_pkt_burst = nfp_flower_pf_xmit_pkts; diff --git a/drivers/net/nfp/flower/nfp_flower.h b/drivers/net/nfp/flower/nfp_flower.h index 220b714018..6f27c06acc 100644 --- a/drivers/net/nfp/flower/nfp_flower.h +++ b/drivers/net/nfp/flower/nfp_flower.h @@ -106,7 +106,7 @@ nfp_flower_support_decap_v2(const struct nfp_app_fw_flower *app_fw_flower) int nfp_init_app_fw_flower(struct nfp_pf_dev *pf_dev, const struct nfp_dev_info *dev_info); -int nfp_secondary_init_app_fw_flower(struct nfp_cpp *cpp); +int nfp_secondary_init_app_fw_flower(struct nfp_pf_dev *pf_dev); bool nfp_flower_pf_dispatch_pkts(struct nfp_net_hw *hw, struct rte_mbuf *mbuf, uint32_t port_id); diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 4fae2e5540..705465046c 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -1006,9 +1006,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) } static int -nfp_secondary_init_app_fw_nic(struct rte_pci_device *pci_dev, - struct nfp_rtsym_table *sym_tbl, - struct nfp_cpp *cpp) +nfp_secondary_init_app_fw_nic(struct nfp_pf_dev *pf_dev) { uint32_t i; int err = 0; @@ -1017,7 +1015,7 @@ nfp_secondary_init_app_fw_nic(struct rte_pci_device *pci_dev, struct nfp_net_hw *hw; /* Read the number of vNIC's created for the PF */ - total_vnics = nfp_rtsym_read_le(sym_tbl, "nfd_cfg_pf0_num_ports", &err); + total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, "nfd_cfg_pf0_num_ports", &err); if (err != 0 || total_vnics == 0 || total_vnics > 8) { PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value"); return -ENODEV; @@ -1027,7 +1025,7 @@ nfp_secondary_init_app_fw_nic(struct rte_pci_device *pci_dev, struct rte_eth_dev *eth_dev; char port_name[RTE_ETH_NAME_MAX_LEN]; snprintf(port_name, sizeof(port_name), "%s_port%u", - pci_dev->device.name, i); + pf_dev->pci_dev->device.name, i); PMD_INIT_LOG(DEBUG, "Secondary attaching to port %s", port_name); eth_dev = rte_eth_dev_attach_secondary(port_name); @@ -1037,7 +1035,7 @@ nfp_secondary_init_app_fw_nic(struct rte_pci_device *pci_dev, break; } - eth_dev->process_private = cpp; + eth_dev->process_private = pf_dev->cpp; hw = eth_dev->data->dev_private; nfp_net_ethdev_ops_mount(hw, eth_dev); @@ -1057,7 +1055,9 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) { int ret = 0; struct nfp_cpp *cpp; + struct nfp_pf_dev *pf_dev; enum nfp_app_fw_id app_fw_id; + char name[RTE_ETH_NAME_MAX_LEN]; struct nfp_rtsym_table *sym_tbl; const struct nfp_dev_info *dev_info; @@ -1075,6 +1075,14 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) return -ENODEV; } + /* Allocate memory for the PF "device" */ + snprintf(name, sizeof(name), "nfp_pf%d", 0); + pf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0); + if (pf_dev == NULL) { + PMD_INIT_LOG(ERR, "Can't allocate memory for the PF device"); + return -ENOMEM; + } + /* * When device bound to UIO, the device could be used, by mistake, * by two DPDK apps, and the UIO driver does not avoid it. This @@ -1089,7 +1097,8 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) if (cpp == NULL) { PMD_INIT_LOG(ERR, "A CPP handle can not be obtained"); - return -EIO; + ret = -EIO; + goto pf_cleanup; } /* @@ -1099,20 +1108,29 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) sym_tbl = nfp_rtsym_table_read(cpp); if (sym_tbl == NULL) { PMD_INIT_LOG(ERR, "Something is wrong with the firmware symbol table"); - return -EIO; + ret = -EIO; + goto pf_cleanup; } /* Read the app ID of the firmware loaded */ app_fw_id = nfp_rtsym_read_le(sym_tbl, "_pf0_net_app_id", &ret); if (ret != 0) { PMD_INIT_LOG(ERR, "Couldn't read app_fw_id from fw"); + ret = -EIO; goto sym_tbl_cleanup; } + /* Populate the newly created PF device */ + pf_dev->app_fw_id = app_fw_id; + pf_dev->cpp = cpp; + pf_dev->sym_tbl = sym_tbl; + pf_dev->pci_dev = pci_dev; + + /* Call app specific init code now */ switch (app_fw_id) { case NFP_APP_FW_CORE_NIC: PMD_INIT_LOG(INFO, "Initializing coreNIC"); - ret = nfp_secondary_init_app_fw_nic(pci_dev, sym_tbl, cpp); + ret = nfp_secondary_init_app_fw_nic(pf_dev); if (ret != 0) { PMD_INIT_LOG(ERR, "Could not initialize coreNIC!"); goto sym_tbl_cleanup; @@ -1120,7 +1138,7 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) break; case NFP_APP_FW_FLOWER_NIC: PMD_INIT_LOG(INFO, "Initializing Flower"); - ret = nfp_secondary_init_app_fw_flower(cpp); + ret = nfp_secondary_init_app_fw_flower(pf_dev); if (ret != 0) { PMD_INIT_LOG(ERR, "Could not initialize Flower!"); goto sym_tbl_cleanup; @@ -1132,8 +1150,12 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) goto sym_tbl_cleanup; } + return 0; + sym_tbl_cleanup: free(sym_tbl); +pf_cleanup: + rte_free(pf_dev); return ret; } From patchwork Thu Nov 2 02:23:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133749 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 9106943267; Thu, 2 Nov 2023 03:24:04 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1986042E5D; Thu, 2 Nov 2023 03:23:51 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2120.outbound.protection.outlook.com [40.107.96.120]) by mails.dpdk.org (Postfix) with ESMTP id 59E7440C35; Thu, 2 Nov 2023 03:23:48 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I8ZeexMMqhk2cpGgYBAsSQkIZAI2IZfi1BT4asXU4FRMA0UK/9lQMxsUYdlZELvewd1pjGdCLwPsvC2LCX5D1goPld0CZlfsQjbP5X8snZsNr2PsBw7EYxn5rrbFdaKBawXviq2kvaelKX4G3VS+9mqXnlk+2+5LXpapiRL0kvkjLDRlIFeGt9xPuySUqWWNT3VLLuAKC0fbntSp8H9eZZshQtl5gZx0iqrJOys7b75/OS0jqmY81Kxly50LQOyKIcVlSyBdd4hycyb/9TgZQ/i0+DJAVpXGZGoJjEbkfOieLTRMBTeJBAJXL7CQaV5ddaB8hmEWdONxpb2uzGHFxw== 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=oYmpoIGAAVW7+auhek3wx++v6pQcmXxGqAHq810M2gs=; b=Wu8FWTwZGGivg/dby8bR6rurVXHAcwgYqaLz9mcspkaOHiFPKrkhE0bdyqw94qa2qQRgPZIEKRlVDhw4ImPrIYFeGgAHGK+SWPhklrIVc1EfDljd1uh+5vmOH3MvNF6QKXOHanxnx4PbwTdmpR1qS2ZB5QogWaHf17+5GjlWt9B0Gp0deocx7PAjv3VVcAkhdQFaFQkzFkwyt0gyEmx5x7A88Qe/PnJ5mFBQwDDjiObSNWCnMd05xxHaHHi+EYwRN1MysDuK4Wz6VIChiQ2I4d7M9+5+xvzM1BOGLL8zX4vnpX1sGGWOFKDGDd3F1smfD9kBUnkJza9bRj4Gnlkleg== 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=oYmpoIGAAVW7+auhek3wx++v6pQcmXxGqAHq810M2gs=; b=hSqDReSor9CEzzavyoB9XVA/6C4xWhvnkInyKZAIbh5lkiSStsTgiWL4xMcMTr727+qRfMz1HF12iOGsFV6abh3tvjtwVb5M6pN8+tcvZVAy2c6fqLm03ojkLGkP/sdCCdyedCt+bbrlkn3gXcVcolYl8Sq5yiyfCLnP6BA8FDA= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:46 +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.6933.027; Thu, 2 Nov 2023 02:23:46 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , stable@dpdk.org, Shihong Wang , Chaoyong He Subject: [PATCH 02/11] net/nfp: fix the failure to initialize the LSC mask Date: Thu, 2 Nov 2023 10:23:12 +0800 Message-Id: <20231102022321.2254224-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: b576300c-7fa9-4d9e-3172-08dbdb4abdfc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mnS7c0bIl1wH9R34qMxobr8MhxJRZuid+7U2Mr14WwkJi+r/8PTYJoH/z58RfDvKPY/nsFZ7FhYAusg3qQJ1UeCv/Nw4NXsVxMiPWUW4Nom5RXPNQO9Z+CXMcT27/3uQpGWPVxSBWoB1zBDpuDMe6dZkVyZUywrWiiLlk13S6G4dZUQYXBToq5P1criS8xu3XTfJAp331EMfU1T/I7av4mWiywCJtcjQsuzY6oOSXbwtMjzEMrMXCMEh+JWm0eqVOXoalMZELI7FEfFuE2AAivsvQKADCocMQhko3ZjokeS/N3xEYZKQRwfnQETXuPEpCVLpPZ6L5IqB/GvM+6/m9utGm8jJvWK94X1vqRGLJzIpW6T0xTqcpMSpOBR88dC8LoYuvuyFKFljeO59glGh7wyx0hpqEom+Ej+p91U3nKq7vLA109uljbCJDuJvwwzFrJIgUU6nRMfvY6/iAkbEXcENpQ18UCXPMphf80ybI/axySr9353MTD4uFRJ1w/CjZZ1l+vRzQt/CjWUh4Gf3GI5SekgMdL+KwlCpL9MckHFBwzJ5PqCUM4Shd6Yhoqk0hmof1t9IVu/1o2gGtwOhMt2pJf3rXvbHW0XNtovyT6RFcOKhQZarmEKVcaqvKVIzWR5igwhsXFnCJqBjPxhQhY9eGzWaiynJTJVSpSO0cNY= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(450100002)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: y+Rw93LfG7Lle0AV/LLbyaBLnQPc9z5GhzJkP49SNJZcyPRs5j+niZNzKdlhtEvyZEZDH6nDfw2sPCo1mxopIKNEGj/wZHwKt3q41dGMk6vr4d5bpb6GQAs6b1AZVSx5ExDguFUhgnZIV4xteWCz+1bnzL0zpiN1M96vaDjNbh5w/16wgb919Ayy7cr4T7aLcngJWS31BBFupOy0PO1U27UsJaUjISL2dmRqG0K5kh0w8hCs81+Knz1IKsSMoY/14Zw+NK2I/csz9enxUeVENtVucUZJNiiEKjTPbBY8BXS3vtP6+1FA2LqI6WdpOGklOJGfUaJzXWRWMrYmM8LGLgAye0G61uqHZd76oa+alX0n7KPJY/dUL/usojSF5jjtzux55Di3Ai8G7H4/zKjJPSCUBrs2KI2sU4mtFeE0hxtSJubYcf9NSmJ6UmO+v3Vp4VzpvtASqfzz52GS67O+Bhe/49aDj8yRgQNCBucnInufOD8kBv5jj7+Pkl2SXdvCuxFh3rVdFse+ML4RwREyqpZg7DCUEpudca8vCvkbcnfbrm/W0pNIrFxgt+LH6ag111MBPlUdyExyqTAz3yb8KGwkFxSvVLrr/XGrLiIQVgrWYl/LcQVn6rJI0+P2wB+Cio9N/s4ijji8aMrnFugA90z4KyBux1Ro7vL0dZOHkrhFsA4ErAovF/66NzFHnYsT2joQmbv6mwo3TtmpijSK/Ls9NIiOgumFkVXKOXAZnfHqxaq5agrK5YzcyegQ37T2MQpi6cBdhMkFfchu9PGj/XKV87FUy+jyjmcSlPAIjftlTgYF0rqcjg0LvoxNHKDzpNrM53fCwCarJxVIRnH+3ylfY0vNr0kUbmfuUq1Av3g7Aq0e+vCn5rxR4CVS2+wfqs/jy2SjXh9yQZh1s8QCJti01rM3jc/hCKBzuPvNK3sTMd5tsuXK+TSWxwTXz6FTJ0yLlY9bxi2bv8MFqbxw+qk6dHqF0uyqahzihO8307EPf8AzL4MAgW/cqTsfjdc7vW2HpF578hzXVurz6VOzsbXycCtXwFkfPRKSuqUneqseUndijOg/bz3yartqWzXuMIklYJ5RCiJhQ9Xtn9BBcYQfNalK7wwFvckDhCAxUD8gedXwv6WKeV8kd1bU4BG0S+0EByGDQA2Lc4hKQ4xoIuknxno/8VylCgwpxgDtPqbMs/DqWTayh1S4KB3Gyrs23Ol023diW59Q5QFFLEL2x6LPszhhHMeohM6+5B2gF9nXHyHBJ2qsPt4aVuT/zdbCfAbR6GphlouxHW28IirBnDizNj6zaKsgn8DxRrp28uQKX+ATbAgN4a6Sd+B3a1gLP2jPIVywlnlj/vR0KQZBLGPIz+B6dkZc7BUGBj6GuIA1pz6+WEF7Rh69mGRHFofEtphlJu7QhTQJnekhH4ORL9nAVKOEVeNv4X+17/2hi1aT7Ef3yyf/hraJS43qIUA8CoWe5f34D30nlB7ifQx9LYNF1XOWSxIlGAreWKTBC4lTby0zpUYX8vEv+ywb46TD84hUPzQ5lihvcNn5W86bbaPE57a0q9NRUOSKtNICBVci7e7VypIxH1oPhpAb+Jw5nU5htv3Ev/OOybsHfjDFTw== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b576300c-7fa9-4d9e-3172-08dbdb4abdfc X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:46.7574 (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: KstH9Lh4DyN7Yw5I3PbC+RdfiI18klysxAp+k7PNbnooSgvjKNJXB/E2pDRvd8cr73r7rxLnygqe5ZNWkvm03J5l16L6RHy/igFl1H+k5wM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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 rare cases, when DPDK application exit, the interrupt handler was not processed the interrupt in time, resulting in the LSC interrupt mask bit not being cleared. So when the DPDK application start again, the newly coming LSC interrupts cannot be received and processed properly. Fix this problem by force clear the LSC interrupt mask on port initialization. Fixes: 6c53f87b3497 ("nfp: add link status interrupt") Cc: stable@dpdk.org Signed-off-by: Shihong Wang Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He --- drivers/net/nfp/nfp_ethdev.c | 2 ++ drivers/net/nfp/nfp_ethdev_vf.c | 2 ++ drivers/net/nfp/nfp_net_common.c | 2 +- drivers/net/nfp/nfp_net_common.h | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 705465046c..abaf31e27b 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -590,6 +590,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) nfp_net_dev_interrupt_handler, (void *)eth_dev); /* Telling the firmware about the LSC interrupt entry */ nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX); + /* Unmask the LSC interrupt */ + nfp_net_irq_unmask(eth_dev); /* Recording current stats counters values */ nfp_net_stats_reset(eth_dev); diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index f3aa649054..cc345e9218 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -351,6 +351,8 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) nfp_net_dev_interrupt_handler, (void *)eth_dev); /* Telling the firmware about the LSC interrupt entry */ nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX); + /* Unmask the LSC interrupt */ + nfp_net_irq_unmask(eth_dev); /* Recording current stats counters values */ nfp_net_stats_reset(eth_dev); diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index 4efcdff76f..f8ef049a42 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -1319,7 +1319,7 @@ nfp_net_dev_link_status_print(struct rte_eth_dev *dev) * If MSI-X auto-masking is enabled clear the mask bit, otherwise * clear the ICR for the entry. */ -static void +void nfp_net_irq_unmask(struct rte_eth_dev *dev) { struct nfp_net_hw *hw; diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index 1f9001c81d..b9df2fe563 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -205,6 +205,7 @@ int nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id); int nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id); void nfp_net_params_setup(struct nfp_net_hw *hw); void nfp_net_cfg_queue_setup(struct nfp_net_hw *hw); +void nfp_net_irq_unmask(struct rte_eth_dev *dev); void nfp_net_dev_interrupt_handler(void *param); void nfp_net_dev_interrupt_delayed_handler(void *param); int nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); From patchwork Thu Nov 2 02:23:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133750 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 5296343267; Thu, 2 Nov 2023 03:24:13 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5BCCF42E64; Thu, 2 Nov 2023 03:23:52 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2104.outbound.protection.outlook.com [40.107.96.104]) by mails.dpdk.org (Postfix) with ESMTP id D470442E56; Thu, 2 Nov 2023 03:23:50 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jsK9Va+hYkiHLbUSVpDbDfwQ/RgZLS4yrFw/TDbFGG8DAAW8Kz5eOr9z0Sqc1i3UYb3d7NLr0GdrJ05AUOQXxGZ/lE7R4dAS20iM8XUKgOJx4YsEqTgKHm4/q/b+PKvEMHMJKNjTSk4Nu+8j9rwQBpQ6ww5HYD/AZ9wipwIx0GplcUZI50IbwpnT6WXDPc9XoNcpcqtjJEtPkuY2tII8Bkj3xB/c6K7CHkQEAr+N864tTPfA0fpst2SYQ9IrTfmd0MdEQgiq1ZxEvkY0o7LlqH31iiu9et2ydGKDYVFA7zxYTP50/+lCSnwSDV2WMn/wMsR3Wbv0FvWdhjUTK5VY3A== 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=8YA8uvoCckGeZRn1hFw8JgisRq29i5SAV2Q43A2IwfY=; b=WovqybHcdYzmX3lBQrQcdmLmqtcc+uyhNebODbPP+mJjZwcDc5wSsbE/8f+faJIwfwr7fuCiV/RETn+eZr+usOnkw+SUby4N0xWKFlUqevzfxFKM5dDDJxX6iqz8hLKAVD12c8r+Eep5/e76lmUkT1tq/wXQWp2rtofV/Tr4btkJkOfup/Jf/lQzw1mV7MI9SIymmXRKcXexui18/xqOxgjijhuPRhBaaoMUda9bSb5v2HDIm/osbnhp3bOkeJWAJZLc+lEiu/brUsjQ9ibqWOjeph5La+aQnYOGDC9zUZMQg037W5O1jH49Igw4D2XPmaesVhfU8bnXVmATU/EERA== 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=8YA8uvoCckGeZRn1hFw8JgisRq29i5SAV2Q43A2IwfY=; b=oEb7xpSNs1TAgvJXp4WEfdYkJFFzRri4sE2S7JHT6hVx5wREBTYMeIA2CnSwNhfzxcP/U6OzFE2d2ChrTnHX4GezmLJauNbgkhg6y2rIKV3wzW/vFR4HAevZFHbw9321NQ2w2N4X8CCUta48JRhcKsGStYUhyGVRg/2yyBrFqhE= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:49 +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.6933.027; Thu, 2 Nov 2023 02:23:49 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Shihong Wang , stable@dpdk.org, Peng Zhang , Chaoyong He Subject: [PATCH 03/11] net/nfp: fix the DMA error caused by app exit abnormally Date: Thu, 2 Nov 2023 10:23:13 +0800 Message-Id: <20231102022321.2254224-4-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: 3cdc69ea-9fde-4d78-8303-08dbdb4abf72 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xNL7WQ8TlIQWxdoco8JJ7RCWmTLYoiYt0sjUg1Utx95z4yhuuNfHLBD+hB1BYbcsjNebucki6Rfj78wI9fwUWqchwdgt0u0bpqr/Ss3M5BdzoU19yZxhz+/8KsWpgEc4fYZjyTFOADT/wHwjBfVzxLTBzQVy/RLz9BTIrV8JZ8zaqO9U5tY58lPZfkCT6SWKudjYyvuxzysUs/wuRC5ET2bDX1TD0TGpqq+BD4q9jPrXGXXlfUBTIx1bUh2mJStqyVsqytUKNgLu/nHfMDA6UeVUWTFraAqggawm35lwPxqI/COhjDXxDtXxl9vxAa+skHon2UMBYhv9VB6gxXejQBbfYUYvI7SfwPwEfs+1lwCdgCfHfHTfPaCJCn9Y/bcCkJBZG2eiG+tndK2/wQEFaZAwX8cEZh3eqsogZ3JFZkxnJ+gUvcpqMrl4vcgHi3w0VOCAyclCqblManTVgwZx2b3jTIWxkV0yYKEhpDeISKpR7hPZYayFMwvp2NUZWOP5zpbz+D9/rrcIX8YPuYGm4jtlJb8yQQtnWTBaMDeavJsnSmxSfQ3gMv1CFdzfzKMmgrrh738Xa1WJktvQBsUCyX/7ckqzCyAkL/sfUUxuWwCCJSEt0LwdcSCNZNsv/H363zWRwG+ayUmYfDGspNNZ3XT5eLMAea/l/z490DovGlk= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(450100002)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wrvYfvueiUqnWl1HWwVYcnh3vYeDPNbJnQA7vab+Q9aiZy4myJhmV/Q04fIm82awhkvrN5Tsqi7YKiDnxDaB7A0WqcdQEmRvxGRJvEqYCxpj+A4xlLZGl1ZNG7QKtolZ3lZHVkasPTY3srKrKjAw8vO1rAIimOb8S5M8NrqIOTHwnTWXs7S1U6zbyT8h/MrkjhZQ7rf1Qsdbivgda4hui5jhWlDoJX+hk1Ab2cW5etlcnzE5bSUeIXXJTzfxGiHPweOWS3c2U4DppqTsbiGhcQGudXbYBGgOBulfCGu5FgvC9JJvz0oshVtde0OVXGcEp4pEqTfoAT0x5I9cdLMd3Wa8X1W653sU52ln1eQpod+h52mRRRPcIlmLOYuaQ8EHMbk1nPTNQWc1B9nvr7S/icLQ30LKN9cLLje2q5kwP45Zy6OxzmAkO5duYsuyYdejGIvDC9WiXRwT1jR8ezlVxSXBshTIo51dDwAWkDUO2TkDoGF2gHGOpUpJAYeWCfOeENPvB+/aRrXjVIvOHz9qRbqdrj85hD0ZrnJGxF6uS/s5JPC1XSvRbjE4jWho3KKjTsITuhf7VirsWl5GJJoGurSty9v6+AuZhrgqPSrEcEj3yTPoFeaBG+trbByV8njlqnm+fambFY+kGUmldr7ZR9bT7hcnT7w69hrJbY+w3ZbPFtfklwTEBWVOzwOpU8J8ezc2vIaDvCEtjFCgQ9G+PuHBJFXI5VzDPHn/WE4fSY4u0UflvtJHu8d9CMxUUOtyf3TEj4SmhnuFHqLHwWzCzGkPEEJg2IEaFGq5MDGTRkghpHs+cZcpJcoUG5J5+A4XqDys81fTbE3lGAMRQ2jTVbjpmJ4OWO/v+hckcrsV2mTRMW+iGCnl1Al0lWcWvOqHz0jnX4KhkEVeSKEArJk7Cozs4NuP+gBetAu4YxRiqntdCvjNvCcbQjbsxQ/oYq3oSu7N8EOJgd5ge6nOWwPr6MZx7CJ7YTiIrUUQrMMtpKqo0f5n1uK6bMtt02K+CT6nGBTT6i7o3GccejNNs663vLsRMGJQQrAbgEWzjMxT98UaTYIPEMJGENFf9ATqJnqlNeYhQE9u2dUs1AUSB+kPy/3bsRnEF1gOBD/LNSz2WYb+/59oROze7pIskBL1dlkcWiT4QCJjV4/rgflTLRe2z2GcZg0M20YLjx6dJ/8g9Dg2TnRbpSd7DujoGctJmdCvvAaHRLVUhF2uenX+0DJIUUdotb82anTl84+8cpYma0BJbZ556BdgpnIoezmD1KjBK8w0cA3fRqP0zYJJEfPGcEvQOEtcic5TRR7Hc+stDaESfxswweThpxTBhZYkn4q6aEA7/yGFt8DVp8YZgZKayZK8cDE2yT20EdlwrnSNDlwHSyPCDdhDgChWDoumATjPL9gkCRmHUtEKhLaDn3KEGOKAj/oh5g1murwh1f6ONPTTp7gYuIQQpWCrii4/g29y06zeQS/NIb0348FAcThhns2lVWvo/i6cvrny/hFHFJFuory69HgvGg/T85b0TeHlYV2ki7twiIfp5OFiDPKJv4TNGd/10cxV/9vgEVFAJom6v1oaCNUi16423T8AMFOJq3vIS6/h6h16Fo6briMfKw== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3cdc69ea-9fde-4d78-8303-08dbdb4abf72 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:49.2163 (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: t8FZ36DN1U2XMv3FXyR+BBLMjOCxg1/JASzFw5A6Zk2Ejhq0T8MvOQWz0JbdGmI6GctElzdt0wkHB52kkh0kK/WMF7Qs87VagF4/jddb034= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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: Shihong Wang When DPDK application exit abnormally, there might have DMA error, and which will cause the load of firmware failed. Fix this by force the physical port down to clear the possible DMA error. Fixes: 896c265ef954 ("net/nfp: use new CPP interface") Cc: stable@dpdk.org Signed-off-by: Shihong Wang Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He --- drivers/net/nfp/nfp_ethdev.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index abaf31e27b..aa2b59af32 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -847,6 +847,7 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, static int nfp_pf_init(struct rte_pci_device *pci_dev) { + uint32_t i; int ret = 0; uint64_t addr; uint32_t cpp_id; @@ -905,6 +906,10 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto hwinfo_cleanup; } + /* Force the physical port down to clear the possible DMA error */ + for (i = 0; i < nfp_eth_table->count; i++) + nfp_eth_set_configured(cpp, nfp_eth_table->ports[i].index, 0); + if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo) != 0) { PMD_INIT_LOG(ERR, "Error when uploading firmware"); ret = -EIO; From patchwork Thu Nov 2 02:23:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133751 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 4FF3243267; Thu, 2 Nov 2023 03:24:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 76DDF42E67; Thu, 2 Nov 2023 03:23:54 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2122.outbound.protection.outlook.com [40.107.96.122]) by mails.dpdk.org (Postfix) with ESMTP id 8558042E66 for ; Thu, 2 Nov 2023 03:23:52 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Moynh1lKBZ1qoN3qQ2SRLEc42ceBXwzd5W2t4CEIEXifaSp69nsUltOiTidYUZ7cixpiV0Ub7RMkkYydbMOVb7GcoIxLS0+dUxEHeax/btS22eO+giVZzlM2yjOM2hzPeyrQw/GMyeyuejG6KouH8rkwTJkORO/73WV43L8+sGxKQCnActaAbcQa4hCV5xg/X7evjJf44ee8IlJuD/kY6gKqMmldbq9bcVqucL9KbUCOuQLnOGbpuUndt0zFOkQYPRKTOjxibvzENutM7wvkB4cGoEL5Yl11nLbZDOnZuiUqT8iCCL5CyJBOc3Jj0VzAaG4FIKqe8o8Grbc4ASHi8g== 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=W50/nAcoJBmAfjnKNsffU7oMusWQsbdZHAgyINcNIvU=; b=BPlRfxMC4agbIWgXGpbEVzbZyADx3c97Fs7B0IGhz77NcmnU4sCG2rowJNkJE1zDJN8VTO65d+2JMVEiUpxRCyYI8ltmK9LlCyeISaNn1wvQp1eLjX996zW/0Pa+D11hUf/yWpyx9gVx+1c/HyV00Xvp/YqBHs+sEFcWE5JZvz0MBpF8IqmzxVHcvXXJrVI5o2f5yb8OlCxY9FCwf/wuFbXTHdGSbKq8ftaMuih0O3QD9KzIfpg1U1+9Zxmr+3lsZA0sDOGZKrKdgX8VaAlv7/XbOGO2PqJQYmgb2tdP4goBzw9M2XlnRXZnIXRBxttFQoBvLzmyLrUasaBQXI3Htw== 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=W50/nAcoJBmAfjnKNsffU7oMusWQsbdZHAgyINcNIvU=; b=Pt6zu5Qq3CBgBOOOaymtDuxgad4H3JHNhpH0VPpZFmitfs/7PYs4W16+ft8chftePaZZpZVUw1GsvGxkztg5CuEKz6eU5yf4sorteJ5z7RSJUCpYjwdJ9p0OyRST/86PGSdHNap5tGRU7cGygOK3aqr1BwgZ89Rdadz7uFq2sQU= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:51 +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.6933.027; Thu, 2 Nov 2023 02:23:51 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 04/11] net/nfp: add flag to indicate multiple PFs support Date: Thu, 2 Nov 2023 10:23:14 +0800 Message-Id: <20231102022321.2254224-5-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c30f154-41e3-466f-6230-08dbdb4ac095 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bt8IJp50JMraowWdRAczzf6q5kVHsxsh0TY4JHRkwaf4rgf28MCA1ncv44Mtdqbo2MSIbfh09E7PgXJFqG6umgJ2DQn5PpfrqHOI/awSBLf5CBK3jvWl/8bdAhD+2bQ+RqFfEBH85AApGWyN40PNkK5PYl0bbN6oHXFQXc6FO21uq/C3iPAeZHkKtVi8uo2HL0pLVmjAeujygdclxJdRB8zJGVptCDgzF86Ue0OyQbDLcp/U0m8vNf4a7aE8rUOOI+Q10mM+sx0Qv7XKi44PXVTo1or8zThxSzw/WylrPgvdO7aAXN+6W2eWmaT9mugdEsuQH/ojjgr7hKPnD7eZp2UxI0vwQgMJqiwWHkOA4pbW7NqTBu/Av7OP0Y+Y80JrLTSym3W19eiiKXN9Rom/Q2dJJJOBzZNWFcW/NVWSiM3pfWJnZxGu8LERBJc+pCmVPF1VV6VcsN9VFfCqqAcEAc7L5iJ4EPVDt+abNdaK0yU37EwJj2Iqr8p+sR3lhSVtglPDQpXajJ5lUU6rLNGvdUXlyapkZ8gzU0h+43xkn0XnqZggDv/iaB5/G9MonKt5bSU5hCWC41SMN80irQejzQM0kCAsq7nlu/ND/Re8/KieQYV9bwSFtXcCkEN6F0PfjgQqOCF/iRXIKK7kyd2sBdDydM99RjJ9rhkiolVMilk= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I9+uDjcWw/s503kh7kTbhvJI6X7c3k3E2bt7qdHZdQW0A0renGpVHwHUT4tfRmUEbu6PtgDp+Vh5EJyMlLK8pLmStr06BFCxy3J1hKwtWR+jQ/wCiQ8oiwyBPZUrY8I/H/Mf3q9O/LpYNQe4rj+Vj7XyFvCCK9cbJ6AOkKGXKekfKlbhfaydCzOlBZiE+1MJzLjtaTx7UXbEdRuwFtfspz1g2vMXnxFRnm+nW5svrZsCBiakj1i8mjhiGxpE6NcNuSqV5mpW+dLzb9JCAydT7CD4ykdmRz1rhginyKN/us31bUHXrphhG4wWqL9mDu5wjVv/Vcd/yDKMt1JXXPMDu4j3wGVUc+mQbNhsM45M2rILzd8BAM3q2Pa56dN/SVon147C3ABespvFR3uUQmQ25nhsj9qLvjkmG7hSR5yPr6BD8VOgHIE1k3IZ5DZfMrQmiAcYJvHwc7LJ3/hJanEH7jMIu/aD/1w3p5k/joL97/8zAsZm9CdCogJ8O/2EjbR+QTSnKVd9LvGH5+nmuZ48QqEmmW4DO7q+p+fZC+uO1LO50MLChhYKeuj4EzOjzenzmg4U+4cKXrj4PVg4i97EQr7E5pcyGmCiETAnxUpqDjDul/XtGLwCveAqIHEHBXQYPi9IqnOqj0Krt7uhu7Vi+nMg2LYWT9JarcHfjIX7UW8aA+s3IEDliuTpkj9sRtDJJpEI5EgBA+qqlbBjA04vlQ3oqmukIapBgbHEdu6n0UG+S4YdgYryGA3X1aZaKMB5dXIy/7HigHx/2JpPhYc1uH6p7Cx1WhwKw3LV1kZDG2g0YXMN1GqYeboqU4PIajWbI2pC1gJyUK0izw7ciM5kdVdf7CfkwimGeNSTfe54fYArm/6g4nhrVUNZ9RfFNGH4Ss6yH1jPD5G8w1qSGXiWIo0rR2f9l8i0WDMrKKOpJa8C3bZkUkxh3pwuwgbv2bSOF9xzFkJJIGALsIeFuscq3ZJtUyxpgJ1PETopAnorMN0l3FSLsgLdFHzgihGY8/PRLDKz/gSuReHmpSyAa+vZ0UeGulPbch4kcxu8XdTilPkfjUzZlsWFTiv7iyFs57RvrSkmlHjLO25tEupiRirYX/nXexVxPvtUt6BfFToTpZdlBm7kZgtWEWS34F7MAoF9m2GSbt5HeNyFX7FB9Q6rHwEgv3DqCLYmPwwpFFMvxVJNLrGfSDSBn5QOl4LeRXXJ0pY2HQy006RR7FROl3KA61VXncsKIUQy/S9lRkdVofxNfgngj/RnWnN1LbYnzaAcfwuWjF4mCjZ2KItP2N39cUkfYJQoYxfquIhmP8eVuVuALOvq+Mq/itRSZ1ywO/XE2kSBGFb8NHNb8Lv3lmUccv7+304DePzgLtigJ441r3LoCnHuDQ8BOtsSrq7onkQOClPdEJe46VOfpDIEl6MsghLF7TWG4nBdLrVKs07F+8r7WeCBc0kIoY8xteHlh/gMjikVn9V6zZFW5mAsCafTVPLIQj5MWuLkEipOAgNwhu365YpYxXIcq78N0WFQbEeZ938qIF0Mt4BWGKMbrwZX3SJmoPwk0KJ26f/lS2J9Yiy+3AxYZOKItFnLw/nq7YQC9tn+jV4W66WIRd1pCPYbiQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c30f154-41e3-466f-6230-08dbdb4ac095 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:51.0937 (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: No2Gvb7SYXu9TkagOc5K1mSddmTAQzy+JKpJ4dO/6xGXcyb35pjp7CiQrZBSk9EWPUhAoaiZAlXMO+5Elr8JYeUunFCY0b6gkNkoRkvjJRE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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 Support for multiple PFs have been added to the NFP3800 firmware. This can be detected by reading the NSP major version, which was bumped to 1 when support was added. Add a flag and detecting method to record if the current device is cabable to support multiple PFs. This will be used in later patches to initialize and make use of this new feature. Noteworthy about the detection method from NSP version information, the NSP minor version was not touched when increasing the major version. This makes the first NSP version to support multiple PFs version 1.8, while the latest version without this supports remains 0.8. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfp_ethdev.c | 49 +++++++++++++++++++++++-------- drivers/net/nfp/nfp_net_common.h | 8 +++++ drivers/net/nfp/nfpcore/nfp_nsp.c | 14 +++++++-- 3 files changed, 56 insertions(+), 15 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index aa2b59af32..7022ef435f 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -479,7 +479,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) rte_eth_copy_pci_info(eth_dev, pci_dev); - if (port == 0) { + if (port == 0 || pf_dev->multi_pf.enabled) { uint32_t min_size; hw->ctrl_bar = pf_dev->ctrl_bar; @@ -712,6 +712,26 @@ nfp_fw_setup(struct rte_pci_device *dev, return err; } +static inline bool +nfp_check_multi_pf_from_nsp(struct rte_pci_device *pci_dev, + struct nfp_cpp *cpp) +{ + bool flag; + struct nfp_nsp *nsp; + + nsp = nfp_nsp_open(cpp); + if (nsp == NULL) { + PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle"); + return false; + } + + flag = (nfp_nsp_get_abi_ver_major(nsp) > 0) && + (pci_dev->id.device_id == PCI_DEVICE_ID_NFP3800_PF_NIC); + + nfp_nsp_close(nsp); + return flag; +} + static int nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, const struct nfp_dev_info *dev_info) @@ -874,6 +894,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) return -ENODEV; } + /* Allocate memory for the PF "device" */ + snprintf(name, sizeof(name), "nfp_pf%d", 0); + pf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0); + if (pf_dev == NULL) { + PMD_INIT_LOG(ERR, "Can't allocate memory for the PF device"); + return -ENOMEM; + } + /* * When device bound to UIO, the device could be used, by mistake, * by two DPDK apps, and the UIO driver does not avoid it. This @@ -888,7 +916,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) if (cpp == NULL) { PMD_INIT_LOG(ERR, "A CPP handle can not be obtained"); - return -EIO; + ret = -EIO; + goto pf_cleanup; } hwinfo = nfp_hwinfo_read(cpp); @@ -906,6 +935,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto hwinfo_cleanup; } + pf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp); + /* Force the physical port down to clear the possible DMA error */ for (i = 0; i < nfp_eth_table->count; i++) nfp_eth_set_configured(cpp, nfp_eth_table->ports[i].index, 0); @@ -932,14 +963,6 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto sym_tbl_cleanup; } - /* Allocate memory for the PF "device" */ - snprintf(name, sizeof(name), "nfp_pf%d", 0); - pf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0); - if (pf_dev == NULL) { - ret = -ENOMEM; - goto sym_tbl_cleanup; - } - /* Populate the newly created PF device */ pf_dev->app_fw_id = app_fw_id; pf_dev->cpp = cpp; @@ -957,7 +980,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) if (pf_dev->qc_bar == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc"); ret = -EIO; - goto pf_cleanup; + goto sym_tbl_cleanup; } PMD_INIT_LOG(DEBUG, "qc_bar address: %p", pf_dev->qc_bar); @@ -998,8 +1021,6 @@ nfp_pf_init(struct rte_pci_device *pci_dev) hwqueues_cleanup: nfp_cpp_area_free(pf_dev->qc_area); -pf_cleanup: - rte_free(pf_dev); sym_tbl_cleanup: free(sym_tbl); eth_table_cleanup: @@ -1008,6 +1029,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) free(hwinfo); cpp_cleanup: nfp_cpp_free(cpp); +pf_cleanup: + rte_free(pf_dev); return ret; } diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index b9df2fe563..bd0ed077c5 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -54,6 +54,11 @@ struct nfp_net_tlv_caps { uint32_t mbox_cmsg_types; /**< Cmsgs which can be passed through the mailbox */ }; +struct nfp_multi_pf { + /** Support multiple PF */ + bool enabled; +}; + struct nfp_pf_dev { /** Backpointer to associated pci device */ struct rte_pci_device *pci_dev; @@ -79,6 +84,9 @@ struct nfp_pf_dev { /** Service id of cpp bridge service */ uint32_t cpp_bridge_id; + + /** Multiple PF configuration */ + struct nfp_multi_pf multi_pf; }; struct nfp_app_fw_nic { diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c index a680b972b8..9f88b822f3 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp.c @@ -40,7 +40,17 @@ #define NSP_DFLT_BUFFER_SIZE_MB GENMASK_ULL(7, 0) #define NSP_MAGIC 0xab10 -#define NSP_MAJOR 0 + +/* + * ABI major version is bumped separately without resetting minor + * version when the change in NSP is not compatible to old driver. + */ +#define NSP_MAJOR 1 + +/* + * ABI minor version is bumped when new feature is introduced + * while old driver can still work without this new feature. + */ #define NSP_MINOR 8 #define NSP_CODE_MAJOR GENMASK_ULL(15, 12) @@ -203,7 +213,7 @@ nfp_nsp_check(struct nfp_nsp *state) state->ver.major = FIELD_GET(NSP_STATUS_MAJOR, reg); state->ver.minor = FIELD_GET(NSP_STATUS_MINOR, reg); - if (state->ver.major != NSP_MAJOR || state->ver.minor < NSP_MINOR) { + if (state->ver.major > NSP_MAJOR || state->ver.minor < NSP_MINOR) { PMD_DRV_LOG(ERR, "Unsupported ABI %hu.%hu", state->ver.major, state->ver.minor); return -EINVAL; From patchwork Thu Nov 2 02:23:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133752 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 97C1743267; Thu, 2 Nov 2023 03:24:30 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ED6E142E70; Thu, 2 Nov 2023 03:23:55 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2098.outbound.protection.outlook.com [40.107.96.98]) by mails.dpdk.org (Postfix) with ESMTP id 48C6642E66 for ; Thu, 2 Nov 2023 03:23:54 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WRtRQf2IOm8vewX4hd8EVb5F/dCAH1CU7fSWkEacNLFhU6Rfzs3rziQUAzxGfNzzAUDgZboMfVsQSffSmI0c746uobjvE++G3Ba2ThtmX8pN1I0DbjBxtTY2aKOjKG90GlXrUD9XznuiEhKaXNta6QpO/q5f4bMhEzIebK5xIE5KaAh8pKNI+TMZvX+LcXfr1VEYOt7YnCGVgKJtn3IWSeyurdU83sB/eajzPxtjMhQLvszTqVxmjj1u5LDM34y0pf8a9JHAV6aiSpVwtHuuSXyvgHP6ZTy3RXntcs95bPzEVZ1P+jrH8Rb6U8rsZ7vJRT2FBpzxFC1o8J0NoZtoKA== 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=BWIqgSrYRM/OY3gZBX9xIKnZW19M2qlzZcWoy15RsTE=; b=IubvQlVkF5IAJUsYqYjyOrxP0S9ChFe5nwqHAIAzi+eVUc9j6i9G+HWeHr6JU2OHcMGnPgWs9VxFC40cvMPHauy8+gd1ZAWq/MeLBikA0Ngd4gEb37og0RnoqJjzYj7FMoq+7T9kiaaHBiw2qvLA1lNocIDdlTy+zV7YqPPB6vGFjAv5QEloJkXIgWzEeB3q+ZPzw2rj9p/tpKUkNBP069cTr4pp/SMe1BdH8Mi+xU1n1iDx+F7PcIDt8nr3PIx3n7FzpAeQzV/oH4ZSVqovblhlsKKLlwr6vLGgoTREaaKmfu1IcvsoYo/UN9xsAjq98oISgJ122Dn/GaCqFYhksg== 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=BWIqgSrYRM/OY3gZBX9xIKnZW19M2qlzZcWoy15RsTE=; b=oc7rD2h0PfTPTYDpGZiQCANF7wlOUkGtaTI1D19GsU/fvTcTGQFBnxmtKZxqmdPmaZcHYkcxTlROaUj8c3e1H5WyFvJjmri/nEXlxkQ3narCaDPVrm+caFUmIPqeMnFD8LTEXYvRVAiwq6MRBbxTnKnIt64VyNsVxhypp2Ung1c= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:53 +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.6933.027; Thu, 2 Nov 2023 02:23:53 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 05/11] net/nfp: add major version to nsp commands Date: Thu, 2 Nov 2023 10:23:15 +0800 Message-Id: <20231102022321.2254224-6-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d0634f7-8ca0-4f2d-df0f-08dbdb4ac1b5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tG7J+xEUOSNiH4bcLBVT8nHUF46ufcXCQr8hj3QxdfT0CP5eU6pZZCRXxTbIKlpVPOtwrR3sqZJkKflcQ/nslcUGp4m23I7Jh3AFyNbYA8hdkaGioLZd470sZhs0WPw6aC7pl9aMIuq2LE/CEEgwHv/ZCyTv3mw2j4abK0gzqhoHdCFSaprAxSqTbIzKyf/5RD4V8IztgHWhK4Rw5GDoEK+NnS0QZcP6Y5TNiBdL8vvhB7e2V3CoqfVtYMz0D5emvl0LA1/WwbfKkMRaNz65U2sbjh01IGYpFMZLe5vsZ6KXFjloTKoWj2MavTHkFKUNipao84y/zJG2KLEKcKTNQ4JdPuNaw/v0GTh+nurpJA3u5Fp/gE5tMaPsm0+eJ5Vy55ZOznrCV7kXZ2eejlVT4A1bhWtSOZCwAldeKrn1Ugn56woMY9QmElf8AWHoCq9sepcuV4HrNPyJrUWItB0MysadCWH9mu0Fb80JF9BbESyO/s/zstumQuNRQu4BQlSYyyeIrL6WZkGd7T/yZ8qAxsdf2eQwZTQJ96tamKLiVdAm/rbTrxfafQcurSdbqKcT9mi9q82ncuLJwcv0Btw+TIORUkfGb9BIiQ8FLX+uqnRUq8glH5sIlW0qxZ4htl5jV0DiCEV2j2EalI7t6LwVjGopfKko5kmz8vSbOMRsKB8= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PB6hVo7mBs9WNHeuYzxQ65FjB3CQOafuwgYCYfZfst6fiI0nEJWwyzYE1jnWu+Ipaey1vWgXSHV6Ik/p9qbH0IC/WLi63SIEGS4AVBOoZ0B5uioKzPwOLCMTkkWmrxNOZh81m6JMjdwi0Bgl+sv1xvu/787HQbwIA73gza3gWh++RHVnyOKiE8aHisJNd7EkAHBoR6Ca73QT4ZbvWKj/lUbptuFsG6UvatEEXg/cOl1PQaxxPmu7nq9yRiOHHZY82/qSvPMdQMHhxonZqixbbIV73k9v15AtpBa4yEcTTx4QtZWSfrU0TTuke4uOne0JorKYESmWKHoH8BS/b1RtroEz4aNE1+if2ZkKUcRB7VhFHBiU3pKJQWR3dQKghua9oO+TNVFBCAZYkh2n43R0ymRey9IpD4m952MmvNJsK+kINTVL4F102NQCsQo64QICYaaSc/afvdCTxe+C3/l1fxdJMvPCtHvFr8P1GqLfactcBwOEDyVlkVR0BaIMGGRn9hDmDNXU4sQ2Kep15t60uGqO/vLy5ZBziaB521OPv0OqOJi31Mvv+mykv5E5222Zsxdu4j4xG/Kzc+nv+ASx8Ehkv9z2kmBJgI3hEsCYZcHo4mSCJCiHBkMqwth75XITi8t0bIAFUPj4sVXBBofMS9OG3bMs5oAW2AluzIWmVxHKN9K1VqYJCS4EMzPZhs7FMvlR4HyIkHaRqauIMOThNSTQw4bDBmU0GERoF2EjRjV7k1sSIR2ft8Ju7NoZ8CaCkB56Z7Ulus7Ha0CzcVaUnWQ8+l8aoW0XScL1KjRD5Q35MYBSiZLUIYYSecwXrSl/buDc/vLzZU+8AuTwpreZCniiZhaBwsBwm/fd5GKiGQ2SocPT5ZwIsg0yO5+W/2i3Ryhm+NVFWQwcmkxkqNXdHNKYQV5JBV+x/tCyJEsRdI2gnfdwdS52Ma+0FsWtMPeL7C70+4Mt12xLt9KglOkVx5WTPgCIC7CdRsgq78HNVWu5kuS7weWZMvZaGDI75rbMMuz+N1MDAz31S1yseSA/jijYzoO1odUth7ZbAYM8hQQ9TwKKHyP3sOepg5KQDTCPdDAbb8HJDfFFWqf/6H7Ww8wTzaeRU3SyEiyWTFFmmiXMzL0yEI6KNKIWthPeHwqmwitSuQ2gLbY2xuQ+Q14M4UhUqgMjONUFWO4rWuxUQv8b+WOUgjYS/DiLxPSPynMM5J8NgMkTrdB1tMw/2ebrUsMmVUJlazjIYfGtS1m6PvMY4awv8wYbq9glt89zI0TMncsmb+Icgk66BHyozhshi+YsWIIZMqsNK2OR5MmOJfE1h3skxedusuYdGlS81anxkHIWAObRcqy1jQfM1cvdPCHSFmSEselE4HOptaTW0xalyZmuA5oy6yzqWsIqxE+uCwZ29AJus1UgErP/n9EVxYECI8S2IOkqhLFyBdPQqIMalwNeXHud1gjBUaRCVuTv5u0Gtg8ZpfwnzDNmkj6TKEcs8OQ3Rgu8L2g7ab0jNgpoZc8wI4vAFSMyHl/5XJALUS0+kMTTvgVpDO8PawdTycoVw8kXUTxXqWfAhPbU+ziA9s2fIk6nWJLE0S3YlePe8ou/AsBe118VLlsrmcxrAA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d0634f7-8ca0-4f2d-df0f-08dbdb4ac1b5 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:53.0532 (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: Tcln24yL9G7qdxyMqEOqQ3h0EeJSBlDYnwqa2Bp1gyAu/+Bfe0Q3vanWPqIh7V9H9OmkLgx+cy0f9IyWE0k3MBxfYwJffHirgxJuFutci0A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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 The commands sent to the NSP take the NSP major version into account. Up until now only NSP major version 0 have been supported and the value have been hard-coded to 0. In preparation to add support for both NSP version 0.x and 1.x, extend the command to take the running NSP version into account. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfpcore/nfp_nsp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c index 9f88b822f3..589d878e0d 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp.c @@ -22,7 +22,8 @@ #define NSP_COMMAND 0x08 #define NSP_COMMAND_OPTION GENMASK_ULL(63, 32) -#define NSP_COMMAND_CODE GENMASK_ULL(31, 16) +#define NSP_COMMAND_VER_MAJOR GENMASK_ULL(31, 28) +#define NSP_COMMAND_CODE GENMASK_ULL(27, 16) #define NSP_COMMAND_DMA_BUF RTE_BIT64(1) #define NSP_COMMAND_START RTE_BIT64(0) @@ -370,6 +371,7 @@ nfp_nsp_command_real(struct nfp_nsp *state, err = nfp_cpp_writeq(cpp, nsp_cpp, nsp_command, FIELD_PREP(NSP_COMMAND_OPTION, arg->option) | + FIELD_PREP(NSP_COMMAND_VER_MAJOR, state->ver.major) | FIELD_PREP(NSP_COMMAND_CODE, arg->code) | FIELD_PREP(NSP_COMMAND_DMA_BUF, arg->dma) | FIELD_PREP(NSP_COMMAND_START, 1)); From patchwork Thu Nov 2 02:23:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133753 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 E657F43267; Thu, 2 Nov 2023 03:24:38 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 08D9C42E75; Thu, 2 Nov 2023 03:23:58 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2132.outbound.protection.outlook.com [40.107.96.132]) by mails.dpdk.org (Postfix) with ESMTP id 3E80942E72 for ; Thu, 2 Nov 2023 03:23:56 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j3DPRi0k2R2Em23k8bKqp0WVp89bWjp7zLrvoKCgo4ygzdgV9+VWJW7HjF0JmySkFxa4irC/Aj9YlXjdLDX8qVtDeB2iQIxdwO0LTnr+mPhvelqxVlZaUoKAIC6rxNOLsw2dp+g/zKu7nw+jH9jU+yNwrdIgBvn+okSU8chX61DdBPTIN1x1dJwXF+bPtTJp3l7GueSeb0iLc38lXciHSAQXZr6fQZlHyibAggmdfwYumnDNJZirMIXt+Yp22FdMx9Zv6brRm9mGaNxbNhdo9IqKMiNFi7AkIZ0Xv3tbrpvmVCvuJoFsbXOitX3b45I4D7otjAVDnFTrYUWF3bFYFw== 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=jM8v7ZpP+kufta9mVZqaarhCHMyOdoZow0vIkfyJ+PE=; b=RtvS/e92bb2j7JBSVMd7uryI738VTMVAZLQhPcguAidE3H/A/DPXye+jPhISwB9f91FJBT+yRIdIDu6DEIfUYP3rYZjJRCXXAV/nVOkawQThsitSx0QCC9UaiD/mnDDRWAUMYubysPZMMwEXwjOpWGkiRRElFD+oxcCKrkzIjkUznXiYd+wnq0OB8kYxO1jWrQ141Be/PeKYJt12NFwzPxQ7UPruafIcAbR94M/wJBh9v6TGu0wfaKS/gq5M6jG+s/e1x7r5QUAdcI7xkVRAksaOVSlzex6Dt0oSLwctIWeFHf/ld3a8jjc8qDXI6VH7guP4wAcJfl4UctHo/iJPpQ== 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=jM8v7ZpP+kufta9mVZqaarhCHMyOdoZow0vIkfyJ+PE=; b=ecJtVNvPpJ63DJ2yWRgkRBh/3JI3FukvfZhXKYevbeefMUDslFBHDcCDIguo8lKY/F6ht+w2zN6pDUv56kyByes/IhQ+He98zuSbeIPVSVj1WSUToIdnHjK+Gjz0kubvN8myUat2GYgbAWj9lHCdDkiDrgBTQJTf4zRIeL4Mf9c= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:55 +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.6933.027; Thu, 2 Nov 2023 02:23:54 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 06/11] net/nfp: adjust physical port check for multiple PFs Date: Thu, 2 Nov 2023 10:23:16 +0800 Message-Id: <20231102022321.2254224-7-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: 984ef38b-1e15-4ee0-e533-08dbdb4ac2df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 83gOb9dWmhtQBGk6mq5wp3qmQBmd5no0sCYs2LKnlINTLrw6vHQL80fLTT9H6srsEM8+Z8pNVaCegpBobE99yStcz7fClrnXTsbNk5+cbSTUBtiMjR9XTlUaoFf3H6YlwXb0Loc55/CbINS1kb+6m9mr0eNAyjJsOLkEAXcVTFeg3V9DjoWGMtuR20lLSg8ahI/Ev08Du9MEjJ15lclpmh3yiuVWajtDno1fE/e9lY+s9+RANFbj+vFy0cIkgtCVmViiGZMPPnIydhRwJpHeH7c7kjc14agdU+jPaSfuDWBZe+i+fCI+zpeV4kL252vTNh3N/c1Y/j0sp7VKZYmmsPDAxI9M9pPley3QVG1mZ+4Of/ciApxqDqHOADWAQ/ZEiBASDinU3V8WYwHpEnivyAJqggN1xn6DLB6jORVshEk2Gxa3glHHGto+NtGPEoAD5VQ+ATT/bV7b4cTQEm9hNCZ9bV/xpbkmQGTbe6vKJXbW+WW5T4tUSgt2F1s4UkFbJPTcW4qDMoLTlSRnTx9Wx1F5mrLsbeEe/KmhX/4a00OtPQb7MJYFt1uvJwDF3KdtTQg2lskVIp6OS4V/tmuA6OjxoN7d5D2C1W2lRrLXJ1adPbTebn4MlnpV952KqD8SFPVXUPM1DrKkf+nNRgII7L8lq/GMPhlNSx501oX5iDc= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2/aaO83csmPAVwJp7WXtXaI6zQtqFKK3Ltl7PaA7X2FWhyeSOz5GBjwX6P1KYYc+opmlNB+r5A3mAVAcb/mWbfOOQwfgmP+8m7ghSGUcb7Hc+uzj8rPwDZV18MKYn5femT3XeLrS6tWV9KQhM6Gp6485Z2PfGLMlZsdIThopkAP6MpRMuQS1OlWV7rz5hZiQrwS3Ds/5Oiabt9hCN153eRs2lcp4uwnr/Fd9NWkL8WmdBbagM6Ld5DSf4hQk3pfO6uw2nJki/eQDxK/NErSYR0MXRUeIWv9gMBSDJtH1PX9luHfd5uwb6+m9yu6lacVoyEj9XN9A3bLOP/1ZP7OtUXU537YZq6fm4GHR58PSz62lcGbL60fAHLRN8p+coBOcseoavg9I9KveCMfRvMK+thPwdjs9lPnX/O3qoCsu/CBh9+pspGwNUHaiXLen35YEgNiQPrwu096JIPVGfR/MB/tUXHjythEW3CZDavRMpfc00M59uZp5wgnRM/c1tkYKI60agC+/oGZT4gX1VjCILKM6hoywAgpH3vZiWC/IJhYSUs1+Mshsq7JatyAOGNa0AAmbsgq98wiTTbDF6hvwA7ssYwV8G4ZO3dVoEfZBqE3Ep5D8B8GGst1C1D6LGGxHbmrxwg/m5ClkW2xanqLrVpTY3V7sQDPHcjfG3JJbrbL+7yCxHaZxhVCFs0lTUHrse/vzeKp5fBobAkL8OO6YcL/g0irNynHvN4A1coQp7747jO5uXl9r/DMMNUsNhTwCAhHye5HgQjcaGDVB4ZMII14C+O2k+ktQ9UKQTA4rG7EgLzRYIjtGeH8HTOiBIS2i9aoOX5dhQkVVXqPRdx0+EioJ2wgakCpm31G0y7czO6IkwXpWGhF02Ha1KVL2E6vshVkGLdL6Yc4WbhznB57Mf4dYbI0ehwlGqHGeAj2su/YzF5faUGf60PJIfW3DPszo0PDZTHZf2lAA2eUVLnpekp/jVvsSja5sLFhc68BtZYAtp4qHchZVm1KpM3vur/3Hqgc0iBetJbK3bj7p3MohFxvn4Nstlvm0zBV0OyyV092EakGxKxqNN69zzyRujEd9boZSPKj6vT8FA/XrL14yYUeFViVx7BtoYGwMt5mkMrlMctt7iqgTTm4ygJGcT33gaI/9JA/y5fEJZY7xK+QBm+9R46Drvv5eJbC4IcauNS+pIKHXLRlljbswk9zPEnDFPuIzxTOEg9Xd2xK05grZAHczuYoAKg/RVvY73Y69aGr/cpHJbk/9NLik71E1Ht3k9B0Vc/0bd5jFIzwAcWL747nPYnQDOoKrhXEtEE2cMKvn2Oo/S/VY+jRsp7dz1zMxo/hAeQ40MfPMTuTJ+GH+tTjTfE77TOVezlHEH9oePpeWOImSaT2yjp2Na/EH6KiHebSgf1SY7tIKNeA8362ypSABm7fpyava0HtKxDQ2Wrh1cz7MtZvw538fApMGItg4i81RaOU5w8nfyf1/haEH1PnroZ9UaRgcjdujlKzHGN/9kLaPuTsDSouskJZx8+DCV2J6AkkLUasHWZXZliogrNEmAF7cdKVj9oAx8VZO4JGM3KYLwImL2oVtWXRa7NUGVpvjx5r31QwPRVx7rW5k5g== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 984ef38b-1e15-4ee0-e533-08dbdb4ac2df X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:54.9552 (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: UK2yWIR6Fd+LhgsyqEbX2fZpW/EBz/2DxDwZ2pvYPPEvqXYwQJTI8zlbK2rUq56JuH0HwpS53hkoPiRkU4zZ9NntbHm2rS7neRoAXoPc9vs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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 If the firmware supports multiple PFs each PF is represented by a single physical port. While if the firmware only supports a single PF there might be one or more physical ports represented by a single PF. Adjust the check to handle both single and multiple PFs firmware. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfp_ethdev.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 7022ef435f..3ebfd444b3 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -712,6 +712,15 @@ nfp_fw_setup(struct rte_pci_device *dev, return err; } +static inline bool +nfp_check_multi_pf_from_fw(uint32_t total_vnics) +{ + if (total_vnics == 1) + return true; + + return false; +} + static inline bool nfp_check_multi_pf_from_nsp(struct rte_pci_device *pci_dev, struct nfp_cpp *cpp) @@ -765,14 +774,22 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, goto app_cleanup; } - /* - * For coreNIC the number of vNICs exposed should be the same as the - * number of physical ports. - */ - if (total_vnics != nfp_eth_table->count) { - PMD_INIT_LOG(ERR, "Total physical ports do not match number of vNICs"); - ret = -ENODEV; - goto app_cleanup; + if (pf_dev->multi_pf.enabled) { + if (!nfp_check_multi_pf_from_fw(total_vnics)) { + PMD_INIT_LOG(ERR, "NSP report multipf, but FW report not multipf"); + ret = -ENODEV; + goto app_cleanup; + } + } else { + /* + * For coreNIC the number of vNICs exposed should be the same as the + * number of physical ports. + */ + if (total_vnics != nfp_eth_table->count) { + PMD_INIT_LOG(ERR, "Total physical ports do not match number of vNICs"); + ret = -ENODEV; + goto app_cleanup; + } } /* Populate coreNIC app properties */ From patchwork Thu Nov 2 02:23:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133754 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 9A7EB43267; Thu, 2 Nov 2023 03:24:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2CA1D42E7A; Thu, 2 Nov 2023 03:24:00 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2101.outbound.protection.outlook.com [40.107.96.101]) by mails.dpdk.org (Postfix) with ESMTP id 195F942E77 for ; Thu, 2 Nov 2023 03:23:58 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d38oYQFssUn/Mw25aCLFU6sv3bps3X7R6tWSNLYqr3xlEiydCWdMwcZMLyVjLZVwue4CxZRpZgiDg7nD03pqPxrmvI8mF9egwpa8KnVVhaHDKcEhLLasd8iXYrulqayvtBPsCNvtf5newKR4Ac43kuX3ZqN0B2Ec3PWzCTTTa1EOjbAF/OliunVXvyyG7S7xiwdqZ8ydwQhxkF56Dx58q2CupuakSGUZ6d4l0zeVvbUEDp5ZlBfGyzov7K8qtzzYUI/UxDF6hCEwkHKz1fVCWrRALtHA/ZPsKyKJ2LpXO3bPID0EW0XjT/aXQc3bXIjjH9YZ2BYW3xLi68Z9wGqcrA== 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=/zz/F3loT0Ix+4jReddxJSIR9V+tK1+muYqKIeM244o=; b=IfuiGMbo72eqnW7QB7wMa5fXesU6Y35T+CQsqgijApMGydBQ0G4XAjIs4Jr+NGIQiSWBBZxHDnNlrUcajLlEZDDVZU6IQrKq5Jc8jXqy4m27o8GSrM4TXNBo9fIAvuAV0zglvw8piwVtSC9fOzbJD9MOjB0x5NxNMZ86benKNAXPOWZjppZfoHYkOfVcBtAebUQbNiV+bJA15+uZ7n/O0YusLn1zuGW6Dw8BAY8Rfc9MJc2orQGYVVEvFQdEV0x6r7uz3gq7qJn4E2IcO3QW4VhFSRbpCi0WWW/AhuvX6gJzY+O7HMVCUTLib01uwtZNcOIRWw7b/WSxbmPj9u5AnQ== 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=/zz/F3loT0Ix+4jReddxJSIR9V+tK1+muYqKIeM244o=; b=v+X/AccGunRx/OH6NF9/9YKqeW5I6WGjATQ3b/c4cDrpbqhoUng2++IYemEH9ds+Oh0bhrbk8KbqJ+ywrXsrZPvwOsSNZrqnarqgpTMhgZbH0SELe9Y9iDhUPkByh63/PkP/1or6qLwK4/UpTJnEQBPLcorSFC/qiaLo+3WPdUw= 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 BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:56 +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.6933.027; Thu, 2 Nov 2023 02:23:56 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 07/11] net/nfp: add the check about the firmware load Date: Thu, 2 Nov 2023 10:23:17 +0800 Message-Id: <20231102022321.2254224-8-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4455:EE_ X-MS-Office365-Filtering-Correlation-Id: b0f27eec-72d7-41ca-26ac-08dbdb4ac405 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KGhVxPffPp5AT9q45NjVWB1LRFKlftWJ2GsF6VCiP3DfWDOAPxcf7fcYZJKE727fPmXb4ImcV5djsrhBQayXRP0gpaBsHXjzW43T2aTrJ1TkE40iL527Ib/anamuEJqvxeDrY9uAw8hIvFdHKqrjGmsG+jg3INk2lABNbmgftDf34R9js3KR1pR5QWpIlmYfHxMUPcUAgr4T+Yiuu0XoQ3mSOZ1DDRzedPRMh/OKhtJoO2SdMLiaU/PdgW7MRTeYTDlhBUGn1Qm6QTRty/aZ6KNIL6vaqDLXjcBY/dKNppHAIJQmTjufyuLHIsqCz3XwtfR1kqyWYsD0kwJfFlYEDO0Ypcwb6Wso8h4IwFS8rA5TfXnbFN+jC5FeQh3p+RpoNhhSkIsvvG4/hsI+8NUw6FL9XTxy2WiKGKhoimQLzs0wvNYNTuSSljE//W5q1UXMcrqf/vpTM3f0yZCaq59CqMGDBMPsuN667MniPslKariIAaSmYHkLWxD/nYEUJbgjLYoNaok08UPrWm1TK0JoA7iJUX1joUC0rkNti8VTRc0lpDHIhpSjPnCf6J7QX1zJ8ClL7Eq7MM1eUuBYz+hmAv79iO1HHBUDCnsO2WYT238giOscwL9oOfeUiEJyKmgW+h24UCpXe0cXCwIAxTs0JWGxszcr7uNTZ3qjQLlySXE= 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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FnE8mA5TnJV2flvSYW92LWHM61C2+bIgPS3yTRQvfuWnv7AuVsNbMgG3llAQNtiUZ8xi/dYWETRq1yx+2HgLPGsjAfwiPosmcnVcVF9NSTzEjIOcrWjdT1dsTwCbB9f2mq/g1bk48hWvP1GwVZo7/sNvf4M00ddS5S+8s0pAvfvA6PmZiEEkxjTVpvS7SihB+kk5e5SvAMootT8o4ROyxT8fjeYKHR+e5BwosmAqPlj8a67hRMr9HU7juYOxd9EQkmIvQCRebt1SxyDXoNgVSdfkjO1WQiI8ICJFHCVfpumb6McZMbJ2lnRkgX4k49xiJ754z4jIyGEnK2rawVJgYtCRMl2lMNw3oHvbdz1rsmAkgMG1cVlWHSbOPoz79u9yL7rUTxOmxXoSPY6ZHp9PY4F1MQzFy0OkoIlNBbXNhD6kFs+Jor8WM46YgGiGjH9/zZ/mw6YQXxwsA3BDp40pudoxDI99Df+HPHjFwNyGt8HQCtpBOAud8bzktjo3dEx12EMsQdGc5VQwBprnA4A56uSpQPY3KZSPAgtiWb+PMKQc/ol4vfffG3mqCSzKMsFTIe0jhdc3dV4yvJlAjRxxiXO7n/qEpkZV3/6gVC8MtPQZ6AIiSffUa6bZpStRKk7bTxBvY/eKBMpjNA00aBK3/M66/ueHguAXQHDHAn3FwGnfhK6LwfZjb3vq75kt4cmJ0Jab/1v7Dr1brRMkdg3CIoIzNyca/loAsiiLjZEGthvp6mviDgZcnVuZ2EmK4UKyt7ZJ6tgAUQL/SQVd3LMYCgWD80e7t/UjMz+5gRpKzN+3WYGxBqqZWFEEFJAG1LgKp/rcKJcjs5LzdrvpoUQuDhyYxj78vfezMax5CQLC5VzuU5td8usDnTLdK2nS7u/K6W3Hht6BYGbwhpa7+VQYPgX57eo3MVKtOQm919MWrOBRZGLJCj2nPkXrXrdKZn/uGR0CCETac/tC5KoHoyqqQl8gUI7IfcLovFe4faHdZ16sVKhybPckfAJab5hKSoybdsywaY3jjiqLcRGOw9NCC8eMPM9Mal4q2+YZuXOXlVAq8ZPbnJE2A4/VuNJlsj4QIyZkkD1igqyz1SE9Kztqs+W1Q36bgYCoJBQk8DBwrLKVPLWw4g3zag0vju7jtYHF+clBs3FNKHDXWBHGo12GMs2xHcGOsMml1gkKhJyF5n9dmR+EsEer2UuT5IQNlhmossTKkOul//kI53lWeNCXAM1ir7qlc3eGCKrRCo8Nzp61Iw558Y853GahkaGQWDxrMGiVnOkofWqYLQy8nf7pN8oQuzIYQ1nJZbQ07eBKhDukOTH8Zwnhs4uI7NOGf9wtcB7cKCrR+4kUZHu71RNlV8ei9eda0nPlLc7QaRu4LT5B6NzuGCHlELWb2EfQMa+fb9804ZB/WIHvSG0Yh8s4cTMsFpfH+QrPK5zTxR6acj4V/27F9kPM5QdQqVxapy+eJgN4AowAgHrx9TxicZtzFvq8Ow8eU9saNFW/LgicRJ0lrsUq04SJmAIWTjRnuqrUTJgiz6tIY3GuNqXkbLUiJpfwFP2f8lvBGskfEY0NOrepmZtlUm8Npb1mcqIrSt0m5izVueqscsjXV36gDzpXFA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0f27eec-72d7-41ca-26ac-08dbdb4ac405 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:56.8771 (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: wtq/EYXcdy4khneNPMHvQ4mYMZeO1p6t0rrzpDO/28AfktWsko46zlK7diMjrSrB1ZWgLy8vGx/GpTXid+iOvcDnqjF8DYBnX9XnbitPBms= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4455 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 When firmware load failed, it doesn't have any notice. So add the check about the firmware load and add an exit point when the firmware load process fail. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfp_ethdev.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 3ebfd444b3..9378a2ebc3 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -654,7 +654,12 @@ nfp_fw_upload(struct rte_pci_device *dev, PMD_DRV_LOG(INFO, "Firmware file found at %s with size: %zu", fw_name, fsize); PMD_DRV_LOG(INFO, "Uploading the firmware ..."); - nfp_nsp_load_fw(nsp, fw_buf, fsize); + if (nfp_nsp_load_fw(nsp, fw_buf, fsize) < 0) { + free(fw_buf); + PMD_DRV_LOG(ERR, "Firmware load failed."); + return -EIO; + } + PMD_DRV_LOG(INFO, "Done"); free(fw_buf); From patchwork Thu Nov 2 02:23:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133755 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 C6FF643267; Thu, 2 Nov 2023 03:24:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 69CB642E7D; Thu, 2 Nov 2023 03:24:04 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2099.outbound.protection.outlook.com [40.107.220.99]) by mails.dpdk.org (Postfix) with ESMTP id B152742E4A for ; Thu, 2 Nov 2023 03:24:02 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GfmiWwd4HhiQI/6mg67PSyXHO+udfm+DN5Qn2J51LVF7IlV5X6GW8wpOTtUKMZaNcWYjBGQbL+7T1mSW0ZXJrh0CJ3Bq56+1kiCzQCsRqh5SlEcS2LaQMJSVL+npKvE0APzM6g0tTTVgcFszjHGAMReVUASLS8wTFXNrOCdcdq6IxM/0GoUQPvflgaw8zIpiMVz6O3MoPsuSWU5IpUcxGuxY10UwLfszZocxr22iYarLbHFSSjk79ASgXoEivrRHweh3ZO8gMOd9q2bJexDhdxo5ccznN0QB/AXWgAYLSeRK8ZeAF0cjGKYeXi1sV7Z2o+QkBxZtlUKrNC6gKXOyPA== 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=OvE+jpu0eyxnZ5Ui0q8Z/449F4fN9BB/F1hTanw5QmU=; b=N4klC75u7zQFagixdewDneGGYSo+QieRIl1XrWmR8D2p+awYH/McoFwbqanNgwZx49M9eznNX9aCZ1IjquiCqo/yaUroXhP0W5enBUiCTze6Xg9BpLB27R4gnIa9W6TLcWvrtLk0VNQU1L+UteHMzaTi4LeBCoytuB8wIDcyBL4waSj0CKEUqu45qAZM32zbobAxp8HmutGggOKyRMp3IEMLBNS568f7h2EEI6TvA+8I150RZ/6CZdfvH/+tPMZCxc0XysrabhuCuzJpVpP7ZklIQMDyCcVZzweBTanVw7CRkB2h8HrqE5Hn0JVeR7wz9tNkDl3X0F386tK2H1EpLw== 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=OvE+jpu0eyxnZ5Ui0q8Z/449F4fN9BB/F1hTanw5QmU=; b=WLiS/JvEmE2kJuN87iD+wTladmWdtDbzV708ZMVlBnqsVABRLlDP946Ctjq/ZADKsW1pq8XtEbaAm4fwVb258mPi7o2aZ/iOZmXkgvgdfS5uoHJa2fINTq8x1+m7SoB7fL+fFgmi6BkjMQD+xGpINY5ACj7uzTP8cAPvBxSbat8= 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 MN2PR13MB3709.namprd13.prod.outlook.com (2603:10b6:208:1e1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:23:59 +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.6933.027; Thu, 2 Nov 2023 02:23:58 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 08/11] net/nfp: add PF ID used to format symbols Date: Thu, 2 Nov 2023 10:23:18 +0800 Message-Id: <20231102022321.2254224-9-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|MN2PR13MB3709:EE_ X-MS-Office365-Filtering-Correlation-Id: fcb12e2e-0dd9-4142-2cdc-08dbdb4ac52f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d7DI23Rup4JVodYh3+Wowj6eGVZsylcKE1Q0c774kWs+mCRwPX7+9vqlMM7YeERU5UgEfA7W9D17MW8lxSKBinYkn31FX/uaBUnY2k7luJ8NOJHFBMdLzF4G0COW1QRQawDrHGyng/Yw6xKKrfWqfaMkNO76q8eOJiBsS9jfBmSxl/fuW4nKs9uxuKNdf20g3OrxvhVHQbvYPm9kbG/gq52py6zi8o3nfr2mFhbXDtl3iJNaD+3+WIZh+SlsAZ9LJlCf33LcvGzB4+aieyTTa3R8NzTtAARVStVZLaBiGR9GcsmMqB44gbpFDV/WrSmNmguKYpEpPen9fmrpgoVh2iuQmJiBzSfxBGg1V+Sndinnik60Q+A5RTS1XQwnpd5By9US9b4RBuuScwgHsD8jwK2P8zM8BqT9GqahlnzT18+fO18YFwcYg/kKY97pgGSWQDwLd4mjeONFUmqsxPc9MRn5Z8HllUQ29khhjR+rHneuJq6Qr6+Wsp/x3PGjUa1+N7OT851B/Hv63IHDBWDivGx1jYvkjVa2x8uKdGi3AZ2OGgTryXZaMEQg11KEsfXmg4mNxA2ZHwLDsHBlkLGt0QPZsdFBi1CpUShRzz/HS2XRNc30HJI9onNnokKS/yHSQrb1uIVuRq6yUhkyJAWV8ecS75gdHXQkv1BKesmUCs0= 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)(346002)(136003)(376002)(366004)(39840400004)(396003)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(478600001)(52116002)(36756003)(6486002)(6506007)(107886003)(38100700002)(83380400001)(41300700001)(6666004)(4326008)(8676002)(8936002)(2616005)(44832011)(30864003)(2906002)(316002)(1076003)(6916009)(86362001)(26005)(66946007)(54906003)(6512007)(66556008)(66476007)(5660300002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: T49UbHMQ0rCvVcwMTS/U0X2odJbny8DTCfTTVTkIjLuK+0acYmLV1IONYwRWItUoX2qMS+EUX7uQzDxGrYgD8uqp+stwo9Or8bjRbbFR4vDbbdNjGo+kCg7UEXiHPqaPLJ7jtu5qzn/oahTOgI0n51Q59sEsDMmcjEcGs55rGaeuUPCs8wa69YD0R4aByh14XN7Np9LPdpekOoErkp1ccwpVOAxP/Unwi9s/awFIV5lCvewZakoNj6ErZBqcUs1ZwXvoJc3WGcJGut+WuXXJUeTCnMy8X9oskVcSRBlu1hvSDwh+oPmCL90LRvok6hr6e0tZNq7F6UpZkqBITGY8m+i4RrAw1ze8Hlg0Px5SDsqxNZ78DIc/TJBAQJyO5gw3GSDzpADkhbZZbZV63TMtvceq12ly6zU98qVQgCHDrmizxGoC45X7S0rtIvlV0lYnGv/BvaEgg3G1rCYJKyXUvU1s4p0JNA6kGUjzTMXzXMuTJb/rDW5hppE+a7rui4k0hAke9XrCqNYYq/uBzi9+6cULK6fuD8/RoWn9o94pSNZ9gO/HsjxHKKgxPiuuPTmhJE5yyAMBplovgllVDjaRs4R/AYnT8KPZRrr+uOGIe2vXB9E9mVRkk3zl1hVky663PKeeeSOw0j51FP1ucJmVAWTTEgGve1V5u2ZftzApbfH45R8UPe9V4tDwS9eAyPE5QgQ/BDJrVbbGS3lL5VbKyxSau2pnK0RmLklHM0nSU0qA+1hiarkaaMhlBElfydARoJDQipTAGncx6y0BDtYkpJzMUmH7N0faa2mcgmb58R44HYb5MkXET9qsI6LwwDHnQ789TrxSV53HsNP55veCVd/PaamH0AeAkxTepzk20jwLl6yU/Tjtf5FWDu8ctFyD0uib4eg6hcZEnVvVXkQUffGkmFjQaCVx6F7S1Uzw1qL3E51IKvmqzK0ieENoTb+F9uaqD3r6WJstNl39hAolcik6Q8RsWUkxVsloBw0o4At+cldQ09QX0/l8wFqaxltlOf3TfRdIEBQvtiaA+uNVBlxL07cEsLBQ1S5a/89OyLdG4IK+hfNKfGCYMF1b4mGlqWjQKX2sh4TuztOvhfoWrkgoI7gHxMkkATGp4HgMsaLiTgdxUy+eL/MGKlUzy2OCzvBBD37b6ZIhlJHvS0YtnOu742HJCEInW6jPfb2Fq6WLjOAaxPcDprIpRjgFj7en1qC5R4/MGNu0HoqREya6FzW7VvNx5StLV+ZNaO9Gq/mGJc8cg4GJ+TtQUlxKWxWXnmf5aDjXmd9CRWXKfMC0G8kMMxn16d32C7VVVkdL9rqHk51ZYyxPywZqrS61LzyH8yKNBXAwCDjOZ9i3/oQ0AZ8vLl1ZR8QVKWvHNjNZOelm5MoBflQkcIOOZsKuPLzWJGty6yNlnV52RihgtMYH9Q7u8j/JuqCQPjqUtfu0wAQ7G6BeZGk8a1u2f7uCpPLJvUF5jhUr8+4L18IfwUeyXKGPAreAsSKzq6hUWgbiUxMRovbepPUtyPCqvGWZwvefFN3fB6kAA6d1/qzDIxoLMaKouKnZXyjdTd5lEYuWkYlfhMH101fpi6uhPmE2hnApxJ1FLuWlY59HM02am2VrlQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcb12e2e-0dd9-4142-2cdc-08dbdb4ac52f X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:23:58.8154 (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: lGOcEb5YXuqpQFp+KtePVjNYDJlzvQZm9gv6/pdCECCQV3MbILYBekNl8LvjbtqAS2h9JRjpESM4FHZLqBTydv+qzIhgMSPnz9ZAkUayYjc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3709 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 single PF scenario, the format symbols just is related with PF ID 0. In multiple PF scenario, the format symbols should be related with PF ID. So this commit adds the PF ID used to format symbols. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfp_ethdev.c | 109 ++++++++++++++++++++++++------- drivers/net/nfp/nfp_net_common.h | 2 + 2 files changed, 86 insertions(+), 25 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 9378a2ebc3..96f0ae3fe3 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -224,11 +224,22 @@ nfp_net_set_link_down(struct rte_eth_dev *dev) return nfp_eth_set_configured(dev->process_private, hw->nfp_idx, 0); } +static uint8_t +nfp_function_id_get(const struct nfp_pf_dev *pf_dev, + uint8_t phy_port) +{ + if (pf_dev->multi_pf.enabled) + return pf_dev->multi_pf.function_id; + + return phy_port; +} + /* Reset and stop device. The device can not be restarted. */ static int nfp_net_close(struct rte_eth_dev *dev) { uint8_t i; + uint8_t id; struct nfp_net_hw *hw; struct nfp_pf_dev *pf_dev; struct rte_pci_device *pci_dev; @@ -264,8 +275,10 @@ nfp_net_close(struct rte_eth_dev *dev) app_fw_nic->ports[hw->idx] = NULL; for (i = 0; i < app_fw_nic->total_phyports; i++) { + id = nfp_function_id_get(pf_dev, i); + /* Check to see if ports are still in use */ - if (app_fw_nic->ports[i] != NULL) + if (app_fw_nic->ports[id] != NULL) return 0; } @@ -667,6 +680,19 @@ nfp_fw_upload(struct rte_pci_device *dev, return 0; } +static void +nfp_fw_unload(struct nfp_cpp *cpp) +{ + struct nfp_nsp *nsp; + + nsp = nfp_nsp_open(cpp); + if (nsp == NULL) + return; + + nfp_nsp_device_soft_reset(nsp); + nfp_nsp_close(nsp); +} + static int nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, @@ -751,6 +777,7 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, const struct nfp_dev_info *dev_info) { uint8_t i; + uint8_t id; int ret = 0; uint32_t total_vnics; struct nfp_net_hw *hw; @@ -758,10 +785,13 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, struct rte_eth_dev *eth_dev; struct nfp_app_fw_nic *app_fw_nic; struct nfp_eth_table *nfp_eth_table; + char bar_name[RTE_ETH_NAME_MAX_LEN]; char port_name[RTE_ETH_NAME_MAX_LEN]; + char vnic_name[RTE_ETH_NAME_MAX_LEN]; nfp_eth_table = pf_dev->nfp_eth_table; PMD_INIT_LOG(INFO, "Total physical ports: %d", nfp_eth_table->count); + id = nfp_function_id_get(pf_dev, 0); /* Allocate memory for the CoreNIC app */ app_fw_nic = rte_zmalloc("nfp_app_fw_nic", sizeof(*app_fw_nic), 0); @@ -772,9 +802,10 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, pf_dev->app_fw_priv = app_fw_nic; /* Read the number of vNIC's created for the PF */ - total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, "nfd_cfg_pf0_num_ports", &ret); + snprintf(vnic_name, sizeof(vnic_name), "nfd_cfg_pf%u_num_ports", id); + total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, vnic_name, &ret); if (ret != 0 || total_vnics == 0 || total_vnics > 8) { - PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value"); + PMD_INIT_LOG(ERR, "%s symbol with wrong value", vnic_name); ret = -ENODEV; goto app_cleanup; } @@ -804,11 +835,12 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, app_fw_nic->multiport = true; /* Map the symbol table */ - pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0", + snprintf(bar_name, sizeof(bar_name), "_pf%u_net_bar0", id); + pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, bar_name, app_fw_nic->total_phyports * NFP_NET_CFG_BAR_SZ, &pf_dev->ctrl_area); if (pf_dev->ctrl_bar == NULL) { - PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar"); + PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for %s", bar_name); ret = -EIO; goto app_cleanup; } @@ -818,8 +850,9 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, /* Loop through all physical ports on PF */ numa_node = rte_socket_id(); for (i = 0; i < app_fw_nic->total_phyports; i++) { - snprintf(port_name, sizeof(port_name), "%s_port%d", - pf_dev->pci_dev->device.name, i); + id = nfp_function_id_get(pf_dev, i); + snprintf(port_name, sizeof(port_name), "%s_port%u", + pf_dev->pci_dev->device.name, id); /* Allocate a eth_dev for this phyport */ eth_dev = rte_eth_dev_allocate(port_name); @@ -841,14 +874,14 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, hw = eth_dev->data->dev_private; /* Add this device to the PF's array of physical ports */ - app_fw_nic->ports[i] = hw; + app_fw_nic->ports[id] = hw; hw->dev_info = dev_info; hw->pf_dev = pf_dev; hw->cpp = pf_dev->cpp; hw->eth_dev = eth_dev; - hw->idx = i; - hw->nfp_idx = nfp_eth_table->ports[i].index; + hw->idx = id; + hw->nfp_idx = nfp_eth_table->ports[id].index; eth_dev->device = &pf_dev->pci_dev->device; @@ -870,13 +903,15 @@ nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, port_cleanup: for (i = 0; i < app_fw_nic->total_phyports; i++) { - if (app_fw_nic->ports[i] != NULL && - app_fw_nic->ports[i]->eth_dev != NULL) { + id = nfp_function_id_get(pf_dev, i); + + if (app_fw_nic->ports[id] != NULL && + app_fw_nic->ports[id]->eth_dev != NULL) { struct rte_eth_dev *tmp_dev; - tmp_dev = app_fw_nic->ports[i]->eth_dev; + tmp_dev = app_fw_nic->ports[id]->eth_dev; nfp_ipsec_uninit(tmp_dev); rte_eth_dev_release_port(tmp_dev); - app_fw_nic->ports[i] = NULL; + app_fw_nic->ports[id] = NULL; } } nfp_cpp_area_free(pf_dev->ctrl_area); @@ -890,15 +925,19 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) { uint32_t i; + uint32_t id; int ret = 0; uint64_t addr; + uint32_t index; uint32_t cpp_id; + uint8_t function_id; struct nfp_cpp *cpp; struct nfp_pf_dev *pf_dev; struct nfp_hwinfo *hwinfo; enum nfp_app_fw_id app_fw_id; char name[RTE_ETH_NAME_MAX_LEN]; struct nfp_rtsym_table *sym_tbl; + char app_name[RTE_ETH_NAME_MAX_LEN]; struct nfp_eth_table *nfp_eth_table; const struct nfp_dev_info *dev_info; @@ -917,7 +956,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) } /* Allocate memory for the PF "device" */ - snprintf(name, sizeof(name), "nfp_pf%d", 0); + function_id = (pci_dev->addr.function) & 0x07; + snprintf(name, sizeof(name), "nfp_pf%u", function_id); pf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0); if (pf_dev == NULL) { PMD_INIT_LOG(ERR, "Can't allocate memory for the PF device"); @@ -958,10 +998,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) } pf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp); + pf_dev->multi_pf.function_id = function_id; /* Force the physical port down to clear the possible DMA error */ - for (i = 0; i < nfp_eth_table->count; i++) - nfp_eth_set_configured(cpp, nfp_eth_table->ports[i].index, 0); + for (i = 0; i < nfp_eth_table->count; i++) { + id = nfp_function_id_get(pf_dev, i); + index = nfp_eth_table->ports[id].index; + nfp_eth_set_configured(cpp, index, 0); + } if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo) != 0) { PMD_INIT_LOG(ERR, "Error when uploading firmware"); @@ -974,13 +1018,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) if (sym_tbl == NULL) { PMD_INIT_LOG(ERR, "Something is wrong with the firmware symbol table"); ret = -EIO; - goto eth_table_cleanup; + goto fw_cleanup; } /* Read the app ID of the firmware loaded */ - app_fw_id = nfp_rtsym_read_le(sym_tbl, "_pf0_net_app_id", &ret); + snprintf(app_name, sizeof(app_name), "_pf%u_net_app_id", function_id); + app_fw_id = nfp_rtsym_read_le(sym_tbl, app_name, &ret); if (ret != 0) { - PMD_INIT_LOG(ERR, "Couldn't read app_fw_id from fw"); + PMD_INIT_LOG(ERR, "Couldn't read %s from firmware", app_name); ret = -EIO; goto sym_tbl_cleanup; } @@ -1045,6 +1090,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) nfp_cpp_area_free(pf_dev->qc_area); sym_tbl_cleanup: free(sym_tbl); +fw_cleanup: + nfp_fw_unload(cpp); eth_table_cleanup: free(nfp_eth_table); hwinfo_cleanup: @@ -1063,21 +1110,29 @@ nfp_secondary_init_app_fw_nic(struct nfp_pf_dev *pf_dev) uint32_t i; int err = 0; int ret = 0; + uint8_t function_id; uint32_t total_vnics; struct nfp_net_hw *hw; + char pf_name[RTE_ETH_NAME_MAX_LEN]; /* Read the number of vNIC's created for the PF */ - total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, "nfd_cfg_pf0_num_ports", &err); + function_id = (pf_dev->pci_dev->addr.function) & 0x07; + snprintf(pf_name, sizeof(pf_name), "nfd_cfg_pf%u_num_ports", function_id); + total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, pf_name, &err); if (err != 0 || total_vnics == 0 || total_vnics > 8) { - PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value"); + PMD_INIT_LOG(ERR, "%s symbol with wrong value", pf_name); return -ENODEV; } for (i = 0; i < total_vnics; i++) { + uint32_t id = i; struct rte_eth_dev *eth_dev; char port_name[RTE_ETH_NAME_MAX_LEN]; + + if (nfp_check_multi_pf_from_fw(total_vnics)) + id = function_id; snprintf(port_name, sizeof(port_name), "%s_port%u", - pf_dev->pci_dev->device.name, i); + pf_dev->pci_dev->device.name, id); PMD_INIT_LOG(DEBUG, "Secondary attaching to port %s", port_name); eth_dev = rte_eth_dev_attach_secondary(port_name); @@ -1107,11 +1162,13 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) { int ret = 0; struct nfp_cpp *cpp; + uint8_t function_id; struct nfp_pf_dev *pf_dev; enum nfp_app_fw_id app_fw_id; char name[RTE_ETH_NAME_MAX_LEN]; struct nfp_rtsym_table *sym_tbl; const struct nfp_dev_info *dev_info; + char app_name[RTE_ETH_NAME_MAX_LEN]; if (pci_dev == NULL) return -ENODEV; @@ -1165,9 +1222,11 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) } /* Read the app ID of the firmware loaded */ - app_fw_id = nfp_rtsym_read_le(sym_tbl, "_pf0_net_app_id", &ret); + function_id = pci_dev->addr.function & 0x7; + snprintf(app_name, sizeof(app_name), "_pf%u_net_app_id", function_id); + app_fw_id = nfp_rtsym_read_le(sym_tbl, app_name, &ret); if (ret != 0) { - PMD_INIT_LOG(ERR, "Couldn't read app_fw_id from fw"); + PMD_INIT_LOG(ERR, "Couldn't read %s from fw", app_name); ret = -EIO; goto sym_tbl_cleanup; } diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index bd0ed077c5..a40ddfd985 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -57,6 +57,8 @@ struct nfp_net_tlv_caps { struct nfp_multi_pf { /** Support multiple PF */ bool enabled; + /** Function index */ + uint8_t function_id; }; struct nfp_pf_dev { From patchwork Thu Nov 2 02:23:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133756 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 C3AA643267; Thu, 2 Nov 2023 03:25:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8F3CA42E83; Thu, 2 Nov 2023 03:24:05 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2099.outbound.protection.outlook.com [40.107.220.99]) by mails.dpdk.org (Postfix) with ESMTP id 4BABF42E4A for ; Thu, 2 Nov 2023 03:24:03 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZRm/IoRhidbS30UaXpAXvDOPESNJ3lnAxYhwX1IqZe5YeE/DnciPcb90czbkW3K4OBh4s+NsXSkgC6VmBUq/CFdsMdDY3WmOyWNJdnH4qGbirhQ26FCjoG0t5MB0APYeJKjGIgtCUHl4wYHuClxuDTOGmAcqdVmRaHxaynXNGpugVMk0ffixDN4VUOrxdenPFMjQS+qljWN2bx8bvgPUS1y2MVybf3L4MydvZItokkII5RU1ROuE1253gpRDeuFJZjjDODsTafSvzuA8TyzOAFCbT4Q9Oqnwyb9sroaVat3M56D8+ltPmLX3Jbco/ZUXGwGEsLddupOkUyyvPuwBeg== 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=GqpqAjbV3mzuge0c902va3zAwKptadEC7wsY4lEcijc=; b=aNTt7aerwGjw2lNTeR9AQQ4B2WKIMOCQ/A2n+k02dtyaStJThx2hNz4CLWQOpXoPfcFE0JZp8Cr6USRUw/8VSkuMFCWGpcE4j9CD74Pfox+FPeMLqzvvd/zMshEZdkNxKXBVArUMUlOdGkx1Y0FHFBSgbzkoLY6czANgTeWLHmH3OsqJmxT2sUR6vIOYkOEFhsrL3PaQGyhunu7eB6M2ecFQQtyu7Zdq6uiUVam2Zgmf2cy538XbxTGwsgEBK1L7xR4opdRj52FEOR83h64tJeKS5OkWv7El4Y/RFibCfk+kqm29xqj3sMny98xRbV+DYPeU5g4nux3R8+EMmW1uEg== 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=GqpqAjbV3mzuge0c902va3zAwKptadEC7wsY4lEcijc=; b=VUGLiiOv2aHeN54TBZZEcu8ROGr9OwTexO3j1af0l76beY+ju0DMvNuYI5K5pvwSw1bFP/mQp46zmtw295S8wIFCHZp3gxVRfWI7EQz1QNkbT4oiuJhhPJdRls5PCbblOO56gci3DcZQqr4+u+FXPouJAuCvoscpaVjvvAmIEmk= 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 MN2PR13MB3709.namprd13.prod.outlook.com (2603:10b6:208:1e1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:24:00 +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.6933.027; Thu, 2 Nov 2023 02:24:00 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 09/11] net/nfp: add nsp command to check if firmware is loaded Date: Thu, 2 Nov 2023 10:23:19 +0800 Message-Id: <20231102022321.2254224-10-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|MN2PR13MB3709:EE_ X-MS-Office365-Filtering-Correlation-Id: 9bc11583-66de-476a-e4fd-08dbdb4ac64a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RVnPjXDcqgdlVJQ+IOoStw+K0EvgKTAYBJGctPe1NumVc19GbQwi0rSaFkxyx9ORD1fwUBZMLdzS+DM02gU4/63ufOnPay8qcLyrKfGME8CtJPvkij+K7tkZvIsJky3vv1FSqICNxXgEyO15AATRQBAfQwSWDVAy0LLLod5tdx1FrSXrXp+kToorIPGjEpvL1utinVdvSSueBLmJ2J6g/j+BU1HNv88fGi7HcPGrMWCHiCVrCAu7h383RDa9n6a453LCOLHrQcFU4hKImk0cet0/JEDENNFtDuvhtHAKwNSmea/R/TAF758kNJ2g+jOT+rO6sbzstS6T7oMljBcVY5EOOE72RmbYv0ouOrDdMHtShSyqkiq8A8WeIPOSkndoz4kPLSF5r3JekM18RwpdRgEWuXeAdmPArDep+SvlR7vMvRsH/c1dvMxjHyIhN5nuO9xeZ1WXvWr6+ltSoVtURALxriLPI3rjX0CEyPD4GlCE3c78akUMLb4MxLRSxs/cStlG7uMlPzOchCGEkLisYPowKA581EH9D9lXpGHIZvDah0ht+6+d+PFo6hGsKmbrwBIGQvSrIht8IDawteowWP5bKIWSsclvN4CD33YYngMm4/WSNmVXl0oue7VT/Z3xCBLBhiKwWSvnS8emtEhtyXfqDJAmyOHs3gSemqMT0Wc= 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)(346002)(136003)(376002)(366004)(39840400004)(396003)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(478600001)(52116002)(36756003)(6486002)(6506007)(107886003)(38100700002)(41300700001)(6666004)(4326008)(8676002)(8936002)(2616005)(44832011)(2906002)(316002)(1076003)(6916009)(86362001)(26005)(66946007)(54906003)(6512007)(66556008)(66476007)(5660300002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JoDNbnuEgliWwrydSbJK/vROnlXVY/Cw8irJyJfUnr+mPWTl9mDN/a/aF7IO7qtfH7BBxdhZz/R2h3WLYzAvAvsLqAdzNDETud/JBK8sDt1n5sGeSZlXq+xzZZtxZpQWOQT/d/ZRrhw0399TZ1teXxUcN/ShmBNkfr84BrkscTjlvfH30IhW1jfmD3x6d0c0+zKDaWNmnSIKzb5yxlePVk40ACodyCqNM+e3loAhohSznAxzh8L164gjX2xiav/G2Xd00ZOapFid04oriO3HpJbNT43E8/F0aTczL8e+79+mIonM2V1pp2YDbwn5d6E4sGAtrnql1aqXY+IRV6luW339CiWx0qBQ1i93OYSgcz5KH8TPjDm8rrQOSb6D7fBrvCqCSIWqEXM61kOTWt0Hk3FdZvFnynds8qo1fQz7qohPU9+EBS16GcdcAAIqWRzJr7UrCCjkuTqU3ZO4GnE2n4EE7gxILJ1kx+n6guTp3OCM1Yr8a2ksAhMxLFczFtJI+GjYbjVYRBpjkx6hXvnhDX6IWc3gg6l2ejroBT9J4Gg0EaVL66ONi3ciNVMFRspKAt18ys9MHOhurq0WvcLErA7Rxct5ECVXbytGE1J4MGr6Kv5bmiuLvOtrd9I5xZOQ52Lgdto+WpZxp6nRTZvyQr/y2uvjHg7b6r+n7ZbThaHNrh6NmbM0TrpR283p31QC7V4X1VJa+akhQw9lyRaJX/ejFTP21K9MQB0I7m6vJMmqA5rq+lfUBdI4mO5qLmbtSoPzoBQ3zVISuWkJA6XZf9JPTXpRmmOU5ovwcOWj2HNwLR1gEZMlIQnjB02seBKZi5ZbxKrJ8Eno9UEbZ4+kSs060E0sbADnFmtB/Y3VaRRZyhRCANORjqiAtAxZF9poATGwE9+ZwDzwTCCvbhdhR6ZbqfrcJ3HZy3/7wIQDw5ke5Tch6MOWXPms83EO+4dflWQuIF+Oh/h/C2BMlj3R2z0NDbRK9pxdLt2pFE5pe3O1P9/g/sl0Lr0SUPIBQDpP58543wt95JUqM1mSHbykpqlHmoDOFFz5nSEVJy3LWzR9Xyn8Yd3vOAvGuCc5MuY8UEo7Ho1vzJDkGOu2Mrsvxjk4H7USFlTs8rQySj5KzYf/XBefwQSb/o7748OlSCyFxMNX//7/tQiBFvQiJvPI6+BRfS7uwyiSCCSsTYRb9xtEQn7uV/dyQuMwuNK7f23D0t+0tJN9VDRDkwgeb5gMrCYUYkW+IPzUWA3ZRHm4X3UkM/oS8CK6c9ocIAUsQq2wkiYPlD3W6ixGC1m8xSAcdDmPAHuYZdrY6/CSaJa10D18vtY3I3jZKUVW1RZTaw4eOj4WxM/W6yhtikhUZ+ZdxZCPSH6bws7ykyXv9OsWQ7vLxLQPWG3+St2zJ8d70i8AEOhd4T9908JvWehcNLa6nURcEk2DTua28tn9dZYnjpFV/R+4L2H0rzVjDyPVWv2AbYtMXOpkEgckv7QETQ5k34b6Ich0VdnSkTn05NxEcFm64wXdnIaBbmdsjVJ6CKhquhONzFnY4hhODRo38GcCcdm7tC7dFS39HzE1jZFStg6MSmmCRhQKNyh7zV00R9hbJl/mq2fN/G0/gMBoUgSOig== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9bc11583-66de-476a-e4fd-08dbdb4ac64a X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:24:00.7249 (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: 5koUCjEqzNZkrazXOfqRXfV2s4a+CrKYTpYoOCtcK9DI6eUi0yqT483JSOL4foPJUnSTg65tUVUv0N/aQow1S/pHj2OvZdYdHQ7vZPkgJ9U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3709 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 Add a NSP command to check if any firmware have been loaded. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfpcore/nfp_nsp.c | 6 ++++++ drivers/net/nfp/nfpcore/nfp_nsp.h | 1 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c index 589d878e0d..e5aaef8d55 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp.c @@ -637,6 +637,12 @@ nfp_nsp_load_fw(struct nfp_nsp *state, return 0; } +bool +nfp_nsp_fw_loaded(struct nfp_nsp *state) +{ + return nfp_nsp_command(state, SPCODE_FW_LOADED) > 0; +} + int nfp_nsp_read_eth_table(struct nfp_nsp *state, void *buf, diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.h b/drivers/net/nfp/nfpcore/nfp_nsp.h index fe52dffeb7..492fa7e99f 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.h +++ b/drivers/net/nfp/nfpcore/nfp_nsp.h @@ -212,5 +212,6 @@ enum nfp_nsp_sensor_id { int nfp_hwmon_read_sensor(struct nfp_cpp *cpp, enum nfp_nsp_sensor_id id, uint32_t *val); +bool nfp_nsp_fw_loaded(struct nfp_nsp *state); #endif /* __NSP_NSP_H__ */ From patchwork Thu Nov 2 02:23:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133757 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 4A99043267; Thu, 2 Nov 2023 03:25:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0E64542E90; Thu, 2 Nov 2023 03:24:07 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2134.outbound.protection.outlook.com [40.107.220.134]) by mails.dpdk.org (Postfix) with ESMTP id 968F842E80 for ; Thu, 2 Nov 2023 03:24:04 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=keJNo11GgXucn3fjI9Q+ijJCeo1W1nOguFHdlnEnaMZvRUWv6Cb1sY9eAU0O6pF7W1EdhPB8MBJRZQ7Ds0aoppyZY19OitFJFf+iKpcFne09u65KK7xML6PkE7w4drf8PiLCUMtL/O9MMwo3HG71IHY7GEMsAevjoLcXIoOBOcOR5JZ8jfqC5LHWpxiO9Ft1KtFRSwQRgJzqo86TVTOv0NRkHbCx/q+0S6FvAG5nNGyGyZiZtkrBjBANRyYaGLs/X9aRpXwFQQI5LT9bUkGQ9XkbbwsIfJx/GDu7VKpWZQSDIlqSiCizOD0D1l0v4NpGnEdQIA/bkQrcGlCSOUCYig== 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=VzQZ4OilXKglucq38wwvqpuoEyuGYuLzQ3T6ZF39X7E=; b=Ed4YCjy1ofDdkT3eddFgdGTQNic6r9REzd1aNIMoa4kDKqUw7AAkM/Tw77yhDQRwQXpHnUS/RS17GdZ4/a32AysRQ1EO6t0V67ceetH1bk3LmCfRzS4n1zVFPI9Sfb7dD354Chs2ki9jbhIIXJK2UicNJ3TDLUntEuGQOSS5jIso0hJkuPz4kuhb3CYX+qa7WrFpIRI9O22J/4dc2+ecVCWXPeer5kECpt0hVih+sHNXeejDEZwolVmHpCKqk0rQxxnqgaQcv+zWh6tpH+qixX6/Bo7zHpMwqVVR0NfqJz/bsVYKZuvmcwb86OxdNdQmjc4VXSVzbEItVULuBO/qyQ== 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=VzQZ4OilXKglucq38wwvqpuoEyuGYuLzQ3T6ZF39X7E=; b=gz2KeBYK62KlKCOl2kqlkVarGtOMoKxWAZoYmu9Kf/u3QWXfh3MnTJUSvLOI7jifOH6T62yMOBJHl17GCmgEu4SVkBjFyIIK7lvX7Lm67gnJfJOBuTCMLikSzCSjMANZAtgoOz18uD3/s5a72Fnc9zYX3MW6E25XmeewdfgzOfI= 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 MN2PR13MB3709.namprd13.prod.outlook.com (2603:10b6:208:1e1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:24:02 +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.6933.027; Thu, 2 Nov 2023 02:24:02 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 10/11] net/nfp: introduce keepalive mechanism for multiple PF Date: Thu, 2 Nov 2023 10:23:20 +0800 Message-Id: <20231102022321.2254224-11-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|MN2PR13MB3709:EE_ X-MS-Office365-Filtering-Correlation-Id: e9065ef6-b94e-4681-88dc-08dbdb4ac772 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2xTEvfzpYFSZQNm/+G+MJqSFIcqdMfWApCDTdj+L8CxMxUB8N/1EqJD06UPD2J93WwRuAGqd+bEXFD2rPLRJ1xznSYgpUG34HQrSPSBC1ZSLoPMScF79waQFmQE3FNizzRKs+6pPAZ6eLBUN9xMyQXbbekE1tnuVI0zPKD6CY/35h+XFy9ru3mQQ73y5Qvuivf0V/mWbiCkKI1HrEdCN6Nt5jnHqSgykRnMnbzDANoAJzPl+75kxIswtaJLGHZuksl4HudFCr0kUVWPzh/QBMNmia9v+gA/AiKBTW02hDGXBXFpqbAHkqePfrLgKBdLsPuNv6a/RHPv9MuDwvev2xcgRhYPHSkejsDom1AwIUl3soS2D+w6dPYYBjSp/zrjL4mQieNTexyHH93J5UXuR5GRuAs24ztPDujZZUIxBNQzsntQC9GVk6BW4PeOnlMZ2fI/o9wptwBwG0RSLHHvXwMws/bjoMI7Cn6nQ1uG/lq2R2XyzieAvx6340kdsiMuMsO6JAHaWOUXeSf2rRlSsPHTx9fuBZMSu7u5f2KIzHBu57rf+UEMXVIKNfUFwa7WpqYuknxvTcOt8zmdkhUGr2lJkP4PeIUUMfmUp5/w/ZkDeJwtTZaE6MhhA+aegX8ssSafLvP2iJxKTexAAkLogszLrxk+SUEE4hjpnIRmpaKU= 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)(346002)(136003)(376002)(366004)(39840400004)(396003)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(478600001)(52116002)(36756003)(6486002)(6506007)(107886003)(38100700002)(83380400001)(41300700001)(6666004)(4326008)(8676002)(8936002)(2616005)(44832011)(2906002)(316002)(1076003)(6916009)(86362001)(26005)(66946007)(54906003)(6512007)(66556008)(66476007)(5660300002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GMeJisCMahy3R20fceqyTWCtCtlNKbSN7cP5CX59h9zgGcCxaP0EaM/5cr1GuI35JpMB/8qhDcmkb+Vf2ZR6YAK5XGm0EGWWMlhVedekXAA0p+9S9p0xgy58xJY+TYbqhk/lGLWKnWpcS8AzXjz4VHUbn1m7CqmJfXYCdyPSLd6M/uGf0YXSfxiQfq2r/RFHejTN3WHdLaV7lGEhTAPPRac5EVV1SzKoRmUvqrtfh4vjkYFKQhmmuq7GkkicTJHp4BakFjpi63eNwEOtpA/7m4BnUFbRdteDMLlWi2K15BYvOHo6FUiVtEtTV5mTjOknAeErm7v0wMr600pb2WeNZT5oNbtfLk/QQC1d5uS3RWbQb41y/R68xqk984Ca0fhoKyIJjRRF+D3sAXO5zPBPhboZoajfE/F/IH77mXO9rP+Om9k0f026pSTwYYsAGPFHdLgc6hl9MBNxrBuF8BcG+y5QaDa5h0ROxaLlvf0CNXFPpjhj5u9pWyFJHwRjnYEY0tN2DY3pcsZQamZUIlpLS7dO/bk77HH/wNbRer3VlhRy8UHfgm+we7RjB6FIBCkLGp7bl67INVB9geHvXT/kFDXjlnNkCmNMavi83iggUD5B3vhFWOjc4fQ6FOE38mPjSjZd1l3G4hxbOE922HQUoqQBO/yxQ09vB1SwAAhPhL8yh6TbC9SFNWkkFWOYWGPjYAyKKUKLEavnFOtW1bdU4v0JpA+1u3Z1txSmT2ylVRfWlVusYlo1tvwZmjhysvvU/krJDnD2eZQkyBn2ppZ9UzxrPb3tCWRWNSCfuWa7OeRnDrfIADWR1d0B2WeRg6CRR5raZGQnOb3z1UxD1suFNouDHNWDB6MOLA2GEHQ/QM1awJ7wVeqtQCT86D7iNn9+fZoUKlv5f5CD52Yd2P7lBpCUtVNG0KfY+0audrnSM+JtL3a5YeB8zT8KHkpZA9r/lWmmmy7i6T5+rz/Nv3CPikvtze0EuM+qZOPrDqjHyTwhQYKmXYAFmV9qKGnIpZHDLLG5nV+eNbrWj35KxC1JWRS5Qci7CyiczOApsqEH+lJqNy9T0vgQLRnbIZdZqLyU9oLT7zAoQT9gA2N1g1/MP+KkoyTSo+v11Tx6AdjrC1O1vD8uMH0jdzTesUHIqLppnQFX4BIONeeII2OHvSJf0hCjYhedJ6s7SPFAnOqbDLPv0Z6hk1sCY0MPRBJeSoVcpdm4bqFdxG2g6k2U2nfrLamivGxMnVW6ou+9FVQbls52UDU2Q+Q4Q2SEFZX1Fk9aGRtkLtG04lNLnLhY9sFsXSgJKYcN9dKZeRi90iNGt1teXT4GwL8Oz1tvjNMm85La3qjn7Irrk+AKA9J7U610TSAbCxEV7WIoOvSze1MOfE09TIB7CEt5VuVPPaXbY5uZ1FVVgY4BiPHOAmrWXvMcCf6bBNqobPKg//dd51oAHRjot0PudNViSQbhZTAOBjRRi8qhVtNDkzEcnEDpve7xaH1QaymQLzqpBz0qt34HRDh9FE6temlkfypZDp9nQ0bZoMQV3ScU0Bp2slbBAFDHI5UUYPHa8S2fcbijzE3ghPAhqpe4+VIjbhUqvI3iUvYo3vMep3D/ol5qSySjENyEmA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: e9065ef6-b94e-4681-88dc-08dbdb4ac772 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:24:02.6307 (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: pBDdOtXgtojc2Gg+hshir3yvwm3CvIaAY/XNFKLQ7B1twgpcN7Q/hL54uXYhdbVe6CQQVZH7lHvcAp9DMUHn+2PqP9AxTp9EcjDeonyilQA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3709 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 scenario, management firmware is in charge of application firmware unloading instead of driver by keepalive mechanism. A new NSP resource area is allocated for keepalive use with name "nfp.beat". Driver sets periodically updates the PFs' corresponding word in "nfp.beat". Management firmware checks these PF's words to learn whether and which PF are alive, and will unload the application firmware if no PF is running. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfp_ethdev.c | 173 ++++++++++++++++++++++++- drivers/net/nfp/nfp_net_common.h | 17 +++ drivers/net/nfp/nfpcore/nfp_resource.h | 3 + 3 files changed, 189 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 96f0ae3fe3..bbc0109f5f 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -5,6 +5,8 @@ * Small portions derived from code Copyright(c) 2010-2015 Intel Corporation. */ +#include + #include #include @@ -16,6 +18,7 @@ #include "nfpcore/nfp_rtsym.h" #include "nfpcore/nfp_nsp.h" #include "nfpcore/nfp6000_pcie.h" +#include "nfpcore/nfp_resource.h" #include "nfp_cpp_bridge.h" #include "nfp_ipsec.h" @@ -234,6 +237,79 @@ nfp_function_id_get(const struct nfp_pf_dev *pf_dev, return phy_port; } +static void +nfp_net_beat_timer(void *arg) +{ + uint64_t cur_sec; + struct nfp_multi_pf *multi_pf = arg; + + cur_sec = rte_rdtsc(); + nn_writeq(cur_sec, multi_pf->beat_addr + NFP_BEAT_OFFSET(multi_pf->function_id)); + + /* Beat once per second. */ + if (rte_eal_alarm_set(1000 * 1000, nfp_net_beat_timer, + (void *)multi_pf) < 0) { + PMD_DRV_LOG(ERR, "Error setting alarm"); + } +} + +static int +nfp_net_keepalive_init(struct nfp_cpp *cpp, + struct nfp_multi_pf *multi_pf) +{ + uint8_t *base; + uint64_t addr; + uint32_t size; + uint32_t cpp_id; + struct nfp_resource *res; + + res = nfp_resource_acquire(cpp, NFP_RESOURCE_KEEPALIVE); + if (res == NULL) + return -EIO; + + cpp_id = nfp_resource_cpp_id(res); + addr = nfp_resource_address(res); + size = nfp_resource_size(res); + + nfp_resource_release(res); + + /* Allocate a fixed area for keepalive. */ + base = nfp_cpp_map_area(cpp, cpp_id, addr, size, &multi_pf->beat_area); + if (base == NULL) { + PMD_DRV_LOG(ERR, "Failed to map area for keepalive."); + return -EIO; + } + + multi_pf->beat_addr = base; + + return 0; +} + +static void +nfp_net_keepalive_uninit(struct nfp_multi_pf *multi_pf) +{ + nfp_cpp_area_release_free(multi_pf->beat_area); +} + +static int +nfp_net_keepalive_start(struct nfp_multi_pf *multi_pf) +{ + if (rte_eal_alarm_set(1000 * 1000, nfp_net_beat_timer, + (void *)multi_pf) < 0) { + PMD_DRV_LOG(ERR, "Error setting alarm"); + return -EIO; + } + + return 0; +} + +static void +nfp_net_keepalive_stop(struct nfp_multi_pf *multi_pf) +{ + /* Cancel keepalive for multiple PF setup */ + rte_eal_alarm_cancel(nfp_net_beat_timer, (void *)multi_pf); +} + /* Reset and stop device. The device can not be restarted. */ static int nfp_net_close(struct rte_eth_dev *dev) @@ -284,6 +360,10 @@ nfp_net_close(struct rte_eth_dev *dev) /* Now it is safe to free all PF resources */ PMD_INIT_LOG(INFO, "Freeing PF resources"); + if (pf_dev->multi_pf.enabled) { + nfp_net_keepalive_stop(&pf_dev->multi_pf); + nfp_net_keepalive_uninit(&pf_dev->multi_pf); + } nfp_cpp_area_free(pf_dev->ctrl_area); nfp_cpp_area_free(pf_dev->qc_area); free(pf_dev->hwinfo); @@ -693,11 +773,92 @@ nfp_fw_unload(struct nfp_cpp *cpp) nfp_nsp_close(nsp); } +static int +nfp_fw_reload(struct rte_pci_device *dev, + struct nfp_nsp *nsp, + char *card_desc) +{ + int err; + + nfp_nsp_device_soft_reset(nsp); + err = nfp_fw_upload(dev, nsp, card_desc); + if (err != 0) + PMD_DRV_LOG(ERR, "NFP firmware load failed"); + + return err; +} + +static int +nfp_fw_loaded_check_alive(struct rte_pci_device *dev, + struct nfp_nsp *nsp, + char *card_desc, + const struct nfp_dev_info *dev_info, + struct nfp_multi_pf *multi_pf) +{ + int offset; + uint32_t i; + uint64_t beat; + uint32_t port_num; + + /* + * If the beats of any other port changed in 3s, + * we should not reload the firmware. + */ + for (port_num = 0; port_num < dev_info->pf_num_per_unit; port_num++) { + if (port_num == multi_pf->function_id) + continue; + + offset = NFP_BEAT_OFFSET(port_num); + beat = nn_readq(multi_pf->beat_addr + offset); + for (i = 0; i < 3; i++) { + sleep(1); + if (nn_readq(multi_pf->beat_addr + offset) != beat) + return 0; + } + } + + return nfp_fw_reload(dev, nsp, card_desc); +} + +static int +nfp_fw_reload_for_multipf(struct rte_pci_device *dev, + struct nfp_nsp *nsp, + char *card_desc, + struct nfp_cpp *cpp, + const struct nfp_dev_info *dev_info, + struct nfp_multi_pf *multi_pf) +{ + int err; + + err = nfp_net_keepalive_init(cpp, multi_pf); + if (err != 0) + PMD_DRV_LOG(ERR, "NFP write beat failed"); + + if (nfp_nsp_fw_loaded(nsp)) + err = nfp_fw_loaded_check_alive(dev, nsp, card_desc, dev_info, multi_pf); + else + err = nfp_fw_reload(dev, nsp, card_desc); + if (err != 0) { + nfp_net_keepalive_uninit(multi_pf); + return err; + } + + err = nfp_net_keepalive_start(multi_pf); + if (err != 0) { + nfp_net_keepalive_uninit(multi_pf); + PMD_DRV_LOG(ERR, "NFP write beat failed"); + } + + return err; +} + static int nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, struct nfp_eth_table *nfp_eth_table, - struct nfp_hwinfo *hwinfo) + struct nfp_hwinfo *hwinfo, + const struct nfp_dev_info *dev_info, + struct nfp_multi_pf *multi_pf) { int err; char card_desc[100]; @@ -736,8 +897,10 @@ nfp_fw_setup(struct rte_pci_device *dev, return -EIO; } - nfp_nsp_device_soft_reset(nsp); - err = nfp_fw_upload(dev, nsp, card_desc); + if (multi_pf->enabled) + err = nfp_fw_reload_for_multipf(dev, nsp, card_desc, cpp, dev_info, multi_pf); + else + err = nfp_fw_reload(dev, nsp, card_desc); nfp_nsp_close(nsp); return err; @@ -1007,7 +1170,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) nfp_eth_set_configured(cpp, index, 0); } - if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo) != 0) { + if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo, + dev_info, &pf_dev->multi_pf) != 0) { PMD_INIT_LOG(ERR, "Error when uploading firmware"); ret = -EIO; goto eth_table_cleanup; @@ -1092,6 +1256,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) free(sym_tbl); fw_cleanup: nfp_fw_unload(cpp); + nfp_net_keepalive_stop(&pf_dev->multi_pf); eth_table_cleanup: free(nfp_eth_table); hwinfo_cleanup: diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index a40ddfd985..db2e5842ca 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -36,6 +36,19 @@ /* Number of supported physical ports */ #define NFP_MAX_PHYPORTS 12 +#define NFP_BEAT_LENGTH 8 + +/* + * Each PF has corresponding word to beat: + * Offset | Usage + * 0 | magic number + * 8 | beat of Pf0 + * 16 | beat of Pf1 + * 24 | beat of Pf2 + * 32 | beat of Pf3 + */ +#define NFP_BEAT_OFFSET(_x) (((_x) + 1) * NFP_BEAT_LENGTH) + /* Firmware application ID's */ enum nfp_app_fw_id { NFP_APP_FW_CORE_NIC = 0x1, @@ -59,6 +72,10 @@ struct nfp_multi_pf { bool enabled; /** Function index */ uint8_t function_id; + /** Pointer to CPP area for beat to keepalive */ + struct nfp_cpp_area *beat_area; + /** Pointer to mapped beat address used for keepalive */ + uint8_t *beat_addr; }; struct nfp_pf_dev { diff --git a/drivers/net/nfp/nfpcore/nfp_resource.h b/drivers/net/nfp/nfpcore/nfp_resource.h index f49c99e462..7ce4727b37 100644 --- a/drivers/net/nfp/nfpcore/nfp_resource.h +++ b/drivers/net/nfp/nfpcore/nfp_resource.h @@ -17,6 +17,9 @@ /* Service Processor */ #define NFP_RESOURCE_NSP "nfp.sp" +/* Keepalive */ +#define NFP_RESOURCE_KEEPALIVE "nfp.beat" + /* Opaque handle to a NFP Resource */ struct nfp_resource; From patchwork Thu Nov 2 02:23:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133758 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 F3DD843267; Thu, 2 Nov 2023 03:25:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3686542E95; Thu, 2 Nov 2023 03:24:08 +0100 (CET) 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 4888F42E86 for ; Thu, 2 Nov 2023 03:24:06 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E2A12NHujtnUYqn+F/nGc40lOJvbQlQe8KOgAK36Sn97DEq9Ar2CwFyNd8lKuTtMKTeSDlb3qDqnmLdRyBSfA6BI9hpDQkrzCWvB+G/W3TcEKDE0TM28dayUYjDpU9FCMnrdSIR76j7BztSVIOfuQQDsEtxA6cHB/3ids5xMPRyXse095jG6QSsKbQulFa7wfEUfKX/KaIx3ClnBS3Gh2oBFPRTY5eVW44UOIDEyMjNeWsJ6fKHzw4o9x6UVpLTxppYIw+zHtXjxCcHIo6xANRv4HZNmdrrrVOK07npKsQil5sOjJ9+c0bl0XY+e1Yj9LHJTRgNla5IRs57sjJn2vA== 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=UDp3tDsKTtTexA+KHj3QDi52dte7tToYuSTSOVfKSqY=; b=cl7YEir3iGF6xY4SQoqtafiptHDvJHiZQyY2QNl/dXD/fp9oxNZQtdx2JHI4reCX7TUoW8NHx0i/O3Tv8I+jakNzgGpgHpeXDVyDXo1JQgRVpPLiYecu0zoD5loOJoHC/AJO7FbqFktzUCWIm7YCg9ygranFHDzksfnKPlEV33IRU52HNlblTi/INV1F5JUNmLexBm60/X0pXVmOGWdeYvTxSCHu4s+tshiXWjha6SRGshN+SktIiwgZrL9cRSyy671GHEunt6xwqV9biHbvcRlhdaBWzg76a3aiHCb3/5hD/asA//zvxTwXLlqlXNq+7tNaz3XI5hJzdOQ2UJjUxQ== 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=UDp3tDsKTtTexA+KHj3QDi52dte7tToYuSTSOVfKSqY=; b=JvfyjRP00zo7i4M6s8q9FwAtWpNk1Ja99RVLifpuH74wRwDQtbH1b/e/okjFvWNsxz4ABFxYJ9EkZ7K00AARsOQ4Whwx6Zorp+Fxg6gIxJCWxsnJ0OmyzEYHBv5q4pUeh3voHgKrYv3dUPpKVXMVuXosTEaKI3ar9Aa3SkZEiug= 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 MN2PR13MB3709.namprd13.prod.outlook.com (2603:10b6:208:1e1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov 2023 02:24:04 +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.6933.027; Thu, 2 Nov 2023 02:24:04 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 11/11] drivers: enable multiple PF in application firmware Date: Thu, 2 Nov 2023 10:23:21 +0800 Message-Id: <20231102022321.2254224-12-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231102022321.2254224-1-chaoyong.he@corigine.com> References: <20231102022321.2254224-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BY5PR20CA0030.namprd20.prod.outlook.com (2603:10b6:a03:1f4::43) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|MN2PR13MB3709:EE_ X-MS-Office365-Filtering-Correlation-Id: 46adc254-576c-41b9-a35f-08dbdb4ac890 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ffg9uLg9fCKnWOH82MWO2ZeqEK1ykCV4fgRDpmptA9cHIfINjKnzOkIrs8Pe6rCNOXrlocOf35HkRRMXfQZdZveT7V5oioNI2Uu1yOQkm1BUnxYxLgib8YyPEcRj9/O3QHlmXenAL81MRSzJPXTr5DBuQMUB5cq5TQpRatGtohz2zj38oL0bsNMYfMiKXa8PQgoO2wL1ezu+SWMSKnBexNL4DaYWx1IdH3oyErgXc+NN2Co8GELz9qV5sT24VfGz0vbQmZNZBAVbU6WN/C7fVTSEUJevjj5BzQeBH81anpp+XPXBMQ6ItwA3/oY0xCJ2XcqNOxiulN4KFdOaJft3ZFxtvAAUGLzYk+q3n5Nowqi1u27JKlAqZo56GfSjg7y/y8j1mJGl9vx8Tz6Os+HyGzNRRrKB+BwO/fdmvoOoMgd/gC+0C0knbFja0qpNQVZE+bzG0YsQb+7+Zc9RE1AFNIyxCsY4fyqPendcRtN/lzydmF/PGBNdtgdBHqDALsHTXA9VSoEkQZd3UyrRtgsUdWAmEkHSkIbse8bbROddF80RGYWBNC1l9vuj3ldEnpEkXAJWkfcG7KC62iZaOIAZh6M+uJFJVkZAMgfsCa9AQQhRd4a01suJSqW1bCwe7A5CyIBnAmOQqzJNCMPVF1zKLFx159YoyzUXM8ye3kV9yU4= 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)(346002)(136003)(376002)(366004)(39840400004)(396003)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(478600001)(52116002)(36756003)(6486002)(6506007)(107886003)(38100700002)(83380400001)(41300700001)(6666004)(4326008)(8676002)(8936002)(2616005)(44832011)(2906002)(316002)(1076003)(6916009)(86362001)(26005)(66946007)(54906003)(6512007)(66556008)(66476007)(5660300002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wBB+47JNQR9sp94F7dlsUJXBp+5MX6tHd4GH9pGbqospClX4FuQjSakEEBqJDteoineRy2OePWnfQqZXPslEWISAGCzrzM3Gm81shCmx5hRsG6O+W2hI1IZ4ns3vkCRxJAeVZyk9KsXl3s5Di02bHTLEWJrj7+fMabWo41ppYoUAXMzvGIh5bL27nPQxgSrbrTC9yJ9+TFq2IQKqZHDF288iVgOFYcetSLT+iyNSKW4L2O2ndKtFeKqOhlf6/OMLqs6LA/4kESOZDKVjAgMNfZ8RGrK7CB3AnRfoikX6BXthv76NW4NAcbTmJAnKpKHohhqPWcR1oqDYnDplb9MNFILvx+PKiVZLDV0lm1QtT6aLWMFFa5IhssZxL33Hne4DU+t04vGRTfuI35NowzGC8UjU/uJ+eC8iMATU6VOu0mUqQpQVqBEkdHIeYVDoJ0TQdxSdfik1yb8MRBhso3+8nmlVFXqHSlFOSNQfYTkBCk6pJRe5HAkHgz/fzigp0/dZDT9g9y1qYuxKCKuWnJIpbt7YclinT7uZetmCpM8zmqEkPmdZCsZgxOizmOyo7blDBtH5u46mjg1QkV1Gbeg/jNjQI1BPC4KIak8wbpyjSm2vMcFgux2zAj7hnfc3a8im1iaw2oY7WLAC9EOAG113VLQ6NSnjeZMv8sSTPjaeXSAWk4Q0eOJ7EfOBJezciPM6e/r6Sp5WDvcTXvH4VwiaoTGufaCn+AHDNRPdcxkcqPZ+z4LtuXunOU51ZSG7g8fC9FXUU59Yub5fCLUH7Z1uQCz89QfFJV1Xbc9QXDcPcBggM7u1bxBQFVOGX0v9mK7P59lxuLDQBPoji1Iotg48uvoZ9IUKW+TEtUcWO9l+95qYY6AZmp5QFiPUjBiGHKRHKmSMoI0KdU+O2KQCPcgP8zWiitP9o4AQY2HiyrQ5tQJnGaxTZvdVFMApMtmOj0ESD2llrYiCPBBawbRvG6OxdhNvtPY4iDqbs8P5tAwNyLv7aDtm1Ey5WR/3jdj5P0f3RYsrg4EYalOMr7nJRcoRrwzl1LyY1I4Gpr7nO5AqJlZHf4cMvmUL++/fLG9dAc59VuMAper6GcW55I4uqAzODAuGSr7kse4lOMoIHbkLmBz+qreSTRKilqfBxnCDBhFSlP6I2JGBqdf193o1zfQ7SkeCGpcRm2qYrTSXuANN4sNYrpcxz1hrn00VZ9IUOoP9Wv1FdvgZ1AlOnQg4vwjcoG2DNo3LgdacUQ0cQXtW9DzmRJYdl4NmVK1Z0yHQlhDPt+xAH+GxTo+X1/B7Lc6hsdyNGumminKOIsbSAxPGRmNn+CFm4QdlGLL773MVwmAGE2Sx84zBROc5rMDtydB2EOLd3Pnb6lRmqeyNIt49b++D1pCbBIATQSOx9b+4rw0mfZ9l7DotPw8lahD3f/IlVF/Q3WOuSI/xvm7JoSnxOUe2pWJz45pM6O61PqwcJyjYNGfl6Hchbedf1TYJRvuB3F+yYBNkZjtsusXwWpJ11Nbp8POwvSM7pijYPuxqseohA281GPIqLuvS/nZkhZiPjgM97/T0WW7/lPNbUNYKWTeP0WitEUikQeB2ktlUo/O2s3jewMr866Q//vY4G1+r+A== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46adc254-576c-41b9-a35f-08dbdb4ac890 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2023 02:24:04.4827 (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: osx6/yiet0afYObvz95kdXaGAfRdY5NkpA0GcZftVyrMTf7NfbNHig+M48YxJ9/xg5CSvjlkY/pODneeW+DQr/ObqHmM/TtmlccGfOaWfd0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3709 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 For backward compatibility concern, the new application firmware is designed to support both single PF scenario and multiple PF scenario. Thus driver should inform application firmware which setup current is. This should be done as early as possible since the setup may affect some configurations exposed by firmware. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/common/nfp/nfp_common_ctrl.h | 1 + drivers/net/nfp/nfp_ethdev.c | 50 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/drivers/common/nfp/nfp_common_ctrl.h b/drivers/common/nfp/nfp_common_ctrl.h index 7033c8ea00..8a8a2c5efc 100644 --- a/drivers/common/nfp/nfp_common_ctrl.h +++ b/drivers/common/nfp/nfp_common_ctrl.h @@ -221,6 +221,7 @@ struct nfp_net_fw_ver { #define NFP_NET_CFG_CTRL_IPSEC (0x1 << 1) /**< IPsec offload */ #define NFP_NET_CFG_CTRL_IPSEC_SM_LOOKUP (0x1 << 3) /**< SA short match lookup */ #define NFP_NET_CFG_CTRL_IPSEC_LM_LOOKUP (0x1 << 4) /**< SA long match lookup */ +#define NFP_NET_CFG_CTRL_MULTI_PF (0x1 << 5) #define NFP_NET_CFG_CTRL_IN_ORDER (0x1 << 11) /**< Virtio in-order flag */ #define NFP_NET_CFG_CAP_WORD1 0x00a4 diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index bbc0109f5f..e5f1d9f6f1 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -935,6 +935,50 @@ nfp_check_multi_pf_from_nsp(struct rte_pci_device *pci_dev, return flag; } +static int +nfp_enable_multi_pf(struct nfp_pf_dev *pf_dev) +{ + int err = 0; + uint64_t tx_base; + uint8_t *ctrl_bar; + struct nfp_hw *hw; + uint32_t cap_extend; + struct nfp_net_hw net_hw; + struct nfp_cpp_area *area; + char name[RTE_ETH_NAME_MAX_LEN]; + + memset(&net_hw, 0, sizeof(struct nfp_net_hw)); + + /* Map the symbol table */ + snprintf(name, sizeof(name), "_pf%u_net_bar0", + pf_dev->multi_pf.function_id); + ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, name, NFP_NET_CFG_BAR_SZ, + &area); + if (ctrl_bar == NULL) { + PMD_INIT_LOG(ERR, "Failed to find data vNIC memory symbol"); + return -ENODEV; + } + + hw = &net_hw.super; + hw->ctrl_bar = ctrl_bar; + + cap_extend = nn_cfg_readl(hw, NFP_NET_CFG_CAP_WORD1); + if ((cap_extend & NFP_NET_CFG_CTRL_MULTI_PF) == 0) { + PMD_INIT_LOG(ERR, "Loaded firmware doesn't support multiple PF"); + err = -EINVAL; + goto end; + } + + tx_base = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ); + net_hw.tx_bar = pf_dev->qc_bar + tx_base * NFP_QCP_QUEUE_ADDR_SZ; + nfp_net_cfg_queue_setup(&net_hw); + rte_spinlock_init(&hw->reconfig_lock); + nfp_ext_reconfig(&net_hw.super, NFP_NET_CFG_CTRL_MULTI_PF, NFP_NET_CFG_UPDATE_GEN); +end: + nfp_cpp_area_release_free(area); + return err; +} + static int nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev, const struct nfp_dev_info *dev_info) @@ -1222,6 +1266,12 @@ nfp_pf_init(struct rte_pci_device *pci_dev) */ switch (pf_dev->app_fw_id) { case NFP_APP_FW_CORE_NIC: + if (pf_dev->multi_pf.enabled) { + ret = nfp_enable_multi_pf(pf_dev); + if (ret != 0) + goto hwqueues_cleanup; + } + PMD_INIT_LOG(INFO, "Initializing coreNIC"); ret = nfp_init_app_fw_nic(pf_dev, dev_info); if (ret != 0) {