From patchwork Fri Oct 27 02:59:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133454 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 64D044320F; Fri, 27 Oct 2023 05:02:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 55B4D42E11; Fri, 27 Oct 2023 05:00:58 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2091.outbound.protection.outlook.com [40.107.220.91]) by mails.dpdk.org (Postfix) with ESMTP id DD98940291 for ; Fri, 27 Oct 2023 05:00:46 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DMLSY49n5Pj060vndxn/3j4FDHWT/QGjfoXWe5QjcU8es6zPu9ZLR+SRHQStPf6y8hd3HhJTOfSkYfC9vIC4LohwjP/5Ip6dm55ArUBdm8qTZqd/vTKgESPsEWr6+eiKqYYWtbUVXRVtC+70fmV0pW9LprbrBNT6OgmLPgzWwrcxN50PmHODTdbxNgoGxiX+o/hXi3SmWPVd4dFOBQJjb0yPLnMmAQqVyYOZzrwyApqBsb5EE5syU1KwAK87si19BlZT2+HIT9vT0podHOGslQ1SR4TQajTW4JVgE3f2bPKE951U6LN/c805KnyJs1J8G6+PKc+jHy2LgsY2DsW4fA== 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=ljhuw4qCvIsJWtRowbUK6Zlibn6lFCTZYr+a8NJhOCXP267rSr1LuiuXTzw2VtvGfkfbJkxWieFnksI6WwFOeXNSCGUSonrThPz1zNI62fgLf3pVn5aKA/xkj8GilYV0wA6GIiS2Qv0Y/giIj6QkQXCLgY6yfy2CFyz0OLlLlsNQZdEx5twk27j55zEtr+VpJ/kcIpSqP81+gf6ObQtZCk56/IvX51HDq09CBDdaAheTYTRg6e71qYdAGntNSM9D+NwrQ8z/5/MwaiD5zcfzcd1Sj7+hLS8xoZKdIWCv98zVUtIuLiixdzTea6uKWsuZMSjYiz88J0v0Lp62i3rPjA== 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=sUzvPKAAChC7Se24o1xrQ+d71yIwynE/OfwgdAzyhcpxdx/XqLEeOfa62RHbXU6GZOOvJDKX/Ezl+8pF/ktjkCnSkkZZr0AdxBk8miIEszRBL/X7UUgRxP40ry37MnzpWkZM0nSbe9xAe6Aieu+Nu6v6ZI2ujMlfKGKvrutRcgs= 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 DM6PR13MB4493.namprd13.prod.outlook.com (2603:10b6:5:1b9::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Fri, 27 Oct 2023 03:00:45 +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.022; Fri, 27 Oct 2023 03:00:45 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH v4 11/24] net/nfp: extract MAC address data field Date: Fri, 27 Oct 2023 10:59:48 +0800 Message-Id: <20231027030001.602639-12-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231027030001.602639-1-chaoyong.he@corigine.com> References: <20231026064324.177531-1-chaoyong.he@corigine.com> <20231027030001.602639-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR08CA0065.namprd08.prod.outlook.com (2603:10b6:a03:117::42) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|DM6PR13MB4493:EE_ X-MS-Office365-Filtering-Correlation-Id: 801a1fa5-7cba-419c-9203-08dbd698ea21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vBVQcM4X3+u7i+UD5aDx2YGAfBMQjeBcRSjWXeGHukDMtXtM9ZvXSpK9PbJgc/QXexlC67PuoN1pcvnDeAx8XYf296EWfG8Xkt8dlpSmuKi3FMydaZ/D0QoTlJCLwzyMsc36wUcdXVbVc68zOpVCt6jhY97iu7WBqnT0CUYrNynEkNVsIwHxNTyaTdTOla/3tFugbzIJ6uIdUidscQZbwUJ4uEbWrj7kkn3HXClcTm+FcbvMug/p1ETlKQYb+wtgxlSInsLmAL6q0Di9r9tNkpUGHzUULYvFgbQ9oLUeBY6Lr8goZ4RrXe/v4mEad3M0yflXU4P7YEOlum0nsXYX9ZQ7wxDmYOg6D2E57Aj63KZHAx5R2S1ne1HQfza8KJUjqR2g+QdpG5aHmCxHx0UwtIOZ2/i/RSjGdyeufyVuHcuwtFqcerIPY0fZ3SEdLshXtf11/HT+fmnCiQHpHkOYu0rlvKKx1fJc8CSziZ3ETuFfz542nw3VI8S8d34EMMgMVEbtX54lwx223BRXuk3t0O3otCULKBggvcRn/T+z4T29R/lfBzyjsImVAFtQeW3KdncrD877YNU7MXzNG/qxxiVNKyuaKH0XY6EbDSwckqabPKUiz5P0ApsScInRRfDqk/hFGcmP/v8Wb1t6R+Y52fd6VFw1Pik4Y+6OiOoYsc8= 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)(396003)(136003)(366004)(346002)(376002)(39840400004)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(83380400001)(4326008)(52116002)(2906002)(38100700002)(107886003)(44832011)(8936002)(26005)(2616005)(1076003)(36756003)(8676002)(54906003)(5660300002)(66476007)(6916009)(6506007)(316002)(6486002)(6512007)(41300700001)(66556008)(66946007)(86362001)(478600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lnFUwvehOalytk0dWbQypDCMzHCbIVUDMwr5iErp8s8hwbE1lZDEeqON0Tws+kHGC4XeWVZbAOGmXkHOYiybb0qgOjie3ivTOd3eEjXaMl6OLg9vVlj9tf1QolH+59+XA6Mv6biUlyTN5y6XVCNOx1IAtCESOcVGttdaguY0bNNgHJhPNM0vHzIvIRW2TENd8wXIuI+RmcuKDy6y3FRt4wqk3nSKrefU/4eWBhyH+aPSWepPLo+slJ3UkUioEBkhK6KdutuLT+yiIFRrQrmPyAKTX5yYbmXEZr7kSZrhlAi8VVsJQI5esDkofw/yx5CD/VFgO1f7VO2HMLlqHxrOxJVoKBDGtlYmARZAoinZ3OHJjXHq+5+L2jm4AHyxJwuEpb16CrZcRIT8agelhB305usxvpR5xZFxRMKhQ192xQp1IvUm7lxjyBcFkQkTIHwapEgshpVIMSS23F2tMZUjcvhC3CDN/fI76k0zKP44TTbFU+eXQlXGkVLPqw7EIqCNnUGmKncuu71VVGe8NpzoyICYgakQCBjiwhnXpSjZB1uJaa5hmGvUy0avGEyNUCpUy6TAyiC/BkBtDxG6xGmwxv57i6k3MCYRL6ACbeU4SBBxvHBPxETmOXgAGgOQ3NCPQGiI66GySNA+khmrzzpn7T6zk5vTVoE3FyM26KaYcbsj/9vPnt9y9RrRqtrNnCY3HTXNzw3ef3yn7jw4bj7L0sfOSAFbseLQrv3PSXofr4uUwNY7XF2a8aKJwZT7axgsKR6XzkOuy8mnjK7QufwE1QttszT184BgeBZJ38cPal/1vqUyEA3HQ44vjVPrxd4jAfqhOjLBgCmwB8JwHNhALFlt626g26i83lyFu8yM9jlbG4bYAoJ7c0a+WjMyvdDTFBIakUl2BoI+9JYwXP6AJu72jGLjItSYvJMj3O5tsJv++Ud478ZqXT7s2E4VNiHM4u6JfZmiOkJ3AxURtqIDOxz7k7b4wNfrxuj+bCx7oOTFVyMG6YhPvdFAo2FP8niAVdRydGPZf4OnsNtBiT3VBEUV9JkQKoLS54fiGhYsK8/MDaorK8iW+O3pTYNam4Ctwrikx3xYiQifs+TvT/nAEOkKfSj31hMPVLou/NO8pking/jq9s2sZCRw+YXjwAa4sNi4FkIq08GzV1jyK4i3tQmTWOiTJLvq8/gEDoiJmNBSHOnfsvVDwMrzlZCYL8Ci24AGEN8E3pyHtYRDsunlXpbaXdcWxc3gfIzbMHY2QNF6QaYVIdUfED30F79hRw43d1ploOn/op8MTiJpFNrRq0nI5ios3+kOgzszKaAor80zpC5vRudNJWYRH5Z9iCNQ0eA8mw7nHwP0gNi1tnHcM71hYCUSLcjczv5LpfiPLc5Qw8x8C5aFGDJDQpB/8adC6J1perONHtm1oqdHJYPoXULU1HS8yUm55wRCaW1pEGLTfJFApB9pVyiyVh/v3ZMHXmAL9Qqvc8dsZbDio+zHYzAgznCL7XRtcF8uuwE/3OrUPVbksZnj66AX3C/ywcWavMFqJdogmyWJpqVpfTWTVa4wjYXrd+qhbyRa/+3/UNbRgVBGa9lT2fjlT5acyBE2yw9t5Qw8jmBYewNvKHFtnQ== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 801a1fa5-7cba-419c-9203-08dbd698ea21 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2023 03:00:45.7147 (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: bLQPULTILdKBnmCbKOTfMXMp340elc48NeKJp+horVl0fWFkdBYJEhWruZyhM5mqlP9G0M39Ki+TuuFhoZj2mZer8NRL1cB9NFbO/zTUMzs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR13MB4493 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);