From patchwork Wed Jun 23 04:46:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Dabilpuram X-Patchwork-Id: 94696 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 398F6A0C41; Wed, 23 Jun 2021 06:47:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AD96B4003F; Wed, 23 Jun 2021 06:47:22 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id B198E4003E for ; Wed, 23 Jun 2021 06:47:20 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15N4k6fG025518 for ; Tue, 22 Jun 2021 21:47:19 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0220; bh=WGq/yd0s2JPPKZ5pW6MvUuxGPyttg0pWrJRbvWkrLK8=; b=gHQIhb8X+zqQhlnbKFinSi0bCEb58wYbUuQDdYwxvG80zW36Y3QtwSu3GOIeyhGT4YfW D0C7F79xRaPaWxU5iExz7x47/+M+AtvvJmn46vlRdHiKv4YmLayB1rpcj9kPnK2eVRlQ 3zt4MoLJ/bofAggjht7q1qzF37xFL9J9jFbOOeUfi7hONfICh+SaN678oc51A7QZCcpe jvth5NNS3byHZgwQebZpWsf17EcmqnRrpzY6BYgF9xuAYe/SomP56t+U+il9AvUxqVBt IB/+1dOSCZVvEoc/RAOeeJ2aI4MpXoB4JAisUxOY840m86kZJV6uY+aUnlVwlCPcfdkb rg== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com with ESMTP id 39bptj1ggs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 22 Jun 2021 21:47:19 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 22 Jun 2021 21:47:17 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Tue, 22 Jun 2021 21:47:17 -0700 Received: from hyd1588t430.marvell.com (unknown [10.29.52.204]) by maili.marvell.com (Postfix) with ESMTP id 60E575B693A; Tue, 22 Jun 2021 21:47:14 -0700 (PDT) From: Nithin Dabilpuram To: CC: , , , , , , , , "Nithin Dabilpuram" Date: Wed, 23 Jun 2021 10:16:00 +0530 Message-ID: <20210623044702.4240-1-ndabilpuram@marvell.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20210306153404.10781-1-ndabilpuram@marvell.com> References: <20210306153404.10781-1-ndabilpuram@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: ulNTYRtDbQre97BnT6t7GoX0SGvxxv5- X-Proofpoint-GUID: ulNTYRtDbQre97BnT6t7GoX0SGvxxv5- X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-06-23_01:2021-06-22, 2021-06-23 signatures=0 Subject: [dpdk-dev] [PATCH v4 00/62] Marvell CNXK Ethdev Driver 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 Sender: "dev" This patchset adds support for Marvell CN106XX SoC based on 'common/cnxk' driver. In future, CN9K a.k.a octeontx2 will also be supported by same driver when code is ready and 'net/octeontx2' will be deprecated. Harman Kalra (1): common/cnxk: allocate lmt region in userspace Jerin Jacob (7): common/cnxk: fix batch alloc completion poll logic net/cnxk: add Rx burst for cn9k net/cnxk: add Rx vector version for cn9k net/cnxk: add Tx burst for cn9k net/cnxk: add Rx burst for cn10k net/cnxk: add Rx vector version for cn10k net/cnxk: add Tx burst for cn10k Kiran Kumar K (2): net/cnxk: add support to configure npc net/cnxk: support initial version of rte flow Nithin Dabilpuram (18): common/cnxk: change model API to not use camel case net/cnxk: add build infra and common probe net/cnxk: add platform specific probe and remove net/cnxk: add common devargs parsing function net/cnxk: support common dev infos get net/cnxk: add device configuration operation net/cnxk: support link status update net/cnxk: add Rx queue setup and release net/cnxk: add Tx queue setup and release net/cnxk: support packet type net/cnxk: support queue start and stop net/cnxk: add Rx multi-segmented version for cn9k net/cnxk: add Tx multi-segment version for cn9k net/cnxk: add Tx vector version for cn9k net/cnxk: add Rx multi-segment version for cn10k net/cnxk: add Tx multi-segment version for cn10k net/cnxk: add Tx vector version for cn10k net/cnxk: add device start and stop operations Satha Rao (8): common/cnxk: add support to lock NIX RQ contexts common/cnxk: add provision to enable RED on RQ net/cnxk: add port/queue stats net/cnxk: add xstats apis net/cnxk: add rxq/txq info get operations net/cnxk: add ethdev firmware version get net/cnxk: add get register operation net/cnxk: added RETA and RSS hash operations Satheesh Paul (6): common/cnxk: add support to dump flow entries common/cnxk: support for mark and flag flow actions common/cnxk: support for VLAN push and pop flow actions net/cnxk: add flow ops get operation net/cnxk: support for RSS in rte flow net/cnxk: support marking and VLAN tagging Sunil Kumar Kori (20): net/cnxk: add MAC address set ops net/cnxk: add MTU set device operation net/cnxk: add promiscuous mode enable and disable net/cnxk: support DMAC filter net/cnxk: add all multicast enable/disable ethops net/cnxk: add Rx/Tx burst mode get ops net/cnxk: add flow ctrl set/get ops net/cnxk: add link up/down operations net/cnxk: add EEPROM module info get operations net/cnxk: add Rx queue interrupt enable/disable ops net/cnxk: add validation API for mempool ops net/cnxk: add device close and reset operations net/cnxk: add pending Tx mbuf cleanup operation net/cnxk: register callback to get PTP status net/cnxk: support base PTP timesync net/cnxk: add timesync enable/disable operations net/cnxk: add Rx/Tx timestamp read operations net/cnxk: add time read/write/adjust operations net/cnxk: add read clock operation net/cnxk: support multicast filter --- v4: - Fixed build issue with gcc 4.8 - Shortened subject lines of few commits - Removed camel case for model API - Updated rte_flow features in cnxk_vec.ini and cnxk_vf.ini - Added CC stable to "fix batch alloc.." patch - Squashed cn98xx flow create related common patch to VLAN push and pop flow actions patch. - Changed INTERNAL to DPDK_21 in version.map v3: - Updated release notes - Removed RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS flag and add support for queue stats in xstats - Fixed issue with LSO format indices - Removed mbox sync changes patch from this series - Fixed documentation issues - Removed repetitive code in fast path SIMD - Optimize cn10k LMTST logic - Make rte_flow_create implementation specific to handle VLAN Stripping and MARK actions/offloads - Use rte_atomic_thread_fence() instead of rte_rmb() - Handle other comments from Jerin. - Merged rte flow dump API patch to flow ops get patch - Added marking and vlan tagging support. - Fixed some checkpatch and git check log issues. v2: - Fixed issue with flow validate and flow create for 98xx - Fixed issue batch alloc logic - Fix lmtline allocation to be cached - Sync Inline IPSec Rx mbox with kernel - Add support for mark and flag flow actions - Add reta key and hash update ops - Added PTP and multicast filter support MAINTAINERS | 5 +- doc/guides/nics/cnxk.rst | 232 +++++ doc/guides/nics/features/cnxk.ini | 90 ++ doc/guides/nics/features/cnxk_vec.ini | 86 ++ doc/guides/nics/features/cnxk_vf.ini | 82 ++ doc/guides/nics/index.rst | 1 + doc/guides/platform/cnxk.rst | 3 + doc/guides/rel_notes/release_21_08.rst | 5 + drivers/common/cnxk/hw/npc.h | 2 + drivers/common/cnxk/meson.build | 1 + drivers/common/cnxk/roc_api.h | 2 + drivers/common/cnxk/roc_dev.c | 98 +- drivers/common/cnxk/roc_dev_priv.h | 1 + drivers/common/cnxk/roc_mbox.h | 3 + drivers/common/cnxk/roc_model.h | 12 +- drivers/common/cnxk/roc_nix.h | 39 +- drivers/common/cnxk/roc_nix_queue.c | 52 + drivers/common/cnxk/roc_nix_rss.c | 51 +- drivers/common/cnxk/roc_nix_tm_utils.c | 86 +- drivers/common/cnxk/roc_npa.c | 10 +- drivers/common/cnxk/roc_npa.h | 35 +- drivers/common/cnxk/roc_npc.c | 296 +++++- drivers/common/cnxk/roc_npc.h | 39 +- drivers/common/cnxk/roc_npc_mcam.c | 2 +- drivers/common/cnxk/roc_npc_mcam_dump.c | 611 ++++++++++++ drivers/common/cnxk/roc_npc_priv.h | 3 +- drivers/common/cnxk/roc_npc_utils.c | 4 + drivers/common/cnxk/roc_platform.h | 13 + drivers/common/cnxk/version.map | 7 + drivers/net/cnxk/cn10k_ethdev.c | 551 +++++++++++ drivers/net/cnxk/cn10k_ethdev.h | 41 + drivers/net/cnxk/cn10k_rte_flow.c | 72 ++ drivers/net/cnxk/cn10k_rte_flow.h | 17 + drivers/net/cnxk/cn10k_rx.c | 79 ++ drivers/net/cnxk/cn10k_rx.h | 653 +++++++++++++ drivers/net/cnxk/cn10k_rx_mseg.c | 17 + drivers/net/cnxk/cn10k_rx_vec.c | 22 + drivers/net/cnxk/cn10k_tx.c | 82 ++ drivers/net/cnxk/cn10k_tx.h | 1605 +++++++++++++++++++++++++++++++ drivers/net/cnxk/cn10k_tx_mseg.c | 25 + drivers/net/cnxk/cn10k_tx_vec.c | 26 + drivers/net/cnxk/cn9k_ethdev.c | 574 +++++++++++ drivers/net/cnxk/cn9k_ethdev.h | 39 + drivers/net/cnxk/cn9k_rte_flow.c | 72 ++ drivers/net/cnxk/cn9k_rte_flow.h | 17 + drivers/net/cnxk/cn9k_rx.c | 79 ++ drivers/net/cnxk/cn9k_rx.h | 655 +++++++++++++ drivers/net/cnxk/cn9k_rx_mseg.c | 17 + drivers/net/cnxk/cn9k_rx_vec.c | 20 + drivers/net/cnxk/cn9k_tx.c | 81 ++ drivers/net/cnxk/cn9k_tx.h | 1436 +++++++++++++++++++++++++++ drivers/net/cnxk/cn9k_tx_mseg.c | 25 + drivers/net/cnxk/cn9k_tx_vec.c | 26 + drivers/net/cnxk/cnxk_ethdev.c | 1540 +++++++++++++++++++++++++++++ drivers/net/cnxk/cnxk_ethdev.h | 495 ++++++++++ drivers/net/cnxk/cnxk_ethdev_devargs.c | 173 ++++ drivers/net/cnxk/cnxk_ethdev_ops.c | 912 ++++++++++++++++++ drivers/net/cnxk/cnxk_link.c | 113 +++ drivers/net/cnxk/cnxk_lookup.c | 326 +++++++ drivers/net/cnxk/cnxk_ptp.c | 287 ++++++ drivers/net/cnxk/cnxk_rte_flow.c | 433 +++++++++ drivers/net/cnxk/cnxk_rte_flow.h | 27 + drivers/net/cnxk/cnxk_stats.c | 320 ++++++ drivers/net/cnxk/meson.build | 48 + drivers/net/cnxk/version.map | 3 + drivers/net/meson.build | 1 + 66 files changed, 12678 insertions(+), 102 deletions(-) create mode 100644 doc/guides/nics/cnxk.rst create mode 100644 doc/guides/nics/features/cnxk.ini create mode 100644 doc/guides/nics/features/cnxk_vec.ini create mode 100644 doc/guides/nics/features/cnxk_vf.ini create mode 100644 drivers/common/cnxk/roc_npc_mcam_dump.c create mode 100644 drivers/net/cnxk/cn10k_ethdev.c create mode 100644 drivers/net/cnxk/cn10k_ethdev.h create mode 100644 drivers/net/cnxk/cn10k_rte_flow.c create mode 100644 drivers/net/cnxk/cn10k_rte_flow.h create mode 100644 drivers/net/cnxk/cn10k_rx.c create mode 100644 drivers/net/cnxk/cn10k_rx.h create mode 100644 drivers/net/cnxk/cn10k_rx_mseg.c create mode 100644 drivers/net/cnxk/cn10k_rx_vec.c create mode 100644 drivers/net/cnxk/cn10k_tx.c create mode 100644 drivers/net/cnxk/cn10k_tx.h create mode 100644 drivers/net/cnxk/cn10k_tx_mseg.c create mode 100644 drivers/net/cnxk/cn10k_tx_vec.c create mode 100644 drivers/net/cnxk/cn9k_ethdev.c create mode 100644 drivers/net/cnxk/cn9k_ethdev.h create mode 100644 drivers/net/cnxk/cn9k_rte_flow.c create mode 100644 drivers/net/cnxk/cn9k_rte_flow.h create mode 100644 drivers/net/cnxk/cn9k_rx.c create mode 100644 drivers/net/cnxk/cn9k_rx.h create mode 100644 drivers/net/cnxk/cn9k_rx_mseg.c create mode 100644 drivers/net/cnxk/cn9k_rx_vec.c create mode 100644 drivers/net/cnxk/cn9k_tx.c create mode 100644 drivers/net/cnxk/cn9k_tx.h create mode 100644 drivers/net/cnxk/cn9k_tx_mseg.c create mode 100644 drivers/net/cnxk/cn9k_tx_vec.c create mode 100644 drivers/net/cnxk/cnxk_ethdev.c create mode 100644 drivers/net/cnxk/cnxk_ethdev.h create mode 100644 drivers/net/cnxk/cnxk_ethdev_devargs.c create mode 100644 drivers/net/cnxk/cnxk_ethdev_ops.c create mode 100644 drivers/net/cnxk/cnxk_link.c create mode 100644 drivers/net/cnxk/cnxk_lookup.c create mode 100644 drivers/net/cnxk/cnxk_ptp.c create mode 100644 drivers/net/cnxk/cnxk_rte_flow.c create mode 100644 drivers/net/cnxk/cnxk_rte_flow.h create mode 100644 drivers/net/cnxk/cnxk_stats.c create mode 100644 drivers/net/cnxk/meson.build create mode 100644 drivers/net/cnxk/version.map