From patchwork Fri Jun 18 10:36:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Dabilpuram X-Patchwork-Id: 94409 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 325C3A0C46; Fri, 18 Jun 2021 12:39:26 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 93A10410DE; Fri, 18 Jun 2021 12:39:25 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id B039540142 for ; Fri, 18 Jun 2021 12:39:24 +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 15IAZv9J004568 for ; Fri, 18 Jun 2021 03:39:24 -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=gEj7KmXcwBkHWfvsxXg3heyzcKm/AmaU8N5jX4BNLxY=; b=co+xwNFHy9VUeKqKxWnZ2oDA6e0Sl9pKSC+t8UFaetN90XQAh+p3I/Jzzm5Hn9BpltnN o+xb9tHvp+N4CPKbcJ9EcskRLvZi9KyRKXfSijxBxHB+ZHoCI9xEaRj26iaXBz3VnKYx hVocyLyLKAezzwnaDIVbmiN8a4ymryDtHgDi8pKEXKpUCqyYW0Gq/3DyIcudL6oecL3y bNl2cUNcmd7+cwx62Mz9QyQAB5Kmw+hl+1LBJ1vRASShLTTxtHjMAtuH8gYkpq4KWoGZ bpkiA+6EBkaBfwXMJmPqkYjonNWUhnJBTNtSfSgh6gwuTPyVLBkoCH5PpHDae66zVe/Q +A== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 397udry7bm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Fri, 18 Jun 2021 03:39:23 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Fri, 18 Jun 2021 03:39:21 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Fri, 18 Jun 2021 03:39:21 -0700 Received: from hyd1588t430.marvell.com (unknown [10.29.52.204]) by maili.marvell.com (Postfix) with ESMTP id 2AC355B6C43; Fri, 18 Jun 2021 03:38:27 -0700 (PDT) From: Nithin Dabilpuram To: CC: , , , , , , , , "Nithin Dabilpuram" Date: Fri, 18 Jun 2021 16:06:39 +0530 Message-ID: <20210618103741.26526-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: MDJUKcnwtyGM9Vvf3QJbhv4itoR0MFnY X-Proofpoint-GUID: MDJUKcnwtyGM9Vvf3QJbhv4itoR0MFnY X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790 definitions=2021-06-18_04:2021-06-18, 2021-06-18 signatures=0 Subject: [dpdk-dev] [PATCH v3 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 support for cn9k net/cnxk: add Rx vector version for cn9k net/cnxk: add Tx support for cn9k net/cnxk: add Rx support for cn10k net/cnxk: add Rx vector version for cn10k net/cnxk: add Tx support for cn10k Kiran Kumar K (2): net/cnxk: add support to configure npc net/cnxk: add initial version of rte flow support Nithin Dabilpuram (17): 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: add common dev infos get support net/cnxk: add device configuration operation net/cnxk: add link status update support net/cnxk: add Rx queue setup and release net/cnxk: add Tx queue setup and release net/cnxk: add packet type support net/cnxk: add queue start and stop support 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 (7): 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 common/cnxk: fix flow create on CN98xx net/cnxk: add flow ops get operation net/cnxk: support for RSS in rte flow net/cnxk: add marking and VLAN tagging support 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: add DMAC filter support 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: add base PTP timesync support 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: add multicast filter support --- 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 | 44 + doc/guides/nics/features/cnxk_vf.ini | 40 + 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 | 6 + 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 | 1528 +++++++++++++++++++++++++++++ drivers/net/cnxk/cnxk_ethdev.h | 495 ++++++++++ drivers/net/cnxk/cnxk_ethdev_devargs.c | 173 ++++ drivers/net/cnxk/cnxk_ethdev_ops.c | 910 ++++++++++++++++++ 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, 12577 insertions(+), 99 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