From patchwork Thu Apr 1 12:37:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Dabilpuram X-Patchwork-Id: 90373 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 03C85A0548; Thu, 1 Apr 2021 14:38:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 80362141163; Thu, 1 Apr 2021 14:38:38 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 0920B141152 for ; Thu, 1 Apr 2021 14:38:36 +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 131CPLRv019082 for ; Thu, 1 Apr 2021 05:38:36 -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=6XlRo6W2amzsdd+3FFOx5R0sxmSE9SWzqymQtnkXDgM=; b=Ey84b1g0qIN/ZkyywkXNqSm4ezip9O5DkAOERFdAN6CX1gqS9EQqjjwFLF7SSaFGyvRR Tjhu9FlWEUpKLWSNLmZTx94wrouMtAodXmeOejqYvHJXgh0PLqSa7Fx+wuxvddJnWoaK PP+Kb7s6Ro7C0m7S+9BLgIz36kjVa0L2T/HY2bFEpvrWk9PLeuiDQ51sdWaiwa+CZpBA 7BTg4JzNnXyuwe82616uy7yfPlbe/iJnWx9KDfdB58HbYZTeMwNeuG3ZGAaIQJSQazkg poG7OdET1WYRxYj4MkYFgkUIuZR3NSyabY9nAULq6dwaxn7okUXxLlJg2eKa63d6qkRs 0w== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com with ESMTP id 37n28jjdx7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 01 Apr 2021 05:38:35 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 1 Apr 2021 05:38:33 -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.2 via Frontend Transport; Thu, 1 Apr 2021 05:38:33 -0700 Received: from hyd1588t430.marvell.com (unknown [10.29.52.204]) by maili.marvell.com (Postfix) with ESMTP id F42003F703F; Thu, 1 Apr 2021 05:38:30 -0700 (PDT) From: Nithin Dabilpuram To: CC: , , , , , , , Nithin Dabilpuram Date: Thu, 1 Apr 2021 18:07:25 +0530 Message-ID: <20210401123817.14348-1-ndabilpuram@marvell.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20210305133918.8005-1-ndabilpuram@marvell.com> References: <20210305133918.8005-1-ndabilpuram@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: l8R40AsLUZf_dKot9rlMsvZBdK3Unyz5 X-Proofpoint-ORIG-GUID: l8R40AsLUZf_dKot9rlMsvZBdK3Unyz5 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-04-01_05:2021-03-31, 2021-04-01 signatures=0 Subject: [dpdk-dev] [PATCH v3 00/52] Add Marvell CNXK common 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 initial support for common code for Marvell CN10K SoC. Based on this common 'cnxk' driver, new PMD's such as 'net/cnxk', 'mempool/cnxk', 'event/cnxk' etc, will be added later on. Initially 'cnxk' drivers will only support Marvell CN106XX SoC. In future, when code is ready, CN9K/octeontx2 will also be supported by the same set of drivers and 'common/octeontx2' and its associated drivers will be deprecated. Ashwin Sekhar T K (8): common/cnxk: add base npa device support common/cnxk: add npa irq support common/cnxk: add npa debug support common/cnxk: add npa pool HW ops common/cnxk: add npa bulk alloc/free support common/cnxk: add npa performance counter support common/cnxk: add npa batch alloc/free support common/cnxk: add npa lf init/fini callback support Jerin Jacob (14): common/cnxk: add build infrastructre and HW definition common/cnxk: add model init and IO handling API common/cnxk: add interrupt helper API common/cnxk: add mbox request and response definitions common/cnxk: add mailbox base infra common/cnxk: add base device class common/cnxk: add VF support to base device class common/cnxk: add base nix support common/cnxk: add nix irq support common/cnxk: add nix Rx queue management API common/cnxk: add nix Tx queue management API common/cnxk: add nix RSS support common/cnxk: add nix stats support common/cnxk: add nix debug dump support Kiran Kumar K (5): common/cnxk: add npc support common/cnxk: add npc helper API common/cnxk: add mcam utility API common/cnxk: add npc parsing API common/cnxk: add npc init and fini support Nithin Dabilpuram (8): doc: add Marvell CNXK platform guide common/cnxk: add nix traffic management base support common/cnxk: add nix tm support to add/delete node common/cnxk: add nix tm helper to alloc and free resource common/cnxk: add nix tm hierarchy enable/disable common/cnxk: add nix tm support for internal hierarchy common/cnxk: add nix tm dynamic update support common/cnxk: add nix tm debug support and misc utils Pavan Nikhilesh (7): common/cnxk: add base sso device support common/cnxk: add sso hws interface common/cnxk: add sso hwgrp interface common/cnxk: add sso irq support common/cnxk: add sso debug support common/cnxk: add base tim device support common/cnxk: add tim irq support Satha Rao (2): common/cnxk: add support for nix extended stats common/cnxk: add nix tm shaper profile add support Satheesh Paul (1): common/cnxk: add support for rss action in rte_flow Sunil Kumar Kori (6): common/cnxk: add nix MAC operations support common/cnxk: add nix specific npc operations common/cnxk: add nix ptp support common/cnxk: add VLAN filter support common/cnxk: add nix flow control support common/cnxk: add nix LSO support and misc utils Vidya Sagar Velumuri (1): common/cnxk: add nix inline IPsec config API v3: - Disable build for all except linux 64-bit. v2: - Added PART_95O to models supported - Addressed comments from Jerin with respect to patch split and documentation - Fixed a bug is lso utils and added get and custom fmt setup - Handled rss action as well for rte flow rule - Fixed issue with sso hws hwgrp link setup - Renamed plt_init to roc_plt_init - Disabled windows compilation --- MAINTAINERS | 9 + doc/guides/platform/cnxk.rst | 578 ++++ .../img/cnxk_packet_flow_hw_accelerators.svg | 2795 ++++++++++++++++++++ .../platform/img/cnxk_resource_virtualization.svg | 2428 +++++++++++++++++ doc/guides/platform/index.rst | 1 + drivers/common/cnxk/hw/nix.h | 2191 +++++++++++++++ drivers/common/cnxk/hw/npa.h | 376 +++ drivers/common/cnxk/hw/npc.h | 525 ++++ drivers/common/cnxk/hw/rvu.h | 222 ++ drivers/common/cnxk/hw/sdp.h | 182 ++ drivers/common/cnxk/hw/sso.h | 233 ++ drivers/common/cnxk/hw/ssow.h | 70 + drivers/common/cnxk/hw/tim.h | 49 + drivers/common/cnxk/meson.build | 48 + drivers/common/cnxk/roc_api.h | 103 + drivers/common/cnxk/roc_bitfield.h | 15 + drivers/common/cnxk/roc_bits.h | 32 + drivers/common/cnxk/roc_dev.c | 1190 +++++++++ drivers/common/cnxk/roc_dev_priv.h | 107 + drivers/common/cnxk/roc_idev.c | 184 ++ drivers/common/cnxk/roc_idev.h | 17 + drivers/common/cnxk/roc_idev_priv.h | 39 + drivers/common/cnxk/roc_io.h | 187 ++ drivers/common/cnxk/roc_io_generic.h | 122 + drivers/common/cnxk/roc_irq.c | 249 ++ drivers/common/cnxk/roc_mbox.c | 483 ++++ drivers/common/cnxk/roc_mbox.h | 1735 ++++++++++++ drivers/common/cnxk/roc_mbox_priv.h | 215 ++ drivers/common/cnxk/roc_model.c | 150 ++ drivers/common/cnxk/roc_model.h | 104 + drivers/common/cnxk/roc_nix.c | 439 +++ drivers/common/cnxk/roc_nix.h | 592 +++++ drivers/common/cnxk/roc_nix_debug.c | 1151 ++++++++ drivers/common/cnxk/roc_nix_fc.c | 251 ++ drivers/common/cnxk/roc_nix_irq.c | 495 ++++ drivers/common/cnxk/roc_nix_mac.c | 298 +++ drivers/common/cnxk/roc_nix_mcast.c | 98 + drivers/common/cnxk/roc_nix_npc.c | 103 + drivers/common/cnxk/roc_nix_ops.c | 438 +++ drivers/common/cnxk/roc_nix_priv.h | 395 +++ drivers/common/cnxk/roc_nix_ptp.c | 122 + drivers/common/cnxk/roc_nix_queue.c | 863 ++++++ drivers/common/cnxk/roc_nix_rss.c | 220 ++ drivers/common/cnxk/roc_nix_stats.c | 411 +++ drivers/common/cnxk/roc_nix_tm.c | 1385 ++++++++++ drivers/common/cnxk/roc_nix_tm_ops.c | 1031 ++++++++ drivers/common/cnxk/roc_nix_tm_utils.c | 1002 +++++++ drivers/common/cnxk/roc_nix_vlan.c | 205 ++ drivers/common/cnxk/roc_nix_xstats.h | 204 ++ drivers/common/cnxk/roc_npa.c | 823 ++++++ drivers/common/cnxk/roc_npa.h | 661 +++++ drivers/common/cnxk/roc_npa_debug.c | 184 ++ drivers/common/cnxk/roc_npa_irq.c | 298 +++ drivers/common/cnxk/roc_npa_priv.h | 63 + drivers/common/cnxk/roc_npc.c | 872 ++++++ drivers/common/cnxk/roc_npc.h | 189 ++ drivers/common/cnxk/roc_npc_mcam.c | 709 +++++ drivers/common/cnxk/roc_npc_parse.c | 703 +++++ drivers/common/cnxk/roc_npc_priv.h | 435 +++ drivers/common/cnxk/roc_npc_utils.c | 631 +++++ drivers/common/cnxk/roc_platform.c | 38 + drivers/common/cnxk/roc_platform.h | 190 ++ drivers/common/cnxk/roc_priv.h | 35 + drivers/common/cnxk/roc_sso.c | 550 ++++ drivers/common/cnxk/roc_sso.h | 65 + drivers/common/cnxk/roc_sso_debug.c | 68 + drivers/common/cnxk/roc_sso_irq.c | 164 ++ drivers/common/cnxk/roc_sso_priv.h | 50 + drivers/common/cnxk/roc_tim.c | 314 +++ drivers/common/cnxk/roc_tim.h | 43 + drivers/common/cnxk/roc_tim_irq.c | 104 + drivers/common/cnxk/roc_tim_priv.h | 30 + drivers/common/cnxk/roc_util_priv.h | 14 + drivers/common/cnxk/roc_utils.c | 239 ++ drivers/common/cnxk/roc_utils.h | 15 + drivers/common/cnxk/version.map | 203 ++ drivers/meson.build | 1 + 77 files changed, 32033 insertions(+) create mode 100644 doc/guides/platform/cnxk.rst create mode 100644 doc/guides/platform/img/cnxk_packet_flow_hw_accelerators.svg create mode 100644 doc/guides/platform/img/cnxk_resource_virtualization.svg create mode 100644 drivers/common/cnxk/hw/nix.h create mode 100644 drivers/common/cnxk/hw/npa.h create mode 100644 drivers/common/cnxk/hw/npc.h create mode 100644 drivers/common/cnxk/hw/rvu.h create mode 100644 drivers/common/cnxk/hw/sdp.h create mode 100644 drivers/common/cnxk/hw/sso.h create mode 100644 drivers/common/cnxk/hw/ssow.h create mode 100644 drivers/common/cnxk/hw/tim.h create mode 100644 drivers/common/cnxk/meson.build create mode 100644 drivers/common/cnxk/roc_api.h create mode 100644 drivers/common/cnxk/roc_bitfield.h create mode 100644 drivers/common/cnxk/roc_bits.h create mode 100644 drivers/common/cnxk/roc_dev.c create mode 100644 drivers/common/cnxk/roc_dev_priv.h create mode 100644 drivers/common/cnxk/roc_idev.c create mode 100644 drivers/common/cnxk/roc_idev.h create mode 100644 drivers/common/cnxk/roc_idev_priv.h create mode 100644 drivers/common/cnxk/roc_io.h create mode 100644 drivers/common/cnxk/roc_io_generic.h create mode 100644 drivers/common/cnxk/roc_irq.c create mode 100644 drivers/common/cnxk/roc_mbox.c create mode 100644 drivers/common/cnxk/roc_mbox.h create mode 100644 drivers/common/cnxk/roc_mbox_priv.h create mode 100644 drivers/common/cnxk/roc_model.c create mode 100644 drivers/common/cnxk/roc_model.h create mode 100644 drivers/common/cnxk/roc_nix.c create mode 100644 drivers/common/cnxk/roc_nix.h create mode 100644 drivers/common/cnxk/roc_nix_debug.c create mode 100644 drivers/common/cnxk/roc_nix_fc.c create mode 100644 drivers/common/cnxk/roc_nix_irq.c create mode 100644 drivers/common/cnxk/roc_nix_mac.c create mode 100644 drivers/common/cnxk/roc_nix_mcast.c create mode 100644 drivers/common/cnxk/roc_nix_npc.c create mode 100644 drivers/common/cnxk/roc_nix_ops.c create mode 100644 drivers/common/cnxk/roc_nix_priv.h create mode 100644 drivers/common/cnxk/roc_nix_ptp.c create mode 100644 drivers/common/cnxk/roc_nix_queue.c create mode 100644 drivers/common/cnxk/roc_nix_rss.c create mode 100644 drivers/common/cnxk/roc_nix_stats.c create mode 100644 drivers/common/cnxk/roc_nix_tm.c create mode 100644 drivers/common/cnxk/roc_nix_tm_ops.c create mode 100644 drivers/common/cnxk/roc_nix_tm_utils.c create mode 100644 drivers/common/cnxk/roc_nix_vlan.c create mode 100644 drivers/common/cnxk/roc_nix_xstats.h create mode 100644 drivers/common/cnxk/roc_npa.c create mode 100644 drivers/common/cnxk/roc_npa.h create mode 100644 drivers/common/cnxk/roc_npa_debug.c create mode 100644 drivers/common/cnxk/roc_npa_irq.c create mode 100644 drivers/common/cnxk/roc_npa_priv.h create mode 100644 drivers/common/cnxk/roc_npc.c create mode 100644 drivers/common/cnxk/roc_npc.h create mode 100644 drivers/common/cnxk/roc_npc_mcam.c create mode 100644 drivers/common/cnxk/roc_npc_parse.c create mode 100644 drivers/common/cnxk/roc_npc_priv.h create mode 100644 drivers/common/cnxk/roc_npc_utils.c create mode 100644 drivers/common/cnxk/roc_platform.c create mode 100644 drivers/common/cnxk/roc_platform.h create mode 100644 drivers/common/cnxk/roc_priv.h create mode 100644 drivers/common/cnxk/roc_sso.c create mode 100644 drivers/common/cnxk/roc_sso.h create mode 100644 drivers/common/cnxk/roc_sso_debug.c create mode 100644 drivers/common/cnxk/roc_sso_irq.c create mode 100644 drivers/common/cnxk/roc_sso_priv.h create mode 100644 drivers/common/cnxk/roc_tim.c create mode 100644 drivers/common/cnxk/roc_tim.h create mode 100644 drivers/common/cnxk/roc_tim_irq.c create mode 100644 drivers/common/cnxk/roc_tim_priv.h create mode 100644 drivers/common/cnxk/roc_util_priv.h create mode 100644 drivers/common/cnxk/roc_utils.c create mode 100644 drivers/common/cnxk/roc_utils.h create mode 100644 drivers/common/cnxk/version.map