From patchwork Mon Sep 26 06:59:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 116844 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 211ACA00C2; Mon, 26 Sep 2022 09:00:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4D63C427F0; Mon, 26 Sep 2022 09:00:28 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2111.outbound.protection.outlook.com [40.107.244.111]) by mails.dpdk.org (Postfix) with ESMTP id D68B441143 for ; Mon, 26 Sep 2022 09:00:24 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SelnhHNT257rna7z9XybG5OHTRmIG6NJ43z/kDBRD+slNTe/dNfUMv6JMxpHIjxP+e2pOcIuT3R7417+1MrHxh0a37xR/FtuAkiSZc5I36keVheoQfnesX5bfZ+eXLKBpt6LrWpIlTWNZs8LNFB1c5A/p0jcWvyNV3IXRydcnquyPfSTPT/DxF7hn+jlGGXTYLO/CswzBd1SkFgt3IneEYlEdUqHzzS3kpHbxF4ZYxniZ++WeQZOsRMNZ2a5POXcBNqB8JS1YULYtz6DhKyrWLeX0w65EuyelkEmBMN9BfdxadaWZZAcsOUwSNImK2lNt8uSTumkhMB8prA3T+MnFA== 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=cL+9gRDq+npF4lcT9e5VMG7tdwhBmtk8YZ/5m4preSo=; b=aEpDM8sO4kbzvQz2YaQA4tIgMBlfZYPmfeBUC4rWbOBlZdQHv7c0SWRInmQsxTXaDPJ023yd4VI/3Pk6W0XawRoZpvtk4PiqsE+/13mPv6Vkv8zNegF1rci1BmJAeaxqE67ZCV2ZYfT1bsVSoTIx6+G0ozYUaCbgRHTd1PDmsZcP0al8Ii8xEl+B3bbXkOTWIQrXLnQilwpWOyn7+L+QsENLePAIPeUhA6X4t3n49hJOBTpF5MvygV6MNri5DqGSq/ATdkr5I2W3Sc0uyGwcYrFoyluDigQU1ERkhR21wUYdOUuGniY20PPnK8k6w70tECoe0XLkmpHFUnFuhZpOrw== 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=cL+9gRDq+npF4lcT9e5VMG7tdwhBmtk8YZ/5m4preSo=; b=O+lvNcJTt9W2BAifKqJg4u4QwBcVn8Dxs6cPU/t/laNLdpVZu6p7LTFn3XQn1iEtkm7gg2/42rM17aduSb0CqRz19gLIAt8LLM6B519+qLYL8YFraVUrE5xse2GkeGEXBk0DES/eRuwyrrG8SGRniIi2mmdEEMS9VaxQ47znCfU= 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 SA1PR13MB4893.namprd13.prod.outlook.com (2603:10b6:806:18a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.14; Mon, 26 Sep 2022 07:00:23 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::779:2722:a8e5:503b]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::779:2722:a8e5:503b%7]) with mapi id 15.20.5676.014; Mon, 26 Sep 2022 07:00:23 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, niklas.soderlund@corigine.com, Chaoyong He Subject: [PATCH v10 03/13] net/nfp: move app specific init logic to own function Date: Mon, 26 Sep 2022 14:59:47 +0800 Message-Id: <1664175597-37248-4-git-send-email-chaoyong.he@corigine.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1664175597-37248-1-git-send-email-chaoyong.he@corigine.com> References: <1664175597-37248-1-git-send-email-chaoyong.he@corigine.com> X-ClientProxiedBy: SG2P153CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096::15) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SA1PR13MB4893:EE_ X-MS-Office365-Filtering-Correlation-Id: a51722af-2e26-44ec-d574-08da9f8cc847 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YGjMXApWvEFW4ryvMIc7oJNCi3Fkm8vsdX+uLY2XMumhORFWedQ/Po/4QAccEgYuwQrcNVj0HcUorE+Hg3oEW8LtN3lOLAnaVQgn9b9Hhy7MvrNRswOLDwG/UVq0FX7T7ZCNzyfFpdgO/+9Fo1ZiQNvPfyvGjay5D6tAFiqySsPpUfr8wTCZaU7wE2LaOx14BX7ks59E6Gj1+UMMVjJrQJS75bckV2ptaAO3xxTL+wIuaCzPDizjNSQDxrgUFXdZaXLHiHuBc1UrLZSDBhKltKdRdTFsl2rUKK8BfEg6ZbupVoELu6Ik6IToxbrdr6e4/45Y8jodiyo304rDFbZb23UnLy4fOhjYjvmqmU1p8JaZ/GtjekDhb3of2RvsAXba7bdLaUNd7HvTHjl1w4voeZwCMG/BNk4TqAQGclCnpUDBbxUrMwiTWWklaGlNczeSmGDBVu1RYUEgEPwROUyKWAFC9UdxnH7JgpCczXSQra7fh8i2vAJ7rxN7rzRBCjgRqsz3e05P2ywSMaj7qf6+NafOMwQBNawkJiwHR7eE+7o0uab21lQyavMWYIhPtVVBGCBRZpEJ67/npSx33hvcUg6Om/14E7MA1aukWts0TBA2bsXl5xPHNesPonS44tA6FfJGNn45vuLEaM6LCbvnM0UJDO4Ako1QuuPzRZPfBNfXoAA+udZgZjQCSN/ruGatVJm2JKIifIC3IEOPuDVKXGfrmD1OeDN0m58A8TSAboBdULCMiCcdo126VXHQ9xEaQPx/SPIzC7cphA0+/SYc1g== 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:(13230022)(4636009)(366004)(396003)(39830400003)(136003)(376002)(346002)(451199015)(36756003)(38100700002)(38350700002)(2906002)(86362001)(44832011)(66946007)(8936002)(66556008)(66476007)(5660300002)(8676002)(4326008)(83380400001)(186003)(6512007)(6916009)(316002)(52116002)(6666004)(2616005)(26005)(6506007)(478600001)(41300700001)(107886003)(6486002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?gtFAOoEa8V+EIckH2kT3yZ2+PagN?= =?utf-8?q?BKWORyjIYrr2p2Vmebwq4Vpiuo8f6MpeNu8MPEfTyookhK4l0q+WO/eY1sYDHFAPP?= =?utf-8?q?3q0nvqhjBdzHj/Jy0JZGgMgzOTY9BHwmJu8hkeGJBdR8eP8/MVywRvESbEIYqILHr?= =?utf-8?q?DIVkb5kEeJdVreIx6AffjOF3QK4WMdlozXD6liJfZLYZB3rwSmHwxFuQ6lAcsKImD?= =?utf-8?q?RAH7k7vmJYSWsWj0hIpf+zJpcbUy2XKDKQZNH4WHndxThVT4iev3ShucrpDiY/zfL?= =?utf-8?q?KhoaHqs6/Cr5zryIYThaOBhslX2hl1SNYz8pitCM8Hq6OBXst7Qri5QRzK4+o43EB?= =?utf-8?q?8G/krb/K/arPZQFXIc9qVVoZjl3o+JVBj5oN/J6015crLqyD2LNgmQAlVsFHickWl?= =?utf-8?q?bGAiFdsFOf4ciTmKwYzUEl9KqhIWiYG95YW5oMWYde4PUGJkoC7TRfJ5ZMm+S0KQb?= =?utf-8?q?Yqcjl2vu1Ufa998brYcjCW2DYDW4U2jGMx/5vellrLyXxgNhLglACB1Tf/6b0tMY+?= =?utf-8?q?uthHCKAYmXC1c+xRR0YDYig33SDo/ldHvNGMA0ajLBKmM/LgNNZrB+m2pluDsEJ+4?= =?utf-8?q?C1wRCQONfR+H6WJ4VtBBRyhRhU6SRan9yfbuhcpZwZBOyn0ubeoCspsCz6tFlFWJU?= =?utf-8?q?9itCnX8Z3nDuNuqc/q1O+orBLCLUtD8h/DTVlmkAmnpy0WAvaQBS1QXjgUSr6AalE?= =?utf-8?q?/ktf2zju+2tTGwFTPumZ3ogFQqVdHYFSA4w0YBRx+gEatxwSTM1TY+ixXdGnfEtQS?= =?utf-8?q?pcmXZDZdQtwGhLjT2SzxtMjDitAmze2U9Yf34I92MTt8U8U2TbIxPnTm/phtLmOl7?= =?utf-8?q?Sw/1Hnuek0RwRvcwEo+Nasj0x+FaZUOPBY70bEWZzAdVztoyUECDbBDv+0iBmPoj8?= =?utf-8?q?I5Ram/50JDV8wfjCKulw8AMLp/VkwM4jPtZAkiFoCUKlawXpNyXHLSYW4+0Hcq3g2?= =?utf-8?q?JCMcUkd1JsDwqz9ZOTH41ffZuNvpst/pD+wuQF7uyBF+5P3L26pZ/1xdm4CnCuY0f?= =?utf-8?q?ivZyE0zrublrKbWWbrO+Llb/9KihvMv/VyzFA3kqlrvIKVVnZUF3KkAawbcJIUWJ4?= =?utf-8?q?GXihoRbo7P6RmyxV3dGGUzatplhi4eVNJT3QP8dH9yJ8dMCNAvDQjn89If7MZWQCN?= =?utf-8?q?Y84PbiPaPXeu1Ay3U7T8LjSc2A0qY8UU7u/fOZZD9R5ZjCGmr3T/p1eWBAbmRcKGN?= =?utf-8?q?Ynw2ZQPVAztivKGErCKUjX37MMYS5f9KeJGAt9wdsn+wWcihbP8o8r/qFWsnwyrIy?= =?utf-8?q?4KHwME5w0aQwUtO5eeMzKcbGD+GczPj7wkMIJi1yDXNJsJiOQ/hz4iuKDBRdK5srS?= =?utf-8?q?C78PHj2yrxljiCkIvs3VFyC1A6cFBE8Q/UL8fMUaWyR/owQ+YJhnTPuK7/sDJsyYz?= =?utf-8?q?gew0/L7CDyzYgqx2b0WFGdmgVSjIbSgD3Xt9z7JFxnQuoithGH7Xo5HfEi6KU/wPE?= =?utf-8?q?jqKFMI2/6qiYd6+THMVZFK80fi3p9vMot0z/U71Hkc9ykgSQxLtdEBkgIATOCwmVc?= =?utf-8?q?w8eViQKPNlkHJ7B9jth/+8USRSO5Kh5M1Q=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: a51722af-2e26-44ec-d574-08da9f8cc847 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2022 07:00:23.3380 (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: rbFaM0iHNr68znFJznFJ1FypoOAksmhqGnM4xGtfbcrC7Js+Jkf1ZjqaC4n0SwK3GRYbwxF0L9w70CtbcKj2n413E2qqTMsRVTYNnc5YX8w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR13MB4893 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 NFP card can load different firmware applications. This commit move the init logic of corenic app of the secondary process into its own function. Signed-off-by: Chaoyong He Reviewed-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 90 +++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 30 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 14c6d69..b0b3ef8 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -996,6 +996,49 @@ return ret; } +static int +nfp_secondary_init_app_fw_nic(struct rte_pci_device *pci_dev, + struct nfp_rtsym_table *sym_tbl, + struct nfp_cpp *cpp) +{ + int i; + int err = 0; + int ret = 0; + int total_vnics; + 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); + if (err != 0 || total_vnics <= 0 || total_vnics > 8) { + PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value"); + return -ENODEV; + } + + for (i = 0; i < total_vnics; i++) { + struct rte_eth_dev *eth_dev; + char port_name[RTE_ETH_NAME_MAX_LEN]; + snprintf(port_name, sizeof(port_name), "%s_port%d", + 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); + if (eth_dev == NULL) { + PMD_INIT_LOG(ERR, "Secondary process attach to port %s failed", port_name); + ret = -ENODEV; + break; + } + + eth_dev->process_private = cpp; + hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); + if (nfp_net_ethdev_ops_mount(hw, eth_dev)) + return -EINVAL; + + rte_eth_dev_probing_finish(eth_dev); + } + + return ret; +} + /* * When attaching to the NFP4000/6000 PF on a secondary process there * is no need to initialise the PF again. Only minimal work is required @@ -1004,12 +1047,10 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) { - int i; int err = 0; int ret = 0; - int total_ports; struct nfp_cpp *cpp; - struct nfp_net_hw *hw; + enum nfp_app_fw_id app_fw_id; struct nfp_rtsym_table *sym_tbl; if (pci_dev == NULL) @@ -1043,37 +1084,26 @@ return -EIO; } - total_ports = nfp_rtsym_read_le(sym_tbl, "nfd_cfg_pf0_num_ports", &err); - if (err != 0 || total_ports <= 0 || total_ports > 8) { - PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value"); - ret = -ENODEV; + /* Read the app ID of the firmware loaded */ + app_fw_id = nfp_rtsym_read_le(sym_tbl, "_pf0_net_app_id", &err); + if (err != 0) { + PMD_INIT_LOG(ERR, "Couldn't read app_fw_id from fw"); goto sym_tbl_cleanup; } - for (i = 0; i < total_ports; i++) { - struct rte_eth_dev *eth_dev; - char port_name[RTE_ETH_NAME_MAX_LEN]; - - snprintf(port_name, sizeof(port_name), "%s_port%d", - pci_dev->device.name, i); - - PMD_DRV_LOG(DEBUG, "Secondary attaching to port %s", port_name); - eth_dev = rte_eth_dev_attach_secondary(port_name); - if (eth_dev == NULL) { - RTE_LOG(ERR, EAL, - "secondary process attach failed, ethdev doesn't exist"); - ret = -ENODEV; - break; + 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); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Could not initialize coreNIC!"); + goto sym_tbl_cleanup; } - - hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); - - if (nfp_net_ethdev_ops_mount(hw, eth_dev)) - return -EINVAL; - - eth_dev->process_private = cpp; - - rte_eth_dev_probing_finish(eth_dev); + break; + default: + PMD_INIT_LOG(ERR, "Unsupported Firmware loaded"); + ret = -EINVAL; + goto sym_tbl_cleanup; } /* Register the CPP bridge service for the secondary too */