From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AD06045495; Wed, 19 Jun 2024 12:02:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A5E2A42E7D; Wed, 19 Jun 2024 11:59:43 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2093.outbound.protection.outlook.com [40.107.243.93]) by mails.dpdk.org (Postfix) with ESMTP id 968B342E88 for ; Wed, 19 Jun 2024 11:59:33 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Is1Iqphmp+F8aabrTOISbiqbAgk5ZJpyjV7lNE8dHluEunKndcSLoCDqIpl8PzmAKqF6bGDHgqdsxkd3zQW4uptbF4x2EMQCrmCPK+NSlS0vCnMXQk3QPV/yWzpLgtkzsG0aP2W+PW5+YTOyW1vVYKqFfIWa6h6H+ohJN6vK3dPAxxM4O4o8kVO/pn63/6ukd9Ik7FfxrHhrgj0i8BQ4U0pKyHGkojIVeuiLKAaYrCRX9cBYEcckvMvsAzbwrWLwMZfieNCSlvXEjhNdM52afhGUD0mWWhzAgLI54zsYavDVOslLA3PC/xSEsY3JLHalZH8PzwNiZHyJ/XQ+58g8fw== 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=M2hP7U3bScsXS80Y4pbE6NFKM2mmvXMlw8V+Gf6WTvQ=; b=ZIyPc69TorfMKp/M4iXjzPHDnL7E2RE+OO2tzbRk+dyrVmoHSuDq2Qtb+HdjSCCqy2Cfh4aObpkEnus2aGEr9uZQpmQp4EE2uA9zNWRC76E/6K9bh36140CprFHYXnt450B9a13CvUptt1v8Dzh48ShuD+a1Dc9s59Qa3l7aqlccERbqxCkSIGvog1z4B1uD5FhLnew76UkJh3T+rLccTW5q8Pi0LuvCtjwDSbsgfqXsg4Yj8z1HSC+2jVOzkI9m9PExGGXIr5ELybBHMKKuACH5gsdi7ms+205Ct8mw7JisTYJHoRq24hd6uFd/93tOjdOdqsyssJIQ8AfgKpk5yw== 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=M2hP7U3bScsXS80Y4pbE6NFKM2mmvXMlw8V+Gf6WTvQ=; b=s+1ppsr58R6mr15DoOgtiJRkIMoM71HhPg/dj2vEHWVQwJZWBxyKyNaTz5Whdz9K/XGL7/pTpg2K4L5UVoEx37ST4KRI5+LMUWCVVtpN+UXKewE+9Cx91foSz0iAYacFOn6kkS6GLSmImlqaZ4htto5AGDXlbiZ8NOkJmoKMd50= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by MN2PR13MB3912.namprd13.prod.outlook.com (2603:10b6:208:263::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.31; Wed, 19 Jun 2024 09:59:32 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%4]) with mapi id 15.20.7677.030; Wed, 19 Jun 2024 09:59:32 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 22/23] net/nfp: add device active command for nsp service Date: Wed, 19 Jun 2024 17:58:29 +0800 Message-Id: <20240619095830.3479757-23-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240619095830.3479757-1-chaoyong.he@corigine.com> References: <20240619095830.3479757-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SJ0PR13CA0057.namprd13.prod.outlook.com (2603:10b6:a03:2c2::32) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|MN2PR13MB3912:EE_ X-MS-Office365-Filtering-Correlation-Id: 43f210a0-46fb-4bca-bdfd-08dc90468410 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230037|366013|376011|52116011|1800799021|38350700011; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?m3ZgrF4EEDLs0y7miaid3OG8hvIYItEYf93pR7IRrQhZLLQVzu8vDHIniPCt?= =?us-ascii?Q?XQoeBV+EJ7fYWKfFkTgw1lYDZjpZ6oZua+JOH1E2FSG50iy1U7hnUgp7lUzO?= =?us-ascii?Q?1V2SMXbQoGVaGbf8GiE/jnooEHfid9/5TXgkLdNcA5w0KhXiZGUETTrKztxV?= =?us-ascii?Q?blegeVLmOnE11z9lKd2eW8WFkAfhPGtMyk++n8/dfqp15VwdTH59MzBWrM/h?= =?us-ascii?Q?YTlbXGWMLNVIfE02CgYxi19Go6iTDLRdGQ+aZk0pUQc/kQbr+9CJwWz90YM7?= =?us-ascii?Q?AES2/T6Db71p3jrN54GoJfORGL9S8UmMQKN4Ny0NrobitloYN+Ij+VS26VAP?= =?us-ascii?Q?0WKS/gsfM5F44cr3G3t3AStCGmEaKejBqp451TwXGIGR4l7e04i1ZUHAVlOb?= =?us-ascii?Q?Bq65hm58EH8sBgeHDhbviqGmTGx8nGkzCIoPLoeovPQk/iNMhIXekiYfhOV4?= =?us-ascii?Q?zRLHBBQOkMK+6roqbVqIPA6114738O8pGnmtpqhYll+2imDQc1yXVM0IZ+hs?= =?us-ascii?Q?GdbYmPPVtqp59Z4UjdUxreCv6+ZQjEjG9L7c0DO1+A5kNTIfwXMwOlJiGWIw?= =?us-ascii?Q?JVXU5B5UIb0IgQdMljrccYR5CCUS1nTOuFKNHxDIKkvj+wkLEXjDyM8CSrRk?= =?us-ascii?Q?D5rzWEBgpNkWDEAGyJmS11b2AUjaGj56N9DiRdqM3JHxOVCpTYFOkWewDZ26?= =?us-ascii?Q?S+uJ+Q/ntCq9VVA17PVJb6wgCZGsEKhmS6GukaBJxenytUyxWBHPfkde8dbp?= =?us-ascii?Q?vhYZZOnge2shFdypEhRtRra6uwjz2DmpBb+xn3Jc/oONcTcEvIzuKNXXwH1O?= =?us-ascii?Q?ax9S/FsQWgqcDKaGs+/4zZt99bS7i8jGJiRxm8/nnhq1FFoIz2tu4XNKny9/?= =?us-ascii?Q?RD9XKI8MlQ8JfdIvRAKbMFTKEQUodMtUbDaig3BQd6lBzB4TvBquBpMmOCGI?= =?us-ascii?Q?fuCw7G29jwo0ReMM4edJtUM+Rg6FOPM0W7pzcQgeCN5jIQ0L6fyPvOn0bJdX?= =?us-ascii?Q?7ydwYS0cla4FvNoKG0Jhxzb865bHhNs76Q2t0Evxj44uxBNI8sc9DNcH/x71?= =?us-ascii?Q?afY0Ae19aBbMIoj4ZiajaySXvuL6RYtQ1KkpZE+UTj76+RqtZT46JyTwIVgr?= =?us-ascii?Q?is+irXMQ5GtKI5mZU7tzwLHolpqswEyO65sLp+k+fTofo2U2YBpz8m0GbqMc?= =?us-ascii?Q?J6qvI9jkRDjNV8BoUYw5W04HCUuBxHmHdZMnOOtN8K7nF7ueIkephwcccBiQ?= =?us-ascii?Q?P0/HTnhcBUuHB7xz7ilnsQZzoibMVNYtLGsCAVdEP+1lxXbskH2E36BG6PLe?= =?us-ascii?Q?P6UN7KVYFKsnkc43nvw+J9RjX0yUywyDbqIOvvQB1OSrq0ZYZL69grsNkZFj?= =?us-ascii?Q?Vrw9JUE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230037)(366013)(376011)(52116011)(1800799021)(38350700011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NGfefggu3zAl0aodjHhrGN7RjFN+wFrHqoeo0wT9/YvT0clOWgS2lQfW5I5j?= =?us-ascii?Q?OEWFIRrUdcfVnOnYrTJJl4Ko2cdztZO1LojOiv7fAjzjewjSY8gnOqDMfW4u?= =?us-ascii?Q?Kd1wRjZjla3LShGkND3z4v666ScEjv/OxkuRZ7BIMAjGN0RYsDjFDdaSHECW?= =?us-ascii?Q?yQ8WQkY8i3lLOaWHEI0vKLAWdVRQ9Z7489/ureRz68x/m61UBfofVZwj8+1i?= =?us-ascii?Q?Rs7MMBi1nRiJATWGbPvP5NnlhS4e+UGzlySBSO5sg/hsQqk0XO01Mzy9YDpD?= =?us-ascii?Q?tR3cM1KorO9lrC+gxxNbL4ao8xXEHwjR7bSTVQBACV7GlRj/dxG9yvhpBsoT?= =?us-ascii?Q?qp9cUSA+fGEog3JF/r8FSSu+Aqe7uzNW7MPUoIPB+qjIiTS9DEHWPZlqIjFb?= =?us-ascii?Q?D3USH1+j5gctu8YHoUy3X55HB/+UxrIZUMjdETjbihq2h5Awea7SUijE/AIJ?= =?us-ascii?Q?vF7fOVrwvOS2ZceKTokI8JeVbM97hsyV84kPjqa/ck0Ja8hJaa3fsZccaQw+?= =?us-ascii?Q?Gpjnplt1ufimpKHy9w/C44ZsmzfSRF5e2BWxDtVTP7l0KjuTmY3bSgNnyDmc?= =?us-ascii?Q?BlMNMErMAEpe1ecLCvQwSlIAaFvOx8YuW7tPrtLrF95MFTppfdTNq25D751f?= =?us-ascii?Q?J/hTUy46ck3oNxzgQ/gdqpjBUnN/poHYbODA+bHRF8O/Csv+WrRO84tEhN52?= =?us-ascii?Q?gOu4klLKYQCj/bgJpukTO2av5Dwk/rB6Kh5K+BWBeTENOSKNa0d9mejdZ75s?= =?us-ascii?Q?Lppei4rOpW1vvEEyZHxMk2zBGQqpEnYw9NRkyrzDvr9wdaQT/rbCa/ZQMsEj?= =?us-ascii?Q?1iuGh9IFwvmlrENEhZstOE4cc+agaoHOM6uPsePko2vNmEVC5Kn7cQ0HqBjj?= =?us-ascii?Q?VbUoLvBNGZmHcIZ3E4NHI0Gw7vHs+QkzxnmOyTs1zRJ1JVolnr5ND3QeA34L?= =?us-ascii?Q?djMyNQxaIyU3eKPdDkRzTJybdHgx2moH0pBqhikIc4d871N3cH7r4bN/6OWX?= =?us-ascii?Q?Jbx1GnTLBYJcjt93le3jMcvbtLomyImdurBD+dM3TSFz94gpKeLl7UpqhEu3?= =?us-ascii?Q?RQlmuIr06gABRrqIvq529hS9H0ye5Sp4sEZmYzlJFlIoQ+ec6Xndlmu5a8bd?= =?us-ascii?Q?lWlKqxlGRfwm5yLfX2A/xKCiGsWlSdnTzfNAwKeaRqpiOxvLyrBxk25Gr5MK?= =?us-ascii?Q?a5gFlL4SWB+7R3gGbLokEPVlWOG2gteccUPjL6kiufjbCoPfxZ2b7oMV0gLI?= =?us-ascii?Q?CUiZ/qfjFCA5efwjpYh9tDozauTUlIc+S/7zZyPk/tQsUBNRDotXSIzvzKiD?= =?us-ascii?Q?M+zUQEPVAoF7UosKTLVDTGjXTHqKCD+n/FHFdHHi0EjRphdOsbm1USbxJF2e?= =?us-ascii?Q?XCPyIx55ue80ONwYa7bdVQRabt8E86lRa8axEERIc0mwE+qDCCH6Ag0SmJrd?= =?us-ascii?Q?xKvtif9IbNxRRzp5WkNclLi3R6Uu0EeN94sBTZWQd3QTLVgpO3SLT4wPMuiG?= =?us-ascii?Q?g94XiWiDSfTTqPPX6hKqMLPFiC2aoxQhmH3YbP8CUBwSIjOa2+seOHXn7xzL?= =?us-ascii?Q?cr9DNK59QxrMGN0kvRjxOU6Mlf68BCXUfiXVDj29U7lSYVj009m4IlwPqgbg?= =?us-ascii?Q?Hg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43f210a0-46fb-4bca-bdfd-08dc90468410 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2024 09:59:32.0105 (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: xB6FU/ZEFwcXYSLrnWsilXYsKoqlYdxVH5FeQZYviJDmaxm/Cp/jwDN8q0B/QC3qPn4RVmO9Cv5pU67w+PXzpaJROivnaE3oPrrNOoS5xY0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3912 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Peng Zhang In multiple PF case, VFs belong to PFs except PF0 will not able to send traffic when PF0 is not activated. So PMD add device active command to active the PF0 when the probing PF is not PF0. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- drivers/net/nfp/nfp_ethdev.c | 30 ++++++++++++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_nsp.c | 10 ++++++++++ drivers/net/nfp/nfpcore/nfp_nsp.h | 1 + 3 files changed, 41 insertions(+) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 1d88f33756..d560bd695f 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -1108,6 +1108,29 @@ nfp_net_init(struct rte_eth_dev *eth_dev, return err; } +static int +nfp_net_device_activate(struct nfp_cpp *cpp, + struct nfp_multi_pf *multi_pf) +{ + int ret; + struct nfp_nsp *nsp; + + if (multi_pf->enabled && multi_pf->function_id != 0) { + nsp = nfp_nsp_open(cpp); + if (nsp == NULL) { + PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle"); + return -EIO; + } + + ret = nfp_nsp_device_activate(nsp); + nfp_nsp_close(nsp); + if (ret != 0 && ret != -EOPNOTSUPP) + return ret; + } + + return 0; +} + #define DEFAULT_FW_PATH "/lib/firmware/netronome" static int @@ -2133,6 +2156,13 @@ nfp_pf_init(struct rte_pci_device *pci_dev) goto eth_table_cleanup; } + ret = nfp_net_device_activate(cpp, &pf_dev->multi_pf); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Failed to activate the NFP device"); + ret = -EIO; + goto eth_table_cleanup; + } + if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo, dev_info, &pf_dev->multi_pf, pf_dev->devargs.force_reload_fw) != 0) { PMD_INIT_LOG(ERR, "Error when uploading firmware"); diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c index 6a2ba709ab..7dfb472723 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp.c @@ -80,6 +80,7 @@ enum nfp_nsp_cmd { SPCODE_VERSIONS = 21, /* Report FW versions */ SPCODE_READ_SFF_EEPROM = 22, /* Read module EEPROM */ SPCODE_READ_MEDIA = 23, /* Get the supported/advertised media for a port */ + SPCODE_DEV_ACTIVATE = 29, /* Activate hardware for multiple pfs case */ }; static const struct { @@ -729,6 +730,15 @@ nfp_nsp_hwinfo_set(struct nfp_nsp *state, return nfp_nsp_command_buf(state, &hwinfo_set); } +int +nfp_nsp_device_activate(struct nfp_nsp *state) +{ + if (nfp_nsp_get_abi_ver_minor(state) < 38) + return -EOPNOTSUPP; + + return nfp_nsp_command(state, SPCODE_DEV_ACTIVATE); +} + int nfp_nsp_read_media(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 2ce05c2ec9..003cdc5fa3 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.h +++ b/drivers/net/nfp/nfpcore/nfp_nsp.h @@ -16,6 +16,7 @@ uint16_t nfp_nsp_get_abi_ver_major(struct nfp_nsp *state); uint16_t nfp_nsp_get_abi_ver_minor(struct nfp_nsp *state); int nfp_nsp_wait(struct nfp_nsp *state); int nfp_nsp_device_soft_reset(struct nfp_nsp *state); +int nfp_nsp_device_activate(struct nfp_nsp *state); int nfp_nsp_load_fw(struct nfp_nsp *state, void *buf, size_t size); int nfp_nsp_mac_reinit(struct nfp_nsp *state); int nfp_nsp_read_identify(struct nfp_nsp *state, void *buf, size_t size); -- 2.39.1