From patchwork Thu Jun 2 01:52:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112240 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 ED855A0548; Thu, 2 Jun 2022 03:54:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D24D940A84; Thu, 2 Jun 2022 03:54:16 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2106.outbound.protection.outlook.com [40.107.223.106]) by mails.dpdk.org (Postfix) with ESMTP id 40AC14021E for ; Thu, 2 Jun 2022 03:54:16 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kU5g/rg/+zcRAVuMc4zSDbhiCNyxN3NLLJrUN62AuiHGJWN5sVvtdUENjlnE9KzUafEN7LchhY5oSSvksOQ/f9nKOXsu2X9IaBDY50oI5t8STOPJf3rUfR/YFVZowMMcwVEyYc5MsK3Vzf/ovL9Kc616iesdtIfxUYTwY8bi3dpjWCEvap/TQBP0YNl8Fw0+RSeAxHrZSz2tUpYaEPnNIs2KYnFuc3CflR3Un47bpQLo/PPm2MxqrlWMr60snQ8VMqT7fk64UsraztBQuCIv80pa6azeIzo5oNF/DwiGn6LSrHsnAw/c4POjDtGtqdLdEokmKYaeOtmU2UJYQz3Gcw== 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=BzUJNhuLFqbEMan/UW8NamthEcKcW9PKwUetdOIRc34=; b=dybvWCuocy2WKkPrxOVTgnCLx4LjbjzHYluWguOH5b0Ni/qq9mhEBAU/QlCjIV0vF9vg3yKWEQ0owA4kg/hkMY/X+tIfJSlw/CsIt0Hhyv3jIxhBC0I1yb57sIKu9i+5/YajafAG9yJLkHOE7Jo66HleHtXYM5aaINT5yuA/zdlx8NVNOP3GUk6Bd4J/C07kdcWqvoADhxpouurj1ho/eWGF4g/wrlAz363vT88qdL834rOxbsKPz0OlIO68wk8WoGH8pSnmv5NFPKljGKyWIZ/nqhKI0hPvw7J6WdHh2f9gzFDDWlcHdBUlgA4501qdq5ZCEGAn3Um8/dYbnTMllw== 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=BzUJNhuLFqbEMan/UW8NamthEcKcW9PKwUetdOIRc34=; b=QO0jr0dpU9qws9LWA0gpBSlIoZ+2W4zcG59ZolUSFCVVtriw3Nww33SQZK0bnVJbM6UMYL/ZE7lH6ADfUkDD5ks/YhDmdOMXpjhUTI7z1lGwiczlefPdZXyQoVr5ioNMsMOpH42Yf7w9PJiaeZIpgCc6XK+H7Epy7PDRrL4TUPk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by CY4PR13MB1349.namprd13.prod.outlook.com (2603:10b6:903:a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Thu, 2 Jun 2022 01:54:14 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:14 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Chaoyong He , Jin Liu Subject: [PATCH 01/14] net/nfp: change the coding style Date: Thu, 2 Jun 2022 03:52:51 +0200 Message-Id: <20220602015304.710197-2-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5103c992-bf30-4f0c-ce2c-08da443acbc0 X-MS-TrafficTypeDiagnostic: CY4PR13MB1349:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /3nbd0q8b0esXuNUMOSULb9pP5L9Ij8zNFrv6T51C+n1pRq/t8pPLM1sR55pk6agrE4ywBP30aJKsy3GtqSUqWYym/31ryJXSnQcONYlAfbsyJvemSdqbDoa14kmmflP92Jjo8537xdG/6h3L9GlT7BKqrHpNXcD5qbMfYxFbI0eDR51pZZoXZhPqiXN3jpxG+/ypOwlUXWUJXJbWobKJxzZR0+yDDZT8X/Kfz9Rl1CWMtXP7VSg9puYChC78qT7wsPe8zQH1LfB5pBv7WI3GsaslEerCyksI+PFNG2aHhaDGwwJJMHaLv89181Aep/yLWm9b5RbTM3wdTmlKoGL3FdKP4bMuhIR+VD6QbeF9Xls/1+umSbBqAm7jNrwklL79rxlocN84f5bU/nyXC64tvaenk94LYGXT3B3bFL22sFrdW6amI+2oMtBUy4W+ZJgmsw+F4f2JlUJCI3f0MzA8Av61WCdnpPaZYk29Y5vyFDQAooaBjWxLB64MHCM5uapmeA/0elEJngpXkCzye0spTnxc+fRzqm6Eqoel1iv+C+PhOx37nhsLknwOITWq5x+XIqyfMXLU8UJs0jjFobEB6+TRYKA7eVLyxLzJxX710mGWBOp7JEdE911dx6hXKxRKNxu89EC1MOGg4MeOEGp2YJwic/NCENtwiO90lma5Meb8F7G/Y//t7g2cKVkh35jIbMngYdxN0IBaQKszEr/SQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(39840400004)(136003)(376002)(346002)(396003)(6512007)(83380400001)(8936002)(38350700002)(8676002)(66476007)(316002)(4326008)(38100700002)(26005)(66946007)(66556008)(2906002)(6506007)(30864003)(6486002)(5660300002)(508600001)(6666004)(52116002)(107886003)(1076003)(36756003)(186003)(86362001)(41300700001)(66574015)(44832011)(2616005)(54906003)(6916009); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ri6GBDMeKV+XN6+dGayDFwicqvgc?= =?utf-8?q?VZdHnAX9JkpjfumOhm+Ojew0CNV17WMuXn2rG9vMENaCROKsCSnSNtSFeSZQytwWF?= =?utf-8?q?e/kO8efhARZ+UXojFonaOtIBbP7/GfIJryxp6OWTIpGPH9BE7wEY6wHtvDAiw00eU?= =?utf-8?q?KvHYB2FrKz5ShxfChzudrdkPPd/51Fx3OzEjzJjRMfEOa96Fezpeer2VdtAFtRFG8?= =?utf-8?q?dPUXeemp1Y6JlIzEd+7CsZhW2y6KeWaTqOxBakLiH/CNxhucQLkVM4SbeikhKNssy?= =?utf-8?q?VnOotKJRsE+Kb5pHPIeSstICD1IXO9WjVj9ZnaEuuZUpnTLQBKFUfmvKm9s9zwOM4?= =?utf-8?q?TwGJUB5zaHZml+pvnImKVF9AB64isT/DQToA27GUWETDO0jYloGueTjvuQCSs/62G?= =?utf-8?q?6WRhl00uoGtc/lPd1RGClU3lixN/oYPlmPOzKf0MpORkIJ4nl1/tuczs2GUnup4RJ?= =?utf-8?q?AvaUBgCW4rhOgXFt/I+QXlpiDw3+U8PyrDAQqGR31Cg2nf+vX2ZyAXmLYv102ejMA?= =?utf-8?q?hPcXO5qE2n+SB3ddFX1g8oD3Dk98+e4YXu1WLh7taGpBs/fsF0SRDQLlP5HL7oPzJ?= =?utf-8?q?pGuJ7rEM1YxIgJ4jEz76IOZZtoXXG/CvhHmoe2xaal1FrMfRbTpA+r7eh3kklzv3u?= =?utf-8?q?/845rtnEf4GoljKxb0RzUnGBKNCVxkZoW+ruqMG7yKoxlVQ7/+kTsJZzZogyegM6n?= =?utf-8?q?daXNaL1UZ1BKWt2yhvdhbo9YtPcXHHVebRRwB+yO8drsIYSPW94n45BUV5M8dM6eE?= =?utf-8?q?2EPvhYO682ySnUeRfveqUclSnmXMred1KthqlsxER30XfqFnleJ43m0GafENmf7VK?= =?utf-8?q?4mUm9Gaw8ESateyPcMcROcBRWlHN1YM+6b7/f3yHbffnSgh/x8X4l+/AoMkF14BmF?= =?utf-8?q?lv41y2vZZS43nPu8JJ2HYtbur3KSXSWQBfHoKzTGlWU5hkG+4j5Z78aMHhZWv8JGr?= =?utf-8?q?i9tqPx6MrzI2R5REzdss1dd6tIU9QbkgziG9pGOnB5OiN7ZMtSJDj2vIDkhFTFGiS?= =?utf-8?q?k+WaliKxR/b6T4y8xSdUDXeqtJKPpENYqaW1kggTqLRzUzbd4R54XWhNgajaQlSkr?= =?utf-8?q?FEOsegcFyUo/gP3QKhXPDUe2o7+qg387YBDoTwP+LK4zM19IMdi7mB43rhOHcXUIa?= =?utf-8?q?6HYp1pFK3EIUQrC8lYsmcfRPsel4yaN/0wzZ1Y4S8szA499n4DeygWgHPpvkV5rA4?= =?utf-8?q?5c/U9rcSjxdxc8gyl2m4n15Dz3aMVZYjkAsS7cBGNF7tTCZeuAl+qqvwZ6Xh3hUJR?= =?utf-8?q?nhTotAuR4u/mEuObolusQ/p98HIjmPpaA4RFinVfWYtYlrc24gxyAvdFkAYAbYQR/?= =?utf-8?q?uv8D/Ni5k0emYCPKIe9FHGG93NvPkN4W+BFoSodtAuVOHoUHxSyGDMtbgzb617UG4?= =?utf-8?q?B9ugngRVdvHp/F3BTaAX6WRZvsYkau6mTQ8DJXhk7BtZXXY8YpVRVg2N5M31sEor5?= =?utf-8?q?hcG0leDKcMdUMf47UXwPPqqOqkSAogrq5ftyLHRbxNDmddGZG9E9+w/1JeGTBJsGC?= =?utf-8?q?TF1xlc/PTXTpqDUwoozNu5MA9FQmiCbFpkv+DqBBOKXAUZi4U0xKjHTyCmNXn7ltY?= =?utf-8?q?6XYZUn2Oo1qf/OoKxQ/5agGHUQvrt0GBRzOTArvlvTclBp8c32PMbUDiOLsrMyOQn?= =?utf-8?q?KMbZYl4dxeTKGZLQqXuFLNQatDaJe87g=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5103c992-bf30-4f0c-ce2c-08da443acbc0 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:14.7923 (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: KMu4anwmyoOZriKwfkabSLywaNF8iobOnuaBrUiV8FCpZPxKPcoE0XgztgBHBhbtNY6IU+pjsdEuu94a0H3KMw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR13MB1349 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: Chaoyong He Change the coding style of some logics, to make it more compatible with the DPDK coding style. Signed-off-by: Chaoyong He Signed-off-by: Jin Liu Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 150 ++++++++++++++++---------------- drivers/net/nfp/nfp_ethdev_vf.c | 5 +- 2 files changed, 75 insertions(+), 80 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 9166f65da3..ea92ca3f68 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -340,8 +340,7 @@ nfp_net_close(struct rte_eth_dev *dev) /* unregister callback func from eal lib */ rte_intr_callback_unregister(pci_dev->intr_handle, - nfp_net_dev_interrupt_handler, - (void *)dev); + nfp_net_dev_interrupt_handler, (void *)dev); /* * The ixgbe PMD disables the pcie master on the @@ -388,8 +387,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) struct nfp_pf_dev *pf_dev; struct nfp_net_hw *hw; struct rte_ether_addr *tmp_ether_addr; - - uint64_t tx_bar_off = 0, rx_bar_off = 0; + uint64_t rx_bar_off = 0; + uint64_t tx_bar_off = 0; uint32_t start_q; int stride = 4; int port = 0; @@ -404,9 +403,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) /* NFP can not handle DMA addresses requiring more than 40 bits */ if (rte_mem_check_dma_mask(40)) { - RTE_LOG(ERR, PMD, "device %s can not be used:", - pci_dev->device.name); - RTE_LOG(ERR, PMD, "\trestricted dma mask to 40 bits!\n"); + RTE_LOG(ERR, PMD, "device %s can not be used: restricted dma " + "mask to 40 bits!\n", pci_dev->device.name); return -ENODEV; }; @@ -416,14 +414,14 @@ nfp_net_init(struct rte_eth_dev *eth_dev) return -ENODEV; } - /* Use PF array of physical ports to get pointer to + /* + * Use PF array of physical ports to get pointer to * this specific port */ hw = pf_dev->ports[port]; PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, " - "NFP internal port number: %d", - port, hw->nfp_idx); + "NFP internal port number: %d", port, hw->nfp_idx); eth_dev->dev_ops = &nfp_net_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; @@ -456,13 +454,10 @@ nfp_net_init(struct rte_eth_dev *eth_dev) if (port == 0) { hw->ctrl_bar = pf_dev->ctrl_bar; } else { - if (!pf_dev->ctrl_bar) + if (pf_dev->ctrl_bar == NULL) return -ENODEV; - /* Use port offset in pf ctrl_bar for this - * ports control bar - */ - hw->ctrl_bar = pf_dev->ctrl_bar + - (port * NFP_PF_CSR_SLICE_SIZE); + /* Use port offset in pf ctrl_bar for this ports control bar */ + hw->ctrl_bar = pf_dev->ctrl_bar + (port * NFP_PF_CSR_SLICE_SIZE); } PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); @@ -557,8 +552,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) tmp_ether_addr = (struct rte_ether_addr *)&hw->mac_addr; if (!rte_is_valid_assigned_ether_addr(tmp_ether_addr)) { - PMD_INIT_LOG(INFO, "Using random mac address for port %d", - port); + 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[0]); nfp_net_write_mac(hw, (uint8_t *)&hw->mac_addr); @@ -583,8 +577,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) if (rte_eal_process_type() == RTE_PROC_PRIMARY) { /* Registering LSC interrupt handler */ rte_intr_callback_register(pci_dev->intr_handle, - nfp_net_dev_interrupt_handler, - (void *)eth_dev); + nfp_net_dev_interrupt_handler, (void *)eth_dev); /* Telling the firmware about the LSC interrupt entry */ nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX); /* Recording current stats counters values */ @@ -656,8 +649,10 @@ nfp_fw_upload(struct rte_pci_device *dev, struct nfp_nsp *nsp, char *card) } static int -nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, - struct nfp_eth_table *nfp_eth_table, struct nfp_hwinfo *hwinfo) +nfp_fw_setup(struct rte_pci_device *dev, + struct nfp_cpp *cpp, + struct nfp_eth_table *nfp_eth_table, + struct nfp_hwinfo *hwinfo) { struct nfp_nsp *nsp; const char *nfp_fw_model; @@ -675,12 +670,12 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, if (nfp_eth_table->count == 0 || nfp_eth_table->count > 8) { PMD_DRV_LOG(ERR, "NFP ethernet table reports wrong ports: %u", - nfp_eth_table->count); + nfp_eth_table->count); return -EIO; } PMD_DRV_LOG(INFO, "NFP ethernet port table reports %u ports", - nfp_eth_table->count); + nfp_eth_table->count); PMD_DRV_LOG(INFO, "Port speed: %u", nfp_eth_table->ports[0].speed); @@ -689,7 +684,7 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, nfp_eth_table->ports[0].speed / 1000); nsp = nfp_nsp_open(cpp); - if (!nsp) { + if (nsp == NULL) { PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle"); return -EIO; } @@ -701,32 +696,32 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, return err; } -static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) +static int +nfp_init_phyports(struct nfp_pf_dev *pf_dev) { + int i; + int ret = 0; struct nfp_net_hw *hw; struct rte_eth_dev *eth_dev; - struct nfp_eth_table *nfp_eth_table = NULL; - int ret = 0; - int i; + struct nfp_eth_table *nfp_eth_table; + char port_name[RTE_ETH_NAME_MAX_LEN]; nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp); - if (!nfp_eth_table) { + if (nfp_eth_table == NULL) { PMD_INIT_LOG(ERR, "Error reading NFP ethernet table"); - ret = -EIO; - goto error; + return -EIO; } /* Loop through all physical ports on PF */ for (i = 0; i < pf_dev->total_phyports; i++) { const unsigned int numa_node = rte_socket_id(); - char port_name[RTE_ETH_NAME_MAX_LEN]; snprintf(port_name, sizeof(port_name), "%s_port%d", pf_dev->pci_dev->device.name, i); /* Allocate a eth_dev for this phyport */ eth_dev = rte_eth_dev_allocate(port_name); - if (!eth_dev) { + if (eth_dev == NULL) { ret = -ENODEV; goto port_cleanup; } @@ -734,8 +729,8 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) /* Allocate memory for this phyport */ eth_dev->data->dev_private = rte_zmalloc_socket(port_name, sizeof(struct nfp_net_hw), - RTE_CACHE_LINE_SIZE, numa_node); - if (!eth_dev->data->dev_private) { + RTE_CACHE_LINE_SIZE, numa_node); + if (eth_dev->data->dev_private == NULL) { ret = -ENOMEM; rte_eth_dev_release_port(eth_dev); goto port_cleanup; @@ -759,7 +754,6 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) * nfp_net_init */ ret = nfp_net_init(eth_dev); - if (ret) { ret = -ENODEV; goto port_cleanup; @@ -782,24 +776,25 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) } eth_table_cleanup: free(nfp_eth_table); -error: + return ret; } -static int nfp_pf_init(struct rte_pci_device *pci_dev) +static int +nfp_pf_init(struct rte_pci_device *pci_dev) { - struct nfp_pf_dev *pf_dev = NULL; + int err; + int ret = 0; + int total_ports; struct nfp_cpp *cpp; + struct nfp_pf_dev *pf_dev; struct nfp_hwinfo *hwinfo; - struct nfp_rtsym_table *sym_tbl; - struct nfp_eth_table *nfp_eth_table = NULL; char name[RTE_ETH_NAME_MAX_LEN]; - int total_ports; - int ret = -ENODEV; - int err; + struct nfp_rtsym_table *sym_tbl; + struct nfp_eth_table *nfp_eth_table; - if (!pci_dev) - return ret; + if (pci_dev == NULL) + return -ENODEV; /* * When device bound to UIO, the device could be used, by mistake, @@ -813,21 +808,21 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) else cpp = nfp_cpp_from_device_name(pci_dev, 1); - if (!cpp) { + if (cpp == NULL) { PMD_INIT_LOG(ERR, "A CPP handle can not be obtained"); ret = -EIO; goto error; } hwinfo = nfp_hwinfo_read(cpp); - if (!hwinfo) { + if (hwinfo == NULL) { PMD_INIT_LOG(ERR, "Error reading hwinfo table"); ret = -EIO; goto error; } nfp_eth_table = nfp_eth_read_ports(cpp); - if (!nfp_eth_table) { + if (nfp_eth_table == NULL) { PMD_INIT_LOG(ERR, "Error reading NFP ethernet table"); ret = -EIO; goto hwinfo_cleanup; @@ -841,7 +836,7 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* Now the symbol table should be there */ sym_tbl = nfp_rtsym_table_read(cpp); - if (!sym_tbl) { + if (sym_tbl == NULL) { PMD_INIT_LOG(ERR, "Something is wrong with the firmware" " symbol table"); ret = -EIO; @@ -865,7 +860,7 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* Allocate memory for the PF "device" */ snprintf(name, sizeof(name), "nfp_pf%d", 0); pf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0); - if (!pf_dev) { + if (pf_dev == NULL) { ret = -ENOMEM; goto sym_tbl_cleanup; } @@ -883,9 +878,8 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* Map the symbol table */ pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0", - pf_dev->total_phyports * 32768, - &pf_dev->ctrl_area); - if (!pf_dev->ctrl_bar) { + pf_dev->total_phyports * 32768, &pf_dev->ctrl_area); + if (pf_dev->ctrl_bar == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar"); ret = -EIO; goto pf_cleanup; @@ -895,10 +889,9 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* configure access to tx/rx vNIC BARs */ pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0, - NFP_PCIE_QUEUE(0), - NFP_QCP_QUEUE_AREA_SZ, - &pf_dev->hwqueues_area); - if (!pf_dev->hw_queues) { + NFP_PCIE_QUEUE(0), NFP_QCP_QUEUE_AREA_SZ, + &pf_dev->hwqueues_area); + if (pf_dev->hw_queues == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc"); ret = -EIO; goto ctrl_area_cleanup; @@ -906,7 +899,8 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p", pf_dev->hw_queues); - /* Initialize and prep physical ports now + /* + * Initialize and prep physical ports now * This will loop through all physical ports */ ret = nfp_init_phyports(pf_dev); @@ -941,15 +935,16 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) * is no need to initialise the PF again. Only minimal work is required * here */ -static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) +static int +nfp_pf_secondary_init(struct rte_pci_device *pci_dev) { - struct nfp_cpp *cpp; - struct nfp_rtsym_table *sym_tbl; - int total_ports; int i; int err; + int total_ports; + struct nfp_cpp *cpp; + struct nfp_rtsym_table *sym_tbl; - if (!pci_dev) + if (pci_dev == NULL) return -ENODEV; /* @@ -964,7 +959,7 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) else cpp = nfp_cpp_from_device_name(pci_dev, 1); - if (!cpp) { + if (cpp == NULL) { PMD_INIT_LOG(ERR, "A CPP handle can not be obtained"); return -EIO; } @@ -974,7 +969,7 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) * here so we have to read the number of ports from firmware */ sym_tbl = nfp_rtsym_table_read(cpp); - if (!sym_tbl) { + if (sym_tbl == NULL) { PMD_INIT_LOG(ERR, "Something is wrong with the firmware" " symbol table"); return -EIO; @@ -989,13 +984,11 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) 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); + PMD_DRV_LOG(DEBUG, "Secondary attaching to port %s", port_name); eth_dev = rte_eth_dev_attach_secondary(port_name); - if (!eth_dev) { - RTE_LOG(ERR, EAL, - "secondary process attach failed, " - "ethdev doesn't exist"); + if (eth_dev == NULL) { + RTE_LOG(ERR, EAL, "secondary process attach failed, " + "ethdev doesn't exist"); return -ENODEV; } eth_dev->process_private = cpp; @@ -1012,8 +1005,9 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) return 0; } -static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, - struct rte_pci_device *dev) +static int +nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, + struct rte_pci_device *dev) { if (rte_eal_process_type() == RTE_PROC_PRIMARY) return nfp_pf_init(dev); @@ -1035,7 +1029,8 @@ static const struct rte_pci_id pci_id_nfp_pf_net_map[] = { }, }; -static int nfp_pci_uninit(struct rte_eth_dev *eth_dev) +static int +nfp_pci_uninit(struct rte_eth_dev *eth_dev) { struct rte_pci_device *pci_dev; uint16_t port_id; @@ -1052,7 +1047,8 @@ static int nfp_pci_uninit(struct rte_eth_dev *eth_dev) return -ENOTSUP; } -static int eth_nfp_pci_remove(struct rte_pci_device *pci_dev) +static int +eth_nfp_pci_remove(struct rte_pci_device *pci_dev) { return rte_eth_dev_pci_generic_remove(pci_dev, nfp_pci_uninit); } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 0034d68ea6..4aaccc91df 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -296,9 +296,8 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) /* NFP can not handle DMA addresses requiring more than 40 bits */ if (rte_mem_check_dma_mask(40)) { - RTE_LOG(ERR, PMD, "device %s can not be used:", - pci_dev->device.name); - RTE_LOG(ERR, PMD, "\trestricted dma mask to 40 bits!\n"); + RTE_LOG(ERR, PMD, "device %s can not be used: restricted dma " + "mask to 40 bits!\n", pci_dev->device.name); return -ENODEV; }; From patchwork Thu Jun 2 01:52:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112241 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 3100CA0548; Thu, 2 Jun 2022 03:54:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1DDA74069F; Thu, 2 Jun 2022 03:54:25 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2137.outbound.protection.outlook.com [40.107.100.137]) by mails.dpdk.org (Postfix) with ESMTP id AE8FC427EA for ; Thu, 2 Jun 2022 03:54:23 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UwmCpgdTUZPaE9tgXAI2JKEcW1nNk7azbYo1A0BzWTGju086TCuSdWbYCIMu8PDfcdtAWv9UzeHZy65RriPyo+7Xm6JtcPmGV35G4YiIz+i2j1MKnn0Z6NfzwTkK7QMyGAryZrCA0mUEyxb7v6Haxvgrw+DVfrDZje1pcgLU32aOZe95zMRj6Ap0XPqrEK7meyfadMc/g5kl2Rc6qO09nUW50BP1IuYnbfRDZ8HkhscdhKhMcI8nqDEqKcdPCT5NdUGI91uxgKWzoQbEXDPBCdFHIaliK0bNPdu4nElpNvVbIz0xmdbx39p1DvF2rHxTQewHZXI7/BHAnEaS46Jhmw== 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=lxYcfnVKM+An3mCvq8ymHnfO7sJD5oe+dvmXry8rKa4=; b=e5mRpDLvDq+a4S/hsVTn4CLXTLZd0hVU2b9g2+Zo53hC0FnlvL4cJ70CaujoQoZsa+vUXIUxuyIw43Cpfnb2YkLvRDeSftwJcnPt/VMondbg3ixk9urP+IaRWNBLgjdzozZukx6zjP74sbsQ/DHLW4VO2DhCfnLOSw/I4xgPdVUiMCMcpa4hP7Nf/1rNqjxKtu7hG9x29gXxQ4UDOs65+lslbzwhMqAf6fsccPJjqEBPf7Y747TaaGn3bOOD0S72IHMSR01jyuhkoMxEVZBZG+22G1Rm885o0/GhXoOcSzQ7OUjVxVMrZRw7SWeTU4zu9GYGSwysxKWN3uAr/dzEgw== 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=lxYcfnVKM+An3mCvq8ymHnfO7sJD5oe+dvmXry8rKa4=; b=Dcz++zp4+rJKcWov38mTC4E8+4gjHC9TkIjYiutHuiZJrSpaz9ILsvxG8H8i91Uzy3WLDsug2On2AbAuT8eQQDGDsghqk8TFlYSw6KG2NAv5dDPuz9rs3aKcxlkpq3okmtCGum7llbrACZv0NLxYLbNHuqWpYQRZw3gt6x37Y48= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by CY4PR13MB1349.namprd13.prod.outlook.com (2603:10b6:903:a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Thu, 2 Jun 2022 01:54:22 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:22 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Chaoyong He , Jin Liu Subject: [PATCH 02/14] net/nfp: remove unnecessary forward function declaration Date: Thu, 2 Jun 2022 03:52:52 +0200 Message-Id: <20220602015304.710197-3-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7927bfa9-bce7-4981-d165-08da443ad02a X-MS-TrafficTypeDiagnostic: CY4PR13MB1349:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ICBV1EE6ghllJgK8uKLKLs0qsf+El6TnyzHzASBmXSOke6ErgfG/1JWK03UJ36t10Zz8WSdxHwK9jmPgqC7Hc1AE2Br0IuQYOjVWHBuMoG4cYIV2WcS1jVH+CVy+B26XyznIP+9Hf58D7QGSTQt7QVwlfoMMCJyssW0MNaSGVmsx3WyowSgp4S7J/emcBOjnaMvZFWECPENdJsLkbswspG1KGGAyPqgHZsiaw0zi48QQMTeTkSxFshF1YK6zdkVN7VAuQndfdPWVcb+p6yDGxdwUkQhWBxBWs7/Aba98392HVIA/xgmWD7ovRGX/EZEWeaP6u1e67FuRaG6xfhzeyhQsEMTyLR4SgAMAlOlLDwnAsjhm9o7MCBFNsHy9c+6xGa3/VxWTFYE0Ze1KR8IWyHk/4l9HnDCHtTpUU/fAuzRFzBLVdfbPBKm7POCnQfiRsOJEHaFBmYVPCY1Iii8yvjnxtlLtT/s+XiU4FVzsz/oS/okCa/W6LqXqupE6SH2YcrcoM60d0De1BPOL5taJbfUCP5r+to3NJ86a0DsIEbt9butdxLBCJ1GgqyZx00FYZQUcdwyWrGKzzuUDjrI2zRQIhA0q80/rM/v0y9y/nFMb4F5K4FsJ6vjJ+KKVEq5AN4acF391VxDHcEzv2luabeVYXLYWtlnXpftFONCBV/JE//bFwAg38iVCJYVH2Bbqze/u2PWASnWTgn+IwRMJLw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(39840400004)(136003)(376002)(346002)(396003)(6512007)(83380400001)(8936002)(38350700002)(8676002)(66476007)(316002)(4326008)(38100700002)(26005)(66946007)(66556008)(2906002)(6506007)(6486002)(5660300002)(508600001)(6666004)(52116002)(107886003)(1076003)(36756003)(186003)(86362001)(41300700001)(66574015)(44832011)(2616005)(54906003)(6916009); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ePcQMrSK5Z2HSQ72YSJ5XuMG/X0G?= =?utf-8?q?fHG56x3CoPHCrJw2qF1fpNCdKrIp3LVHkR69pgXmLpu72g2yUwn9321N9dqVX2eNG?= =?utf-8?q?wW53GcHzqHmXifkOKkwSNussICaK5sXtNJts6ZUuV9/aRGe8opM/kQVP+VynJ23L+?= =?utf-8?q?amvCdhoqhnuKH5MMaDUZORQDVL5erWE02YQLTSKPcKApxOkYVgOwdd7L0kxgaOg9+?= =?utf-8?q?nBwm03nGBMZzn9VIWoAOVL1YSHkJXl4xVqJfs8Zno6JrgnWyos1xbtzLSL+1HN+RR?= =?utf-8?q?ZlDtvhTqsnYwImU4MLMA9WfuHEd5/eaAm6JaNoQLbcDvg151z4aOaZEJnpQuxgtoP?= =?utf-8?q?IOjAj6mFLwzh9z2yQBcxKu/kA2SZ65mrBV5soR3sRIVf1NoVygSl5zUqlxhNYqRYD?= =?utf-8?q?Aj5fB0H4xrVnHzP9uq/vLax/NtiOdIPuDsCGgxlaRrVXY8ikTs0pvsLozZyHtBPeS?= =?utf-8?q?NWFOWiWVha91BGs0sSLjADOyKpCAdXLtc87cQ+ZwyWQCCt24CqFil/yKkOnITR774?= =?utf-8?q?ZDIYbFZjjtqIsd1DGwzGB8Byked/flq7Hez+SAcjlYhzdOcIZPqjfVtn8Kv6QFpjn?= =?utf-8?q?mBhZ3gLK9M8ZsKeDTaYUFaGz7X/7S41ytG5m6IO7WQOxOroIGafxMCdvJOoS4PkTs?= =?utf-8?q?xrzzcXKmbWtlJekt9qOYkuwtAlD4O8itPqXpOZGw/2Jgg+4rGF+Tthjkscyr9E6Yu?= =?utf-8?q?h/m9DQoFIqVp4dR6UFIgVR3FWT3z8M1Zvvscvx0DJBRaxJjwDrF+H2ur+9xU7j5zu?= =?utf-8?q?c8PV6blAIQvkYUjLYD/qLxCP8JoNr8fPSB4/KZyjbFdoV6hnbGdVy5BD+jA+29XVw?= =?utf-8?q?9I6pmpOt2DEl/zJuhsr7f+a2GXyzqb9fyg3fWlkYeodI2RJ+i1VzlDvB0Tu9CqFnR?= =?utf-8?q?6DjTIQkW/dxYWfdJ6AeK+/vn9xHC8zHKQn/owtXcMKDERp7yRQY/xufZeoXrEQxs/?= =?utf-8?q?4sVJC62fEj6GBNp4AJZsyc8qkCtRsO3b7iGYrp1N+GSQ+0NStPlE+Bq/3od5i1J7T?= =?utf-8?q?or12J0VRhyhJ+jxXZcEvTviZYr9tEY9aKIA2IPnmPkhBEs89kTuFxI+mRxLnK71Nr?= =?utf-8?q?7/bAZCcj4QDrsymEaHlBJpQQuRMA6eMpun2BFVbiwO5EPglfmZyCqsckKMeFgynGD?= =?utf-8?q?s6yr2EDdgId7i0Q+0zWm+oVUwFZFEEWvZ7MjSU8Jj418/EgFMeB7p9Z3IGue+N5f6?= =?utf-8?q?QLZBAg4VRyFR2bjw7CsPPclmD8dgwLcfr/4a37cwlNHQkNKzJaQPdEnLLaWgnkR8z?= =?utf-8?q?pBIqXNGQqvluPCBXPgLmBCSUfAUjhYTI1TRXzxY8IBwjsIzXhtknAUmQvb/43XQ+r?= =?utf-8?q?0gbqErSVRpBO+0WlNc6u4jr5z0H6jF6qHblcRDNjVUKIILyjDgxqI8KpsgGSQ75xy?= =?utf-8?q?kknKeWMLb/f3AEbA29rI/y1llT2O+X3L6z1B0mMsT4ZWEzNvKJ2zMeE4cX/Wc0DML?= =?utf-8?q?KFRq04DQGzCNB7YAigT/0oimdvdcxs6CIb4Fb2F4LnBDkY9DOM2Cc1CwcGMYp2s5w?= =?utf-8?q?PXGf+A7m6tcXqMjIWt1cUmm4a1jry9zE2FaDTyG4tX7+YD2Nvp8I7BbxRWrAgMyNG?= =?utf-8?q?o3voCo82n5Rr1mi85nt/qsja/XK/lzVNJGFDUJuH9H54vTQ7X9+RNkGeMUT8TeDjT?= =?utf-8?q?zXeebMxH96GxD890FlhWM4TYcgE4BoxA=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7927bfa9-bce7-4981-d165-08da443ad02a X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:22.0261 (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: SQ5EbA4yd8/rQiUDnfHieU9B2aj/LhnMg7DOXT7fzYPW/xKaDBF0aYe7/aqHbbnreNjDJSTAFJ8KQFE6Qr/VKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR13MB1349 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: Chaoyong He This commit remove some unnecessary forward function declarations. Signed-off-by: Chaoyong He Signed-off-by: Jin Liu Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 22 ---------------------- drivers/net/nfp/nfp_ethdev_vf.c | 12 ------------ drivers/net/nfp/nfp_rxtx.c | 21 --------------------- 3 files changed, 55 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index ea92ca3f68..790d575bb8 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -38,28 +38,6 @@ #include "nfp_ctrl.h" #include "nfp_cpp_bridge.h" - -static int nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port); -static int nfp_net_start(struct rte_eth_dev *dev); -static int nfp_net_stop(struct rte_eth_dev *dev); -static int nfp_net_set_link_up(struct rte_eth_dev *dev); -static int nfp_net_set_link_down(struct rte_eth_dev *dev); -static int nfp_net_close(struct rte_eth_dev *dev); -static int nfp_net_init(struct rte_eth_dev *eth_dev); -static int nfp_fw_upload(struct rte_pci_device *dev, - struct nfp_nsp *nsp, char *card); -static int nfp_fw_setup(struct rte_pci_device *dev, - struct nfp_cpp *cpp, - struct nfp_eth_table *nfp_eth_table, - struct nfp_hwinfo *hwinfo); -static int nfp_init_phyports(struct nfp_pf_dev *pf_dev); -static int nfp_pf_init(struct rte_pci_device *pci_dev); -static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev); -static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, - struct rte_pci_device *dev); -static int nfp_pci_uninit(struct rte_eth_dev *eth_dev); -static int eth_nfp_pci_remove(struct rte_pci_device *pci_dev); - static int nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port) { diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 4aaccc91df..69d9e0ee47 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -23,18 +23,6 @@ #include "nfp_logs.h" #include "nfp_ctrl.h" -static void nfp_netvf_read_mac(struct nfp_net_hw *hw); -static int nfp_netvf_start(struct rte_eth_dev *dev); -static int nfp_netvf_stop(struct rte_eth_dev *dev); -static int nfp_netvf_set_link_up(struct rte_eth_dev *dev); -static int nfp_netvf_set_link_down(struct rte_eth_dev *dev); -static int nfp_netvf_close(struct rte_eth_dev *dev); -static int nfp_netvf_init(struct rte_eth_dev *eth_dev); -static int nfp_vf_pci_uninit(struct rte_eth_dev *eth_dev); -static int eth_nfp_vf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, - struct rte_pci_device *pci_dev); -static int eth_nfp_vf_pci_remove(struct rte_pci_device *pci_dev); - static void nfp_netvf_read_mac(struct nfp_net_hw *hw) { diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 335a90b2c9..cd7faa2c58 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -21,27 +21,6 @@ #include "nfp_logs.h" #include "nfp_ctrl.h" -/* Prototypes */ -static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq); -static inline void nfp_net_mbuf_alloc_failed(struct nfp_net_rxq *rxq); -static inline void nfp_net_set_hash(struct nfp_net_rxq *rxq, - struct nfp_net_rx_desc *rxd, - struct rte_mbuf *mbuf); -static inline void nfp_net_rx_cksum(struct nfp_net_rxq *rxq, - struct nfp_net_rx_desc *rxd, - struct rte_mbuf *mb); -static void nfp_net_rx_queue_release_mbufs(struct nfp_net_rxq *rxq); -static int nfp_net_tx_free_bufs(struct nfp_net_txq *txq); -static void nfp_net_tx_queue_release_mbufs(struct nfp_net_txq *txq); -static inline uint32_t nfp_free_tx_desc(struct nfp_net_txq *txq); -static inline uint32_t nfp_net_txq_full(struct nfp_net_txq *txq); -static inline void nfp_net_tx_tso(struct nfp_net_txq *txq, - struct nfp_net_tx_desc *txd, - struct rte_mbuf *mb); -static inline void nfp_net_tx_cksum(struct nfp_net_txq *txq, - struct nfp_net_tx_desc *txd, - struct rte_mbuf *mb); - static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq) { From patchwork Thu Jun 2 01:52:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112242 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 215D1A0548; Thu, 2 Jun 2022 03:54:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 161DF40694; Thu, 2 Jun 2022 03:54:33 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2133.outbound.protection.outlook.com [40.107.100.133]) by mails.dpdk.org (Postfix) with ESMTP id CCB194021E for ; Thu, 2 Jun 2022 03:54:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YZAn3Dd/QafJ63sQUhUejYC4PivSZIu5y2oU1x5Mb0ymXDp69HZTSwPCmN/CyGBH+pTWye2d0oWiHIPOBRAFZnEvdZIFRTuStQ6snfgNLxw0ERBdpLYCiQLaUWkmFoZBMIpQKpbute5UUeI6lecFGZ9LqSYr17Pfg9EfqSWD0U3w8XhnPxfv94JAFwzUcR7uueF/IOxNDv8Of3VZ/73Hzye/cMiIxIsAuEc+pmzwVv2Z8Xbul/2rU3ohChXTsQCoaz0NO2BKvdHuXVzHx8+J8cc2sU+q/7y97tZ3rp1a8/ahD2kzNE4WH6QN8Rbasj1oRg/cod7OZoLGV/lGwoI/kw== 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=6xNFDylXh5J/O7UCOgLdQdW9ilZ2J0GBIwhfDSV10Lg=; b=bQbdQ16CXV7sA5AuMgsHerU5+Vkrzd7Eu/HKirR5bNdQQOVCuahxRzgUvZoHOXe3OS/NKVqTlLMB/BiKWJbQzedSPl+l/ryROOzadiJcgTgfRD8zgWNCJyJ4tT2rIEz2iW4cMidrVwGmh3RFXEG0Xi7yZDhxFhWUKyea/8013EgKGg+1hRLhPA0ihcS7Od7zfEsi9IeEpCeOkf0sYmffr1uOMVd1hyAz7c6LN37pQ8Z2LrH718KRyYUOYCJYMv52FSTB89e4QOkFEPqacfSLekk717XsDcCenGqDNVxGL4EhfIVD913zpO6kUIO5n1eP6nKYlTEnB+l73uaU7UYXCA== 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=6xNFDylXh5J/O7UCOgLdQdW9ilZ2J0GBIwhfDSV10Lg=; b=iKgpSpQyop+CpN+S0Wsddb1DvYGwx6TJVXboEi3bZP5mMra1XrPWFuJACz7pAaJTPMqdvykpIjlBD2KftsphawVUd8Eh8/ljNDyUmey6Q+nIkpqYV2cml5FsZKio/cmdMfVBW/Gf5FRRtcsXLfe7tK8RZ2QvDOSN0wFpZs5ZcgI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by CY4PR13MB1349.namprd13.prod.outlook.com (2603:10b6:903:a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Thu, 2 Jun 2022 01:54:30 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:30 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Yinjun Zhang , Chaoyong He Subject: [PATCH 03/14] net/nfp: remove pessimistic limit Date: Thu, 2 Jun 2022 03:52:53 +0200 Message-Id: <20220602015304.710197-4-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9334744-1bce-4be9-07bf-08da443ad50c X-MS-TrafficTypeDiagnostic: CY4PR13MB1349:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xZeRM/YlFz89IqPgPjl90RIK+Kc0JwjaZB2v1n2TadSpeozEwOh4gq/y8sP6AQzZxfXx3P36PPPTHmgaFsz38Jmvse952IQKGfFJKZRQ2UTlnwuPVyN0QY3yrpEPIxfkBrnHyDPMGnuUw7el+g+orv+6BJt+eabwLcv+oIqbKznfb2ornqhBq5TMPuN9pDtLkikPxyVMgSlYuSkl5kqGwQZHRTW6tY5+DKluFHkr3oSgtmD8+7PPpqGsiOyS/jK3vZ1fVh79Jsp8qrequm4f8GN7gyavG+oB+eFkLDcubVHkNuhYB5jMUypBlolSlWWuvYBu7Bmy/2iUfvFcOLQFkIfoneWONCtxnBlL17aFvGns+wm1DCAcIPbmjpaJoKsfedxnQeBMSvyJjybCjCE4CYb6ObuzMbqCjhrMst0/2r4cnDPL23f1Ygeg8bd2xSQj7cYhMpS+gGcGYQgm6CGPz9t49tUR+REcrzClQR6qT2auKSGkAegKTNQSGMBKLuCDk56OBCB7acsZXYMaKdhtDubAnGrj4I/sY5sDQtJapxgSHtS01vrsftwEyJb6HCQEgG9y05yK9LiQEnNJd+PjnRZ53042cYOi0YkOG0myt471fgtJF3mE8G2ZMAH+CN3x5jlkb+2k4bZoc6Prs3EnUDqjDSAiHMEkYgFAY7TimcqBW+leWnL4eWrOxohpeQu2wJOi1zji4kb26YSxiAzL5g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(39840400004)(136003)(376002)(346002)(396003)(6512007)(83380400001)(8936002)(38350700002)(8676002)(66476007)(316002)(4326008)(38100700002)(26005)(66946007)(66556008)(2906002)(6506007)(6486002)(5660300002)(508600001)(6666004)(52116002)(107886003)(1076003)(36756003)(186003)(86362001)(41300700001)(66574015)(44832011)(2616005)(54906003)(6916009); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?qqJDh3cd24VJ8NG3HafxAkhVH0cg?= =?utf-8?q?6AYv6Tj5ZYwMt/s8mCb2v5HYp3kjiOGkLMuuxK1R+m6zJWZBwn+dT5CjtA551bkxv?= =?utf-8?q?KwghPS2lsmOYAsX9vY+YyIUsb/CJzMewGqbbfnTUcmu3P9oMiqanDElrQWaWn32tj?= =?utf-8?q?dQdJHMO5s1X8JX68O4Doq7J7+Kl6sjmox3i8A21wQhPXTbhQ1PaBFaRXoRc3kF/dG?= =?utf-8?q?1F1HjuQlhvL+RbfJepVGb27xUviZDabd1ER2u6gDv+byNaNOJA+0kysTE5jx2c3oh?= =?utf-8?q?YvlRj+qNlNmIy1tXXYU3GaxWqcrf7D1eIrIa/hgzbenzXjLKMuQPo1oMoLsjM02o4?= =?utf-8?q?h72WzWO6Q6QjPxZysjMz5HY0UhiQb6jN86pzT7dG023Au3me1XuDSnhySYYkkZ9wg?= =?utf-8?q?fu12sKQl2UhLNl+IjVNmO9+Y3dhh/IP4dz5GFneahipZzLXxC9E4pDfXyv5R6KlC6?= =?utf-8?q?2X5b3zRfKSrfJzUrnkIGXt6McqhEpEkc6fTLiusuZPs7cuqqa6S0ahZLb+N8mLVWg?= =?utf-8?q?j1hhkQKJlS/lEV8KmNMT8H5GSCAgEBTI1zDgb4jnHZDaXn8KsNGx48b7+s1Fgn6aN?= =?utf-8?q?EqA09Fle0SRu5g+zeUiQNc6ptuRYvPNmhKw1y1oCThaH4vg6THta3PIitLeWEWEjy?= =?utf-8?q?zviSeQQYUgK/6TxEMx2dWbr7hr2GMCxnHLI3oMU6xuMAtfHJgfUHBodttDIXtXXjr?= =?utf-8?q?sCyaYgnJvYQkDB2hPrNxSPqzniPn6k/GC4bH8+qX06QQ0L+DS0zUtCeNJsDywvZdn?= =?utf-8?q?+/nQjRvuKIFMKxMb24l2S4buo7zgIfMqU55H+cqk/WrTTx6wCu1Rifc5frwOi3826?= =?utf-8?q?82xf3fccaW36ZxCE4D6pOj64VDeD7Ip/+ecZ4Zk5eruLQhpGFPWDtcdgsVDciiFlR?= =?utf-8?q?hfAzl9y2Ueg4krNdFU6RSIYVVX2lYuUfzuMfssClLiJx31hAg+OH/Hjtfv/vWjk7s?= =?utf-8?q?XCH9UkcnQoaMqFY83CUrMZE/y4QFzIat/b1f6mNq2pmv5j48L6CsLBKQ2evVTQ+EG?= =?utf-8?q?2Mg5cEeq55zXdzC6p3Hzwpl1XdxFuBygBImJlYXaixBJacIPPf7pL1MGBJhkhwYPQ?= =?utf-8?q?1NIZZOgH2CsvnmH2Se+8D9priG4wySHvJnjlmq2xU42AHrwwIQLSIDVuqLe1yzoYq?= =?utf-8?q?KfCcccT7+ZDPZmUj4m0D587nMnGY+WkgxLhISkBVYEw8Jdo0bnXRix+LX6k7WP4BX?= =?utf-8?q?tWn0xrdehRqsR7DP4Bz9SxgeIDE+MrSOI8elAhK5/HOPfP6QeYclH7o8Ax4A40pfV?= =?utf-8?q?JyiVpl25luq/9Y8fF8L07W+14xGz6M548trBAwVfXkWWHLqAOXrfu/D5uM0uBXyZZ?= =?utf-8?q?pc+Qcn/0tJLx+ihHKn5tlHoVS8tZxd7tnAb7Xxbz9znMSSKNKaOLPBDjBvM/RTIZK?= =?utf-8?q?nI2833t+xLBAcxHoxHXuZfe38fRIciCuaoBQ4lgsvIWo1XBUyNuOK1FekCBgh6gaA?= =?utf-8?q?Alz4tPaRFjvzFxKXQriFeVam6lGfpetyAxGRYgZyXEH1drY1TPwxMv/ktW+m3mSfZ?= =?utf-8?q?QqmjVDdvrS71ryPIJpvG+ulGOESI5BrYML4gDMAP+AbZgAZQb/pY/DrHaEnr4qBH8?= =?utf-8?q?RR9BisegUN33u8UPa3yUBLy/OlsRWglxIU7gV0Bvtba14tpj+g84L9qDEkHAep8An?= =?utf-8?q?2DAXXlr1Vm8ToLJVCPRKICQslUP7qCuA=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9334744-1bce-4be9-07bf-08da443ad50c X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:30.4160 (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: gP6YgvMGewmnvN4SQzRX4oUsjl37YHTNCbnjeTpHGsWFh+RSLEgZ6axeQW29ksXFZgqli9mxzY7330kQ0SHKkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR13MB1349 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 Multiple writes cause intermediate pointer values that do not end on complete TX descriptors. The QCP peripheral on the NFP provides a number of access modes. In some access modes, the maximum amount to add must be restricted to a 6bit value. The particular access mode used by _nfp_qcp_ptr_add() has no such restrictions, so the "NFP_QCP_MAX_ADD" test is unnecessary. Note that trying to add more that the configured ring size in a single add will cause a QCP overflow, caught and handled by the QCP peripheral. Signed-off-by: Jin Liu Signed-off-by: Yinjun Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.h | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 8b35fa119c..2ca3c0c30a 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -44,9 +44,6 @@ struct nfp_net_adapter; /* The offset of the queue controller queues in the PCIe Target */ #define NFP_PCIE_QUEUE(_q) (0x80000 + (NFP_QCP_QUEUE_ADDR_SZ * ((_q) & 0xff))) -/* Maximum value which can be added to a queue with one transaction */ -#define NFP_QCP_MAX_ADD 0x7f - /* Interrupt definitions */ #define NFP_NET_IRQ_LSC_IDX 0 @@ -304,8 +301,6 @@ nn_cfg_writeq(struct nfp_net_hw *hw, int off, uint64_t val) * @q: Base address for queue structure * @ptr: Add to the Read or Write pointer * @val: Value to add to the queue pointer - * - * If @val is greater than @NFP_QCP_MAX_ADD multiple writes are performed. */ static inline void nfp_qcp_ptr_add(uint8_t *q, enum nfp_qcp_ptr ptr, uint32_t val) @@ -317,12 +312,7 @@ nfp_qcp_ptr_add(uint8_t *q, enum nfp_qcp_ptr ptr, uint32_t val) else off = NFP_QCP_QUEUE_ADD_WPTR; - while (val > NFP_QCP_MAX_ADD) { - nn_writel(rte_cpu_to_le_32(NFP_QCP_MAX_ADD), q + off); - val -= NFP_QCP_MAX_ADD; -} - -nn_writel(rte_cpu_to_le_32(val), q + off); + nn_writel(rte_cpu_to_le_32(val), q + off); } /* From patchwork Thu Jun 2 01:52:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112243 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 3D80AA0548; Thu, 2 Jun 2022 03:54:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2C2B242670; Thu, 2 Jun 2022 03:54:45 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2117.outbound.protection.outlook.com [40.107.223.117]) by mails.dpdk.org (Postfix) with ESMTP id 5DB444021E for ; Thu, 2 Jun 2022 03:54:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kK2bYs1f0r1H0a70I++++GwlFp/VfwKKGFiBthjRljvOoK/3Cvm3q2Z5KQ+DETuxpqFhH2r7LasTYKTH8uG3faV9dWL/V4zvcPXLDEO2AzSdJvZa4u268pjXqF+ydcH2n05oawP9WG01wZRuhdaqXilokEdOFom5SbuxH9pQv6dBgxmP/M1HWzHitELqLHHZUqrnuEc/ybClYi0sqQjNukNe5IiOrTZiAjDDDgnjzt6SKmvSR221HEJ23RReuhwDQ4w9oWEA8py0iML+2o6chj+wfydg79kHHOMarNe7j6pcZUhGoXt7OA/jPiJDfwFh4WMnzlSl18oyLvahEkOwcw== 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=sDQhxEFd2lzdWcSxtS/mozMiE3XF1/yEzL/wpttPoeM=; b=oBtlDoUsuwcnmVDfZ+dwuge0GCi2hxmue632s3usZf9h0j5mfTgT2EInxwHrdcZf31j4RXRmeJDJo4N1FDGN5swUk7jEGjB48M+NuYzJ7g+Bl+T+z5eoihw3CPe8qEVyX+x9xxEmJSlR3YuulQSRwr661O5+qlz/wfRNsvLrFlGnbsHZUIkOOcv/r1Akla6m9eWeelX/p/ttsmib4xiXm9hc/3AMdMH54iPZMQgDtcXl2bQ00b0CrH6Ltp5zFwL+ASR9gp1cSM9KiMb+GQJ9LtFN1hXQtKvLwZ2KfGln+/RSA9LeJoOherKnMBF44LAIPYTr2zv3KGsWxDBCy0s0ZA== 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=sDQhxEFd2lzdWcSxtS/mozMiE3XF1/yEzL/wpttPoeM=; b=gEszQijCT//3vUEBowH07lCTHI6tI3e1hz0k2iJqcL3BZ4e/PQyh/NnLbAqb44ZAHgxWTUUwvZd45vIBPdHDjTl02MEwr0GEo9Xfn47A2YhOi14AYq2xjXbLVCM0PO/+TeW77chmziY+/c63ja8hjnPs8uVeXFim10z+l9vPXbg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by CY4PR13MB1349.namprd13.prod.outlook.com (2603:10b6:903:a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Thu, 2 Jun 2022 01:54:43 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:43 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 04/14] net/nfp: rename set MAC function Date: Thu, 2 Jun 2022 03:52:54 +0200 Message-Id: <20220602015304.710197-5-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39809aef-dcfd-4644-fa06-08da443adcc1 X-MS-TrafficTypeDiagnostic: CY4PR13MB1349:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LYLduHV90usVTrRPvfdFDpvNzDpF99rrCr4Fyh6yL4VGty8BbmBQWiW/K39bHPcQHcJ15a+bCOcINN40T8kFfir81XneoQzNir7x8/BvY9fm2hZdyZL44lezYtRFQ+21XLTUbn4V9eXzWQ4PP3Us7QoIcsT6A15aB8sUIc6XuVuTpydRpk6srFrAHXZRedcaj9gpMhWvx3xmTElmOLpgm6uDLmrl+VTDHWxDovwNm9dc/HH2hhUyvzLrROvnRCFFEF3dDo52EzDbXFVbmx4goJFGMb+GDvC1waueqYT8449oQELRZ/PNg9aauX0kwCmfanqbKC2v4jv6pSP5dDFrAcavnD6dvpTJkKooWm3orc7zROb1hzyRLsAy86Z3qTj6LHWu0jeJ5Zwr7GqUH2joTl4nLTm161MxI/9Jcfv7gfLb7ZBflojULKNMeMIhiMsJFyrQOKaTbCmFd8a08Ao+H9e21CNUMgaWst+KD0rae96vgnTuonVgjKIGfdQ9g5N0ay5xvw4ysu9VraYZri0KhUgVgNq1o4HUzLW0SD0GNUwC8wAYDgrO06FU0T8FaFyqHTuN31SRH+iGaC90KaspwSgCjHvpZYGrY+zsLpfzHFszaqAWg3xe0cyc2xcvtKqi7SYr+9BUL6THcdD76nfq9jfNzHN1Ck8XQNGCeNQdmmY3lh+9fmnEzLJsVrrQooSy0en1U/7UgDyrZGXZrUSeIQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(39840400004)(136003)(376002)(346002)(396003)(6512007)(83380400001)(8936002)(38350700002)(8676002)(66476007)(316002)(4326008)(38100700002)(26005)(66946007)(66556008)(2906002)(6506007)(6486002)(5660300002)(508600001)(6666004)(52116002)(107886003)(1076003)(36756003)(186003)(86362001)(41300700001)(66574015)(44832011)(2616005)(54906003)(6916009); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?J0tFGai8S71s/psn6gFWcSGvR9jM?= =?utf-8?q?dkdm05JbNJGHIlGDY8wbZeuZ3Mh3qNZxEtfD347gufIlwwXMyo6ZX1RAx9fR/4rZg?= =?utf-8?q?jilHmTXy3ayjmf78AwMHP6uNOmLkNdtx1XAX3needyV5QwRN5ItnOE8TYpoqe33pX?= =?utf-8?q?BwbeB76rBWUwHKRsQKCCQf7JMZxYnVVToUhmAapFMjKaRDWtlr7GdNKuUGiKmZIh1?= =?utf-8?q?aeegX0euf1ap+frS3scc78xzBnw8gBXZSUkT69VGZ5h/ekhNKnx7mGadHN6xbGgrn?= =?utf-8?q?2gRNgp//LBQ9loz5rekEeOYWGdJjir1cdrErTj7q/xkunKHPzqxGvBlGGzfsXtkyv?= =?utf-8?q?GUfywtuAdhVcT9dNSyQeIgdIX337jOYvNhd9CV0v+rX8cTBpQU70ySdxyHT8XprTP?= =?utf-8?q?Kgd2rf77JCmtuw/4S7j8P5PLN2ws4f6oVaJLEt4KiFTdspgcJ8vK5ET4WcyY7in+H?= =?utf-8?q?bu80oUePlPDXayNCAk11SJke2Az0FU0zmJWC9B94e+72s5wxd13pb1w32vWKdgqRQ?= =?utf-8?q?v0eoqFeo2eJ69X5Jtu+0e3604xLger05pkccVtNKQBN71MQed0NEzRzyhIBPaQYtf?= =?utf-8?q?nmNBs3JaUIv0pPVxZPjNLZASkePQraLsfHrgQkg3yQ4JPbHECf7kvKPifTqCMzJax?= =?utf-8?q?suyQlPUz71dluAGnwsJXNrauoc8caM8wyPcSLCzqIG+bPKGyuuT11b/KsaWHU9RFL?= =?utf-8?q?dSyclQyGvbQ8izKyD5iZDe74vM+CJxEkO9EeorLvYHL2VO4xvQV94BBV0E9pwVb+x?= =?utf-8?q?21+boLC8nExKiXY9nLsfiGDXHJ85PNC8rbqRP3QOyNwBbIEwP8qa1bYVkYqNZbzfc?= =?utf-8?q?2ICxW6vdnUzCAm9WfVcbcqz6Zea3C3VfUX8XuYzEodGZtN7dZQYjpXY2DRqCNO50m?= =?utf-8?q?Jaiy8xkwezvxRQo9O2umoJhIs/kSqjPmYMdSUZhImm2q0U68Rry1daK2IGP+m6QYM?= =?utf-8?q?bm5aifqYd6izeq3p6Lw9rrWEQktkikCKSeWva9yFmYBdupthr4jfngeLYqLTLRHLx?= =?utf-8?q?WmQqLsKAR2z3k6J1paQyIYR1nuBS+bt//Zk6mMzlLZs0O1guAm9viLojlmmVxK5u7?= =?utf-8?q?pGBugVO5CN5qgW8EYIggsNWmjaf/VFbSAjNA4G10mN0g/z7TN+ZEHyfKVBOmuztvE?= =?utf-8?q?e8D5eAaNolTKp3ZloHNV5rIzVmY6UddjNAPD9FVwS8/Q6JofThhKUqcI4VnpOiDDT?= =?utf-8?q?Svjvzt7r1pungIKgtrO9TSn9NBya5TvjQaKHaWSobniVesd43iYOarvb1IQxuudUD?= =?utf-8?q?2wm6gT61024RKvczLPsEx76EqLL1ctjEphajSPOgJtJpiUyK6ND7Yl99a8/FQJfYo?= =?utf-8?q?XFdUgGgAkyGhaiRNqt4jvCk332/WVlNY1oBAopdQk1vVYDQn3CfYnLAEiiPcFTs9k?= =?utf-8?q?KTn5RTgiJ0z9fYNxXMjxLXvcyLgA/QC/x7J0WyLOKg7Ggik7fh6FlM7GnOQqzZPqZ?= =?utf-8?q?mdK1jkjaQNVCDJY5zCK5/hq3J7XLMV2D/oFeWLjfqq+umOJsGc2mbeZAGVAGDcdjG?= =?utf-8?q?4eaVskymxpR25HxJiiJCGGMz/BLcr3spBPxahBjBq2mWpUUSrpi70TeDiiN1aCWYZ?= =?utf-8?q?uVNMPhLfPvEUOIRoELgDEXUdudzbZCKE8hClWr59NmAx2n8gg7SDIg29o9aaLZ4cD?= =?utf-8?q?9wiNAeCitIb3fexkVrWjzogf0Ez1cPIA=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39809aef-dcfd-4644-fa06-08da443adcc1 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:43.1494 (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: Dnoflsl3yyJ/XZ/Ky79motHLHTZb7drqRTx/xr3DzjoujhucO8313rXhpu/Zb8Vinmm8pVj+uXtRNS8imwUDzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR13MB1349 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 eth driver function name start with 'nfp_net', but set_mac function start with 'nfp' only, rename it, be consistent with others. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 2 +- drivers/net/nfp/nfp_common.h | 2 +- drivers/net/nfp/nfp_ethdev.c | 2 +- drivers/net/nfp/nfp_ethdev_vf.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index b26770dbfb..6cd1085c1c 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -267,7 +267,7 @@ nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac) } int -nfp_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) +nfp_net_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) { struct nfp_net_hw *hw; uint32_t update, ctrl; diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 2ca3c0c30a..1dd230bcc6 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -347,7 +347,7 @@ void nfp_net_disable_queues(struct rte_eth_dev *dev); void nfp_net_params_setup(struct nfp_net_hw *hw); void nfp_eth_copy_mac(uint8_t *dst, const uint8_t *src); void nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac); -int nfp_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr); +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); uint32_t nfp_check_offloads(struct rte_eth_dev *dev); diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 790d575bb8..e491eee99a 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -344,7 +344,7 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { .dev_infos_get = nfp_net_infos_get, .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, .mtu_set = nfp_net_dev_mtu_set, - .mac_addr_set = nfp_set_mac_addr, + .mac_addr_set = nfp_net_set_mac_addr, .vlan_offload_set = nfp_net_vlan_offload_set, .reta_update = nfp_net_reta_update, .reta_query = nfp_net_reta_query, diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 69d9e0ee47..aa156ad162 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -251,7 +251,7 @@ static const struct eth_dev_ops nfp_netvf_eth_dev_ops = { .dev_infos_get = nfp_net_infos_get, .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, .mtu_set = nfp_net_dev_mtu_set, - .mac_addr_set = nfp_set_mac_addr, + .mac_addr_set = nfp_net_set_mac_addr, .vlan_offload_set = nfp_net_vlan_offload_set, .reta_update = nfp_net_reta_update, .reta_query = nfp_net_reta_query, From patchwork Thu Jun 2 01:52:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112244 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 44E9BA0548; Thu, 2 Jun 2022 03:54:51 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7761742B71; Thu, 2 Jun 2022 03:54:48 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2107.outbound.protection.outlook.com [40.107.223.107]) by mails.dpdk.org (Postfix) with ESMTP id 9268D42B70 for ; Thu, 2 Jun 2022 03:54:47 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NKZAL2zrZLIsikKGVilmI9JIyFGVuP8uN7BE02IOCeBzz7r68Y0PhW4FzzfKun2eifhE4clwQ8SvxT8Ur2Oq8F+Nrna0gUcRnf8uJ9yKtiD3CL7osfqy+jBskKqKJxWTDMVwtnlks/RzcWgyltemQRF0rKpfzJLlfFHfv1nDGu6F14EBt6QIQkMWn4Gu0+WJUeZOUTH+2M2PJEvnaDbBkr9VH35N3axizxK0y13BN6tyv7zOlBVaLI6mpNTCNcdZTYdRAtXdXP8Dn38WyrdaQQfIPdMXLDla8yeQ3vjn/JT8ym4oY+dLn3+qVFuPZL12GCd9B1cb12WhX8Yf24DKKQ== 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=jNQQseR4lHSv6qkTTkZDpdzMgaWasqRxgBnyOqsxc/I=; b=eyoPqVy9eX4UNna1+s9VuIlnSqJs6ljMqHx62rnf0vcrtr8EEceZ99DGP74QOKr1KmsYFQIRBrdpE3U9CvaVBNKsT/YUm9k3xjkzEoqbIVIwnDsYt7dYi9CyHxfDDs/EDHlAG47INjZlewXo837fTW/jdCQrOqVGH6vRDa3XmzbWNUJWOd6UaMX5/ACS8ddKP/sv11DHqMfKgRKqkqYelc2UaANuUjjGsXVPgq9guBYAMZ9LlZ56ufhm+8Yoi9A1jOqnXsndWuu83TSz8U7WPZTl2SLtpvmwLuWwK5mSmj4SzxbHNzJv3r5xOhxvlkmmPeizYbxLX1BnscbbzMvWvQ== 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=jNQQseR4lHSv6qkTTkZDpdzMgaWasqRxgBnyOqsxc/I=; b=regGp9ZVjg1V3QBY/Gkf7+2J7SD3ly8cLpKqXsM/FlsoHjnz3x3b/giP0HFN+ZTa03QqR+YAJ9K35vPnRD3DWZR63ij7TjJyASW0Jqh1gV7b8I6XKSwuxobgUR3ImI+5fDSvwf33i1E09Xt/Mp5SmFZPziSM9PGkM1zOmQwCTqw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:54:46 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:46 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 05/14] net/nfp: rename function and struct Date: Thu, 2 Jun 2022 03:52:55 +0200 Message-Id: <20220602015304.710197-6-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ccf77b29-ee9a-4c0d-8f32-08da443ade65 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bJTpfpN/sJfWvRJKiMcr8ZS0bpfTcjdC3cupMsFMSFh+oyglJPM3wVCncQnSpksREUH7EIitKKXd6OT9Qxrw88GzYrGOVh/yrfkj+WBx6BVEsOCuN+i8fieEQjKSMWlDJWydFg5UQje1/xhzHEj63/n72E3U9Y75juOhD74K1inSfvdxaGsVBA1ABc5512hCr45ClCMqBkQyXUqvY9uKEFLMJORm/R2knwn8R556/jCWrEoXxWN+++A93IjBiORjPRczSM3fSvRHIyLC4oAc1Nu2xGkwECnWjVXFOcT2yJIBfzpoL2y3jONx0s4gxTV3Imy1VKjpH6m8FdoGLDPks1laKlGccp7nK2gVleo3klCodlk3+mh2iZfa/wqdBSxrGQVyEZoqTlzuW+lp7gSdPnWwV/Nf6kVOE5yTFL2tbOk0t5+u87pRQCU2DdleOPO12IV2+0lJECfepzxJZ7dFulHh9e5DxCd2gMYlLcgwJ6zWNimlnpVU+I51izEyXUEJNhOsgJYCiE8cTmaZn7bD+FdpzJ5f95Op9LozVi/xeV2h61SWlDXojeC6DJZLO7moqVwrCgZejPCltgqrDlHEevD13ng711BflThQKPXT82Mci/dX6XXLMfmaI7DmNkUsK0PqL0ggmvkCi1dRKrIrkTl6ZLZf138Lu4BNbjXeO2HJpUkIRL6A1d312dl5oYKbLTj/n+526AfA+5J8Aqcndw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(30864003)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(6666004)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?J2/j0C/04TNSias1QUqhWYbke4Hl?= =?utf-8?q?wml4zhpTBNwYtYa1RjcRoagHcwH2Rtky+JLV3v1mGYD/Ow8kxpfiEez5MF/WurnsO?= =?utf-8?q?DxZu8BbkLmVmseISxtk/gbQV6+mjETtVVg7tAN4lRPrUM9iyNuxB64voagSxxVp26?= =?utf-8?q?M+qQypYeLfm0wyw+VkoOkLIzBIQSiY2DEoOxe5jmKsQqCBq88Wrx5yQ7Hkz9gicEz?= =?utf-8?q?FlySVfa/x4L8Ai9QKqahFLKNmya6oSA98Og4rRnN81FpRGMD9HzIcRB5XdRTIvLzH?= =?utf-8?q?DljcbStby5ZaaoGQryxxtnUsNOlRmAFl5pmSL0TWqsDwfS7k8xw4ATeRbUv/KVpSy?= =?utf-8?q?nmI8Va4J8Lx2YUyT6zWOo5HlDrJVemRbMYNC16c0CZbKBbQ5GPzF5zn7U6Bj6+kWl?= =?utf-8?q?WVgJiQYH3ZcFPoneDg+vM0BQz0fmpnNsxugkrbnRrg8+QbQdc8k/WgBJRAzQ8jHch?= =?utf-8?q?c/94smO+SshG9fzki2pxrl3in4Uo63Iw0NAUhn8RKRuRLDUpHcpF29/bG5lrVn0bc?= =?utf-8?q?Smq7S17nAy5pLTYO9Nuk10azoYueFyUpkaTCrHcwzk90rBspcV1jSnt5KWnLt1tMy?= =?utf-8?q?YcfGyp1Kz7cAq2s9F4pPD/CuTMBw1TRqXgt8gwWhb6J078cEGJ1hXew3gF4aBrbUm?= =?utf-8?q?QAmUrxhmKX7gZX1rVsArbjQpiUNCZoj2sRThalaG6jPpl3fMzTS6ogsDMVv3nU1v9?= =?utf-8?q?scJGO1pkLzJQwPTc8omV7Bn2aMSFVnftrYjXuxaOefOfT7cKDaaAYpjR5bbL3qYZ1?= =?utf-8?q?z/p4pY3gm5hAanigIBysuNjAH0Qn6MMUCYN9GLmda5e1p1icjNd10yDREqVkf6CLf?= =?utf-8?q?rYAD4XNE/qRyDSPr+Ts/KVa/YmNLLmu+cF6nmJIC+0Z57ZQs0teqTCd3c+Msk2T2w?= =?utf-8?q?CHdiFoR2LcLmuJl2us+CexGcasAgJUA6tEETM+0WO7MM1C0ZxFMwgct/HFCLqRyR6?= =?utf-8?q?xvp1l29KyDfYQML0qw3b186NR379LQLeiHOlo41tUOlHiFIGDn0Jh3mj7K/mP+EdD?= =?utf-8?q?SLS3cU3Fg/0x0HUBQkwa9BnU0nXN3fliXtxSmKc6gWtAGqazh/2GpIy/h0EZn4xof?= =?utf-8?q?iJ5tW9EBbB5j+ERqVUgpITfcfxo7kMGistkitmyrysqmRxBaSoNi3cpPyEGiCC4Ah?= =?utf-8?q?81i81yg+2QaClDQQ9WJS99Io1r+QGZ8YTWM6YGe0z9UA3LvqRBJtxxIa0eAdeM7tj?= =?utf-8?q?A4lBct6CexM8uFsIzmYxaQjz5h5DlwXshDEbXkLJwTBacqdSsPMbSSg2pxD6F3rb8?= =?utf-8?q?vrbfYFcesSZBnMYR+8u5pbhCOMulsKeijAgCF8liT8tonUOx1Dl1yPpirbeTCAN97?= =?utf-8?q?nTBvFCuyFXwAh8d7czw6MYXnrMlLev8m5VIXwA2Huqqw3iDy0j1V7oY3/qy+kU0/p?= =?utf-8?q?vKaE24VW1gXQfIbWXRj1K4bzEOY+cElyV3kJ5V0gU5dAlQrYRmH2LVJE2EQDhE3bW?= =?utf-8?q?rQdpmMWS/uN6/HJe0kPNAMGM3uf3/L4DMtRtl62iHtr4ut5Cn4HRO5n+jtBf7VLfp?= =?utf-8?q?YfVme23uAxEgklgQXWP8TRn/O5/2sWDZQtryzW8LEL6GCQzHye9D810+fTYJlgLPr?= =?utf-8?q?CdVOtOWSE+Cjgt9gl0U8iOAbG1eF54IMzVjxifUPz2AWMq/iF+2So9c++2edXf19B?= =?utf-8?q?sZIT24GQs/8enRSVrVKlggt1Y9W1c6eg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccf77b29-ee9a-4c0d-8f32-08da443ade65 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:45.9929 (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: ME4ePJF4yTkO3o7Pje5AaRvZrxvg6lGBBFFB4+blpl2MZP6anpxGpn70rGmlMCA5Yqs0yUN4+urYM/0vh8gBsw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Add 'nfd3' into the nfd3 firmware eth driver function name, preparation for the next work, as we will support another nfdk firmware version. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 28 +++++++++---------- drivers/net/nfp/nfp_ethdev_vf.c | 26 +++++++++--------- drivers/net/nfp/nfp_rxtx.c | 48 ++++++++++++++++----------------- drivers/net/nfp/nfp_rxtx.h | 12 ++++----- 4 files changed, 57 insertions(+), 57 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index e491eee99a..0d5caf94ea 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -179,7 +179,7 @@ nfp_net_start(struct rte_eth_dev *dev) /* Stop device: disable rx and tx functions to allow for reconfiguring. */ static int -nfp_net_stop(struct rte_eth_dev *dev) +nfp_net_nfd3_stop(struct rte_eth_dev *dev) { int i; struct nfp_net_hw *hw; @@ -195,7 +195,7 @@ nfp_net_stop(struct rte_eth_dev *dev) /* Clear queues */ for (i = 0; i < dev->data->nb_tx_queues; i++) { this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); + nfp_net_nfd3_reset_tx_queue(this_tx_q); } for (i = 0; i < dev->data->nb_rx_queues; i++) { @@ -251,7 +251,7 @@ nfp_net_set_link_down(struct rte_eth_dev *dev) /* Reset and stop device. The device can not be restarted. */ static int -nfp_net_close(struct rte_eth_dev *dev) +nfp_net_nfd3_close(struct rte_eth_dev *dev) { struct nfp_net_hw *hw; struct rte_pci_device *pci_dev; @@ -279,8 +279,8 @@ nfp_net_close(struct rte_eth_dev *dev) /* Clear queues */ for (i = 0; i < dev->data->nb_tx_queues; i++) { this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - nfp_net_tx_queue_release(dev, i); + nfp_net_nfd3_reset_tx_queue(this_tx_q); + nfp_net_nfd3_tx_queue_release(dev, i); } for (i = 0; i < dev->data->nb_rx_queues; i++) { @@ -329,13 +329,13 @@ nfp_net_close(struct rte_eth_dev *dev) } /* Initialise and register driver with DPDK Application */ -static const struct eth_dev_ops nfp_net_eth_dev_ops = { +static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .dev_configure = nfp_net_configure, .dev_start = nfp_net_start, - .dev_stop = nfp_net_stop, + .dev_stop = nfp_net_nfd3_stop, .dev_set_link_up = nfp_net_set_link_up, .dev_set_link_down = nfp_net_set_link_down, - .dev_close = nfp_net_close, + .dev_close = nfp_net_nfd3_close, .promiscuous_enable = nfp_net_promisc_enable, .promiscuous_disable = nfp_net_promisc_disable, .link_update = nfp_net_link_update, @@ -352,8 +352,8 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { .rss_hash_conf_get = nfp_net_rss_hash_conf_get, .rx_queue_setup = nfp_net_rx_queue_setup, .rx_queue_release = nfp_net_rx_queue_release, - .tx_queue_setup = nfp_net_tx_queue_setup, - .tx_queue_release = nfp_net_tx_queue_release, + .tx_queue_setup = nfp_net_nfd3_tx_queue_setup, + .tx_queue_release = nfp_net_nfd3_tx_queue_release, .rx_queue_intr_enable = nfp_rx_queue_intr_enable, .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; @@ -401,10 +401,10 @@ nfp_net_init(struct rte_eth_dev *eth_dev) PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, " "NFP internal port number: %d", port, hw->nfp_idx); - eth_dev->dev_ops = &nfp_net_eth_dev_ops; + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -970,10 +970,10 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) return -ENODEV; } eth_dev->process_private = cpp; - eth_dev->dev_ops = &nfp_net_eth_dev_ops; + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; rte_eth_dev_probing_finish(eth_dev); } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index aa156ad162..7d79a08041 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -143,7 +143,7 @@ nfp_netvf_start(struct rte_eth_dev *dev) } static int -nfp_netvf_stop(struct rte_eth_dev *dev) +nfp_netvf_nfd3_stop(struct rte_eth_dev *dev) { struct nfp_net_txq *this_tx_q; struct nfp_net_rxq *this_rx_q; @@ -156,7 +156,7 @@ nfp_netvf_stop(struct rte_eth_dev *dev) /* Clear queues */ for (i = 0; i < dev->data->nb_tx_queues; i++) { this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); + nfp_net_nfd3_reset_tx_queue(this_tx_q); } for (i = 0; i < dev->data->nb_rx_queues; i++) { @@ -182,7 +182,7 @@ nfp_netvf_set_link_down(struct rte_eth_dev *dev __rte_unused) /* Reset and stop device. The device can not be restarted. */ static int -nfp_netvf_close(struct rte_eth_dev *dev) +nfp_netvf_nfd3_close(struct rte_eth_dev *dev) { struct rte_pci_device *pci_dev; struct nfp_net_txq *this_tx_q; @@ -206,8 +206,8 @@ nfp_netvf_close(struct rte_eth_dev *dev) /* Clear queues */ for (i = 0; i < dev->data->nb_tx_queues; i++) { this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - nfp_net_tx_queue_release(dev, i); + nfp_net_nfd3_reset_tx_queue(this_tx_q); + nfp_net_nfd3_tx_queue_release(dev, i); } for (i = 0; i < dev->data->nb_rx_queues; i++) { @@ -236,13 +236,13 @@ nfp_netvf_close(struct rte_eth_dev *dev) } /* Initialise and register VF driver with DPDK Application */ -static const struct eth_dev_ops nfp_netvf_eth_dev_ops = { +static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { .dev_configure = nfp_net_configure, .dev_start = nfp_netvf_start, - .dev_stop = nfp_netvf_stop, + .dev_stop = nfp_netvf_nfd3_stop, .dev_set_link_up = nfp_netvf_set_link_up, .dev_set_link_down = nfp_netvf_set_link_down, - .dev_close = nfp_netvf_close, + .dev_close = nfp_netvf_nfd3_close, .promiscuous_enable = nfp_net_promisc_enable, .promiscuous_disable = nfp_net_promisc_disable, .link_update = nfp_net_link_update, @@ -259,8 +259,8 @@ static const struct eth_dev_ops nfp_netvf_eth_dev_ops = { .rss_hash_conf_get = nfp_net_rss_hash_conf_get, .rx_queue_setup = nfp_net_rx_queue_setup, .rx_queue_release = nfp_net_rx_queue_release, - .tx_queue_setup = nfp_net_tx_queue_setup, - .tx_queue_release = nfp_net_tx_queue_release, + .tx_queue_setup = nfp_net_nfd3_tx_queue_setup, + .tx_queue_release = nfp_net_nfd3_tx_queue_release, .rx_queue_intr_enable = nfp_rx_queue_intr_enable, .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; @@ -291,10 +291,10 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); - eth_dev->dev_ops = &nfp_netvf_eth_dev_ops; + eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -467,7 +467,7 @@ static const struct rte_pci_id pci_id_nfp_vf_net_map[] = { static int nfp_vf_pci_uninit(struct rte_eth_dev *eth_dev) { /* VF cleanup, just free private port data */ - return nfp_netvf_close(eth_dev); + return nfp_netvf_nfd3_close(eth_dev); } static int eth_nfp_vf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index cd7faa2c58..2c9875e829 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -618,7 +618,7 @@ nfp_net_tx_free_bufs(struct nfp_net_txq *txq) } static void -nfp_net_tx_queue_release_mbufs(struct nfp_net_txq *txq) +nfp_net_nfd3_tx_queue_release_mbufs(struct nfp_net_txq *txq) { unsigned int i; @@ -634,12 +634,12 @@ nfp_net_tx_queue_release_mbufs(struct nfp_net_txq *txq) } void -nfp_net_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx) +nfp_net_nfd3_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx) { struct nfp_net_txq *txq = dev->data->tx_queues[queue_idx]; if (txq) { - nfp_net_tx_queue_release_mbufs(txq); + nfp_net_nfd3_tx_queue_release_mbufs(txq); rte_eth_dma_zone_free(dev, "tx_ring", queue_idx); rte_free(txq->txbufs); rte_free(txq); @@ -647,15 +647,15 @@ nfp_net_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx) } void -nfp_net_reset_tx_queue(struct nfp_net_txq *txq) +nfp_net_nfd3_reset_tx_queue(struct nfp_net_txq *txq) { - nfp_net_tx_queue_release_mbufs(txq); + nfp_net_nfd3_tx_queue_release_mbufs(txq); txq->wr_p = 0; txq->rd_p = 0; } int -nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, +nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id, const struct rte_eth_txconf *tx_conf) { @@ -670,7 +670,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, PMD_INIT_FUNC_TRACE(); /* Validating number of descriptors */ - tx_desc_sz = nb_desc * sizeof(struct nfp_net_tx_desc); + tx_desc_sz = nb_desc * sizeof(struct nfp_net_nfd3_tx_desc); if (tx_desc_sz % NFP_ALIGN_RING_DESC != 0 || nb_desc > NFP_NET_MAX_TX_DESC || nb_desc < NFP_NET_MIN_TX_DESC) { @@ -698,7 +698,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, if (dev->data->tx_queues[queue_idx]) { PMD_TX_LOG(DEBUG, "Freeing memory prior to re-allocation %d", queue_idx); - nfp_net_tx_queue_release(dev, queue_idx); + nfp_net_nfd3_tx_queue_release(dev, queue_idx); dev->data->tx_queues[queue_idx] = NULL; } @@ -718,12 +718,12 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, * resizing in later calls to the queue setup function. */ tz = rte_eth_dma_zone_reserve(dev, "tx_ring", queue_idx, - sizeof(struct nfp_net_tx_desc) * + sizeof(struct nfp_net_nfd3_tx_desc) * NFP_NET_MAX_TX_DESC, NFP_MEMZONE_ALIGN, socket_id); if (tz == NULL) { PMD_DRV_LOG(ERR, "Error allocating tx dma"); - nfp_net_tx_queue_release(dev, queue_idx); + nfp_net_nfd3_tx_queue_release(dev, queue_idx); dev->data->tx_queues[queue_idx] = NULL; return -ENOMEM; } @@ -743,21 +743,21 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, /* Saving physical and virtual addresses for the TX ring */ txq->dma = (uint64_t)tz->iova; - txq->txds = (struct nfp_net_tx_desc *)tz->addr; + txq->txds = (struct nfp_net_nfd3_tx_desc *)tz->addr; /* mbuf pointers array for referencing mbufs linked to TX descriptors */ txq->txbufs = rte_zmalloc_socket("txq->txbufs", sizeof(*txq->txbufs) * nb_desc, RTE_CACHE_LINE_SIZE, socket_id); if (txq->txbufs == NULL) { - nfp_net_tx_queue_release(dev, queue_idx); + nfp_net_nfd3_tx_queue_release(dev, queue_idx); dev->data->tx_queues[queue_idx] = NULL; return -ENOMEM; } PMD_TX_LOG(DEBUG, "txbufs=%p hw_ring=%p dma_addr=0x%" PRIx64, txq->txbufs, txq->txds, (unsigned long)txq->dma); - nfp_net_reset_tx_queue(txq); + nfp_net_nfd3_reset_tx_queue(txq); txq->hw = hw; @@ -773,7 +773,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, /* Leaving always free descriptors for avoiding wrapping confusion */ static inline -uint32_t nfp_free_tx_desc(struct nfp_net_txq *txq) +uint32_t nfp_net_nfd3_free_tx_desc(struct nfp_net_txq *txq) { if (txq->wr_p >= txq->rd_p) return txq->tx_count - (txq->wr_p - txq->rd_p) - 8; @@ -790,14 +790,14 @@ uint32_t nfp_free_tx_desc(struct nfp_net_txq *txq) * This function uses the host copy* of read/write pointers */ static inline -uint32_t nfp_net_txq_full(struct nfp_net_txq *txq) +uint32_t nfp_net_nfd3_txq_full(struct nfp_net_txq *txq) { - return (nfp_free_tx_desc(txq) < txq->tx_free_thresh); + return (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh); } /* nfp_net_tx_tso - Set TX descriptor for TSO */ static inline void -nfp_net_tx_tso(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, +nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd, struct rte_mbuf *mb) { uint64_t ol_flags; @@ -828,7 +828,7 @@ nfp_net_tx_tso(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, /* nfp_net_tx_cksum - Set TX CSUM offload flags in TX descriptor */ static inline void -nfp_net_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, +nfp_net_nfd3_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd, struct rte_mbuf *mb) { uint64_t ol_flags; @@ -857,11 +857,11 @@ nfp_net_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, } uint16_t -nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) { struct nfp_net_txq *txq; struct nfp_net_hw *hw; - struct nfp_net_tx_desc *txds, txd; + struct nfp_net_nfd3_tx_desc *txds, txd; struct rte_mbuf *pkt; uint64_t dma_addr; int pkt_size, dma_size; @@ -876,10 +876,10 @@ nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) PMD_TX_LOG(DEBUG, "working for queue %u at pos %d and %u packets", txq->qidx, txq->wr_p, nb_pkts); - if ((nfp_free_tx_desc(txq) < nb_pkts) || (nfp_net_txq_full(txq))) + if ((nfp_net_nfd3_free_tx_desc(txq) < nb_pkts) || (nfp_net_nfd3_txq_full(txq))) nfp_net_tx_free_bufs(txq); - free_descs = (uint16_t)nfp_free_tx_desc(txq); + free_descs = (uint16_t)nfp_net_nfd3_free_tx_desc(txq); if (unlikely(free_descs == 0)) return 0; @@ -913,8 +913,8 @@ nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) * multisegment packet, but TSO info needs to be in all of them. */ txd.data_len = pkt->pkt_len; - nfp_net_tx_tso(txq, &txd, pkt); - nfp_net_tx_cksum(txq, &txd, pkt); + nfp_net_nfd3_tx_tso(txq, &txd, pkt); + nfp_net_nfd3_tx_cksum(txq, &txd, pkt); if ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) && (hw->cap & NFP_NET_CFG_CTRL_TXVLAN)) { diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index dec1857da3..87a9c59b3b 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -53,7 +53,7 @@ #define PCIE_DESC_TX_ENCAP_VXLAN (1 << 1) #define PCIE_DESC_TX_ENCAP_GRE (1 << 0) -struct nfp_net_tx_desc { +struct nfp_net_nfd3_tx_desc { union { struct { uint8_t dma_addr_hi; /* High bits of host buf address */ @@ -124,7 +124,7 @@ struct nfp_net_txq { * of the queue and @size is the size in bytes for the queue * (needed for free) */ - struct nfp_net_tx_desc *txds; + struct nfp_net_nfd3_tx_desc *txds; /* * At this point 48 bytes have been used for all the fields in the @@ -284,12 +284,12 @@ int nfp_net_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id, const struct rte_eth_rxconf *rx_conf, struct rte_mempool *mp); -void nfp_net_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx); -void nfp_net_reset_tx_queue(struct nfp_net_txq *txq); -int nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, +void nfp_net_nfd3_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx); +void nfp_net_nfd3_reset_tx_queue(struct nfp_net_txq *txq); +int nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id, const struct rte_eth_txconf *tx_conf); -uint16_t nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, +uint16_t nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); #endif /* _NFP_RXTX_H_ */ From patchwork Thu Jun 2 01:52:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112245 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 8D11EA0548; Thu, 2 Jun 2022 03:54:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 910BF42B74; Thu, 2 Jun 2022 03:54:51 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2128.outbound.protection.outlook.com [40.107.223.128]) by mails.dpdk.org (Postfix) with ESMTP id 2E3B642847 for ; Thu, 2 Jun 2022 03:54:50 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J0d4zqFMkRpCI7eaD/2n8xTwMQk7KpM1JDhrWB5QfwqH2hVSA9OpQm/XxKp2xWu+FuSMfDDH/6IQusN8yHwAETiZhYCshnxGsgJ+RAmsR4Ggy0giktYUCtwFtxZyjFR7tCSCN0uh8Y2cZLGWUDzTRFWcy9wszAvECBhT+4Iwx51x+39NTq8phxSq4/6R2eDxSUdiDDzM29OkMT1Cl/J8AiOmk20P8X+KD4DedfofftmgtKphNWliRvL6FiLsTNnAkXsZ0FGB42CuGfrFOzvK6F3Ho0Pir9A3exHaulVNo+me3rZDiqi6CjrI8F3Dq/+ncAjXCoud2yB1MnFgvcJ6Lg== 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=WipdKj8g2K9w3e5HgYQ576L9ZS9LjE3xhqx6UlMbo2Y=; b=K6pltlKsw5WTjGChUFuMayV4KIyJEL7FY6qmsbwoUxrCuae5A9tfiCjNd7px9Q2VS83V9/kL84wYJ0m3NvCilMZxIdpDhbrwosj4RteevJSfHSKMi+20BaxqtzKS+yWGDd+1FzMeEb1T8NJoiREzpFLJOkPFQ7UR8Yye2KWFvp5+ykoDZ4KxxwisH5ZsLJk+ViWgaYfEcsY9EV2EH80JvrlqrOoSLjguF/mpUE6iMA9E9bwlSlpGWUOlrBge8p+bJlJI6fs90WUiTg2/+hBezqTIKKcaa0OSVeNMMFK1iczGrq4txpN7iQEaLoVVF/vTHUKQ4TILYZkDIpji9kChYA== 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=WipdKj8g2K9w3e5HgYQ576L9ZS9LjE3xhqx6UlMbo2Y=; b=C39VxGkROdtq8mNHnw6KKnEov01kdVga9kX3P30ntAZ+lt0jVFdK0LA4SPb0Kr17dKVzw9NKqDuqHM5YR8DdRQGUNZvKV9Atxn6N3UpT9CYOxII2rIhQ9cydjJZo7mmaJCrA1FNUAFCOAY9CxP4ixuIGEzpVYR14o661rBXAemw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:54:48 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:48 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 06/14] net/nfp: support NFP3800 card Date: Thu, 2 Jun 2022 03:52:56 +0200 Message-Id: <20220602015304.710197-7-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 43906f08-11b9-492f-0fe2-08da443ae015 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6aAAAoqG8G0hL3jxk/WuyY9apRzV0ZtLgv1xyLrpfenkLA9pI7GyVmQwojplIOxJ1B1Sh7UkLe/LvezQ+IE2OlGmpcdJ4e5nX3pyGkJlAnMrKys2wLA5IY0HK24u8YKo9jv5qu4qhaQ7fMBE0FYnfHsB4ITYX4rGhNznRM+gK8AAYDwTcnwlVHHwNsy26GcKSUeBnVTRNsy1R9FtKqfEW8ataMM0pBEZR7L1OInDhS5vkGMib/msHyvxz/DmfpOrcjW2trAKvcJrmbd04gCoeAgF+XAT7Kq+AcFOVFS5psQ48pP3+He/wdBjPHCSWOx72e8ZCS16gB1K5utU2F8cx4dRxDRXdQ657eHhqv5hGgAsfJgyU9tdDnTXaU7jHl+PfhY+dI3gG+2y1/XCxcFOvzoop6tC8vH5s95dvK+20fQsrzIcNHwQd6CoLvH4QkKrQ8l2K2rbF83VheeddtiJELJ3/C/MgBdepn5VrsawR+fMyPn4YN8LgbOTyd0GHGN2ibq3dcFG8Q4waF5K8X4b4ahQIVRAZroyhaBb+I70eSXgOg5o/LsPn92jIjq/u6JkEpuEBu5HvR9lcneQkP+524DaSsbuV/O9GVhXpuwnYIfn/DNgQUW6kRTb/DKOHmk+9bUBb2kvBkEpgBcpcBcdfiKSBYEWR3hFLCY6NMqhxY/ZCFIPQcTvjuSVP0zVIcWC X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(6666004)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?HggrkMYfvhlhAipq2WtFkwpBcZSz?= =?utf-8?q?kxL/cr7A5luDWc7t7r+m0Lirk6v3uG9D7EuIq+83W7IR1xZVMHDLsK7llMJhdEbrJ?= =?utf-8?q?7gDLbdhMvdoIoPSTFVx7aRnYAVtNpPlH1BqMrAOQrLVxjYYqzfHb0g/VmdyOjLtDQ?= =?utf-8?q?xBhRle9E/2PrSMcMd2vzvkBAFIWWAN2hvUs+TSNFQIyEGzoFVq0/Yh+SZVI1H6hfv?= =?utf-8?q?j+cMLGvNEG67NfrK2cLECIM3Rs++T1ch1JCGy0TRTshN1C69W2hu2Gv/QY6YnVNUp?= =?utf-8?q?f1Ohd+/0qYXFQ1y/loCGsKIO2wEULyFGMyVhRsDjcdvBhL/xBI4eqNNYEUAAc8Ql/?= =?utf-8?q?7pjtqjLiv1T6JGPIiSzQ6Mt6DndFaSDh9uE4tof6iOF4pKrdDye17t3aqwdt04rqj?= =?utf-8?q?0Vr5zi+um3VZcLaFg7vsnytciUYVhBNGPEaJlO2DYXhH6c9JZ1ULnXkd4ibsrSoDS?= =?utf-8?q?HI3UuSFhm0pIP8q3gWYYkzDrlmwk/08/7nuZTzOJZ31GC3umaM8Ey0O/DMcB5xxYd?= =?utf-8?q?37SI9NVPMiNv9QNdqy1hswn+WKvlVBf5O2DXIDpru8qn/dQXssZJBjAkCP4OvouFP?= =?utf-8?q?3CWvkVguAQfHX1j2VVaq7PuANSaNdNyM/OZd2944IcKsW7QGoA/zX0Wky3qP6ym7s?= =?utf-8?q?d6qe45PJptvwhdPIM4vpjwr2N2GmyXZCTP4wSlnw8yD1c7mfplPumSnzFhHy0BO8Y?= =?utf-8?q?+QswOlFhlt0Q7IOeK05v/CwZQdAasrqSTDY81h+VKZGHMQj77xXFolzBzryghZwSp?= =?utf-8?q?I1aa64VyJEQbC5HfSnCTFQTf/P0GPrym5CRi6GFNwpuWvWrh6LbD0U8PtX1qvoKbZ?= =?utf-8?q?b8PI/lsKMMdgXwfNr/260vuJx53K9/GjRQW90yN3hsX2D/IOgbCPi3HdGRhe7YwIn?= =?utf-8?q?2pKvxufcAI1mLvj55xKHr5uHHAtlutOGpoWw/0MjlUp5wKTFkhtapvKxMcfnvW1fD?= =?utf-8?q?uZNwM1oLV7CmS8UD0mZjIFbQEWSPWZnCG68cbN+CQ9r5zY28QeqhNxJ90/ADMgOmM?= =?utf-8?q?buDenQ37LoKPtzCbTpjYdIR58AdLm1AO0QVJDBe2VZjfjfdktFv3+ELjztvCGjHI3?= =?utf-8?q?T+sezoYDbNxLJ5HS0AtjZ0Hr2ky7miPBFPv+rG2Pipd6OOX/pwlEYBI7dYcoI75vr?= =?utf-8?q?/ykzU8j9XXOd0E70MTOfmIGSijfYVZViV0mgn8PadhidEpp1gOS5ph17qh5r2pfJo?= =?utf-8?q?sxWm73KK5byWGI+NPLLw64rQBTcssI9qtmAJ+fPXmKDNXYakOcfAj316jLYa55E5T?= =?utf-8?q?36mR9kQBH3EZciQV2HBW2obxYt0cvF9PVeUFMeKN0Nf5QI05SO+G+rLMb/JMQGgio?= =?utf-8?q?cDNiUfIzlSdiINb9uVzSNeAA5TrJHxA2nW9Xs4rockgzchbSScQ2QeWezLoBr6lxZ?= =?utf-8?q?Fb+U58iEVm1RWTSPcEbzqUw7BZer6nc/czIxHHUUQHnQ7sKhantnILMGnldIEwnOA?= =?utf-8?q?cQsGMrENNKEOwPJeQv4IiAw8Ltjq2K7DM9DT4/E38pfBsp8CJedjvwlQLvw+iS8PJ?= =?utf-8?q?wWyJvlydJ5OdR/n3bQ3+6+xH2qt5YPaOKX22sJvEy31GZxC8ScuthRuSQBZ9EdhMm?= =?utf-8?q?nfoQcn7Ep6vEMibRbCbqxAbQkPfcKfxNKpAmiAQux+xH26t7ic8OXd4KmQCNJi2P1?= =?utf-8?q?M7WXloZ93JEEuZvfirfBQZ0XuXwAxaWQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43906f08-11b9-492f-0fe2-08da443ae015 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:48.7114 (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: jIKNtG6ZiIS1u7Rpj/maJE22Koh6E9obamdsoZ/tppbAnHibOBFYyiqMWb77a3FgSRGvkxNIL3XjdPGBJmAlAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Add support for a new type of NIC NFP3800 card, and update some network card data acquisition interface functions. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.h | 33 +++++++++++++++++++++++++-- drivers/net/nfp/nfp_ethdev.c | 28 ++++++++++++++++++++--- drivers/net/nfp/nfp_ethdev_vf.c | 9 ++++++-- drivers/net/nfp/nfpcore/nfp_cpp.h | 2 +- drivers/net/nfp/nfpcore/nfp_nsp_eth.c | 20 ++++++++++++---- 5 files changed, 79 insertions(+), 13 deletions(-) diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 1dd230bcc6..346fece527 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -16,9 +16,11 @@ #define NFP_NET_PMD_VERSION "0.1" #define PCI_VENDOR_ID_NETRONOME 0x19ee +#define PCI_DEVICE_ID_NFP3800_PF_NIC 0x3800 +#define PCI_DEVICE_ID_NFP3800_VF_NIC 0x3803 #define PCI_DEVICE_ID_NFP4000_PF_NIC 0x4000 #define PCI_DEVICE_ID_NFP6000_PF_NIC 0x6000 -#define PCI_DEVICE_ID_NFP6000_VF_NIC 0x6003 +#define PCI_DEVICE_ID_NFP6000_VF_NIC 0x6003 /* Include NFP4000VF */ /* Forward declaration */ struct nfp_net_adapter; @@ -41,8 +43,16 @@ struct nfp_net_adapter; #define NFP_QCP_QUEUE_STS_HI 0x000c #define NFP_QCP_QUEUE_STS_HI_WRITEPTR_mask (0x3ffff) +#define NFP_PCIE_QCP_NFP3800_OFFSET 0x400000 +#define NFP_PCIE_QCP_NFP6000_OFFSET 0x80000 +#define NFP_PCIE_QUEUE_NFP3800_MASK 0x1ff +#define NFP_PCIE_QUEUE_NFP6000_MASK 0xff +#define NFP_PCIE_QCP_PF_OFFSET 0x0 +#define NFP_PCIE_QCP_VF_OFFSET 0x0 + /* The offset of the queue controller queues in the PCIe Target */ -#define NFP_PCIE_QUEUE(_q) (0x80000 + (NFP_QCP_QUEUE_ADDR_SZ * ((_q) & 0xff))) +#define NFP_PCIE_QUEUE(_offset, _q, _mask) \ + ((_offset) + (NFP_QCP_QUEUE_ADDR_SZ * ((_q) & (_mask)))) /* Interrupt definitions */ #define NFP_NET_IRQ_LSC_IDX 0 @@ -339,6 +349,25 @@ nfp_qcp_read(uint8_t *q, enum nfp_qcp_ptr ptr) return val & NFP_QCP_QUEUE_STS_HI_WRITEPTR_mask; } +static inline uint32_t nfp_pci_queue(struct rte_pci_device *pdev, uint16_t queue) +{ + switch (pdev->id.device_id) { + case PCI_DEVICE_ID_NFP4000_PF_NIC: + case PCI_DEVICE_ID_NFP6000_PF_NIC: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_PF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP6000_MASK); + case PCI_DEVICE_ID_NFP3800_VF_NIC: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_VF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP3800_MASK); + case PCI_DEVICE_ID_NFP6000_VF_NIC: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_VF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP6000_MASK); + default: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_PF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP3800_MASK); + } +} + /* Prototypes for common NFP functions */ int nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t ctrl, uint32_t update); int nfp_net_configure(struct rte_eth_dev *dev); diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 0d5caf94ea..4d2cd9b0b3 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -445,12 +445,13 @@ nfp_net_init(struct rte_eth_dev *eth_dev) /* Work out where in the BAR the queues start. */ switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_NFP3800_PF_NIC: case PCI_DEVICE_ID_NFP4000_PF_NIC: case PCI_DEVICE_ID_NFP6000_PF_NIC: start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ); - tx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + tx_bar_off = nfp_pci_queue(pci_dev, start_q); start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ); - rx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + rx_bar_off = nfp_pci_queue(pci_dev, start_q); break; default: PMD_DRV_LOG(ERR, "nfp_net: no device ID matching"); @@ -763,6 +764,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) { int err; int ret = 0; + uint64_t addr; int total_ports; struct nfp_cpp *cpp; struct nfp_pf_dev *pf_dev; @@ -866,8 +868,24 @@ nfp_pf_init(struct rte_pci_device *pci_dev) PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar); /* configure access to tx/rx vNIC BARs */ + switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_NFP3800_PF_NIC: + addr = NFP_PCIE_QUEUE(NFP_PCIE_QCP_NFP3800_OFFSET, + 0, NFP_PCIE_QUEUE_NFP3800_MASK); + break; + case PCI_DEVICE_ID_NFP4000_PF_NIC: + case PCI_DEVICE_ID_NFP6000_PF_NIC: + addr = NFP_PCIE_QUEUE(NFP_PCIE_QCP_NFP6000_OFFSET, + 0, NFP_PCIE_QUEUE_NFP6000_MASK); + break; + default: + PMD_INIT_LOG(ERR, "nfp_net: no device ID matching"); + err = -ENODEV; + goto ctrl_area_cleanup; + } + pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0, - NFP_PCIE_QUEUE(0), NFP_QCP_QUEUE_AREA_SZ, + addr, NFP_QCP_QUEUE_AREA_SZ, &pf_dev->hwqueues_area); if (pf_dev->hw_queues == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc"); @@ -994,6 +1012,10 @@ nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, } static const struct rte_pci_id pci_id_nfp_pf_net_map[] = { + { + RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, + PCI_DEVICE_ID_NFP3800_PF_NIC) + }, { RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP4000_PF_NIC) diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 7d79a08041..f5a0406e7d 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -326,11 +326,12 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) /* Work out where in the BAR the queues start. */ switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_NFP3800_VF_NIC: case PCI_DEVICE_ID_NFP6000_VF_NIC: start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ); - tx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + tx_bar_off = nfp_pci_queue(pci_dev, start_q); start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ); - rx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + rx_bar_off = nfp_pci_queue(pci_dev, start_q); break; default: PMD_DRV_LOG(ERR, "nfp_net: no device ID matching"); @@ -455,6 +456,10 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) } static const struct rte_pci_id pci_id_nfp_vf_net_map[] = { + { + RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, + PCI_DEVICE_ID_NFP3800_VF_NIC) + }, { RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP6000_VF_NIC) diff --git a/drivers/net/nfp/nfpcore/nfp_cpp.h b/drivers/net/nfp/nfpcore/nfp_cpp.h index 720d3989e6..a04a68f546 100644 --- a/drivers/net/nfp/nfpcore/nfp_cpp.h +++ b/drivers/net/nfp/nfpcore/nfp_cpp.h @@ -214,7 +214,7 @@ void nfp_cpp_free(struct nfp_cpp *cpp); * @return true if model is in the NFP6000 family, false otherwise. */ #define NFP_CPP_MODEL_IS_6000(model) \ - ((NFP_CPP_MODEL_CHIP_of(model) >= 0x4000) && \ + ((NFP_CPP_MODEL_CHIP_of(model) >= 0x3800) && \ (NFP_CPP_MODEL_CHIP_of(model) < 0x7000)) /* diff --git a/drivers/net/nfp/nfpcore/nfp_nsp_eth.c b/drivers/net/nfp/nfpcore/nfp_nsp_eth.c index 67946891ab..f8f3c372ac 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp_eth.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp_eth.c @@ -266,6 +266,7 @@ __nfp_eth_read_ports(struct nfp_nsp *nsp) struct nfp_eth_table *table; uint32_t table_sz; int i, j, ret, cnt = 0; + const struct rte_ether_addr *mac; entries = malloc(NSP_ETH_TABLE_SIZE); if (!entries) @@ -278,9 +279,15 @@ __nfp_eth_read_ports(struct nfp_nsp *nsp) goto err; } - for (i = 0; i < NSP_ETH_MAX_COUNT; i++) - if (entries[i].port & NSP_ETH_PORT_LANES_MASK) + /* The NFP3800 NIC support 8 ports, but only 2 ports are valid, + * the rest 6 ports mac are all 0, ensure we don't use these port + */ + for (i = 0; i < NSP_ETH_MAX_COUNT; i++) { + mac = (const struct rte_ether_addr *)entries[i].mac_addr; + if ((entries[i].port & NSP_ETH_PORT_LANES_MASK) && + (!rte_is_zero_ether_addr(mac))) cnt++; + } /* Some versions of flash will give us 0 instead of port count. For * those that give a port count, verify it against the value calculated @@ -299,10 +306,13 @@ __nfp_eth_read_ports(struct nfp_nsp *nsp) memset(table, 0, table_sz); table->count = cnt; - for (i = 0, j = 0; i < NSP_ETH_MAX_COUNT; i++) - if (entries[i].port & NSP_ETH_PORT_LANES_MASK) + for (i = 0, j = 0; i < NSP_ETH_MAX_COUNT; i++) { + mac = (const struct rte_ether_addr *)entries[i].mac_addr; + if ((entries[i].port & NSP_ETH_PORT_LANES_MASK) && + (!rte_is_zero_ether_addr(mac))) nfp_eth_port_translate(nsp, &entries[i], i, - &table->ports[j++]); + &table->ports[j++]); + } nfp_eth_calc_port_geometry(table); for (i = 0; i < (int)table->count; i++) From patchwork Thu Jun 2 01:52:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112246 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 00E8FA0548; Thu, 2 Jun 2022 03:55:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E1FD8427F9; Thu, 2 Jun 2022 03:54:56 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2126.outbound.protection.outlook.com [40.107.223.126]) by mails.dpdk.org (Postfix) with ESMTP id 41F7A4280D for ; Thu, 2 Jun 2022 03:54:55 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dbowF0lhpsVVPthxzKAvJ/GzDpFT4JACRzwtuYu6fjnDwnzt92fTexLOrVCNieazLCpqBYHfdbgq6kX8B9jQyZcBzF3zzKsqbvUHJc6+B0VLXta1V4pRMAEpKAHRP+rvSBpcPsiEP4k4k9zxwsGLinvHIuEuLiRfp9ZE9rTp+66BjhRTnFeSdglaTVff/U0IcrSk1PxNJSqKotDRb/rdb0gT5TfDPvtGyWayogrKCsoVsQBL6fBGm79b5f3TetIXVb9CRMDd12lY7eG7yyu0RWZG5OX4S6cLllsxsdvF142fLr9nRt/tAqv5vMaM3iNQAhQo9RSuKou4+xKqWdgE3A== 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=Uj3Z6gSNBLW1L8VHXHARwI0Ds9CWuVSewfjUXOuOKc0=; b=Z8MgGIQ6FSc/GHMUBDTfp+QWY+GrkjdSYtmpdTkBD4J2QX6EiFJr7tL8BlUgNFcm0ypJUiifh4197ZcO1wSALJDsCdJJ/flLdtOPaviqucUAZFqQsDT1LidUyViBsePTcrYlk870NWgqgz6tyA5EdStPcjbseQaBbzsh0ul/OrrY1EY6u+U90y0cSc94AYxJqcWAEUr4YBZhCnL8eZ1C0msM5vJBTl0K1PIIAPjgJ31o2g+p5uKbylhr5XGg3KEkVcre4iRjoQ9gQaYWL0RWj8RPDjKcXVs6LRrJAFTHHNdXK4kBU/Te8dOy1sKmrk08fuMXCi2P9LLx71HJTK3rqA== 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=Uj3Z6gSNBLW1L8VHXHARwI0Ds9CWuVSewfjUXOuOKc0=; b=fNmXhM0fK9b2KHIjGL1tdnxdkGwabs0/2CO/erX4+qMY+hNEeu7d8X3Y2Rjx23A8WPcicCFO88N+bLvKKw2FdKgz8VJ65pM3Ec5IJNhPy4Xmf8HN1ahF2vbgjjjylp+mThhg/2ZZs+aboY+CaEP13ZF8kXRjEbPNF9u+nA7Deto= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:54:51 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:51 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 07/14] net/nfp: support NFDK firmware Date: Thu, 2 Jun 2022 03:52:57 +0200 Message-Id: <20220602015304.710197-8-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9d659ad1-76a1-411a-42c4-08da443ae1b6 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tTpJbGIYlqE65cA1UI2F0XdvNzNo/Qe6y2IH2oQAMdVJWvk7KZlVsD+qNfjCLNwvKlzkMEjdLxZpWovzH74sHTin2m9IT0dJ0IlAxaRifb0bSXTSJ/B1QZvSuPgpvYRZLaUUoFBlKP/TkJqXvmj96i69t85Sd9/X7LMuIwufDrCUmz04b5HCSDd0yUTiNXKJibKWpG8CtToAfuRjtfkH2oIh8El6WRyY4JGXeL0kYvKf+rjyVGWqpxrOU30v4wagD7KC5st898ITmpMLg7QGTrDXfkfUG/1MksdQMzReHvCVescIfntu2BYjQPZGSlaZA+9BFz91TgtgMGsJZN0cMxNZc/lRyFUyEeOZyTZCYmVYh/K42qCTS0xX8V/gdAW2hzqZlyaUmDT6gn60c3UJyWh0CdvHbDzzzj7aJlhTz0/27PEpqGsh1rLMxsOJJRuGoY1RMElxfcaru/dGnEkKOe+Nve6ncIA3R6q7LnI1ba4iWEqD8sJ76qRDSo3QjBSdRiQHLcZYSGkxsPB7StsGA9Aw9cZNWedvZdM7ItpQRCC6A4o+u0lwF1k/qUribB9JUBy+wDgWCZ4a9jebDyK43Bk8MJxQNa8CgCbs+tRXMHwmrKifNze35Gatciu94x3AKnMrL6xrkk9sdPWcwQYNEblbjevYVLaGK1ZxOFChq2G4oA5JeFdlQO6Fk6tWCIn0Qecv5abSn3kVIQzIpy8ofA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9sjUCzSfTkZ1mOpYMp3UBWBXPSk1?= =?utf-8?q?cIco+yW5Wly7pbzDq1P1OQiSgzFkRMR+h7qQGsq3HoT8rml+4vD6h8QBgtH0hTqPf?= =?utf-8?q?TnB2vV7oJgPj0aYrGYsp4D2jY4mi6nJ7OdDsqBLJxnPTN2c34tdIrx+hSIpq+T+sQ?= =?utf-8?q?zBH6CKsPZBxswsLeKqFuHeJ5qpSukM2EQTAqMhRbFQiG9qdhjlJfQ+/eZkOVl8yBQ?= =?utf-8?q?6DcRfRGXUTmQLINGN0dy3KzfrarE3vXOFKdSxmbqOpvU08x6+dWcn5VsKVHLrn1JK?= =?utf-8?q?BeML8tBInm9JSwnDdzWA3gRcADL90Z3j2R6+t79KG9UvzY+LmTiloEFxSDY9ltgk7?= =?utf-8?q?vhq9541CmyOIMPgdE2LCQaqHMwOEfGDSlEi3RmP/9u7OvVD83/HoV6rd3ROGxB9KQ?= =?utf-8?q?zBACZ2eFxDvGqwt+R8VJwWziiI9Bc27zSsCsU7xXuV35XO4YFa4FvhxrJDydQMjxI?= =?utf-8?q?4IjA4m36zZkuaTd8ZVxdAIUhtH4gsab3P5yRaRLCX0PPrtbAJp4dTSCu9pyeHSQ+v?= =?utf-8?q?VIMKk8k4v/cEY3QWxzxbiZaITItSamI6uL1CbW0xBQgFAI/Lm6PqrB7YA1AsNc0+Y?= =?utf-8?q?nqxvkFhdYKOlRrzVetidd4+NmxAmhoyC7PY7sY5J/MWTa8xSbqgNzoS0KGs7UbDgr?= =?utf-8?q?24orpIii05GbARHIldwH2gtzDumyxQ07CtHKp0Yaei2Kf+AsRTe+0E8+G7ZoSkO4Y?= =?utf-8?q?Acs1m4+E8TqTICPEX1eFbq+zTzmbIWTDZ7uYreVnG0wJgeCI/jbwtPfhLYsjz3KVP?= =?utf-8?q?UhEj4eZg6J4VncM9HRqGPtFan8Rw1Obu6JmiAXoi9OiyVgU7EjOGV3iZrLHOU1CG3?= =?utf-8?q?Othpq5bTVhg+ZFicqbbt0XuQ0WKm+kqbM21jSJp9E3nyHgXqxNYjw0VI8BpxyJl3O?= =?utf-8?q?ukH0fsWMhI9Dz5PN0hyVpgFi8y2sE7KoloSYb9a7yk9uTdwDDj6q6VWw2k8jivX+T?= =?utf-8?q?U/rwexVTfD7kHKNFgJp6CzNIoJohCWWTtVfdro68SxQix7emrd4nYnDXv+gKq5VAd?= =?utf-8?q?zRh/bOpAItOJSe1gWWXi211EOvBXM43VjFbjYapnznm/s5tW1kfS6py8k565eDLPe?= =?utf-8?q?xUoq0PXn3o0mS50BpFY5xlOambs5/TTioPaU2U1dwaWr0lgr76QTht/tn9VB/OBnN?= =?utf-8?q?HL/ySBeafiStpJ0+izxkZUaH55f0uInAIAXsrhnGMcMu6jqoSjr8+mGgW7d8sxWre?= =?utf-8?q?ijwVz4efQIz5npJfwUju3mwF+/Ema2/kBK8wx4saWuVc3G/S9VPZjxMaqAKOMI/vi?= =?utf-8?q?NW9yhJIq1FFxBBP+EK8f+raec1S8OWyCUu6v7evil7paYXxxHQ6OMegQBdFSE6sso?= =?utf-8?q?2ExSmqBFERta3JBBWvHal5GpL2FvL6/r/JdZ9yBvowAj1k8k1T3tkZT+SYjUgeUGH?= =?utf-8?q?jKueVQ2/l4WvNKjhigvy/FzRxH+5b5kYF6wptjVx/ta9IuwfrR+QP8mYv/bhBcMiX?= =?utf-8?q?gB57WDgSNs1kF1wcE24rRO9exORW873Ky0IqYvreR/uTxYIvKclMJvKKHcQd4XQ1J?= =?utf-8?q?0JP/je0ql78AWP3DNORRcEMLDo3zVPcY7kMOU4uhi+at0kU5zXtkJ1WunuJ1J/+d9?= =?utf-8?q?dM3PFni0suPUhpzQTlYcU/VZYb1RGQEBm4ID8kCGitp3yKniwd8i8MNVvNFdJprZB?= =?utf-8?q?b3fbSRUJzr0NdMTAoU+/adNcSpzzbP8A=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d659ad1-76a1-411a-42c4-08da443ae1b6 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:51.4456 (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: g7EJux8EUpteY8iOZ5BWQd3R3JpuK+facDL5c2MeBd9fMgjQFak9OviKTuqDXQtqoTsbwfSrjQH83YRlVxe8Og== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Modify nfp driver logic, add firmware version (NFD3 or NFDK) judgment, will according to the firmware version, mount different driver functions. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ctrl.h | 2 ++ drivers/net/nfp/nfp_ethdev.c | 51 ++++++++++++++++++++++++++------- drivers/net/nfp/nfp_ethdev_vf.c | 37 +++++++++++++++++------- 3 files changed, 69 insertions(+), 21 deletions(-) diff --git a/drivers/net/nfp/nfp_ctrl.h b/drivers/net/nfp/nfp_ctrl.h index 4dd62ef194..e73715e2aa 100644 --- a/drivers/net/nfp/nfp_ctrl.h +++ b/drivers/net/nfp/nfp_ctrl.h @@ -135,6 +135,8 @@ * - define more STS bits */ #define NFP_NET_CFG_VERSION 0x0030 +#define NFP_NET_CFG_VERSION_DP_NFD3 0 +#define NFP_NET_CFG_VERSION_DP_NFDK 1 #define NFP_NET_CFG_VERSION_RESERVED_MASK (0xff << 24) #define NFP_NET_CFG_VERSION_CLASS_MASK (0xff << 16) #define NFP_NET_CFG_VERSION_CLASS(x) (((x) & 0xff) << 16) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 4d2cd9b0b3..c09a035323 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -358,6 +358,32 @@ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static inline int +nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) +{ + switch (NFD_CFG_CLASS_VER_of(hw->ver)) { + case NFP_NET_CFG_VERSION_DP_NFD3: + break; + case NFP_NET_CFG_VERSION_DP_NFDK: + if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { + PMD_DRV_LOG(ERR, "NFDK must use ABI 5 or newer, found: %d", + NFD_CFG_MAJOR_VERSION_of(hw->ver)); + return -EINVAL; + } + break; + default: + PMD_DRV_LOG(ERR, "The version of firmware is not correct."); + return -EINVAL; + } + + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; + eth_dev->rx_queue_count = nfp_net_rx_queue_count; + eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + + return 0; +} + static int nfp_net_init(struct rte_eth_dev *eth_dev) { @@ -384,7 +410,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) RTE_LOG(ERR, PMD, "device %s can not be used: restricted dma " "mask to 40 bits!\n", pci_dev->device.name); return -ENODEV; - }; + } port = ((struct nfp_net_hw *)eth_dev->data->dev_private)->idx; if (port < 0 || port > 7) { @@ -401,11 +427,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev) PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, " "NFP internal port number: %d", port, hw->nfp_idx); - eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; - eth_dev->rx_queue_count = nfp_net_rx_queue_count; - eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; - /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; @@ -440,6 +461,11 @@ nfp_net_init(struct rte_eth_dev *eth_dev) PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); + hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); + + if (nfp_net_ethdev_ops_mount(hw, eth_dev)) + return -EINVAL; + hw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS); hw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS); @@ -472,7 +498,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev) nfp_net_cfg_queue_setup(hw); /* Get some of the read-only fields from the config BAR */ - hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); hw->cap = nn_cfg_readl(hw, NFP_NET_CFG_CAP); hw->max_mtu = nn_cfg_readl(hw, NFP_NET_CFG_MAX_MTU); hw->mtu = RTE_ETHER_MTU; @@ -938,6 +963,7 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) int err; int total_ports; struct nfp_cpp *cpp; + struct nfp_net_hw *hw; struct nfp_rtsym_table *sym_tbl; if (pci_dev == NULL) @@ -987,11 +1013,14 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) "ethdev doesn't exist"); return -ENODEV; } + + 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; - eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; - eth_dev->rx_queue_count = nfp_net_rx_queue_count; - eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + rte_eth_dev_probing_finish(eth_dev); } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index f5a0406e7d..e83c9dbcaf 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -287,7 +287,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) RTE_LOG(ERR, PMD, "device %s can not be used: restricted dma " "mask to 40 bits!\n", pci_dev->device.name); return -ENODEV; - }; + } hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); @@ -296,6 +296,32 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + hw->ctrl_bar = (uint8_t *)pci_dev->mem_resource[0].addr; + if (hw->ctrl_bar == NULL) { + PMD_DRV_LOG(ERR, + "hw->ctrl_bar is NULL. BAR0 not configured"); + return -ENODEV; + } + + PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); + + hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); + + switch (NFD_CFG_CLASS_VER_of(hw->ver)) { + case NFP_NET_CFG_VERSION_DP_NFD3: + break; + case NFP_NET_CFG_VERSION_DP_NFDK: + if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { + PMD_DRV_LOG(ERR, "NFDK must use ABI 5 or newer,found: %d", + NFD_CFG_MAJOR_VERSION_of(hw->ver)); + return -EINVAL; + } + break; + default: + PMD_DRV_LOG(ERR, "The version of firmware is not correct."); + return -EINVAL; + } + /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; @@ -312,15 +338,6 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) pci_dev->addr.domain, pci_dev->addr.bus, pci_dev->addr.devid, pci_dev->addr.function); - hw->ctrl_bar = (uint8_t *)pci_dev->mem_resource[0].addr; - if (hw->ctrl_bar == NULL) { - PMD_DRV_LOG(ERR, - "hw->ctrl_bar is NULL. BAR0 not configured"); - return -ENODEV; - } - - PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); - hw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS); hw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS); From patchwork Thu Jun 2 01:52:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112247 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 A4599A0548; Thu, 2 Jun 2022 03:55:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DCE9542B70; Thu, 2 Jun 2022 03:54:57 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2126.outbound.protection.outlook.com [40.107.223.126]) by mails.dpdk.org (Postfix) with ESMTP id E78B9427F9 for ; Thu, 2 Jun 2022 03:54:55 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dxZahbbbx8SL/vdRCB+4+lc6IprOi1yyFc4HJZfWNEitYx1RUouDdF0iokLd5Yv0Fm+Izn81Jm5kh+oIyhS4gPQQZwfCy04bvxrNkwgiRZPtWLGmAjhfZ1Uea0DKQUIP8b7/fdphDQlje1G5uP9UleOfVE+7QmhPuUfnre2SHmPse20RqeURSq7/Qe1PZORY0JIC92rOpzQ5Fx3047qnSN8p/tH+2Mk1bgtw5uqozf0AjfdHJgB+qhEVKgq2FjqU+V1HGaodLbYV2a6y42huA2cLQrVDQGuCy3lBoESFKiQKFwLtIlCS1DzXvlo2H6sLelZ6LFhaIax6/+k4B3rX4g== 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=a6ZPD1WuwS/LCmRCXYwMwzh1AbaquzRwNQ0QjKmaFQY=; b=hB/7ICsf4e7lmaJvJUUaciXtjt2xf7p4Um/kzf1z1SAdFJci/svjB0UZFBde/UJkLYYtT11+JF3IAQGkNZUUsnbG3uYzkhJbKfgGdV8S48M/DuVJcCNrPLhGEzQl6DRrKl02U37jfIV+SlZkP5g5j4zJpGu5rtJStqygB/igj3B2HwT9pq3tyQaO7ysBl2Ip6MwFC/L3F93TUjyczK5ggunyuqkI9eB7zUS+wc2qX3+jhWiZ9gE/0sRXVeW6M0ZTFaOt4ej6F3KCo/Ad/mEqlzVczCytu8EE15QysXaKu9BI7xKnck7JYmfiE842dDYoNJSTKHBS4s28TU8632IXwQ== 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=a6ZPD1WuwS/LCmRCXYwMwzh1AbaquzRwNQ0QjKmaFQY=; b=QXBWf77Kob6KgbN/6cK+VOhF725XnDFsz9XRnYwAGaAE4r2KM2VpvXuuKyzKZeAYxM3imwnpsfEw0Wym7x56rd2nBPHnHFf9Cr3QkdcPWU+SJ4cLLS+M+v7gkwqYdk3iRFkulPgmRDnKROnXs0ZZj77vz9Clth5bLYeNUeDD0DM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:54:54 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:54 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 08/14] net/nfp: structure adjustment Date: Thu, 2 Jun 2022 03:52:58 +0200 Message-Id: <20220602015304.710197-9-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8c2aae55-9734-498d-75ab-08da443ae357 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Mt1aAFK/gy7SK/mTxCoIZUqCDfUSaWwRDDRWIO97rCuYUXxJ8krqVow7V4FGpLkETV/YeL3oFOhAmo+HVkGbZO+xERH+P3OLA9wbX8/xcyoyrIFB/5WmaseTVZdyaE1QXL9bfcZLgX4SjnoG57/5iusMjHl4+OymLwKu8hnQk8iI2JT9GoTwFRHlx21yiFcG3UkT2dXLuMhOZxA6+eQYAguvkB+l7MdXc75LTzsEtoQlyjhk6JpshicwLx8+JVsBcIVBRa5DFdolKNDmowxPj5020vDmnSBHEkx1VLdTH1owJHXt/c5TUQAERGh4obb0EiFP4b2v8WrA57TkRShJ8c55x3ZetV4KDfbchihbylG4qPBpxNbvNh5sEsVKR50AuzMcWE8z5qHEVkWo2uOCAaervZ/5UXvtofNLzbdgDO6qRHn4ja7QQ4LWmtHM8X4XYVzrpBPizbaKB96Lwd9v6dEPKtEyxeEps/Hni6cI6es1cuNy+u3nGyOQeLCbOiMafRFfEkKToBl2cz8QzZmvEwhaHrRPHZOhaCMGooGgYGf4ZcaDKKS5k+Ccvexd6tO1l4bYGTDdc2JB6cW18LDnY4KD3SyBUJiD14wlFLl1NWesrwpljqXU2dfaIcxH2qBhZrCT7lgnoAQY66Tm+60sHAzvGwhWqUK6a8lxC2N5AIxrvOsSwRi/ZtRE1pMeDthwNais81izvBFAmhokiuWmGg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?DS7eHm1doGzfUcIVuY9UOZEY/HAO?= =?utf-8?q?vCfuKBaMR80B72R//7kjUDoZiHGcxNdcCOAXZbHllN9k1WPzhtsLjmQKhQyLTB1M1?= =?utf-8?q?p7fO0W3SHQBHxLgSXWKgDzycDWF2kNHMgrLp6sIo/v+ciH/lrG3Q/nhJzuo8EZJn5?= =?utf-8?q?rknswY9sT8Zb4se5GjqKDT6gtDH0D9pwIw5oireasbsPODfd2+dIACCJT9U8wDqyj?= =?utf-8?q?RbUhGnKcwk7dBxtSqGMVBaodWkd8ded5B+FeKKY+WTh6qEHM6lBsyn0TnZLeX8BB2?= =?utf-8?q?7kl+fTM7PX0d9V8JB3A6QkMV0Igume8JjlzlY9UKRRr/kltRkyCexgCWK/LI8/UVb?= =?utf-8?q?dATrPjGBSNBkcTG9lBYLPSndmjeTw/o77X9txuW/8/yYChz1abpIkquaMOJyeYYq9?= =?utf-8?q?BLjZlvX19GRveFyVpsJbMyeY1nLdx3XJrRlOJ223AQQtrOKHbWkjjbfO4WSHDS07N?= =?utf-8?q?r0xfC2tnRaUYuVngzQrrfx4eZd1n1XSSUUB4ppp3wnpMB5jYM4hhS2A3rgmp8RM/9?= =?utf-8?q?9GVm6NkQoLxjEwc9JRq8EknSIGuFIKypb1oH3cs9sj0qByRKzNUmYWULRiX9HnOwC?= =?utf-8?q?xg22jYJ620TQAvh51M5xCJ2qOiCquEfHa7U6RsUO6enBw2BUBk8GDIVjK9y4UN788?= =?utf-8?q?dFB/O+O5TAIO+8Pr/KoQ0yCaSctc37Ghdcx5qStvIRaQfmvlyqb0S0k5Fs3V5xz40?= =?utf-8?q?C2DVCtll/M41v4NAKwJzvWWq2roqHmj/EcGV2jI1C/irFPX2CiTJ/9Cmp5p4JPgsn?= =?utf-8?q?clhIhGuf0cNIePSnIvoNMY0jOuph8Pi7qNzMymDw+dm4RrrVdmSTpYj7tYF5bscp4?= =?utf-8?q?nwvZGbdiLlcUWIXBi2EcHcUFzTqQ7riK+aGTpOGmw787C64qcUnDbGrZq/TLJhVjo?= =?utf-8?q?Pe+0HP1dxfkKDEDHLl0sYTZWVmo6SHO5UFFKjXgCtkjuemlh10ixptkoXFtAjPNf7?= =?utf-8?q?t+Br/xbRQOkdNOZdboM9q8ZY8vbIvCCW6PVLs3GjgFfakztBtlHhBQLDFIILgZy+n?= =?utf-8?q?ppTlis58DIwu+Nv3NqKcszFVRfa8c8eU2fecQmSukudjgvQ7kEixwxtAF1x/CmCGi?= =?utf-8?q?B1slXub3m5It72ql0cyKK9jApFdsVVx4JfDAPuHRBb4ripuO4wJQ/NptcKIqh8cev?= =?utf-8?q?v6nepG/4CBiBGOpZUvGAJNlSS+1UJcpxErgPltwb6v1kZAP2V090T7cRB8SqXV78e?= =?utf-8?q?re5lDErXBY1lb+cASrGdcv3N8mS7GNE40AFg4m/ihmXfCdm967N3hnD5RWrV2UACw?= =?utf-8?q?Rcnd+uQjNSCcXmJiz+Y7Hb6LxaT8qvAwJkALOjjWNc27hPYyf+MprVWP+jiUrdAA9?= =?utf-8?q?OgbLIC8t0asjBjTiaErY7W55pNBJsHfrEf87+rPSBBtnWaLZyh2/rgBlwG9HWybCH?= =?utf-8?q?ONa8KxBfG+9WEvqY8HZ/ZSbk8m3YJO5Y2VHmtJjWucR4gyRi6LBhgPgVU5A+0DLHq?= =?utf-8?q?eq75Ax9+L9Zpi/PH7wlqYrnNe80x0OpbUXMoAp4hXuQgp4SULUV8no9rssNXii8jZ?= =?utf-8?q?o4RGZjzMDv3k/9J41Mz0+3mKwo6ZPQTce/krlDY97Ty4jOQAUlIY6KwhkuzE186o4?= =?utf-8?q?8QCwVVwAHbibV9sdSfdTndkog6JgG4umKMgoOaYYI/I4l5/mtvkQsw39jk+A4ArvC?= =?utf-8?q?IqNFzUzsUVTBpUc/U23drTFcEG3tEhsg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c2aae55-9734-498d-75ab-08da443ae357 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:54.1954 (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: zpGOyWrUik9eKSAo6H2ChkdejYUVHLf/LDdYSG1shakWmlg3Q9TJMYlkaD9cDvoIXN/FohA6tvhuBIYgCzrVpQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Add and modify the nfp PMD struct and macro that will be used by NFDK firmware. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_rxtx.h | 69 +++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index 87a9c59b3b..81e2f7560b 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -53,6 +53,31 @@ #define PCIE_DESC_TX_ENCAP_VXLAN (1 << 1) #define PCIE_DESC_TX_ENCAP_GRE (1 << 0) +#define NFDK_TX_MAX_DATA_PER_HEAD 0x00001000 +#define NFDK_DESC_TX_DMA_LEN_HEAD 0x0fff +#define NFDK_DESC_TX_TYPE_HEAD 0xf000 +#define NFDK_DESC_TX_DMA_LEN 0x3fff +#define NFDK_TX_DESC_PER_SIMPLE_PKT 2 +#define NFDK_DESC_TX_TYPE_TSO 2 +#define NFDK_DESC_TX_TYPE_SIMPLE 8 +#define NFDK_DESC_TX_TYPE_GATHER 1 +#define NFDK_DESC_TX_EOP BIT(14) +#define NFDK_DESC_TX_L4_CSUM BIT(1) +#define NFDK_DESC_TX_L3_CSUM BIT(0) + +#define NFDK_TX_MAX_DATA_PER_DESC 0x00004000 +#define NFDK_TX_DESC_GATHER_MAX 17 +#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) +#define NFDK_TX_DESC_BLOCK_SZ 256 +#define NFDK_TX_DESC_BLOCK_CNT (NFDK_TX_DESC_BLOCK_SZ / \ + sizeof(struct nfp_net_nfdk_tx_desc)) +#define NFDK_TX_DESC_STOP_CNT (NFDK_TX_DESC_BLOCK_CNT * \ + NFDK_TX_DESC_PER_SIMPLE_PKT) +#define NFDK_TX_MAX_DATA_PER_BLOCK 0x00010000 +#define D_BLOCK_CPL(idx) (NFDK_TX_DESC_BLOCK_CNT - \ + (idx) % NFDK_TX_DESC_BLOCK_CNT) +#define D_IDX(ring, idx) ((idx) & ((ring)->tx_count - 1)) + struct nfp_net_nfd3_tx_desc { union { struct { @@ -84,6 +109,33 @@ struct nfp_net_nfd3_tx_desc { }; }; +struct nfp_net_nfdk_tx_desc { + union { + struct { + __le16 dma_addr_hi; /* High bits of host buf address */ + __le16 dma_len_type; /* Length to DMA for this desc */ + __le32 dma_addr_lo; /* Low 32bit of host buf addr */ + }; + + struct { + __le16 mss; /* MSS to be used for LSO */ + uint8_t lso_hdrlen; /* LSO, TCP payload offset */ + uint8_t lso_totsegs; /* LSO, total segments */ + uint8_t l3_offset; /* L3 header offset */ + uint8_t l4_offset; /* L4 header offset */ + __le16 lso_meta_res; /* Rsvd bits in TSO metadata */ + }; + + struct { + uint8_t flags; /* TX Flags, see @NFDK_DESC_TX_* */ + uint8_t reserved[7]; /* meta byte placeholder */ + }; + + __le32 vals[2]; + __le64 raw; + }; +}; + struct nfp_net_txq { struct nfp_net_hw *hw; /* Backpointer to nfp_net structure */ @@ -114,9 +166,14 @@ struct nfp_net_txq { * For each descriptor keep a reference to the mbuf and * DMA address used until completion is signalled. */ - struct { - struct rte_mbuf *mbuf; - } *txbufs; + union { + struct { + struct rte_mbuf *mbuf; + } *txbufs; + struct { + struct rte_mbuf *mbuf; + } *ktxbufs; + }; /* * Information about the host side queue location. @txds is @@ -124,7 +181,10 @@ struct nfp_net_txq { * of the queue and @size is the size in bytes for the queue * (needed for free) */ - struct nfp_net_nfd3_tx_desc *txds; + union { + struct nfp_net_nfd3_tx_desc *txds; + struct nfp_net_nfdk_tx_desc *ktxds; + }; /* * At this point 48 bytes have been used for all the fields in the @@ -137,6 +197,7 @@ struct nfp_net_txq { uint32_t tx_hthresh; /* not used by now. Future? */ uint32_t tx_wthresh; /* not used by now. Future? */ uint16_t port_id; + uint16_t data_pending; /* used by nfdk only */ int qidx; int tx_qcidx; __le64 dma; From patchwork Thu Jun 2 01:52:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112248 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 B33A2A0548; Thu, 2 Jun 2022 03:55:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C5FE84114F; Thu, 2 Jun 2022 03:55:00 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2092.outbound.protection.outlook.com [40.107.223.92]) by mails.dpdk.org (Postfix) with ESMTP id AE3974021E for ; Thu, 2 Jun 2022 03:54:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ajkr9WJHcqbTobw89yLpePga1ILG/BY/36vRV35UHEpHYlUsZ9dhfX1XemcuJhG4th0NFpKGVI9bN7FWtv2KfrpCo/svA0KchTnagq8ClX8HuryUQ8LPGshWlpiOEcCxXhy6fgc4KrYCvWDfi0mvKpwMjtA/Dv+uFz0036pRJxymphu/xgPBRvK1N4l/3q8qdYfSY7YYoWXVmfkaNNXZWO6+aYzlvQFFoxOtR02UWJvT8TOB2MmkN0RTS+FUr5pgzKfcTGyRsIZSP8entJTmuXn2oTAKu1vDDwFrZ55qTflQwsn+PoBIqIXgmNywm+E20yALBxm0dwzPVCmPVHrEug== 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=/iCTxPWHt2xt8CJmcuYqEW0PndjKZ3xe6PbOOAXbQIA=; b=bNwHl79ean+OSvdb+moMpdHl1Azy2SO4EVL+EyVyQhyCmCgDOtZREaHoBUtGSY5LiKNh1hgasxrIIpLWqsK3mjsWYEbvFEAoetHJWSdkl1ceGiTRg7VMAeGB1cr336RjPkcyQdLGTNqBwGRtPqwsO3WWpPJ2BWxpCMvY7g2YyCXoHIWEYNpXhrlafziBQfDn23Iol33JrQQ4/RmPkovRrPJNpWWRdwEpoMxBMxj/ozfpILyK5NyuG28NAkvuw7jnCRAz93X7sfaPuc57/RkMTii8VhLxpavj/mfc+W5PxaYpQKA6jnjPihRA/2oYAt2OIX4FLqof5WcM9MB7QwTmWg== 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=/iCTxPWHt2xt8CJmcuYqEW0PndjKZ3xe6PbOOAXbQIA=; b=gAlh8lw+A92bI2mcV1Rxv4dPLcyklzH0LTPPcV/qFbAoP1Z9VsRVUN8lcKtCmmNLuobdICIq1bXDUC2D+6ocBKcydw/Oe/vHYJs0hkY5VgJrOoRxWFk8w43yrXsLaSo+gJ/pXwWzqr0yJ/Xom26GxZZPLIf5D/YMrZz/INqKtqw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:54:57 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:57 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 09/14] net/nfp: nfdk netdev option and queue function Date: Thu, 2 Jun 2022 03:52:59 +0200 Message-Id: <20220602015304.710197-10-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ea5c1a5c-3746-428b-a88a-08da443ae4f8 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nyiOxbS0Wi9DsEYJeBzZEo2UmGkTLyLOLhbFu+pxqZ55TwwUtZOZR4edrywXdJq3xkfSXyG/tZTsntWcLwcxR5QbHFJMQTe8aOd+FGYNyu5F8dfp9YcNiJTTCLfrt8M76L+UWUZ4HBynK/nTOIa95nhl6N/LG5p0151yyMRufN9RyPaFogGOz1nOk28SEH/cohgSaZb9agM935MidiW3UvBICCCscYkoKozfW+U5SXomRpNxy6bBZNwhyBMB0nkTV17Y9WeAFvwNvZlxf+On2eHUctwUPD4m4w0OKbWjKMsZrHWyNVspLRJTc4YPUqi6Hf4o/GIObUaVd1j92hG7ocZ2Tb4MvvJcQaY1NFsfYn5Ha4KmwCWca12nAGrafpawxsGVnYzhpGwGLMIz00fiFUQqVvUT+KYk7YpcCedxjC5kWjbgejzb1fcWGdgo/ZdkZ64VeKr5VSLJHs3hs9BtqkdhwxXn9ioTn93z3wY22UiMzDmczVpvcTOWqpxnEdrDaCLpV7tpzaXbnuM3nR1ZVAUCjo4CMDKfgH4Ccpt4EHPZXsCFSF8kPtG2omUXJBjCdj8+C1L0AtJFiA7CwrwANRmlvnPTJrxAeCfnKW+0qhf4don+J25H/cmX4FVpooqzIG42fEkuffx4Dwug9vOoyRbXs9QRzcobYjnIb7K1XmP6BCjMhdFIccZ5kaBUuqIAnahn6rOBIxC/fsCp33gOuw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(30864003)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?lsPpFFSR7kdaKjLypWG5tPeSryMT?= =?utf-8?q?qfj0UPPEzQVM8jSZc3UBxVVL+djArPEd+bJv8sBA3xuUQVPNUm+3BNR/lTSF/plSB?= =?utf-8?q?87tFNRs5dn/LVe2H9NMPVvhnI9hzwas0qaERcNDC8S/RHk/ZMFqeZ+5EfA5zRMEGm?= =?utf-8?q?HSxmnhcLc3HnwOKdXGIQbfA5UnE0ibu+/mH5njpB+Mdv1mVSLX92KWGMsXlCbdFWR?= =?utf-8?q?LaMZT9I2UOtpuN/zDzKqReDdiwfxoHBvEhsFy+QRv1HC/iSA4cbgXYTRu3y81Npji?= =?utf-8?q?VRihLi/K9NTLTT8sR5/m9C/KN7lDzsIvOvi4XOt3yU41Ny6ZA6ozlCq82qrocW6kb?= =?utf-8?q?wAHhRHr02q8wq7VwI4h7QbVGArEz9x7vB7b9rUUXE/+tjDwktaZcmSLdrG0HhL9Fx?= =?utf-8?q?V0Uvz9nQ+nUYVny06BQo8pVPO5pKPPXQb5viiYFkKst5hS7t37HeDQQjn7TEeJPJO?= =?utf-8?q?fwefO6ZsSPWEVP9bYu4XL2LTK8wxG2mo2liVFIunTKjoG37iF+NgAhc+XHqsS1pcw?= =?utf-8?q?EBStenD5TKiAPxetMzrZJeZND8PLVZEAkn0MOKYml6W42noqcPIQvl54foNUh+Jmh?= =?utf-8?q?eh35xiS0kXpamoqdlB601WKbgpV/n5xlkudOwXnvtYATYqkDny2tGthnQHtQqah5G?= =?utf-8?q?226EpMhnue3kyJNiGkdDcJNTBztBzXQ7LAetp9FefmQcXoeT6e5ZZi0qBBnVTEat9?= =?utf-8?q?XfdTbrCHUMmKWfl1JIZwifE9arAYtYOpuz88nELpL/PkEl940OsevbzoPbCSkpxxb?= =?utf-8?q?h+KXvnmG+yuavGJi/RmeafxRPMJYeM2Bm4lmQvMbm5wSKNMuA/B8cvpRJgy4SZnmt?= =?utf-8?q?u6bzzUrOtucM041L1zLX9S0YuD79lnKtqF53rPhQ6CPmQZi3S8w8Ye0nk7wL9LxQd?= =?utf-8?q?ameY2DdRoYzzKK9bn6F/RvNKpfNzzPo1mgi7bSptMB5hMr7s34sMpv1Ths97Z4FsW?= =?utf-8?q?gk0NNtkif8eLlOwvWNFtjWvXdg02ujiLKKCBSu7HXrmqlwibgYJORQK8j3OD4FPS4?= =?utf-8?q?vLC0vyxrq2btYaZ8HcozDknoSqVxCJnqcjdga7pO0sYtFjx3mQY85EaNHGvkRw5O1?= =?utf-8?q?Ut5+JbhxxloFrmdmuDsS1NtvGOx5I4v9Y9mqM85xewPR0TsgwT6tLB0Gz4GFHQDGl?= =?utf-8?q?3uZi/l5UUQ/nPSL3XFauNPX9pQBWq1xpebuilwTLnfu79q76wfJ29Z8wN3PLALsws?= =?utf-8?q?p6TeyblzYRS1xo7HjzLgCjAdOGZB8VIy498iAaQ59pwNWhOB5qw+Id3p5eg/4ZsAN?= =?utf-8?q?kKg8GCQg6lHSd98F1dSU7K5Kn03S1JbdmLnh5m1y7fWu8x2LrpwVbx/TlzRCEjC/H?= =?utf-8?q?qavbBt0F+AdekYtycwSdD6/1rtlq+gdlaWjbPC8UtOtlvQU4r2eBGo3Py8P1KnQXC?= =?utf-8?q?EDaON7BFktEJugSHhJ8AQiTuDS8MMgsttk961dJAZMd3WXObW5a5RD1Vlviis+YKc?= =?utf-8?q?IgP9Y4To0XugxxfWog9FXurEK0gtcYoeDLlwdbA6c9VRg9RWLmOhkd4tXAqnAvsCD?= =?utf-8?q?aAL6Bl4YINzbrCamKQSKWlmIjGRNIJrasn+/BQaGykuu8HESPDalu4SrcGBEzqjy3?= =?utf-8?q?vtrBX/z22lY00ZLBFOu4K+pf5XWXx2nqBZ0B5xDbN53A2LhXyBg1EuEdrj2KzleyN?= =?utf-8?q?5H+ow9EEW9tRaaSJs0/EkAWs6rpMxwSg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea5c1a5c-3746-428b-a88a-08da443ae4f8 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:56.9295 (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: TIbs+MxGh+weUoqgKq2G3ucjXdNzgZKjxJLwS9zU4aLNQYyqwcC3ruuY9gsz27IlQE9hmN1Qkt0qnMbqz/ntNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Add ethdev option for NFDK firmware, implement tx_queue setup and release function for NFDK firmware. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 32 ++++++- drivers/net/nfp/nfp_ethdev_vf.c | 40 +++++++-- drivers/net/nfp/nfp_rxtx.c | 153 ++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_rxtx.h | 7 ++ 4 files changed, 226 insertions(+), 6 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index c09a035323..2bf7a565bc 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -358,11 +358,41 @@ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static const struct eth_dev_ops nfp_net_nfdk_eth_dev_ops = { + .dev_configure = nfp_net_configure, + .dev_start = nfp_net_start, + .dev_stop = nfp_net_nfd3_stop, + .dev_set_link_up = nfp_net_set_link_up, + .dev_set_link_down = nfp_net_set_link_down, + .dev_close = nfp_net_nfd3_close, + .promiscuous_enable = nfp_net_promisc_enable, + .promiscuous_disable = nfp_net_promisc_disable, + .link_update = nfp_net_link_update, + .stats_get = nfp_net_stats_get, + .stats_reset = nfp_net_stats_reset, + .dev_infos_get = nfp_net_infos_get, + .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, + .mtu_set = nfp_net_dev_mtu_set, + .mac_addr_set = nfp_net_set_mac_addr, + .vlan_offload_set = nfp_net_vlan_offload_set, + .reta_update = nfp_net_reta_update, + .reta_query = nfp_net_reta_query, + .rss_hash_update = nfp_net_rss_hash_update, + .rss_hash_conf_get = nfp_net_rss_hash_conf_get, + .rx_queue_setup = nfp_net_rx_queue_setup, + .rx_queue_release = nfp_net_rx_queue_release, + .tx_queue_setup = nfp_net_nfdk_tx_queue_setup, + .tx_queue_release = nfp_net_nfdk_tx_queue_release, + .rx_queue_intr_enable = nfp_rx_queue_intr_enable, + .rx_queue_intr_disable = nfp_rx_queue_intr_disable, +}; + static inline int nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) { switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -370,13 +400,13 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) NFD_CFG_MAJOR_VERSION_of(hw->ver)); return -EINVAL; } + eth_dev->dev_ops = &nfp_net_nfdk_eth_dev_ops; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); return -EINVAL; } - eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index e83c9dbcaf..ee9ff977cc 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -265,6 +265,35 @@ static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static const struct eth_dev_ops nfp_netvf_nfdk_eth_dev_ops = { + .dev_configure = nfp_net_configure, + .dev_start = nfp_netvf_start, + .dev_stop = nfp_netvf_nfd3_stop, + .dev_set_link_up = nfp_netvf_set_link_up, + .dev_set_link_down = nfp_netvf_set_link_down, + .dev_close = nfp_netvf_nfd3_close, + .promiscuous_enable = nfp_net_promisc_enable, + .promiscuous_disable = nfp_net_promisc_disable, + .link_update = nfp_net_link_update, + .stats_get = nfp_net_stats_get, + .stats_reset = nfp_net_stats_reset, + .dev_infos_get = nfp_net_infos_get, + .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, + .mtu_set = nfp_net_dev_mtu_set, + .mac_addr_set = nfp_net_set_mac_addr, + .vlan_offload_set = nfp_net_vlan_offload_set, + .reta_update = nfp_net_reta_update, + .reta_query = nfp_net_reta_query, + .rss_hash_update = nfp_net_rss_hash_update, + .rss_hash_conf_get = nfp_net_rss_hash_conf_get, + .rx_queue_setup = nfp_net_rx_queue_setup, + .rx_queue_release = nfp_net_rx_queue_release, + .tx_queue_setup = nfp_net_nfdk_tx_queue_setup, + .tx_queue_release = nfp_net_nfdk_tx_queue_release, + .rx_queue_intr_enable = nfp_rx_queue_intr_enable, + .rx_queue_intr_disable = nfp_rx_queue_intr_disable, +}; + static int nfp_netvf_init(struct rte_eth_dev *eth_dev) { @@ -291,11 +320,6 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); - eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; - eth_dev->rx_queue_count = nfp_net_rx_queue_count; - eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; - hw->ctrl_bar = (uint8_t *)pci_dev->mem_resource[0].addr; if (hw->ctrl_bar == NULL) { PMD_DRV_LOG(ERR, @@ -309,6 +333,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: + eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -316,12 +341,17 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) NFD_CFG_MAJOR_VERSION_of(hw->ver)); return -EINVAL; } + eth_dev->dev_ops = &nfp_netvf_nfdk_eth_dev_ops; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); return -EINVAL; } + eth_dev->rx_queue_count = nfp_net_rx_queue_count; + eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 2c9875e829..bf5817db4b 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -987,3 +987,156 @@ nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pk return i; } + +static void +nfp_net_nfdk_tx_queue_release_mbufs(struct nfp_net_txq *txq) +{ + uint32_t i; + + if (txq->ktxbufs == NULL) + return; + + for (i = 0; i < txq->tx_count; i++) { + if (txq->ktxbufs[i].mbuf) { + rte_pktmbuf_free_seg(txq->ktxbufs[i].mbuf); + txq->ktxbufs[i].mbuf = NULL; + } + } +} + +void +nfp_net_nfdk_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx) +{ + struct nfp_net_txq *txq = dev->data->tx_queues[queue_idx]; + + if (txq) { + nfp_net_nfdk_tx_queue_release_mbufs(txq); + rte_free(txq->ktxbufs); + rte_free(txq); + } +} + +void +nfp_net_nfdk_reset_tx_queue(struct nfp_net_txq *txq) +{ + nfp_net_nfdk_tx_queue_release_mbufs(txq); + txq->wr_p = 0; + txq->rd_p = 0; +} + +int +nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, + uint16_t queue_idx, + uint16_t nb_desc, + unsigned int socket_id, + const struct rte_eth_txconf *tx_conf) +{ + const struct rte_memzone *tz; + struct nfp_net_txq *txq; + uint16_t tx_free_thresh; + struct nfp_net_hw *hw; + uint32_t tx_desc_sz; + + hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); + + PMD_INIT_FUNC_TRACE(); + + /* Validating number of descriptors */ + tx_desc_sz = nb_desc * sizeof(struct nfp_net_nfdk_tx_desc); + if (((NFDK_TX_DESC_PER_SIMPLE_PKT * tx_desc_sz) % NFP_ALIGN_RING_DESC) != 0 || + ((NFDK_TX_DESC_PER_SIMPLE_PKT * nb_desc) % NFDK_TX_DESC_BLOCK_CNT) != 0 || + nb_desc > NFP_NET_MAX_TX_DESC || nb_desc < NFP_NET_MIN_TX_DESC) { + PMD_DRV_LOG(ERR, "Wrong nb_desc value"); + return -EINVAL; + } + + tx_free_thresh = (uint16_t)((tx_conf->tx_free_thresh) ? + tx_conf->tx_free_thresh : + DEFAULT_TX_FREE_THRESH); + + if (tx_free_thresh > (nb_desc)) { + PMD_DRV_LOG(ERR, + "tx_free_thresh must be less than the number of TX " + "descriptors. (tx_free_thresh=%u port=%d " + "queue=%d)", (unsigned int)tx_free_thresh, + dev->data->port_id, (int)queue_idx); + return -(EINVAL); + } + + /* + * Free memory prior to re-allocation if needed. This is the case after + * calling nfp_net_stop + */ + if (dev->data->tx_queues[queue_idx]) { + PMD_TX_LOG(DEBUG, "Freeing memory prior to re-allocation %d", + queue_idx); + nfp_net_nfdk_tx_queue_release(dev, queue_idx); + dev->data->tx_queues[queue_idx] = NULL; + } + + /* Allocating tx queue data structure */ + txq = rte_zmalloc_socket("ethdev TX queue", sizeof(struct nfp_net_txq), + RTE_CACHE_LINE_SIZE, socket_id); + if (txq == NULL) { + PMD_DRV_LOG(ERR, "Error allocating tx dma"); + return -ENOMEM; + } + + /* + * Allocate TX ring hardware descriptors. A memzone large enough to + * handle the maximum ring size is allocated in order to allow for + * resizing in later calls to the queue setup function. + */ + tz = rte_eth_dma_zone_reserve(dev, "tx_ring", queue_idx, + sizeof(struct nfp_net_nfdk_tx_desc) * + NFDK_TX_DESC_PER_SIMPLE_PKT * + NFP_NET_MAX_TX_DESC, NFP_MEMZONE_ALIGN, + socket_id); + if (tz == NULL) { + PMD_DRV_LOG(ERR, "Error allocating tx dma"); + nfp_net_nfdk_tx_queue_release(dev, queue_idx); + return -ENOMEM; + } + + txq->tx_count = nb_desc * NFDK_TX_DESC_PER_SIMPLE_PKT; + txq->tx_free_thresh = tx_free_thresh; + txq->tx_pthresh = tx_conf->tx_thresh.pthresh; + txq->tx_hthresh = tx_conf->tx_thresh.hthresh; + txq->tx_wthresh = tx_conf->tx_thresh.wthresh; + + /* queue mapping based on firmware configuration */ + txq->qidx = queue_idx; + txq->tx_qcidx = queue_idx * hw->stride_tx; + txq->qcp_q = hw->tx_bar + NFP_QCP_QUEUE_OFF(txq->tx_qcidx); + + txq->port_id = dev->data->port_id; + + /* Saving physical and virtual addresses for the TX ring */ + txq->dma = (uint64_t)tz->iova; + txq->ktxds = (struct nfp_net_nfdk_tx_desc *)tz->addr; + + /* mbuf pointers array for referencing mbufs linked to TX descriptors */ + txq->ktxbufs = rte_zmalloc_socket("txq->ktxbufs", + sizeof(*txq->ktxbufs) * txq->tx_count, + RTE_CACHE_LINE_SIZE, socket_id); + + if (txq->ktxbufs == NULL) { + nfp_net_nfdk_tx_queue_release(dev, queue_idx); + return -ENOMEM; + } + PMD_TX_LOG(DEBUG, "ktxbufs=%p hw_ring=%p dma_addr=0x%" PRIx64, + txq->ktxbufs, txq->ktxds, (unsigned long)txq->dma); + + nfp_net_nfdk_reset_tx_queue(txq); + + dev->data->tx_queues[queue_idx] = txq; + txq->hw = hw; + /* + * Telling the HW about the physical address of the TX ring and number + * of descriptors in log2 format + */ + nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma); + nn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(txq->tx_count)); + + return 0; +} diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index 81e2f7560b..cce3e0c0e5 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -352,6 +352,13 @@ int nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, const struct rte_eth_txconf *tx_conf); uint16_t nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); +int nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, + uint16_t queue_idx, + uint16_t nb_desc, + unsigned int socket_id, + const struct rte_eth_txconf *tx_conf); +void nfp_net_nfdk_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx); +void nfp_net_nfdk_reset_tx_queue(struct nfp_net_txq *txq); #endif /* _NFP_RXTX_H_ */ /* From patchwork Thu Jun 2 01:53:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112249 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 03378A0548; Thu, 2 Jun 2022 03:55:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1B68542B8B; Thu, 2 Jun 2022 03:55:03 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2108.outbound.protection.outlook.com [40.107.223.108]) by mails.dpdk.org (Postfix) with ESMTP id CCE51427EA for ; Thu, 2 Jun 2022 03:55:00 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GDuWFz5bsVgHxA/yEd/hUtGNS9APQFQY5rmgKkT6PLFCO71UM8I2DHTRegfFGbngqACWwL6jjB+J1/LmpjhQul/3Mf6rffz5fT0H3xbChMwAfdr+xYQb7N5PXTx9+LUXFmPeOje6fu5sgLE4XTpDvEz+glVYCt3VDmEVMIjIrUf8DdzWyMzEmdW9RsalIiuQL8gU9B1gEeiE2gTLfxvgqxHdcjab5dkduSDat3293yRVdMo5oACFQBWYGV/zczNa7xV/iSRYsvaOBbVEwe3cU1IIOjiN4Q+tO4nBcuFgAaCeqEQON1SVoBQxnhnm8WzovkIHQJoOGWoaS0wpZW94dQ== 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=BA4ECEfWpEHsTRhrYdl53bPa5sJqgs5epkE7LnihItU=; b=VESYakmlhtLrCCdTa5j0qva/nt/5KaTtGuf216lWuOGRhUJZ/WCiYEsHjrjGh1BFXdmP/vssUcsu2dduw/h3NSee5MTGgZXYg3/IH2vWmgirnvZx5FGhWV1eU6q2zAsaBgPNoUyq/TddZmeg/8a21qFGScO8/KXVWm3qxSUx/uXu8Gs5oLiQff0B5Ex/ksgsbq2DD59H8Nd3v3BxBI2mZjE/WpP1OI4H1e4Lqtijg+eScW0yASVNMv6ZvP/ZZT6VDFiZcj7BCIPCjumAhmxUArk/p5TvbR8HZjp49r8BrU8h17JXIjhtb5IsvazPsSgFWEm5LCMvPdNpw/l7S3YtBQ== 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=BA4ECEfWpEHsTRhrYdl53bPa5sJqgs5epkE7LnihItU=; b=QNV42lxUdT1II/eC1aFpL4WILCPaz7YgT8Q6vsgRl6cQE1VX3ovXLcGAJ20LigQLww79aTom3uf/KJo9ZE54soA+oxnDVLelpMRR+QHlcV3W7C8G5JgwG2iHGUhSo5ayLnKZIhClJcKtytpqUWhdSNSAjeUvAOYKtKbeD9enWOA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:54:59 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:54:59 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 10/14] net/nfp: add queue stop and close helper function Date: Thu, 2 Jun 2022 03:53:00 +0200 Message-Id: <20220602015304.710197-11-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6b91a59d-cf4d-45f1-a00b-08da443ae69e X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d/o7SFKfbZK/JskS0VdzZkDiuf0Lw93NCSeQzVtkOOI2nekZNyyGfN4lGsoXyE9Y+/X377UEUr+1ev/TGxPGMC+0T1f+UbM8sfx5ALeMKXGNRMRMe37PhaBTSiKTP9392tIFKwAawIzPfpVuQc0+Vz83ghWJNY9a4Dcd+YkkQYSQdIha/1PteytnsHYYR4T1xLaMhVCxLsU7kGsZycIItnsnFANhJUgGtUhoKUx0sFjKreAtQDrbdANRkr9znWy/NT7jeVoYxUwkn8c+oWY+5T33IpQ+mXmzhNWT6tCcLZSzST/HmYKuRbsOsvPUd91+oQaLq1o735vIsJM+go/IECf384cygoqp07L3MWwgnoEAYIdgQ7WrqTU3gO5FsoowscPl0+wLOiGaD0DjBaH0iBaM85pkI6nJzUKSUVhBLs6NxBL8+LBXrOKEK1LLiorF7vIUBzxQU42tlL9yfD64h3uGcskNrHgseJxdpHpQDDLHIEdEF+vv/qw5Qfpds4VqD/4aEMgyHAVMUETqVnKuyKdMCmdEWdCCL3WmRyBsyd5DWUgcxh0Sq1iwK6FlVOg74QC1h5OxOnX+9U6CIdTNavYfvb6WAQ6N4dVr4+bJ492pAKb7mc6s0Jk6f2sQSPk7Ia3Y2ikw4D7f4a4iXGwfJgQj0AxWTsEuLOqmLtvejWsE4WujsNghfZ0F1dv7ic4CFRop1UzB2NIoPE6WGlfG4A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(6666004)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?0c5WD9KOAUYhqkKpiTBqhiu6wUt0?= =?utf-8?q?bYidCs0bH3+DMxRD7RZ/AlP/RRbwpHgD6BB9kHhoWH0eJal4/v4O3t6rScpdi6I/A?= =?utf-8?q?ERWQJtTy2BG8QSeCWuHgFFFMmmrDohUFhstHJyuCGE6KHrP5gOiS1OWG72Jgp5dCh?= =?utf-8?q?LMrac2hb27LFs/6uHHToq0B0bW1MmyPHp0SLtGSBRu1bAh2woNixQOV1OLnDaksu6?= =?utf-8?q?ilqERvVegzVVzAVyE50OzfQMT6BY/sxxUQXszQ9XJS/qxfQXc/LVUZEmlk80xX88z?= =?utf-8?q?Fyk9s6A2RNDTFbhJud+IkiLbRyyZ14GaXy3lsQ/WZsiXGzzSj2C7IyT6cOZYlwKEr?= =?utf-8?q?qpBaFVonwAuaZclJcX1AbAS0sEaWv+wMtSLCJA3l1Uqgg+L7hViVWh0tERHzd0mcV?= =?utf-8?q?Z8PJhYfLGKarlHSTBCrzNMJr/8nZiUo7YfWVMWcGpbmq0ATIzwjEaPfRiUGWGgNcZ?= =?utf-8?q?MLjk4OmjZYaiSHuvR4zZ+GTcF9xVMT2lL2HVGb3Yxyc0gt4pxeQElk8kiXdCIvcsl?= =?utf-8?q?+SqetIcqMY3yYjiwxlDcxLaHtbIQSJfWEMsE4sE77upeghxWqw94snjkw9tYKxgMs?= =?utf-8?q?T7uywdDb4VAukRVZkM0mbKpP8+f+LppsjulsuTd0hBp11QOz/Dnr8+3o9z09oGyzg?= =?utf-8?q?/8mvtRLt0g+6vMKGl3Uk05TEhI5gPaWjoKyF+kUZuhc2kw4nYwf4S3Jj/kz/mIqFz?= =?utf-8?q?/Iko2dZgIROhiEtjcWH3YcjrSzLlobYtZps6/pLXxzjJbBgwfRflrhSH0tTz8UswM?= =?utf-8?q?ftD5/wWbaNGcleMMrC/SpLVVXLJPgOHFEDCim7E/FlQb6IyxOuWkr+/cK3NII17TS?= =?utf-8?q?wSEXwIHEEPOMGqaPbrLTcIKeenIMzbdQ7Hde1HhywJO1zB+OstKx3zTEXDHENWncj?= =?utf-8?q?M0LQ/bmI8wKpMS3ENaGQvJDHRBfvkxdTvCzXGCJiT/AmGC32KBuLuCrLWlwiw2WIc?= =?utf-8?q?76XcFWNmh6IDJvO/+XYq5knOwLQHtFQ8/AkK37sHh9vdQcmzVBI7amtgQwM5JXWF5?= =?utf-8?q?eyDUGtQnDl4vJHZIIVlrfwHG33zK41luJ9gaaJB3NMr7J7W7UQ88sR0Wp9k3S4HtZ?= =?utf-8?q?uOI0AMF31wom0ewN9D5tydWiKql04Epu3PFbfbessbVaYQGBej14D55H39lL7UUeQ?= =?utf-8?q?yijb2YIBUHrKhMGnHJOzcJBIuLzMqNOJSudohGY4P3GDN9CWY2S5O1yowbZih0ZWp?= =?utf-8?q?whcCx4huJEUTRp6JYzmbG7t1q6TTV3J+iHqyK61PKfqwRmicV3mfovLzm+lMOkKd3?= =?utf-8?q?GGbYn5HvrI7GKKc4OXJ1OsdYCD+hZA1Z6C/wcg4BZUG8ztgz7/+yKP+wQbDt4+rjS?= =?utf-8?q?W8YpIiRgDvZidvOIVEO+u43NXymIiuSpJ0DIA0ceXJduVynRQyHKmYKgV+RILY2wF?= =?utf-8?q?ld0EooCMENzzDHc98crpC+CpqK00n9Gmj+oTfyT8a3wKtiigR1MxawkA/DghRJmk+?= =?utf-8?q?ZXYMp56M3krtYszp2hYXee6YQTxLp1epd6DSSnT8V/hIU9RWBFmPOR0vWoyHcM6f9?= =?utf-8?q?/FCNQENhTKWhNyRk/yQO+MeaV8p5n6GEQzla6JEv3VAPjcfu/KJH5Xt+UFSi8mhrX?= =?utf-8?q?cwfTj22dCvMgSagzYLgClBbdkMoQImR89MnFE/6RjFpXkymhC2tGsJRFPQ0yJKRVN?= =?utf-8?q?4IG++LXr9tnN4Z+UY27JsPQ0rrpGTjvg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b91a59d-cf4d-45f1-a00b-08da443ae69e X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:54:59.6793 (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: QR0aY0HW+HvR9Dy3LV+dJ4tXh2vWir918fT0+gi789M/V1Z7JMQd7a8LB3+voVoAZpHwK3NqfhlNPq5nFTFqog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 This commit does not introduce new features, just integrate some common logic into helper functions to reduce the same logic and increase code reuse, include queue stop and queue close logic, will be used when NFP net stop and close. queue stop: reset queue queue close: reset and release queue Modify nfd3 firmware net stop and close function, use helper function to stop and close queue instead of before logic. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 75 +++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_common.h | 6 +++ drivers/net/nfp/nfp_ethdev.c | 27 ++---------- drivers/net/nfp/nfp_ethdev_vf.c | 29 ++----------- 4 files changed, 89 insertions(+), 48 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 6cd1085c1c..58e20081fc 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -1293,6 +1293,81 @@ nfp_net_rss_config_default(struct rte_eth_dev *dev) return ret; } +void +nfp_net_stop_rx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_rxq *this_rx_q; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; + nfp_net_reset_rx_queue(this_rx_q); + } +} + +void +nfp_net_close_rx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_rxq *this_rx_q; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; + nfp_net_reset_rx_queue(this_rx_q); + nfp_net_rx_queue_release(dev, i); + } +} + +void +nfp_net_nfd3_stop_tx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_txq *this_tx_q; + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; + nfp_net_nfd3_reset_tx_queue(this_tx_q); + } +} + +void +nfp_net_nfd3_close_tx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_txq *this_tx_q; + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; + nfp_net_nfd3_reset_tx_queue(this_tx_q); + nfp_net_nfd3_tx_queue_release(dev, i); + } +} + +void +nfp_net_nfdk_stop_tx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_txq *this_tx_q; + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; + nfp_net_nfdk_reset_tx_queue(this_tx_q); + } +} + +void +nfp_net_nfdk_close_tx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_txq *this_tx_q; + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; + nfp_net_nfdk_reset_tx_queue(this_tx_q); + nfp_net_nfdk_tx_queue_release(dev, i); + } +} + RTE_LOG_REGISTER_SUFFIX(nfp_logtype_init, init, NOTICE); RTE_LOG_REGISTER_SUFFIX(nfp_logtype_driver, driver, NOTICE); /* diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 346fece527..1489b2ac65 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -409,6 +409,12 @@ int nfp_net_rss_hash_update(struct rte_eth_dev *dev, int nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev, struct rte_eth_rss_conf *rss_conf); int nfp_net_rss_config_default(struct rte_eth_dev *dev); +void nfp_net_stop_rx_queue(struct rte_eth_dev *dev); +void nfp_net_close_rx_queue(struct rte_eth_dev *dev); +void nfp_net_nfd3_stop_tx_queue(struct rte_eth_dev *dev); +void nfp_net_nfd3_close_tx_queue(struct rte_eth_dev *dev); +void nfp_net_nfdk_stop_tx_queue(struct rte_eth_dev *dev); +void nfp_net_nfdk_close_tx_queue(struct rte_eth_dev *dev); #define NFP_NET_DEV_PRIVATE_TO_HW(adapter)\ (&((struct nfp_net_adapter *)adapter)->hw) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 2bf7a565bc..0a5c703190 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -181,10 +181,7 @@ nfp_net_start(struct rte_eth_dev *dev) static int nfp_net_nfd3_stop(struct rte_eth_dev *dev) { - int i; struct nfp_net_hw *hw; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; PMD_INIT_LOG(DEBUG, "Stop"); @@ -193,15 +190,9 @@ nfp_net_nfd3_stop(struct rte_eth_dev *dev) nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_nfd3_reset_tx_queue(this_tx_q); - } + nfp_net_nfd3_stop_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - } + nfp_net_stop_rx_queue(dev); if (rte_eal_process_type() == RTE_PROC_PRIMARY) /* Configure the physical port down */ @@ -256,8 +247,6 @@ nfp_net_nfd3_close(struct rte_eth_dev *dev) struct nfp_net_hw *hw; struct rte_pci_device *pci_dev; struct nfp_pf_dev *pf_dev; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; int i; if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -277,17 +266,9 @@ nfp_net_nfd3_close(struct rte_eth_dev *dev) nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_nfd3_reset_tx_queue(this_tx_q); - nfp_net_nfd3_tx_queue_release(dev, i); - } + nfp_net_nfd3_close_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - nfp_net_rx_queue_release(dev, i); - } + nfp_net_close_rx_queue(dev); /* Cancel possible impending LSC work here before releasing the port*/ rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index ee9ff977cc..d347c98134 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -145,24 +145,14 @@ nfp_netvf_start(struct rte_eth_dev *dev) static int nfp_netvf_nfd3_stop(struct rte_eth_dev *dev) { - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; - int i; - PMD_INIT_LOG(DEBUG, "Stop"); nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_nfd3_reset_tx_queue(this_tx_q); - } + nfp_net_nfd3_stop_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - } + nfp_net_stop_rx_queue(dev); return 0; } @@ -185,9 +175,6 @@ static int nfp_netvf_nfd3_close(struct rte_eth_dev *dev) { struct rte_pci_device *pci_dev; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; - int i; if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; @@ -204,17 +191,9 @@ nfp_netvf_nfd3_close(struct rte_eth_dev *dev) nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_nfd3_reset_tx_queue(this_tx_q); - nfp_net_nfd3_tx_queue_release(dev, i); - } + nfp_net_nfd3_close_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - nfp_net_rx_queue_release(dev, i); - } + nfp_net_close_rx_queue(dev); rte_intr_disable(pci_dev->intr_handle); From patchwork Thu Jun 2 01:53:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112250 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 07675A0548; Thu, 2 Jun 2022 03:55:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 24D3C42B85; Thu, 2 Jun 2022 03:55:05 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2106.outbound.protection.outlook.com [40.107.220.106]) by mails.dpdk.org (Postfix) with ESMTP id D9B1442B6E for ; Thu, 2 Jun 2022 03:55:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hI5UwCZSNNMEbeM+TmzDoxYqJ+HwUDWFzYf8wuI4UciMKrOCfWu7OZnL6IFfJIQulM8m3VRtt+fQboRR66KoM9Gbf8P4oFd4p4XfIJ05ZiTpbEuMf5ZwfDN40PC3FtiYgIeAlxRvJMYGptbjmEg/PIWnymWznetDUJ3FoQsKjDw++C8K5kEHhgbFi6gxCKqiLsoFKCYpdAkx7n95WUdOY0cmdZVEHZAAhT7hSx+8C6IdtH6xEiEImUBIQ3cUENtB/AMGMGIWcT7gKwoAfupx9HjGNKNV/QDZIrSYpeQ5WsVfBFeaaGMqdl4IA46t0OgM1xV3nZHIOc/pCInpz9/kfA== 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=L/UUeZmvBrxntf4SHCWo+DtJOwVW6aRvFfE056LN4bc=; b=RUlF3sWyo0f5DOoXetYNC4SYk6KeYAxO5BAbVFSJFdlbj9Ya2YKT2tgz0Ppz9ts6PWxJxZNa7kV19UQSOm9tuJLwzwPCsf0lZq3G89dK1niDiixMIeWUvFh66MBJMcs2/d8XD7zuvHu72AbFKCGtanq0EGvKQQFtQBfljRIZ359O8jGEohe48ZOOpChvBxK1wkrIqAsZEiQ5SRXZ/1Isgd1sgcsH5PUBcCCT1ZBQjnkbOyhNgK/c0tdmi5ecJuLiilDnJAwr7U3R541mJl8KheoifuJqJXyLAworwjWPy4WssqBe06ecoSmISxNmyaZdDEjyE5nAIcFsGW53HXtKfg== 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=L/UUeZmvBrxntf4SHCWo+DtJOwVW6aRvFfE056LN4bc=; b=gwEifRJNqNNUPn2ZnipUbnyFfo0JwcoL/2njw+8KJQT0HYalHCgNF+nNJi7PwANR6vfTbplF8zawG6zFchH4xwdmQgDPWi+X8/Ur8GPKx4RZRUpzAxZiJgVcuxXJkOEBHv0gTK9p95PrCgQ0NAEIhz76WxpPfK6VTOZEao17OEo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:55:02 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:55:02 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 11/14] net/nfp: nfdk stop and close function Date: Thu, 2 Jun 2022 03:53:01 +0200 Message-Id: <20220602015304.710197-12-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d6d00f54-7362-44cb-d2eb-08da443ae83f X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 26/7EON0YxQGKFwww52mXq4+5CQhyrn0/n0gAaGjRP9Dj1Dvi4BM8bqKqmE4KqZJYjCmkEKLJJrn2OLqqK+eZaZsAo8ll4tmaoAmlyEa9mTChjWviCyRQdWjyut53WR3iKh1DhbHruTLBUpvaQe7Ac5nkG4VJVsgnKnIf3+HK+Fq5F8glZ++K9uNm+ZeF+tfWS8G76yi/n96IfCR5T1Wtu8hJ8CevKykT6aih2kuEaAXoXY0JTvPNs5/c6+I+sK18YT3BiwIDI7AxuNRWo/xkI977qpWabux4X/0h/T52DYxbF0C4ibwqXAJUs3JCjBZiyf8Lq5jAiMnNu+3qWPcqAsVbbi42fK04p/klp7dv2x8y1dGno2GG1BX3oKLdZLABKEfzNOE8Adu6toizlZwchS6La9r9RJNmfuLGwC5sWw5StxZglfbeCsjL+s393Qyk0JUtz+2qVrTnJYJl+EVl4k7V8EN/SiY6+Zc4ApmBST1LBuUeXD236Dl7Nwfy6PfJr+evd9WmONMIgSgUAbblhmHgEGgNFw1pUjlvZwBWt0i7igZuRrUiyEefKCoGgyRNtyJoTOft3ddlNQxuyyhPhE1rk8N1I9mEBg5ZB2hnybh5tr1SdMYSx0HfXqbXvlOKlyDZl2ACA23nAXJH2cuT4uSSyhFs7Lye2EaFU3Lrkwbnfhk/C+LRcLxeDWKMtiORslGfPVmt5c/RumymNvzAA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?2DKnnaGJmsUs1p2NXZHqJnrjvRkJ?= =?utf-8?q?7dejPLm0pCu9IqAHgN4k1PRP1vpAr7KglbJGNtK96RVv4LPnU+Jtwb0CuTdrZi64o?= =?utf-8?q?pnokmqWoBnDX+7fE/p51t/ZYue+YsNqAPvyP1NTa6aSnqBV/oVI4MaKchouGxqqR1?= =?utf-8?q?X5JqZ7VQSpDK2wt/uJCz338Jy5tT72MdY2DwsPFvvb4H5oLzc1QXOIGdTbBpc5FQK?= =?utf-8?q?zHI/VNN5Ert4gCtYuGZzwt0evbouAtRMcoOi92qFXT5pN2j/XcCQ003F1wmdMV720?= =?utf-8?q?RnjskA7vXtEBuFlit4wFvROoaN0j8Li8TVf8CHAmxMatjFZYyu/U/0cni/3HC/AtK?= =?utf-8?q?RpUYs6sIZgOrNTu5r/teJ9OLCo7xVXMU8yWTTv611ONqlTkjKQam2h1LJm78LvXDF?= =?utf-8?q?nt9JCVhQjBbgI0OoPIVrfrBzwqnGT1A74LJ/sK0/IyBZHsE4zGeBhp5iYTjO+Aq+X?= =?utf-8?q?QjZORyFdMKVebW0xdkkAQWi382126iaMI3nletwqv/kt4z9ad4PweR/hnGTHcdnBv?= =?utf-8?q?4upABUJx8SBFvDLEr/+gYNa1GYdws351/Ny5VDOHxtWrZF+5fuDcEvNg8CNlWz3ca?= =?utf-8?q?QIGUZYq4Chv+p3H6iq0mYHkbSN/e1Qbu9KwSCXTisrUQZ44dswbW3S4FM4A471Z/W?= =?utf-8?q?Ej74zKeTtv7KofAgzpDwJUE3eaTjqt81pPJwh57ED+8GzgbRYdipkAb7R+T672Lnj?= =?utf-8?q?bnuV0ALKzv8D8tu/UKck99tZHTI01zYTTXOxYI+XqATnYj5s9+VGCfWBLCo/fmgvF?= =?utf-8?q?hYzP2KV6kSfjVV08XDeIvDWerjixZ0oCgc46V9H1wjMx4nARL6Er/XhYR3KXKOuMr?= =?utf-8?q?I/9V5sEpGqsJEAaZHsfC7NVxO81iWt225OuxugtO8YR4duZNrkHhQBwVidUC90UQp?= =?utf-8?q?VltjaoemctgmwTaPXxzpLxEmRkmNwt2CIfMlk4D2fvHgdcKh5FDL9nRH7hM8QQvb0?= =?utf-8?q?xY4FSBI08g7KZQdoX7WDlCrDHb98EyrgxJkk8ByKdyaXAvXQE3dOqxOEQQ04N2NbT?= =?utf-8?q?Ha6snT95YoYL1CBwcSuESpgoyFf79SglL3hyfCR3s46WMrr8JKPckWS8ZnXT4EUBU?= =?utf-8?q?358epU4fG0ZQ9qvF9CLll16uK+MzDB0FtHusvk4xblQ1LSVCiuekVAa8DvWlHWmNX?= =?utf-8?q?owZTNEr3I8xJv3MFBjjbQ9OdiWL+BCWM0eKEqx3SuifLP/exdI+/bD7CIgQP1ytFZ?= =?utf-8?q?vFrfH+ew/4Vg6fxCBIlPq/dohydTWi0GEk3pfKYRRCtuvfCsiXPzD3HOLTRL6fCns?= =?utf-8?q?jTfXByoGx8UFNM45wDxyNlI4R4LVzpIiBkrjkEI4qc8Z7Yefp52OY5qq/w4iCeI78?= =?utf-8?q?DyZ8OPOhJh90Hx7gxKW9Z264Mg59hrrJTLvRfrfqyTZsoj2d73gGPX1dmpox16u1R?= =?utf-8?q?2qoPezzYO6oFyCupF4LDrtJSf8fgRy6mPF3i68KW9g8pH+ZqI18T4oxzsuVm5K0nT?= =?utf-8?q?TOMgA43fzSUSegQZ+D4Q5azjAryey/MxPLaTEHc3dlHpMzFciE+GGjNdYUn6+TENm?= =?utf-8?q?N4s+Gv5d3CR2xjBZqJzd2GF2zKnXlnq36SyOs6/yR7d4DvTdg9gFUxZA3e4qrrktX?= =?utf-8?q?wPWcoanwtYHF33PTMyb+Zq45otANYUkxah0sIRImBhvpv1d7c4DG+Is4J6Mh1TKxa?= =?utf-8?q?uxhQrYF7YJFx3QPEzIw/QlphFDLOL7aA=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: d6d00f54-7362-44cb-d2eb-08da443ae83f X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:55:02.4291 (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: yW8TegUD0TZLgDJi8Q2M3eHTRhdtqquCv9Ja0GiXK17bWwtObRujIXEnmqTtBPW/ZbCK57GnpcBZ1kk4Up62yw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Implement NIC stop and close function for NFDK firmware. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 92 ++++++++++++++++++++++++++++++++- drivers/net/nfp/nfp_ethdev_vf.c | 64 +++++++++++++++++++++-- 2 files changed, 151 insertions(+), 5 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 0a5c703190..4e3a6a964d 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -309,6 +309,94 @@ nfp_net_nfd3_close(struct rte_eth_dev *dev) return 0; } +static int +nfp_net_nfdk_stop(struct rte_eth_dev *dev) +{ + struct nfp_net_hw *hw; + + PMD_INIT_LOG(DEBUG, "Stop"); + + hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); + + nfp_net_disable_queues(dev); + + /* Clear queues */ + nfp_net_nfdk_stop_tx_queue(dev); + + nfp_net_stop_rx_queue(dev); + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) + /* Configure the physical port down */ + nfp_eth_set_configured(hw->cpp, hw->nfp_idx, 0); + else + nfp_eth_set_configured(dev->process_private, hw->nfp_idx, 0); + + return 0; +} + +static int +nfp_net_nfdk_close(struct rte_eth_dev *dev) +{ + int i; + struct nfp_net_hw *hw; + struct rte_pci_device *pci_dev; + struct nfp_pf_dev *pf_dev; + + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; + + PMD_INIT_LOG(DEBUG, "Close"); + + pf_dev = NFP_NET_DEV_PRIVATE_TO_PF(dev->data->dev_private); + hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); + pci_dev = RTE_ETH_DEV_TO_PCI(dev); + + /* + * We assume that the DPDK application is stopping all the + * threads/queues before calling the device close function. + */ + + nfp_net_disable_queues(dev); + + /* Clear queues */ + nfp_net_nfdk_close_tx_queue(dev); + + nfp_net_close_rx_queue(dev); + + /* Cancel possible impending LSC work here before releasing the port*/ + rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev); + + /* Only free PF resources after all physical ports have been closed */ + /* Mark this port as unused and free device priv resources*/ + nn_cfg_writeb(hw, NFP_NET_CFG_LSC, 0xff); + pf_dev->ports[hw->idx] = NULL; + rte_eth_dev_release_port(dev); + + for (i = 0; i < pf_dev->total_phyports; i++) { + /* Check to see if ports are still in use */ + if (pf_dev->ports[i]) + return 0; + } + + /* Now it is safe to free all PF resources */ + PMD_INIT_LOG(INFO, "Freeing PF resources"); + nfp_cpp_area_free(pf_dev->ctrl_area); + nfp_cpp_area_free(pf_dev->hwqueues_area); + free(pf_dev->hwinfo); + free(pf_dev->sym_tbl); + nfp_cpp_free(pf_dev->cpp); + rte_free(pf_dev); + + rte_intr_disable(pci_dev->intr_handle); + + /* unregister callback func from eal lib */ + rte_intr_callback_unregister(pci_dev->intr_handle, + nfp_net_dev_interrupt_handler, + (void *)dev); + + return 0; +} + /* Initialise and register driver with DPDK Application */ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .dev_configure = nfp_net_configure, @@ -342,10 +430,10 @@ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { static const struct eth_dev_ops nfp_net_nfdk_eth_dev_ops = { .dev_configure = nfp_net_configure, .dev_start = nfp_net_start, - .dev_stop = nfp_net_nfd3_stop, + .dev_stop = nfp_net_nfdk_stop, .dev_set_link_up = nfp_net_set_link_up, .dev_set_link_down = nfp_net_set_link_down, - .dev_close = nfp_net_nfd3_close, + .dev_close = nfp_net_nfdk_close, .promiscuous_enable = nfp_net_promisc_enable, .promiscuous_disable = nfp_net_promisc_disable, .link_update = nfp_net_link_update, diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index d347c98134..a5c6aceb32 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -214,6 +214,58 @@ nfp_netvf_nfd3_close(struct rte_eth_dev *dev) return 0; } +static int +nfp_netvf_nfdk_stop(struct rte_eth_dev *dev) +{ + PMD_INIT_LOG(DEBUG, "Stop"); + + nfp_net_disable_queues(dev); + + /* Clear queues */ + nfp_net_nfdk_stop_tx_queue(dev); + + nfp_net_stop_rx_queue(dev); + + return 0; +} + +static int +nfp_netvf_nfdk_close(struct rte_eth_dev *dev) +{ + struct rte_pci_device *pci_dev; + + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; + + PMD_INIT_LOG(DEBUG, "Close"); + + pci_dev = RTE_ETH_DEV_TO_PCI(dev); + + /* + * We assume that the DPDK application is stopping all the + * threads/queues before calling the device close function. + */ + + nfp_net_disable_queues(dev); + + /* Clear queues */ + nfp_net_nfdk_close_tx_queue(dev); + + nfp_net_close_rx_queue(dev); + + rte_intr_disable(pci_dev->intr_handle); + + /* unregister callback func from eal lib */ + rte_intr_callback_unregister(pci_dev->intr_handle, + nfp_net_dev_interrupt_handler, + (void *)dev); + + /* Cancel possible impending LSC work here before releasing the port*/ + rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev); + + return 0; +} + /* Initialise and register VF driver with DPDK Application */ static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { .dev_configure = nfp_net_configure, @@ -247,10 +299,10 @@ static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { static const struct eth_dev_ops nfp_netvf_nfdk_eth_dev_ops = { .dev_configure = nfp_net_configure, .dev_start = nfp_netvf_start, - .dev_stop = nfp_netvf_nfd3_stop, + .dev_stop = nfp_netvf_nfdk_stop, .dev_set_link_up = nfp_netvf_set_link_up, .dev_set_link_down = nfp_netvf_set_link_down, - .dev_close = nfp_netvf_nfd3_close, + .dev_close = nfp_netvf_nfdk_close, .promiscuous_enable = nfp_net_promisc_enable, .promiscuous_disable = nfp_net_promisc_disable, .link_update = nfp_net_link_update, @@ -498,7 +550,13 @@ static const struct rte_pci_id pci_id_nfp_vf_net_map[] = { static int nfp_vf_pci_uninit(struct rte_eth_dev *eth_dev) { /* VF cleanup, just free private port data */ - return nfp_netvf_nfd3_close(eth_dev); + struct nfp_net_hw *hw; + + hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); + if (NFD_CFG_CLASS_VER_of(hw->ver) == NFP_NET_CFG_VERSION_DP_NFD3) + return nfp_netvf_nfd3_close(eth_dev); + else + return nfp_netvf_nfdk_close(eth_dev); } static int eth_nfp_vf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, From patchwork Thu Jun 2 01:53:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112251 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 CC8D1A0548; Thu, 2 Jun 2022 03:55:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CDAAA42B8A; Thu, 2 Jun 2022 03:55:08 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2116.outbound.protection.outlook.com [40.107.223.116]) by mails.dpdk.org (Postfix) with ESMTP id AF14842B95 for ; Thu, 2 Jun 2022 03:55:06 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CM0kg6GCcF97b0Qc17K5GcNS3AsA6BOm51wB8pphbzjMgEYUQYa4ICbb9WXDATLhgCP7F4N1kNNCGrBZiMtODsJODyYlDMj6kfPDxk9DjExSQ1YVw9kU4mlgQszASWlXXjVCcYqDUz3lmgPfxTCBa9zbzYHXC9day5bTzRZMfihm5pWssctws6SnLaYbH3CcqGRA68mxvPZ/YPf8TxNy/Gju4eG8rhiCpctScCarrBLnDsPRbLknf1RnNpxXKN5kQNNOlCuxNM6RSvyu2wwVLaSVoMs6ggsbEF4UH5fws7nKTR809E6l5cXD0FSZUtkVqOjgW8I55a5nCAGxZA3R+w== 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=5Dpz7mHmlxmK4+oMt3BICnonh8updNF6eGGVKPTqxis=; b=Ap7tajpUgdBS3w0knptiDQLbxjAPu7y2zzGGSCWhl2jc2EzY/EV+GA3AUyvMJiTJGbRFjuElZD+vULBk9m9ijZuESPWbUQrATiKABzHL6etE372nCMBd2B+T1oPD7s4GfAoaaeIxQILLPTmzpxVGRuGRQXH7bHvJ/mvjNuOGnfVq6Yw7FHZBWN8icmuwslQqet+Bji3jEf7zOsYYC797PGWd9w3dQNWgshAemt2VTY3/Kx3pqkGUYiqKk33XUmcbL9z2tOYjm8OlDZ+EttZ0r5nEawbwaD0mPzXvGOysJUw0rCkIM3iyg8yfomQL6S+crVXw6UTm4VBUHS93dUuouw== 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=5Dpz7mHmlxmK4+oMt3BICnonh8updNF6eGGVKPTqxis=; b=t465QIIsYlvG0Z5YWZqmlq2N7ocJ0tsSsmOqO+jAVkk8g8ApuuuYMhZC4bLu7ja8PRG/j3TNwl63cFx8kBXrNExt/aLlJkYyKlyYVp4sPrxdJZgTwXwtgXTgr90CrAS4cze64CmQwkUfnXyPsgItR+HJj4bp018E3uaeGtYdkYk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:55:05 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:55:05 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 12/14] net/nfp: move macro from C file to head file Date: Thu, 2 Jun 2022 03:53:02 +0200 Message-Id: <20220602015304.710197-13-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d418ddea-359b-4a02-ca6b-08da443ae9e5 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hsT+59CyXBcOq/yVnzLq6gXHXReAXD5j/yNs/1Iko8ug88i7s38XKbzwCSIMOrSPcINXcgKMS0Ff3tSBS19x/AjwOgmfpxs2NuUYV1VRjkCMvedtv7jP7WhFYMWZ7xGYYTyN5tQ4myaefu8vGAja1ezTnYcIvqzw0g0k+gbxqOYQFkTrV+6P2b08mJjL34zN7FkN4cezoWtjdVrsbxqTZvKZl8HQRVF0Rt6EbZChsOEwoht9QahJ+dpmYGC5+RktJMfqMk3D69XdoGiT0F9YSdi6Qvmut939+foLdVaRmCCj2NWkQvPE4fUZtE6a6puTFiNk+rfxJck76oT/VaHN/G7+vr6ocJvz6yhY7t3Li+GwRxu53bPG80/cfiWNNn+fV59uTzv8ikMuPhWwb8mEa7J05m5mSJMWNuVUPUCv67Q3+Vd9WN9p0peNgC5AqA/LgZqehbxkiSTm2ekXMNX1AbFKg9wRYgDvsvEyfzQDbs1oa8xIjHDwtzVny4G/HDWzASqp1ygWQZI+kMfhqfpDJxeoLDpi44makt6g6DcvirGelNwDXPmS35JguR1GXF83zSSNxgvQKb2kUnZDqiOedrzrBCIKNzeycynscgpnFhpPcnP6q5s1QOTng1HpCGlvKSfspLP1c1gGgnaAkZQzZiKA7fZ8PWNIp24D6l9qku4bp+cqKxZcLbjqLLYB/whmTi6kjzIHS2A7JyeVceRNIw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(6666004)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?CZ9/wGr11L86INIuDFT7Lf67wt2D?= =?utf-8?q?zbrTUF62/7Ocbg1hTl4B2wAn7uSyx++gdwf0i6iNe1zGNARPUP8fcbLIllQm79YQQ?= =?utf-8?q?rY/qzUEiPEztvMCZYCWYkvyrYgmXX6X32UPT0fEYgN3nX/8U3iOUeHYg77f6QRRLm?= =?utf-8?q?KhLE7wO1R5lOMRncglm+qR84k1ml36IWIEArHAhBWc1IdmBC1Z485nGOWmVp5r2bC?= =?utf-8?q?72SOVS/4/vBR+I18C4Sp4JC0wIcYtkS257vUD9AnP1RkSw7OxfF/7yjcRX1cGwh2x?= =?utf-8?q?hyXCLptu4wVfboItW/XkAlm250QTITPWFpYHtlclO0bwvPrVd/YKsjlcq+OS6Iakk?= =?utf-8?q?cyMAr9yWttPhT1mHHAakZRwfTlV76tjMVSTLCyCPIAgraPZIJN9IzjdozWuVxmLtQ?= =?utf-8?q?WQmYOAgCcfo1/n0Trznb73Fm635Dym+I6TeACrBURFuRk4gXd4wpDO8bgmMu3e8K7?= =?utf-8?q?vBSXrl28rZqtC+dAu+deqATYN4U6ZGncABjzI0Ik1b1Z7HxQWBwqp1ts+AHYwBJFo?= =?utf-8?q?aoEdGi4G0TUtiTJh/GcB2fkIjMu3/nW+6+K7OUgkw2Fitaj5zybl/UcHDihNz4FEk?= =?utf-8?q?q9l59IZwKnCZVRDnIiCElgNypOCxnEuBFS7t8HCq8UiaoLDL4V2brwO394VgT5FT/?= =?utf-8?q?NvMpJ6MBdgJc4Pml7f0nwikWCZKmWvm9/lh3TEuQuzT7lMhPcZ0lIgYP9XzCJePf/?= =?utf-8?q?p4acb3t0MxCc+Xb1D9rEnIMc0iw8Dg1jmyvhjpc6VicXReiQHMaYurfVL6I05ITvq?= =?utf-8?q?fMfdi8ot7AvbI2Y99CLvjH8hyjH7PePal5SFvmH2no4oxxVlETmN/QSYpyt1O1oFp?= =?utf-8?q?/zVaqy4QaO8HfkJtIPg+g/WX03+6Xfu4g/pH1BU9AvfanrdhgqZPeIX8t4b8dhioo?= =?utf-8?q?l3L+en5CPJnB3ZqlG9toXRXAcQrljKj7dkCTZ1YzXIflImRYG0keepz6UA6SxqlRC?= =?utf-8?q?MOucuepTbZfS59MG66hdXE+EjUCwtlXuwjfwUlT+r0bb/xnjfDkOeHuWTQtkyIOyu?= =?utf-8?q?frxAUH2+x4rcoIixZFAGVM7y5qbJr7yP6wsPltFdjegoKH2/sFPJ3KNUslAyjqCU3?= =?utf-8?q?s3qHWebUvV/dOahIk9fOYT7IVXeRHGmMvfFBZusjwf5koGsE9Jdu+m6NH2JbHEgLF?= =?utf-8?q?KKYbr+2htwW8pVwEUmqOTmY4xYbnnpd796K5tJCAye/9727unxuKOvd5TMXL//4oa?= =?utf-8?q?c43vrEfctzwYI+GqVSTEgCHfnxlwYN2lacfmPxF35oCmGRQQl800T/fK5HwW2NTnv?= =?utf-8?q?xUqG92bVnRisUcTOoEnUNRMO4Uh4NMp5NBvqquIFRk7Ds06IBZ4G+H/ZK2nlVQKgd?= =?utf-8?q?2uEsA6KEFNOm2/Uw0VPz+Sj3/fu3RuRYBRlPNn1qU1PyNaL6pY76slwv7pX/DL9+0?= =?utf-8?q?WxS6P3AVSacN2I2tVmsjFME1xndlJohKqASmiehRH9lalCJCVGy07e1Fa1Qmb5hzw?= =?utf-8?q?M4jePZQ/Jf4LrqxyoFNTEFxE62Ziu3c3WbkF+L0xJbNtl7pMpvFDwzOMkLBw5s2nF?= =?utf-8?q?8IQUNS+AmlegH36D/TFffS06kZAxRhacc694KPpwtb4lFDHcH4Ejz/pFLYwE/asmd?= =?utf-8?q?fwGgJ6K7ULWXk5aVZUyezlM1+D0+pw/d3URJBhAWgusIBw+t4a1FT3MP+RfFjfm8b?= =?utf-8?q?A0JZYpqLc/8rKVMCJXfwxVBqfkpd95xQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: d418ddea-359b-4a02-ca6b-08da443ae9e5 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:55:05.1789 (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: 13RpMSH82mFJU07e90HiBKh6EQub0WZxUnNMAFqTIaVxkpylCEOTJYGNKisY+PSd45nHTGWde+0nYVRvuUs2pA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Move macro __round_mask, round_up and round_down from C file to corresponding head file, will be used by TX function of nfp net nfdk firmware. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfpcore/nfp_rtsym.c | 19 ------------------- drivers/net/nfp/nfpcore/nfp_rtsym.h | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.c b/drivers/net/nfp/nfpcore/nfp_rtsym.c index 2feca2ed81..56bbf05cd8 100644 --- a/drivers/net/nfp/nfpcore/nfp_rtsym.c +++ b/drivers/net/nfp/nfpcore/nfp_rtsym.c @@ -94,25 +94,6 @@ nfp_rtsym_table_read(struct nfp_cpp *cpp) return rtbl; } -/* - * This looks more complex than it should be. But we need to get the type for - * the ~ right in round_down (it needs to be as wide as the result!), and we - * want to evaluate the macro arguments just once each. - */ -#define __round_mask(x, y) ((__typeof__(x))((y) - 1)) - -#define round_up(x, y) \ - (__extension__ ({ \ - typeof(x) _x = (x); \ - ((((_x) - 1) | __round_mask(_x, y)) + 1); \ - })) - -#define round_down(x, y) \ - (__extension__ ({ \ - typeof(x) _x = (x); \ - ((_x) & ~__round_mask(_x, y)); \ - })) - struct nfp_rtsym_table * __nfp_rtsym_table_read(struct nfp_cpp *cpp, const struct nfp_mip *mip) { diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.h b/drivers/net/nfp/nfpcore/nfp_rtsym.h index 8b494211bc..d2856e19c3 100644 --- a/drivers/net/nfp/nfpcore/nfp_rtsym.h +++ b/drivers/net/nfp/nfpcore/nfp_rtsym.h @@ -15,6 +15,25 @@ #define NFP_RTSYM_TARGET_LMEM -1 #define NFP_RTSYM_TARGET_EMU_CACHE -7 +/* + * This looks more complex than it should be. But we need to get the type for + * the ~ right in round_down (it needs to be as wide as the result!), and we + * want to evaluate the macro arguments just once each. + */ +#define __round_mask(x, y) ((__typeof__(x))((y) - 1)) + +#define round_up(x, y) \ + (__extension__ ({ \ + typeof(x) _x = (x); \ + ((((_x) - 1) | __round_mask(_x, y)) + 1); \ + })) + +#define round_down(x, y) \ + (__extension__ ({ \ + typeof(x) _x = (x); \ + ((_x) & ~__round_mask(_x, y)); \ + })) + /* * Structure describing a run-time NFP symbol. * From patchwork Thu Jun 2 01:53:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112252 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 33906A0548; Thu, 2 Jun 2022 03:55:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BF5E242B93; Thu, 2 Jun 2022 03:55:10 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2107.outbound.protection.outlook.com [40.107.223.107]) by mails.dpdk.org (Postfix) with ESMTP id 3DA4F42B96 for ; Thu, 2 Jun 2022 03:55:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jfKtHvUzIkYNhVcAetfB5WXB73Ivsu/qNQshxbYrTNTc/5NwpRS8Uqlh6uRSkBNA/gJyQT3RFKIWQs8UJ5fwe4arMzCpCPxw4J71yyZbNORVeQoYPlQBM0H2vOKvnuMomqeKe5ijHtYcQB2AMjDN1WeVtJH0Bg+431UFew3J+fh6cOGFGHvmME2uw2FNvjjGFdMcridI4iemHh3V3Jfi9yPZ34V2YkIa341F0GNzuyPFsKoxRpl6vK7ufmQ+IojZQCQxiCicoxAqT9qyIeX72dz5oZANNi6lFK4ccvytLD1K4nadCuqk+2E7nVPojR7dDtfH2O/+f4lvVr8ViZYRNA== 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=tNM/vXhqVcKJmzEiLs/zu9TlQd9swaxZROCdzVl9Jog=; b=VThrJh9PLtJzaYH3SUmkmXUK6N7E7W6f5HZdhBuUfXn4bE1mJDLyMVCTd3y4QWVrH4wvyWiCUdEP9M999GUQfou/+F/rAMwnndBgO8PGx4SSLxCY2PTNrQJqRvCpaVaLeU89MgZB+8I5wOZFJd42N8CoU2qPr8n8NEvPqsopczbOy0GLTNVF6u7GNc4mqZ3rdD96Z7PNpuoDMlwNCHJxCwk7HOnklUwv/Z7S6ltrNZ06W5VPvpBHG7d36V4dsdVEUroB8v3iXh1Kuz69RDzXWTa/CD10Ey0/4D43hLV9qqZh3eqZBMmehm8md/D/b1w9EHmSyZjZewsckalamF+pSQ== 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=tNM/vXhqVcKJmzEiLs/zu9TlQd9swaxZROCdzVl9Jog=; b=QPVihhDIOvLCl8q8nyfh/pyJWWmv4uG8scqui5EWLHMTp+Ng2R7A8qi3OyoGrk8yzk7tLmIZfi5KYknyNYnE8eo6mOgXTwVgPHwDbbIuHcRMmOJ8qD7ztKnFaSK5DEdnENEyOcnynCIbz4LThBIl/EXsj5uedmC6k8+BhCUCmEA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:55:08 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:55:08 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 13/14] net/nfp: nfdk packet xmit function Date: Thu, 2 Jun 2022 03:53:03 +0200 Message-Id: <20220602015304.710197-14-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 53a60b0c-031d-41a8-5f91-08da443aeb89 X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ihK6jkIFhuL+EbkKSK64ztbBoXtyiprDQJa1/BSgsyMs57hzNZIASeDqtoRSFdIkQZm+KJtcOyD08cl949unw/nVfi9BsV4tMPhEk55ctD8YtJjfA2BMc7u0ivdGTdzHNBhD6OkXL6hlMrmzzmGLckRYgZXzjWN+38ghbHgkITkwDC9smmM8eE+xgVeSV2KjAjJ7/2pm6zz0DYvcIx7Kfpb2g/wTVs+Tsu1gXM1jUsejfM+iLr5RePoDLzFCMC0GKnq+E2B6Hfbz7xILRn70AmYjSKiDolIhFDjTm0/v0c6hm+0wQD8c2ByJkSbDUUCOzzKg5QWfOPXvLaJmUTCy39bGRxXOXE2lyqWmvGJKXqGd9SGUYzJ1VDv+pr6d/0viO/gnPL8exh4FGp3FIiaCOa1DFZ32IEeZJZa/bc/WkesOUeMFaR+qw54UtNv74Xnym1dLz896jPpTgGHLXBpVzeaORQvWQn3w2kq0BA361KBCBvyMZUPi7VrGNBvgYuC7iL9f3E0P8NbLEIsO+UwPcL04pP0QQg1Z/++nT4MoDqBXPSq9sE3ernTXbCCmiqlxVVQarNaVoHPaeKjm/3PCV1HJC83slaTTLlU63MON+dTPAARJp4tQYU53Svl497iCNyVJZ+DMPapjR0lIyqqET8aCg7wgWEJg6QezIRY+w1qTAb3oj/Hczyk7hE+TgjrNWmIKdpzAiDnuz2Yf5WXG7Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(30864003)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(6666004)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?/xXklQG3R4qY0ff2GxlnyPU7dwrE?= =?utf-8?q?ekPOF9FNYuvbau9LkrByb/HM4cim79OrxtyQlejpjILM4zDHgu161VwV2WYnqyJK4?= =?utf-8?q?3x7wCGIudrtHJS6VLrcqBjh7J+XY7WJVv6cY+we1bWxPT4iDe/OILJvlseyXwlqJM?= =?utf-8?q?x2B7vt1jbHR8ApIeHjHIIB4enWrmBnWy0QBi4mrY9//xAsMFbVlwygAlsVw55mCpA?= =?utf-8?q?3hxubZk5BcEO3oLTzsY9IKd8xh9Ar52Zwv6H05+UoNqWaNexzYY+6OlhkGI8njwOs?= =?utf-8?q?BOuaQAVpNuXbDopomrUGez+s3SPW93Ya77eJ+2u2Ikqd/zi7kmAKXnobofS5gyVGh?= =?utf-8?q?bST63YU0RokRwcW97cHkgtyLBAPOAjlflRmRwi4U973PGvirop9Qz8qq1lQDBJ7P8?= =?utf-8?q?1V1MJD+CiKaoZprQE+zksNOMr7d6+uYIsY0j9Ve05vkMlxe2aG/FUfw09hrK8zZC9?= =?utf-8?q?fzYtGH/xp9mb9uJxdyzjzzYYRDSmKgAIC53lZri+Lij1E74m2MPm/Ln1dtyt5XcAM?= =?utf-8?q?J95XcXico+dhpDLqZOlknNvIXtr/wznZuRwMo5SDKxUfOQmo+lPbNik3/ODrFYn+x?= =?utf-8?q?H49zVUfplqm9/JhqLBIKp0EAdvDj0JNF67WwQjUTLRU58rlBCw8tcBv61QTi4ZRtT?= =?utf-8?q?yNuac3jia+hYELCy3QeWcjFoYrK88/bOK+gJr++7wMznj/sG5qUjip+uXerLXMT6q?= =?utf-8?q?OjHqAAsrDRTBBHRcF4//C2n82FLlqFe66dIvAPJlAzIvHIsEUiicjW6P4KhO92Hx2?= =?utf-8?q?zjCJVmRGlM6SxYEsPpwAAufbcFXW7Ab9nS0kInHS40DqjAAh7ToSpKViPer480q2K?= =?utf-8?q?kjrGwIuvDyr+j1Oqys9VcKyOPa020ojFT73CfyZVd2xsB7bxvbgTbwVvXuyOlBLZX?= =?utf-8?q?qSU/XzB7wvJaJdCdvZEbcKTwa39QGEK+pwCO7oEDqm5qpREBPektFVol5rsShQaTB?= =?utf-8?q?fIQuFSjH8JdkaMzvXKL5VCF0WqNBZu2F4MrO+fW9mD0eoRKyCJ4MTGdpGHLxsQsG/?= =?utf-8?q?sxx/iylBWkalcT7Bd5uZSlP3cmgeFpeL3outge47Crnwditg1YBhZn1TBz7xYy11m?= =?utf-8?q?JfHfogYBCpbnmQSeDfZl83/+pZwFYPSrpMtNAsarTeeBYTxijsbW6LT1RQmKuYBuS?= =?utf-8?q?NHNFO7vXYC1vMO4BHzUv8aIIVnnOk4tgRmdO/lB8d1g9iAjpXZICSW2QHiwPgujDE?= =?utf-8?q?vX7ZCGzL0q+P6uAOvUM2nFAOLFIbNmEO6CHzJcrlbqw2Cdaqpoi3GCyIRUim9CUVV?= =?utf-8?q?1hV5Ra+7gRldwaRoiZvDMlLZkb2m+8sQZL9AYsgSVlAF03o/X4ix/GPWukAMM9eCH?= =?utf-8?q?cQoDRja9iGBs1r1+GU6sWN4Poc6adSP/F/wePzHBgPQbH7T1uKYUwd+hjiRCc7wOX?= =?utf-8?q?ROStA6d77EyEOA1HPn+z3nQ5byGDh2PJYSU8Qg1pF2eULBVgp4CJLcHc5bXejjNvb?= =?utf-8?q?Aji99cy6mEeTp73UoDe3mTJSHL1sqPm2JwiOlc8RsX9E35HxvhvDOkhoUOHO7Lrxd?= =?utf-8?q?ir82C09ykZmZs990dKppCj6nuy57WGwNcK2d+1bPreVbb/2lYj7P5SsJ/0KuBdKzQ?= =?utf-8?q?lFK3is6KqWx2lYGxRwa+xjz9gM+nTa/tYzrOXinSBpJSWQJDDmASPXwfZkRR+Pw3F?= =?utf-8?q?hn+CRipJfdI0yxWy9RJYC/BRG9oJsn8g=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53a60b0c-031d-41a8-5f91-08da443aeb89 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:55:08.0224 (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: nhlXjMPkVwdfiTEPWu3lyTM6GZY6S30YJWrqBi+6bFEvFYezyPSAJ6vjnSy+lqVMHPcun3mQoLau0Cdw/4WaKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Implement NFP3800 card packet transmit function for NFDK firmware. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 3 +- drivers/net/nfp/nfp_ethdev_vf.c | 3 +- drivers/net/nfp/nfp_rxtx.c | 281 ++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_rxtx.h | 3 + 4 files changed, 288 insertions(+), 2 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 4e3a6a964d..238b2b5451 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -462,6 +462,7 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -470,6 +471,7 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) return -EINVAL; } eth_dev->dev_ops = &nfp_net_nfdk_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfdk_xmit_pkts; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); @@ -478,7 +480,6 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; return 0; } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index a5c6aceb32..bb8206c4f6 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -365,6 +365,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -373,6 +374,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) return -EINVAL; } eth_dev->dev_ops = &nfp_netvf_nfdk_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfdk_xmit_pkts; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); @@ -381,7 +383,6 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index bf5817db4b..fd3ee40aa5 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -20,6 +20,9 @@ #include "nfp_rxtx.h" #include "nfp_logs.h" #include "nfp_ctrl.h" +#include "nfpcore/nfp_mip.h" +#include "nfpcore/nfp_rtsym.h" +#include "nfpcore/nfp-common/nfp_platform.h" static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq) @@ -1140,3 +1143,281 @@ nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, return 0; } + +static inline uint32_t +nfp_net_nfdk_free_tx_desc(struct nfp_net_txq *txq) +{ + uint32_t free_desc; + + if (txq->wr_p >= txq->rd_p) + free_desc = txq->tx_count - (txq->wr_p - txq->rd_p); + else + free_desc = txq->rd_p - txq->wr_p; + + return (free_desc > NFDK_TX_DESC_STOP_CNT) ? + (free_desc - NFDK_TX_DESC_STOP_CNT) : 0; +} + +static inline uint32_t +nfp_net_nfdk_txq_full(struct nfp_net_txq *txq) +{ + return (nfp_net_nfdk_free_tx_desc(txq) < txq->tx_free_thresh); +} + +static inline int +nfp_net_nfdk_headlen_to_segs(unsigned int headlen) +{ + return DIV_ROUND_UP(headlen + + NFDK_TX_MAX_DATA_PER_DESC - + NFDK_TX_MAX_DATA_PER_HEAD, + NFDK_TX_MAX_DATA_PER_DESC); +} + +static int +nfp_net_nfdk_tx_maybe_close_block(struct nfp_net_txq *txq, struct rte_mbuf *pkt) +{ + unsigned int n_descs, wr_p, i, nop_slots; + struct rte_mbuf *pkt_temp; + + pkt_temp = pkt; + n_descs = nfp_net_nfdk_headlen_to_segs(pkt_temp->data_len); + while (pkt_temp->next) { + pkt_temp = pkt_temp->next; + n_descs += DIV_ROUND_UP(pkt_temp->data_len, NFDK_TX_MAX_DATA_PER_DESC); + } + + if (unlikely(n_descs > NFDK_TX_DESC_GATHER_MAX)) + return -EINVAL; + + n_descs += !!(pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG); + + if (round_down(txq->wr_p, NFDK_TX_DESC_BLOCK_CNT) != + round_down(txq->wr_p + n_descs, NFDK_TX_DESC_BLOCK_CNT)) + goto close_block; + + if ((uint32_t)txq->data_pending + pkt->pkt_len > NFDK_TX_MAX_DATA_PER_BLOCK) + goto close_block; + + return 0; + +close_block: + wr_p = txq->wr_p; + nop_slots = D_BLOCK_CPL(wr_p); + + memset(&txq->ktxds[wr_p], 0, nop_slots * sizeof(struct nfp_net_nfdk_tx_desc)); + for (i = wr_p; i < nop_slots + wr_p; i++) { + if (txq->ktxbufs[i].mbuf) { + rte_pktmbuf_free_seg(txq->ktxbufs[i].mbuf); + txq->ktxbufs[i].mbuf = NULL; + } + } + txq->data_pending = 0; + txq->wr_p = D_IDX(txq, txq->wr_p + nop_slots); + + return nop_slots; +} + +static inline uint64_t +nfp_net_nfdk_tx_cksum(struct nfp_net_txq *txq, struct rte_mbuf *mb, + uint64_t flags) +{ + uint64_t ol_flags; + struct nfp_net_hw *hw = txq->hw; + + if (!(hw->cap & NFP_NET_CFG_CTRL_TXCSUM)) + return flags; + + ol_flags = mb->ol_flags; + + /* IPv6 does not need checksum */ + if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) + flags |= NFDK_DESC_TX_L3_CSUM; + + if (ol_flags & RTE_MBUF_F_TX_L4_MASK) + flags |= NFDK_DESC_TX_L4_CSUM; + + return flags; +} + +static inline uint64_t +nfp_net_nfdk_tx_tso(struct nfp_net_txq *txq, struct rte_mbuf *mb) +{ + uint64_t ol_flags; + struct nfp_net_nfdk_tx_desc txd; + struct nfp_net_hw *hw = txq->hw; + + if (!(hw->cap & NFP_NET_CFG_CTRL_LSO_ANY)) + goto clean_txd; + + ol_flags = mb->ol_flags; + + if (!(ol_flags & RTE_MBUF_F_TX_TCP_SEG)) + goto clean_txd; + + txd.l3_offset = mb->l2_len; + txd.l4_offset = mb->l2_len + mb->l3_len; + txd.lso_meta_res = 0; + txd.mss = rte_cpu_to_le_16(mb->tso_segsz); + txd.lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len; + txd.lso_totsegs = (mb->pkt_len + mb->tso_segsz) / mb->tso_segsz; + +clean_txd: + txd.l3_offset = 0; + txd.l4_offset = 0; + txd.lso_hdrlen = 0; + txd.mss = 0; + txd.lso_totsegs = 0; + txd.lso_meta_res = 0; + + return txd.raw; +} + +uint16_t +nfp_net_nfdk_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +{ + uint32_t buf_idx; + uint64_t dma_addr; + uint16_t free_descs; + uint32_t npkts = 0; + uint64_t metadata = 0; + uint16_t issued_descs = 0; + struct nfp_net_txq *txq; + struct nfp_net_hw *hw; + struct nfp_net_nfdk_tx_desc *ktxds; + struct rte_mbuf *pkt, *temp_pkt; + struct rte_mbuf **lmbuf; + + txq = tx_queue; + hw = txq->hw; + + PMD_TX_LOG(DEBUG, "working for queue %u at pos %d and %u packets", + txq->qidx, txq->wr_p, nb_pkts); + + if ((nfp_net_nfdk_free_tx_desc(txq) < NFDK_TX_DESC_PER_SIMPLE_PKT * + nb_pkts) || (nfp_net_nfdk_txq_full(txq))) + nfp_net_tx_free_bufs(txq); + + free_descs = (uint16_t)nfp_net_nfdk_free_tx_desc(txq); + if (unlikely(free_descs == 0)) + return 0; + + PMD_TX_LOG(DEBUG, "queue: %u. Sending %u packets", txq->qidx, nb_pkts); + /* Sending packets */ + while ((npkts < nb_pkts) && free_descs) { + uint32_t type, dma_len, dlen_type, tmp_dlen; + int nop_descs, used_descs; + + pkt = *(tx_pkts + npkts); + nop_descs = nfp_net_nfdk_tx_maybe_close_block(txq, pkt); + if (nop_descs < 0) + goto xmit_end; + + issued_descs += nop_descs; + ktxds = &txq->ktxds[txq->wr_p]; + /* Grabbing the mbuf linked to the current descriptor */ + buf_idx = txq->wr_p; + lmbuf = &txq->ktxbufs[buf_idx++].mbuf; + /* Warming the cache for releasing the mbuf later on */ + RTE_MBUF_PREFETCH_TO_FREE(*lmbuf); + + temp_pkt = pkt; + + if (unlikely(pkt->nb_segs > 1 && + !(hw->cap & NFP_NET_CFG_CTRL_GATHER))) { + PMD_INIT_LOG(INFO, "NFP_NET_CFG_CTRL_GATHER not set"); + rte_panic("Multisegment packet unsupported\n"); + } + + /* + * Checksum and VLAN flags just in the first descriptor for a + * multisegment packet, but TSO info needs to be in all of them. + */ + + dma_len = pkt->data_len; + if ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) && + (pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG)) { + type = NFDK_DESC_TX_TYPE_TSO; + } else if (!pkt->next && dma_len < NFDK_TX_MAX_DATA_PER_HEAD) { + type = NFDK_DESC_TX_TYPE_SIMPLE; + } else { + type = NFDK_DESC_TX_TYPE_GATHER; + } + dma_len -= 1; + dlen_type = (NFDK_DESC_TX_DMA_LEN_HEAD & dma_len) | + (NFDK_DESC_TX_TYPE_HEAD & (type << 12)); + ktxds->dma_len_type = rte_cpu_to_le_16(dlen_type); + dma_addr = rte_mbuf_data_iova(pkt); + PMD_TX_LOG(DEBUG, "Working with mbuf at dma address:" + "%" PRIx64 "", dma_addr); + ktxds->dma_addr_hi = rte_cpu_to_le_16(dma_addr >> 32); + ktxds->dma_addr_lo = rte_cpu_to_le_32(dma_addr & 0xffffffff); + ktxds++; + + tmp_dlen = dlen_type & NFDK_DESC_TX_DMA_LEN_HEAD; + dma_len -= tmp_dlen; + dma_addr += tmp_dlen + 1; + + while (pkt) { + if (*lmbuf) + rte_pktmbuf_free_seg(*lmbuf); + *lmbuf = pkt; + while (dma_len > 0) { + dma_len -= 1; + dlen_type = NFDK_DESC_TX_DMA_LEN & dma_len; + + ktxds->dma_len_type = rte_cpu_to_le_16(dlen_type); + ktxds->dma_addr_hi = rte_cpu_to_le_16(dma_addr >> 32); + ktxds->dma_addr_lo = rte_cpu_to_le_32(dma_addr & 0xffffffff); + ktxds++; + + dma_len -= dlen_type; + dma_addr += dlen_type + 1; + } + + if (!pkt->next) + break; + + pkt = pkt->next; + dma_len = pkt->data_len; + dma_addr = rte_mbuf_data_iova(pkt); + PMD_TX_LOG(DEBUG, "Working with mbuf at dma address:" + "%" PRIx64 "", dma_addr); + + lmbuf = &txq->ktxbufs[buf_idx++].mbuf; + } + + (ktxds - 1)->dma_len_type = rte_cpu_to_le_16(dlen_type | NFDK_DESC_TX_EOP); + + ktxds->raw = rte_cpu_to_le_64(nfp_net_nfdk_tx_cksum(txq, temp_pkt, metadata)); + ktxds++; + + if ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) && + (temp_pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG)) { + ktxds->raw = rte_cpu_to_le_64(nfp_net_nfdk_tx_tso(txq, temp_pkt)); + ktxds++; + } + + used_descs = ktxds - txq->ktxds - txq->wr_p; + if (round_down(txq->wr_p, NFDK_TX_DESC_BLOCK_CNT) != + round_down(txq->wr_p + used_descs - 1, NFDK_TX_DESC_BLOCK_CNT)) { + rte_panic("Used descs cross block boundary\n"); + } + + txq->wr_p = D_IDX(txq, txq->wr_p + used_descs); + if (txq->wr_p % NFDK_TX_DESC_BLOCK_CNT) + txq->data_pending += temp_pkt->pkt_len; + else + txq->data_pending = 0; + + issued_descs += used_descs; + npkts++; + free_descs = (uint16_t)nfp_net_nfdk_free_tx_desc(txq); + } + +xmit_end: + /* Increment write pointers. Force memory write before we let HW know */ + rte_wmb(); + nfp_qcp_ptr_add(txq->qcp_q, NFP_QCP_WRITE_PTR, issued_descs); + + return npkts; +} diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index cce3e0c0e5..e58127b66e 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -359,6 +359,9 @@ int nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, const struct rte_eth_txconf *tx_conf); void nfp_net_nfdk_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx); void nfp_net_nfdk_reset_tx_queue(struct nfp_net_txq *txq); +uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue, + struct rte_mbuf **tx_pkts, + uint16_t nb_pkts); #endif /* _NFP_RXTX_H_ */ /* From patchwork Thu Jun 2 01:53:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 112253 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 E799EA0548; Thu, 2 Jun 2022 03:55:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1DB6E42BAC; Thu, 2 Jun 2022 03:55:13 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2131.outbound.protection.outlook.com [40.107.223.131]) by mails.dpdk.org (Postfix) with ESMTP id CD91B42BA7 for ; Thu, 2 Jun 2022 03:55:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jLlrba/0/hbI8iJXorRjvTpSffPMYiEnH6oDgZ1LIfXUTJQc5eEHc8sBVMMS3KJ3/PXWYUt9s8gWKFZLV8PK/VByhK0ck2Y1+q1lF5aCUw5wNUGBg+k9qd5i8xKo/MqzXqL1Xp2tQwnYZ3vDRdaA5NVzOo+BtuZorJ0sxOTIILVGP7NuymJiuRbhnduJ+pURaDlQDgLkLEWgUAgYqQ0D4q4icGEHYydxkxqPJMjQkRK1/SQPAQJhcXohvhzLLVIWOSMjcWxJK4vWUxU/evzOfM9h9PUU+4CbfsJwTdqKC/QjsYfNUnvut88evgZzW098Y83ggP602YsS5m08OWecqg== 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=totDLpgkclqp5hRt1FjaRX6T4eRA8X2uUonn91MoJF8=; b=Qo1XChdApy3OJ34yL25AUlR4ZH1wkYsceSvjEeW8cJuHA/7PpzWIMV6SiH3bycGWBa/qwjfppNobyLQ+27iMSqXFZ3/ArIiDP4oEw+L3hiPwljY22RFNnnfjtrsd9x5JUTkHu4v+0WaI3jzxKdlrqVAeiyHzXppvZfOUQ9fEdVOxkud9FNoJlui2H6nb0mdeizH9chrYyX3my+R2OGZ4uwEOr82ratCk9d1saudwq9d8n5ZAdQCnX2Lzu19CiO+25EH9GHuplDMF3TbEYTqaHFr37qEi4heQasWu+WGD7VhVTcS/54qS65ihRVJSVGlKh56ms76Wma1AnIf3fvHSIw== 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=totDLpgkclqp5hRt1FjaRX6T4eRA8X2uUonn91MoJF8=; b=UmG/bkkOlDUseUFoGOJX8FfbZs46QQ78hib2/S/gBKRgFvyjwE//e7vVEgemkTV50tVf+yVdZW1JH34y9OEWMPmqKKD4GXp09dHK4kYHQd2+TbT+SkplzKfr7zvBGQ5pds+2Mct2jbJd2ujSfR9s3bBWHYqrv/4zgNyQhuRAL3M= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.11; Thu, 2 Jun 2022 01:55:10 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022 01:55:10 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH 14/14] net/nfp: modify RSS logic Date: Thu, 2 Jun 2022 03:53:04 +0200 Message-Id: <20220602015304.710197-15-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220602015304.710197-1-jin.liu@corigine.com> References: <20220602015304.710197-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0fab5eeb-78e9-4168-429e-08da443aed3b X-MS-TrafficTypeDiagnostic: DM4PR13MB5858:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fpjQuch1R32jeO2dbqsYC6IjDEY5pdjzF84sVgrgUo+RDlfFL9xmvq7vpvZXPjAnZ0HN+Jw3l68HqB7GHYDXKSlptmkpTI6qpHb5G+TwIoV4No8ijB9lyGpSOePMPTh2BCw7IYpi7rtw97vL1s0utvmLwAYAxuQEtyWwgz3LX0mLU+K4KVeC0JckON6J6yUeFBq6oGjiyrSiWGQDqWta7xenyXoHd4X7hQf1oziqXUoBTCXFXcwDO7KWk2nHjaY/ZHOXU4GziGeckuKV/rQRE5pTy7oazBmKruz5zKZW0RQ/cAOAs5yEMjpVnjsPwe8VwogXAotP3iOLXJxPIIzTwRiGCz2DbOUpwF6bzGn8KIywxTfmvVyaOLo4vLHX/SzwzAy5U3D6bXTon22Q8I7+ReEe2U8O7UtnrJvTnQSopNl7Yl++cZzpP/6fYkBwBsStCX01sTHV/76XySHomsHH+xrLK0kIhd51rXovqUSLzRIUCQT5bWWuykS1HwzHD+6Ej0os7rlCXq+vSUb0Ii0Ed3+LllVDqPZBIEc7KSFHLjcPzurQDv1Nsqx/xItta7jHiyqGQDHOrSG3/nvcZlnMM10j8xLxiMVC6ec7rbJwfnVSx6+s0E610SieqYds1vxc/Icq7w2MmJmRt0mDM/xwQfgmFUU10E5W9DMSg2KwSzbc1VE7o3GXZFmUOjjJIJhG8txseBo73qfYwjhlPDtb9A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(6666004)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?DiyhPmqO7gUCnJrmjlg7vHjBXKcN?= =?utf-8?q?6+Eck8M4kjgJQaKcLjcs/uO/nzpSH5ednAQLxWNOptyK1JEnnvYhX1cOXzi8+Gg1e?= =?utf-8?q?7SWXcQqUAneUsWWUPjQuc48h4O09U7wAwQP5cxzZRUZwd2f+wPH55ypVV7sB1/ybf?= =?utf-8?q?e+ngDpPvm+kt+1NPJJ2lT+JPozb2Dps6HNBMMoavOjbWPDGcz5g0/dpcdMfhu1RaV?= =?utf-8?q?IqayDmlPp9FyV5gSVcVU8KbCjL6yafuq2ZK5N6Wanf3JRjRKT26WYEIEt7/ubLIX5?= =?utf-8?q?RgIemFW++k+P4v5ZqlPndFSfdfuXN6Y4iJAAVHa8uTywSgpNpev5YP6VYPkcGFea3?= =?utf-8?q?nyuDIzvyA4yNDW2ehePczfg2Q42qwicbfkGTvFuuNDju8uUYgE7HVpnQkEoY33II6?= =?utf-8?q?sToEl821IQZPtJDADsKbEvY3WHCi5oLi29bIstcc3cbkL5wn9hffIEIEf/BwdlvQc?= =?utf-8?q?7dzJ9gL8HD1d6a7/g+8oidYs5hFdPTM+hq4Gr1/EcAzzH4NYB/uRzgNf4T6tzFivk?= =?utf-8?q?83o6wd9qqgmgND1GkY17smDs97x8p+ISSPCx+g2aLJWXTM6IuZajKBXRIn8/vXzPp?= =?utf-8?q?tvQ4tNxhnc/Hb30R9b+6o/7z/d9/pownZT4hTRgCCsJjX7SwGEmLEW6LYTO6AufRV?= =?utf-8?q?l1+4qbSUC2ZM1mj/X4o4IbEdb4dDjzGuslVGJs0/ExzPkUzO6LQo1Hi2aiVWnIYNf?= =?utf-8?q?YBCGp/eRubJjviJS31LcQXvhDcY/6beeZ7LHDDaa9aVuUw8nEiUvjnqxB2Ld+J30m?= =?utf-8?q?FNid4m6S4DXq+uGdpvnccPkJguTmdjSejnbGM5HXcCErbXB+gR4X7yJ4LK53t5qsp?= =?utf-8?q?8Jmu5wSVT7TBMfCGVZE466QgdIbA3iPIU6y6K6mLT17NsWydJLDxrl38+3mONVhVW?= =?utf-8?q?Qk0S246sUaIBcPFLxznwcCm4vlwQ+euvV48ykwSMb0I9ToZmRNL5k2xCE0AI+PciH?= =?utf-8?q?wFf80smAdjyYcmLFpo9888iJ3CL5PD/CZgpTOqPi5KBlFU2Z7CPX4u/uD7y7UDR2f?= =?utf-8?q?27nDXUNG/ngUu+gB8T4F/JdzHJZOiTfuVe1fnHK3Xml4dLNFcVxgxzloJ1Yg9fEr7?= =?utf-8?q?/c2uDh00qZbVy4FNDO2+XjRsqC7Kzt7WsAz9W7q247jcsfbLUh5ajQNz2yg8d1wBx?= =?utf-8?q?2owzUno577eolZ3abejlXHXkFUd76AHTTho4Bdc2DGyD8dKSYG2uO9c/wX9lVaCfR?= =?utf-8?q?MeIioU0unXLMc8baTJmI6/NYfTMTQnCZENJNsz2tBXbFpHarD5EBHZZ4PzZ7Ww7GK?= =?utf-8?q?MxF0FkCCYHj0qk7X4VUGB+yjXf7AYhbcOkZbPgsbk3zjv4YB7kyq0Ojno2pL9aP/z?= =?utf-8?q?KTqgPgLWN3YPUXjVXnA+xCTy71/FLQmuujDnd8bnykqGsP+yf0bzSeYs1/y+ZHNaY?= =?utf-8?q?dYOB8vy/83kdIhhJZOBsdz4GeUgSDo6whJ+5pug23gkETUhbNgA5+TqLiFdLSXqSh?= =?utf-8?q?13vzL4RN15T17TxR4NEcsvtp//rE6QHBdGTeDrxpJMFOsc8AHqJN8NGqFyEDlQ+WO?= =?utf-8?q?suHQsXHsFlpuoZLrUIqTWav7dw+6PSMONgyLq5bpFtAhi0q0+ECTl3PECHKkuf2yJ?= =?utf-8?q?Bh8xEf47sG2MSPhvrQeHVCL93X3MW8oj9/w0jtZ2OlpsswAGqg0gTBd9IPPW00x/C?= =?utf-8?q?4PNYdfZZ2SNZVkALzd5XCDpAzA9VD+rA=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0fab5eeb-78e9-4168-429e-08da443aed3b X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2022 01:55:10.7722 (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: C1Uc4kOVYxKQAtwjzjLySB7kaO7UAex+20NxahMdCMHvyi+b5Q7O0qt758IGA5HZdrJCela+eec33zZdfs2ciQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR13MB5858 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 Modify RSS-related interface functions, as the NFDK firmware support feature NFP_NET_CFG_CTRL_RSS2 rather than NFP_NET_CFG_CTRL_RSS. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 12 ++++++------ drivers/net/nfp/nfp_ctrl.h | 1 + drivers/net/nfp/nfp_ethdev.c | 12 +++++++++++- drivers/net/nfp/nfp_ethdev_vf.c | 12 +++++++++++- drivers/net/nfp/nfp_rxtx.c | 2 +- 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 58e20081fc..c2515cf413 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -171,7 +171,7 @@ nfp_net_configure(struct rte_eth_dev *dev) /* Checking RX mode */ if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS && - !(hw->cap & NFP_NET_CFG_CTRL_RSS)) { + !(hw->cap & NFP_NET_CFG_CTRL_RSS_ANY)) { PMD_INIT_LOG(INFO, "RSS not supported"); return -EINVAL; } @@ -752,7 +752,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) .nb_mtu_seg_max = NFP_TX_MAX_MTU_SEG, }; - if (hw->cap & NFP_NET_CFG_CTRL_RSS) { + if (hw->cap & NFP_NET_CFG_CTRL_RSS_ANY) { dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_RSS_HASH; dev_info->flow_type_rss_offloads = RTE_ETH_RSS_IPV4 | @@ -1053,7 +1053,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev, uint32_t update; int ret; - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return -EINVAL; ret = nfp_net_rss_reta_write(dev, reta_conf, reta_size); @@ -1081,7 +1081,7 @@ nfp_net_reta_query(struct rte_eth_dev *dev, hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return -EINVAL; if (reta_size != NFP_NET_CFG_RSS_ITBL_SZ) { @@ -1179,7 +1179,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev, rss_hf = rss_conf->rss_hf; /* Checking if RSS is enabled */ - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) { + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) { if (rss_hf != 0) { /* Enable RSS? */ PMD_DRV_LOG(ERR, "RSS unsupported"); return -EINVAL; @@ -1214,7 +1214,7 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev, hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return -EINVAL; rss_hf = rss_conf->rss_hf; diff --git a/drivers/net/nfp/nfp_ctrl.h b/drivers/net/nfp/nfp_ctrl.h index e73715e2aa..372d537462 100644 --- a/drivers/net/nfp/nfp_ctrl.h +++ b/drivers/net/nfp/nfp_ctrl.h @@ -119,6 +119,7 @@ #define NFP_NET_CFG_MACADDR 0x0024 #define NFP_NET_CFG_CTRL_LSO_ANY (NFP_NET_CFG_CTRL_LSO | NFP_NET_CFG_CTRL_LSO2) +#define NFP_NET_CFG_CTRL_RSS_ANY (NFP_NET_CFG_CTRL_RSS | NFP_NET_CFG_CTRL_RSS2) /* * Read-only words (0x0030 - 0x0050): diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 238b2b5451..bd7dd30f10 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -123,7 +123,17 @@ nfp_net_start(struct rte_eth_dev *dev) if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS) { nfp_net_rss_config_default(dev); update |= NFP_NET_CFG_UPDATE_RSS; - new_ctrl |= NFP_NET_CFG_CTRL_RSS; + switch (NFD_CFG_CLASS_VER_of(hw->ver)) { + case NFP_NET_CFG_VERSION_DP_NFD3: + new_ctrl |= NFP_NET_CFG_CTRL_RSS; + break; + case NFP_NET_CFG_VERSION_DP_NFDK: + new_ctrl |= NFP_NET_CFG_CTRL_RSS2; + break; + default: + PMD_INIT_LOG(ERR, "nfp_net: no fw version match"); + return -ENODEV; + } } /* Enable device */ diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index bb8206c4f6..8769f07be4 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -95,7 +95,17 @@ nfp_netvf_start(struct rte_eth_dev *dev) if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS) { nfp_net_rss_config_default(dev); update |= NFP_NET_CFG_UPDATE_RSS; - new_ctrl |= NFP_NET_CFG_CTRL_RSS; + switch (NFD_CFG_CLASS_VER_of(hw->ver)) { + case NFP_NET_CFG_VERSION_DP_NFD3: + new_ctrl |= NFP_NET_CFG_CTRL_RSS; + break; + case NFP_NET_CFG_VERSION_DP_NFDK: + new_ctrl |= NFP_NET_CFG_CTRL_RSS2; + break; + default: + PMD_INIT_LOG(ERR, "nfp_net: no fw version match"); + return -ENODEV; + } } /* Enable device */ diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index fd3ee40aa5..43db8db7c3 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -138,7 +138,7 @@ nfp_net_set_hash(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd, uint32_t hash = 0; uint32_t hash_type = 0; - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return; /* this is true for new firmwares */