From patchwork Tue Oct 24 02:28:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133216 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 126CE431EB; Tue, 24 Oct 2023 04:31:19 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7E26F42DB1; Tue, 24 Oct 2023 04:30:05 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2100.outbound.protection.outlook.com [40.107.95.100]) by mails.dpdk.org (Postfix) with ESMTP id 90FDD427E0 for ; Tue, 24 Oct 2023 04:29:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RFe9fluDC9bI6p4GYMp/R6VgeiHWi4FYFvQzZcjDB4hCGLVmHNFS3cnLmRFLmcbdgGq9Gc0jVH2a/CLjAY8evWJJHGk7ZwOzsBtYVE4oa6mh5RGx30koi+oPXiSJCkzaOsFGG1seKPRrcy8MeauUr8W+KrwDW56Qnf639XNPxnDyLZ+vcNoqcYYqZUOXsZ0ry5M9O4fv1mJDw6dTexiNgFe+jAj2bNVnqIjJS93iDlafjkrouFhEYvbd42wWsrSVOncX708vqsHqxQwbNpI/UEUZ+WdONdKJeDoGFpRwJYoehSHU6X3dyF3yC6v/G5hOo8BoT/H+m5RvNdQybyP/qA== 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=H7hAf+/pkbIyxjDvIBT8qfYCUXfIH4HjN697mTJC6E8=; b=OyEmY5z/ikvsOcFxmAxGFjJuwFy5Dr5sUja+oRJPeU6GOCypZLoTDepyMclanjxvFoKgV8D1RpevI/wkJpdxSFDvzh+w7NFIhVadYN6ofipSUHa6qyVRgR55ejEElZUf8ElXkm0ngWl7H74u15cGHh5EBVMf2eLxNrgzyCQMESrelPVU6xMz6v0V6wfAl30Chdf/2ThGxWATllpmlvshBHStMWZUSt3putQMk1kzloP3CvdNIB4ZyjNabnh1limBEwUcYdw7vvmaKEJ2XQ1RneTgN0UiK1fUtwH0JU0H+s4Cb060xA+8yyeNMMugbr0e9D/Udmja7VruKfFWGXMStA== 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=H7hAf+/pkbIyxjDvIBT8qfYCUXfIH4HjN697mTJC6E8=; b=I1Bks6j9fy7CyNENg1aeVaKkhbEvk2Oqm54g264cAG9uW9mz29E5lVYoFGQ1hlLt/s59BWHbpvjb/KuB7bCQnsqSHfQOV8dzORxpgka5jpmcfs/pNCA89nHWHVBzYPrrJw3Q5VsuQ/GVo6r/Lw0LMHD59Is3rF1KSoFmk9JTEBc= 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 BLAPR13MB4691.namprd13.prod.outlook.com (2603:10b6:208:306::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Tue, 24 Oct 2023 02:29:57 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::142e:d47c:7320:8a9d]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::142e:d47c:7320:8a9d%4]) with mapi id 15.20.6907.021; Tue, 24 Oct 2023 02:29:57 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH v2 11/25] net/nfp: extract the MAC address data field Date: Tue, 24 Oct 2023 10:28:35 +0800 Message-Id: <20231024022849.3092506-12-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231024022849.3092506-1-chaoyong.he@corigine.com> References: <20231017054545.1692509-1-chaoyong.he@corigine.com> <20231024022849.3092506-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR04CA0015.namprd04.prod.outlook.com (2603:10b6:a03:40::28) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BLAPR13MB4691:EE_ X-MS-Office365-Filtering-Correlation-Id: 62e0d652-9cc4-47af-3a8a-08dbd4391d74 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n2mYrfR84yZ1Hfm+82lYc9SmXpPdD2qCzI6xeJt47eaqMq6zPCIp53ZcAs97c1AvoyCNZNj5OC4zQN2NaqnG9djVi73y8AzZZsMalwq9s+GWkObYOxO7KgxEAILHFQLiSyCLDgKeGiO7zw1meMX99DoNBxNuGnbGVxu2Kto9xVmtOs/ew24VoswkjUOWZpoeB7jDfUjc7Udz4S8vCyFf2BGqbOe+T5ep3wKkzQGvWwnyEuP5mpO3czsv2meToiI49USYwineYN3rN8XUdSKbe6OOUtT9b4IauktNStVsICQiOrXtrsuj03UNFfAYm60p8Unr4trDUjxtDrtYrwh9SghdSENnBMNcg5XsDVX65RVsz1pyK4FlwXhn14IJxqQa9W8Iw2GJf6LWA0BcczPOf10rQf6FpZKRymtAiAzObNACjdEKHSSLUquGYhsp0r+IWXeyRJKjTB+NiLaTmlhkQSQ1DyO+3ANvkyYCceGlrpxvelCtbHVsD5vf+JCq2PUgpH3hkI+XTpKvzPoZTFYlWifTZ+B6iAxF+NWoaC9Ns/uaRr6chx4BzJMUiqtzczORBJSrBtzVjG5RtKw5F0ItDHTGc+DA9NxRSnBfY/20dbjbRDyBsss2CQTpwJ1Afo6SUw3o0EDlzCmTXhgMLrp7IyRrIJflFotUTaatpXBsFfE= 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)(39830400003)(366004)(376002)(346002)(396003)(136003)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(83380400001)(38350700005)(2906002)(4326008)(8936002)(36756003)(44832011)(8676002)(26005)(52116002)(107886003)(2616005)(1076003)(38100700002)(6506007)(6666004)(6512007)(316002)(6916009)(478600001)(6486002)(5660300002)(66476007)(86362001)(54906003)(41300700001)(66946007)(66556008); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Zvn5jgqZxXM6bGLloRbORaAMVXUlUg9QWXepoKmD15QmDx3E0NOgPzRVPM8n357NsTBHsLOIpVSoz1GJHhcN6U8F9bJL6lQzAei2oWATNI4XIVRZqZuH2ZTWPO22/Vgc542mhSkvqSRgVAS5OcKDwtekkt7VHNjnwISQIv2Reejbb9gwvclQXUmcRP4sGGBTR76YZ/3XtfdEJRbZb5N/Yd1wMUNSV+l0AEaj4cAuOlO1ZwIvvJq5KgZm0YQ9/MP24iS0m42VMZ+rktG8qM7Iva1vKk4FYj2rLY1agi4hSIwAa8MAf6FSdZ+cr/E71RDlERGnZSUBjYXfZMYrtAQBoBrVk/vrsTC9O+UaH2+f8zbbCtmm1n89UOn7LCQj4imj21UDV8o0lEIF+rUUXmjMjbZuUJi2xHqMjK3XuBEwLH/N6E/D90LtUzIlAlxOUepz9sVyz4BMK9slJ93bSnHhjaIkMzbNhnUNt9VH41pOl+hUxWzNrxcv//WBcf1JDuAsckkvPFJI9qwdhFGPkb1QyTsLFXTAvj74TQoQeU1/pthhy6PpdJ5+3nu7InQMI1zppP3Lu7I84ayOZuF5uej5cboLy3j4+GQHOXk9M5yHI6ZN6dNutOdYzp2HbTp8ycWo1YKQLQ+X3IarvTZovPjzjZkvwJiyeLnNcRhkpYdRwKPvh9yeiBcVBYTQMTmGk+JtGHwRvXKCtqv264IuJv2FFXMEFZqd9/FVlzxRcmJuyHiqEFfXCVJrwGBUDpUV/HBfuVNcBi4jM1kEvMJAf41T9FbPHogCkfWIz7Iu7LDW2JM3twQv5ZaIGCHV2gVVe0PdITr+Z6HZo/AyCrW+qTL0Mr6H0vdjnbB2ICfHsuzhJxfRQA7KdqZqcwElpdbygiNZ4YOD7YGV38Nz+tbiUwpbhOyz6NgYRWBMvW2j0Ry6LWzsEDpkbeRTVkDFGVkrg99QJyIdr+UbXaicFXJbVyUde7mpfyRIsBE0Jn3PWStQzjL2DpFio+0rNmip0MSvLAo3oqDDS1Hs8viXLbaj2fpbxaX+V0INCJVQ9+snI20XaEEWkLGvSdBgbputchtaqE4sKY8WgM7rh43bAuWT2VkBANJYkOBKf3uL/buoZOsXguzjxkiV15+NHy+JXCb4dJmQSKFSr4EH5zIWekoIcAseWO9isU+hs/OjG/jC7dsVXRIo+SaCwoS7ayObTgzZ8QoT8s5ib8ZaRuEx5W4I1fiGW7YWo/E3msydRTxQCtzd8MOJgzs9iBceL+mHoMLVFDk842htf/S2MW0f3ZQnOTMlsLFyV7+btf6mf/zSB9Qrg32L6V6EpMSn7+IaezDYgTAKF17sg9w6NGPLhVUa/HyNjqsUwiYCWdCsL51FMgeRoro0tzxSFT9DgvcU//33fJbanU3p3BKiJOSxpGNIuP9z9xT0YY2IkUEJrSM5q06lx6s5ByZcRYs7NBPwYENkgi2+p2xEoB8YHOdMpHL4U4J6h6mU3S8Li4yztT0zInz493f5tYR7tjKw1FL9+6VGI05IAWa9maxPUg0nRIwymP4k3xtk+pTsv7dL/u7XxDDORWjNYmg+sjL3lP9PE629O2UDdQa5GNPPOeen1qbbSWcHkQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62e0d652-9cc4-47af-3a8a-08dbd4391d74 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2023 02:29:57.8255 (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: i8DEQSStm3OSPuE8e8A4E6cNmgz2k4ddzbAZAjbJBJxMs5BKqwtzz0kulJ5IGwDdtlhpraEPPG26NpgeljoY+u7bcGtKrahXMjRlSoiTwJs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR13MB4691 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 Extract the 'mac_addr' data filed into the super class, prepare for the upcoming common library. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev.c | 14 +++++++------- drivers/net/nfp/nfp_ethdev_vf.c | 18 +++++++++--------- drivers/net/nfp/nfp_net_common.c | 8 ++++---- drivers/net/nfp/nfp_net_common.h | 5 ++--- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 1378545d22..a93742a205 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -33,7 +33,7 @@ nfp_net_pf_read_mac(struct nfp_app_fw_nic *app_fw_nic, nfp_eth_table = nfp_eth_read_ports(app_fw_nic->pf_dev->cpp); - rte_ether_addr_copy(&nfp_eth_table->ports[port].mac_addr, &hw->mac_addr); + rte_ether_addr_copy(&nfp_eth_table->ports[port].mac_addr, &hw->super.mac_addr); free(nfp_eth_table); @@ -599,18 +599,18 @@ nfp_net_init(struct rte_eth_dev *eth_dev) } nfp_net_pf_read_mac(app_fw_nic, port); - nfp_net_write_mac(hw, &hw->mac_addr.addr_bytes[0]); + nfp_net_write_mac(&hw->super, &hw->super.mac_addr.addr_bytes[0]); - tmp_ether_addr = &hw->mac_addr; + tmp_ether_addr = &hw->super.mac_addr; if (rte_is_valid_assigned_ether_addr(tmp_ether_addr) == 0) { PMD_INIT_LOG(INFO, "Using random mac address for port %d", port); /* Using random mac addresses for VFs */ - rte_eth_random_addr(&hw->mac_addr.addr_bytes[0]); - nfp_net_write_mac(hw, &hw->mac_addr.addr_bytes[0]); + rte_eth_random_addr(&hw->super.mac_addr.addr_bytes[0]); + nfp_net_write_mac(&hw->super, &hw->super.mac_addr.addr_bytes[0]); } /* Copying mac address to DPDK eth_dev struct */ - rte_ether_addr_copy(&hw->mac_addr, eth_dev->data->mac_addrs); + rte_ether_addr_copy(&hw->super.mac_addr, eth_dev->data->mac_addrs); if ((hw->super.cap & NFP_NET_CFG_CTRL_LIVE_ADDR) == 0) eth_dev->data->dev_flags |= RTE_ETH_DEV_NOLIVE_MAC_ADDR; @@ -621,7 +621,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) "mac=" RTE_ETHER_ADDR_PRT_FMT, eth_dev->data->port_id, pci_dev->id.vendor_id, pci_dev->id.device_id, - RTE_ETHER_ADDR_BYTES(&hw->mac_addr)); + RTE_ETHER_ADDR_BYTES(&hw->super.mac_addr)); /* Registering LSC interrupt handler */ rte_intr_callback_register(pci_dev->intr_handle, diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 6ead7e02b8..dead6ca5ab 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -16,14 +16,14 @@ #include "nfp_net_common.h" static void -nfp_netvf_read_mac(struct nfp_net_hw *hw) +nfp_netvf_read_mac(struct nfp_hw *hw) { uint32_t tmp; - tmp = rte_be_to_cpu_32(nn_cfg_readl(&hw->super, NFP_NET_CFG_MACADDR)); + tmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR)); memcpy(&hw->mac_addr.addr_bytes[0], &tmp, 4); - tmp = rte_be_to_cpu_32(nn_cfg_readl(&hw->super, NFP_NET_CFG_MACADDR + 4)); + tmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR + 4)); memcpy(&hw->mac_addr.addr_bytes[4], &tmp, 2); } @@ -332,16 +332,16 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) goto dev_err_ctrl_map; } - nfp_netvf_read_mac(hw); - if (rte_is_valid_assigned_ether_addr(&hw->mac_addr) == 0) { + nfp_netvf_read_mac(&hw->super); + if (rte_is_valid_assigned_ether_addr(&hw->super.mac_addr) == 0) { PMD_INIT_LOG(INFO, "Using random mac address for port %hu", port); /* Using random mac addresses for VFs */ - rte_eth_random_addr(&hw->mac_addr.addr_bytes[0]); - nfp_net_write_mac(hw, &hw->mac_addr.addr_bytes[0]); + rte_eth_random_addr(&hw->super.mac_addr.addr_bytes[0]); + nfp_net_write_mac(&hw->super, &hw->super.mac_addr.addr_bytes[0]); } /* Copying mac address to DPDK eth_dev struct */ - rte_ether_addr_copy(&hw->mac_addr, eth_dev->data->mac_addrs); + rte_ether_addr_copy(&hw->super.mac_addr, eth_dev->data->mac_addrs); if ((hw->super.cap & NFP_NET_CFG_CTRL_LIVE_ADDR) == 0) eth_dev->data->dev_flags |= RTE_ETH_DEV_NOLIVE_MAC_ADDR; @@ -352,7 +352,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) "mac=" RTE_ETHER_ADDR_PRT_FMT, port, pci_dev->id.vendor_id, pci_dev->id.device_id, - RTE_ETHER_ADDR_BYTES(&hw->mac_addr)); + RTE_ETHER_ADDR_BYTES(&hw->super.mac_addr)); if (rte_eal_process_type() == RTE_PROC_PRIMARY) { /* Registering LSC interrupt handler */ diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index 9e6d2fa490..a760fcf0d2 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -532,19 +532,19 @@ nfp_net_cfg_queue_setup(struct nfp_net_hw *hw) } void -nfp_net_write_mac(struct nfp_net_hw *hw, +nfp_net_write_mac(struct nfp_hw *hw, uint8_t *mac) { uint32_t mac0; uint16_t mac1; mac0 = *(uint32_t *)mac; - nn_writel(rte_cpu_to_be_32(mac0), hw->super.ctrl_bar + NFP_NET_CFG_MACADDR); + nn_writel(rte_cpu_to_be_32(mac0), hw->ctrl_bar + NFP_NET_CFG_MACADDR); mac += 4; mac1 = *(uint16_t *)mac; nn_writew(rte_cpu_to_be_16(mac1), - hw->super.ctrl_bar + NFP_NET_CFG_MACADDR + 6); + hw->ctrl_bar + NFP_NET_CFG_MACADDR + 6); } int @@ -565,7 +565,7 @@ nfp_net_set_mac_addr(struct rte_eth_dev *dev, } /* Writing new MAC to the specific port BAR address */ - nfp_net_write_mac(net_hw, (uint8_t *)mac_addr); + nfp_net_write_mac(hw, (uint8_t *)mac_addr); update = NFP_NET_CFG_UPDATE_MACADDR; ctrl = hw->ctrl; diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index d418cd2b99..e997756091 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -120,6 +120,7 @@ struct nfp_hw { uint32_t ctrl; uint32_t ctrl_ext; rte_spinlock_t reconfig_lock; + struct rte_ether_addr mac_addr; }; struct nfp_net_hw { @@ -159,8 +160,6 @@ struct nfp_net_hw { uint16_t subsystem_device_id; uint16_t subsystem_vendor_id; - struct rte_ether_addr mac_addr; - /** Records starting point for counters */ struct rte_eth_stats eth_stats_base; struct rte_eth_xstat *eth_xstats_base; @@ -376,7 +375,7 @@ void nfp_net_log_device_information(const struct nfp_net_hw *hw); void nfp_net_enable_queues(struct rte_eth_dev *dev); void nfp_net_disable_queues(struct rte_eth_dev *dev); void nfp_net_params_setup(struct nfp_net_hw *hw); -void nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac); +void nfp_net_write_mac(struct nfp_hw *hw, uint8_t *mac); int nfp_net_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr); int nfp_configure_rx_interrupt(struct rte_eth_dev *dev, struct rte_intr_handle *intr_handle);