From patchwork Thu Oct 26 06:43:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 133351 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 B476343204; Thu, 26 Oct 2023 08:45:41 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3564642E01; Thu, 26 Oct 2023 08:44:13 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2121.outbound.protection.outlook.com [40.107.244.121]) by mails.dpdk.org (Postfix) with ESMTP id B2CBB40EE7 for ; Thu, 26 Oct 2023 08:44:06 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WOtqzo+mWrJXQRFnjvSg+W5PL7plPjjlSqE4pJsApFKZzmUvvJ0uaDieJierjuHBhexGmOSlDVb1hm88vTnPDnddA40Dw/Tlxc1z0J9Qh0nk2j4ZT/81C4nTq+HjSqeRbho+n3hR8QUv5BB+2G10VgdmU2+ZsZ5qCBo6JVor5wrxVdLZpq8MsBD78NHbM4QfLogjDcAgKd8xFTxccyd0H1MxdoZ5n0vVTAhgBgWFmLdMqHP/w6WIH7YnSC+qD/gQb4PHloyyEIUqP/8roDucXwBi/8xeEhWEKxFbf1w5LeT/P7ISCOWpIEflxrFg+oC7IAks1cUbRSPaJsYm4P0ibg== 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=dMmYLz8l/eO2FGC2UmeZyusCU8ES/4cLmVXJTLebmrbv7wJ18OOtpAaPM6uh1WJJc6epg2K0tKHB7VGRkqVdsOUw4+IrN40NQrOHgyF1mCuUnq1Y1T+T115A2dlLWFyR020sEQdRTq9B7aVar06QQfyAGdLJt8GM2XfaKAAPy8EEMgm6RF2jIrKg7jKr9VD3war1TwQ6WmT2l2F65Yc6vra8rZKctVC+AlT/6uAl3NCRdOQDSfzzoaxRTzK/XVurvqL0hPP3jFSYIPQ0jXSWIbeChLGfruQcndeVOepbaLic+lpWct0PCgSal7zWEzNcnfdTWZlbyUbYcO5b8o4lcg== 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=ULJgQN04Wwb/1bTO6hRovuZ68dPBxdV1FumGhgrbXtyuw1K4NA4MJHNd7MaG5FpCr1JLvQgyv0IdAFGdQ/bV/i453+S+MogYtTb7TGnZ3jK4tzYtgxFWQaH3o4e+pcz1NJQEGQ5LfzVyS6bAoMaF0jGaE2bXGUpQ/1rxPSfFDP8= 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 SJ0PR13MB5965.namprd13.prod.outlook.com (2603:10b6:a03:43d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Thu, 26 Oct 2023 06:44:05 +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; Thu, 26 Oct 2023 06:44:05 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH v3 11/25] net/nfp: extract the MAC address data field Date: Thu, 26 Oct 2023 14:43:10 +0800 Message-Id: <20231026064324.177531-12-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231026064324.177531-1-chaoyong.he@corigine.com> References: <20231024022849.3092506-1-chaoyong.he@corigine.com> <20231026064324.177531-1-chaoyong.he@corigine.com> X-ClientProxiedBy: BYAPR07CA0034.namprd07.prod.outlook.com (2603:10b6:a02:bc::47) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SJ0PR13MB5965:EE_ X-MS-Office365-Filtering-Correlation-Id: 9effcd33-b422-438b-bb77-08dbd5eef269 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +jx2WqXzcpJuZRnggBT+/aQgxGsXYPLFPnLhs5TVGC5bXCcsZQrYAe08YuftlxQYyDvz9uH1fmjQW4mtB7hRzymbr1GXOa8r5p3qJb3gs3s/ZQOBJr2tslIdsGkQGkM0bOKR/Y7s6j4j8jz/x/tyKKkq/uBkHvmqJdaDrEAYvP/k9YqAXPjW5eXkWmDHhz25nXu8u0Qjmaw0ijUdP9XQw4UhL/t9Fz5/F9W7/HueQmsrLKTwgRgS7UxXn7wQWgbs/wGd0KiyCl3mwjHqp6aU+rCx98gQez2bDTrkDYToiN/elBN3XCWAHNtU27+3qghF4+VNwanfRPbfc+4yB/qcWQ8sejPh7fNJEN9O14lRkyLERBIBycezAL/qwu2uU3zI3l5neM5FEt55BuesEulPrzthlPJoNyOFahZxfI7zZXUgmHW8K1d8vhPYleCQn2WZ7AI7AXWyt1dRQZN0Oaj0XGfhFreDZNdZ1IjBsHOfaoXk9R/TQsqTf5hsyZe0E9gj5hv6ZYYwjtJ1+f9KFPS7mxQjhtu480NGhiIttbhCYvB0CpvcuNmauzsl6oSd7kowaxXcS33hd5A9lQayKm/SCYi+dopmZmOshgsFx6maV5NrxFNO6m7kk+FAZkMjLwBhi6bGNtbrwlvZD5pCtBSP5WEJOuDoY8MDCUYMSXFN9/A= 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)(346002)(39830400003)(136003)(366004)(376002)(396003)(230922051799003)(64100799003)(186009)(1800799009)(451199024)(6512007)(478600001)(6506007)(52116002)(2616005)(8676002)(83380400001)(107886003)(41300700001)(26005)(1076003)(6486002)(5660300002)(6666004)(44832011)(6916009)(316002)(66556008)(54906003)(66476007)(66946007)(2906002)(4326008)(8936002)(38350700005)(38100700002)(86362001)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SNC4WxiMYLThqwk0n+Eq254nzHseX8WRnBuXrK0EXJJ3d8d3iAkSN3tiw8mIQwVGXd4aDI5Iaiwt00jvzWJaTUXivPRsjHY3wlxyETgDthWd8dE+2cjy6e4ENEdiWjHdb6DCxv9Kv4vH/5nftg2R5by6K/2T+lrQ5JjPaPvOx3n0py+huFTg4ESv4bl29bNklxPF0h8bEEthjQ0pdyw0zXux+WoKyp5ZFOYq3gXmdTVnqmfO2475BtiLNEdSFnFO5ADIB6+Q5gufZkISc5e4/zdYkKz9XYId/8D5sOv39jw9t7SCU8PMDeU/kfT81qPMUJULsnpAMMDTbMLTT1+TTN0a3X8VovhSzixMuNGmxjH4RZfbQi9XcbF04PS8NfGAGIi52MVGVzByITa/ubnC9aUpF3w7AEHGpM54kgJt+6JXNI5IQxK0wNStgXyySk8knF9nWRvujTwvF7dKpSblFI4nwNV88dZJNPs0Rx5/dze80clai57i4o4+foTDwboHukGHyRh3rOQXHbeHvSwXVBrkOR18hXfb4v7uPsrCiq/RZX5MyZ8K7hMWJVf/zK1Ix1zgOzFYLyOqnX/F1V3VWV/Uo9FP4xAewXX6OzCCl4DzRnzbfl0h39N/F59hH87+7MxlwqjcLV4bMdDhtNhwMBu7lS+gi3xjlAxwSNIVrWAIxh2hlbx+EcEPVqZPRK4zzT0kksmkORUlMxabPO4BU4mVQM2WwyhMiqGQfij4HtEK83+mWM7SXoV/Nu/vIAZJmM1kPsxII944De2tgQI83dm7Hz+0C/gEA/ai3gvC4aminM+PP7ACZ6bs5KWJX/0OKsrLmL7a8E7pNMlbhkk+bp1GCSgzHJqqmPRdUzlJrX4rB6ScRUpjUUXpc0e+EGx+jK0yq2f2Xdhj0gwVpj7omRoX+zKazUBHPG/zfZIDkKb60MXU1nGScBnB8Hyr84m8la1/FGL4vG3lmJWgyOWRJ01BhbbjjI6q6+nmcW/rXzQNmJNqkJbBbgNo6kL8rw4VTmjcqdd4pW+zeD7Zi0IKO0LYS+8YN36Y4w+jkDDByze80eeapMmE16e7YQ6E0VBs0NVfpy9HkTiYTcksE3ZDHm+cW5e7v4aiK4w/pXkUpp2kprLKOWT2oOeqRpmrk/nMvfWsk+h2UZ4F/Cd1AaLXFYH1lEYWkdCMKaZ91bQtiDpifA5H3THJAXS0AaM5UYZW2uxmw66gYdhU2j/WNhAA0F+FPwiQZmdiAhSga4Y63wsvdlffLUg7CSbo3ivJRScwtz7sXuv8q5pS6eqLTN8ZyGdp9+YkGuMutbq1ISbu7V9YHxNJB1QyM1yJSLgHdgVSPY60Pe9zOQZ2Ts2Sohoj2Kz9gxhgkW6/cEZkNbobL4iLPf99bHJ4dgtpAOs2p3FuYqak8ODZ98qHjC0fBb3HTutDKSp5wWk7FWPwhfwCw6HsMpSF2YOXHYDWWxJKSIX58YG/gRFmdqjdAuhsYYimM7OscPYl5InhcDb42rh6yzghXasmk0WiLkd4kGFuSP3ODApF/GXz8IT/Ry/ZrsHNS1+9S8vP3KIsL0cFbxbDJQUuS/7NDsKmfNbKx2rJ/5bpB5OMEHG8aSRVxfqpHMbqjA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9effcd33-b422-438b-bb77-08dbd5eef269 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2023 06:44:05.2065 (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: oQCM03Opl3Jx32dZHiw/Nd8PHpkcRLVZidwvoqA8EtBcBaCcEAO0WEDE/Gq15skGomc0TJM1ktex/g2bT1ssB/QOVprc4run14HV+CnlqAE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR13MB5965 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);