From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E0B4C6FA82 for ; Mon, 26 Sep 2022 07:00:42 +0000 (UTC) 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> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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?B?Z3RGQU9vRWE4VitFSWNrSDJrVDN5WjIrUGFnTkJLV09SeWpJWXJyMnAyVm1l?= =?utf-8?B?YndxNFZwaXVvOGY2TXBlTnU4TVBFZlR5b29raEs0bDBxK1dPL2VZMXNZREhG?= =?utf-8?B?QVBQM3EwbnZxaGpCZHpIai9KeTBKWkdnTWd6T1RZOUJId21KdThoa2VHSkJk?= =?utf-8?B?UjhlUDgvTVZ5d1J2RVNiRUlZcUlMSHJESVZrYjVrRWVKZFZyZUl4NkFmZmpP?= =?utf-8?B?RjNRSzRXTWRsb3pYRDZsaUpmWkxZWkIzcndTbUh3eEZ1UTZsQWNzS0ltRFJB?= =?utf-8?B?SDdrN3ZtSllTV3NXajBoSXBmK3pKcGNiVXkyWEtES1FaTkg0V0huZHhUaFZU?= =?utf-8?B?NGlldjNTaHVjcnBEaVkvemZMS2hvYUhxczYvQ3I1enJ5SVlUaGFPQmhzbFgy?= =?utf-8?B?aGwxU05ZejhwaXRDTThIcTZPQlhzdDdRcmk1UVJ6SzQrbzQzRUI4Ry9rcmIv?= =?utf-8?B?Sy9hclBaUUZYSWM5cVZWb1pqbDNvK0pWQmo1b04vSjYwMTVjckxxeUQyTE5n?= =?utf-8?B?bVFBbFZzRkhpY2tXbGJHQWlGZHNGT2Y0Y2lUbUt3WXpVRWw5S3FoSVdpWUc5?= =?utf-8?B?NVlXNW9NV1lkZTRQVUdKa29DN1RSZko1Wk1tK1MwS1FiWXFjamwydnUxVWZh?= =?utf-8?B?OTk4YnJZY2pDVzJEWURXNFUyakdNeC81dmVsbHJMeVh4Z05oTGdsQUNCMVRm?= =?utf-8?B?LzZiMHRNWSt1dGhIQ0tBWW1YQzFjK3hSUjBZRFlpZzMzU0RvL2xkSHZOR01B?= =?utf-8?B?MGFqTEJLbU0vTGdOTlpyQittMnBsdURzRUorNEMxd1JDUU9OZlIrSDZXSjRW?= =?utf-8?B?dEJCUnloUmhVNlNSYW45eWZidWhjcFp3WkJPeW4wdWJlb0NzcHNDejZ0RmxG?= =?utf-8?B?V0pVOWl0Q25YOFozbkR1TnVxYy9xMU8rb3JCTENMVXREOGgvRFRWbG1rQW1u?= =?utf-8?B?cHkwV0F2YVFCUzFRWGpnVVNyNkFhbEUva3RmMnpqdSsydFRHd0ZUUHVtWjNv?= =?utf-8?B?Z0ZRcVZkSFlGU0E0dzBZQlJ4K2dFYXR4d1NUTTFUWStpeFhkR25mRXRRU3Bj?= =?utf-8?B?bVhaRFpkUXR3R2hMalQyU3p4dE1qRGl0QW16ZTJVOVlmMzRJOTJNVHQ4VThV?= =?utf-8?B?MlRiSXhQblRtL3BodExtT2w3U3cvMUhudWVrMFJ3UnZjd0VvK05hc2oweCtG?= =?utf-8?B?YVpVT1BCWTcwYkVXWnpBZFZ6dG95VUVDRGJCRHYrMGlCbVBvajhJNVJhbS81?= =?utf-8?B?MEpEVjh3ZmpDS3VsdzhBTUxwL1Zrd000alB0WkFraUZvQ1VLbGF3WHBOeVhI?= =?utf-8?B?TFNZVzQrMEhjcTNnMkpDTWNVa2QxSnNEd3F6OVpPVEg0MWZmWnVOdnBzdC9w?= =?utf-8?B?RCt3dVFGN3V5QkYrNVAzTDI2cFovMXhkbTRDbkN1WTBmaXZaeUUwenJ1Ymxy?= =?utf-8?B?S2JXV2JyTytMbGIvOUtpaHZNdi9WeXpGQTNrcWxydklLVlZuWlVGM0trQWF3?= =?utf-8?B?YmNKSVVXSjRHWGlob1JibzdQNlJteXhWM2RHR1V6YXRwbGhpNGVWTkpUM1FQ?= =?utf-8?B?OGRIOXlKOGRNQ05BdkRRam44OUlmN01aV1FDTlk4NFBiaVBhUFhldTFBeTNV?= =?utf-8?B?N1Q4TGpTYzJBMHFZOFVVN3UvZk9aWkQ5UjVaakNHbXIzVC9wMWVXQkFibVJj?= =?utf-8?B?S0dOWW53MlpRUFZBenRpdktHRXJDS1VqWDM3TU1ZUzVmOUtlSkdBdDl3ZHNu?= =?utf-8?B?K3dXY2loYlA4bzhyL3FGV3Nud3lySXk0S0h3TUU1dzBhUXdVdE81ZWVNektj?= =?utf-8?B?YkdEK0djelBqN3drTUlKaTF5RFhOSnNKaU9RL2h6NGl1S0RCUmRLNXNyU0M3?= =?utf-8?B?OFBIajJ5cnhsamlDa0l2czNWRnlDMUE2Y0ZCRThRL1VMOGZNVWFXeVIvb3dR?= =?utf-8?B?K1lKaG5UUHVLNy9zREpzeVl6Z2V3MC9MN0NEeXpZZ3F4MmIwV0ZHZG1nVlNq?= =?utf-8?B?SWJTZ0QzWHQ5ejdKRnhuUXVvaXRoR0g3WG81SGZFaTZLVS93UEVqcUtGTUky?= =?utf-8?B?LzZxaVlkNitUSE1WWkZLODBmaTNwOXZNb3Qwei9VNzFIa2M5eWtnU1F4THRk?= =?utf-8?B?RUJrZ0lBVE9Dd21WY3c4ZVZpUUtQTmxrSEo3QjlqdGgvKzhVU1JTTzVLaDVN?= =?utf-8?B?MVE9PQ==?= 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 */ -- 1.8.3.1