From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: [PATCH v2 00/22] NXP DPAA2 FSLMC Bus driver Date: Fri, 24 Mar 2017 18:11:10 +0530 Message-ID: <1490359292-18773-1-git-send-email-hemant.agrawal@nxp.com> References: <1489754201-1027-1-git-send-email-hemant.agrawal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Cc: , , , , , To: Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0061.outbound.protection.outlook.com [104.47.33.61]) by dpdk.org (Postfix) with ESMTP id BF1C711C5 for ; Fri, 24 Mar 2017 13:41:42 +0100 (CET) In-Reply-To: <1489754201-1027-1-git-send-email-hemant.agrawal@nxp.com> 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 patches has been split from DPAA2 PMD v8 series [1] as per comments received on ML [2].) The patchset introduces NXP’s QorIQ-Layerscape DPAA2 Architecture based fsl-mc bus driver. This version of the driver supports NXP LS208xA, LS204xA and LS108x family of Network SoCs. This driver is base for DPAA2 based PMD to be introduced in later patches. It will be used by dpaa2 net, crypto, event & other devices. The details description of this bus along with PMD is part of later patch sets for introducing the NXP DPAA2 PMD. There are 3 main components of the FSLMC bus which enable the access to DPAA2 devices from userspace: 1) QBMAN hardware: Which enables application lock-less access to hardware queues and buffers. 2) MC or Management Complex: Layer between Userspace and elements on the FSLMC bus. This layer exposes underlying hardware as 'objects' and allows for their configuration. Some of the key objects exposed are: - DPNI, which refers to the network interface object. - DPBP, which refers to HW based memory pool object - DPIO, refers to processing context for accessing QBMAN 3) Portal: For accessing the hardware objects exposed by MC, a continuous mapped area is available in form of objects. This patchset introduces the above components. Future Changes/Caveats: 1) VFIO code for fsl-mc bus is different than eal-vfio code for pci bus. This need to be re-worked to make possible re-use of the existing code. References: [1] http://dpdk.org/ml/archives/dev/2017-March/059000.html [2] http://dpdk.org/ml/archives/dev/2017-March/059789.html --- v2: * rebased on next-net (b36be54c) * removing "-Wno-strict-alias" from makefile Hemant Agrawal (21): mk/dpaa2: add the crc support to the machine type bus/fslmc: introducing fsl-mc bus driver bus/fslmc: add QBMAN driver to bus bus/fslmc: introduce MC object functions bus/fslmc: add mc dpio object support bus/fslmc: add mc dpbp object support eal/vfio: adding vfio utility functions in map file bus/fslmc: add vfio support bus/fslmc: scan for net and sec device bus/fslmc: add debug log support bus/fslmc: dpio portal driver bus/fslmc: introduce support for hardware mempool object bus/fslmc: affine dpio to crypto threads bus/fslmc: define queues for DPAA2 devices bus/fslmc: define hardware annotation area size bus/fslmc: introduce true and false macros bus/fslmc: define VLAN header length bus/fslmc: add packet FLE definitions bus/fslmc: add physical-virtual address translation helpers bus/fslmc: add support for DMA mapping for ARM SMMU bus/fslmc: frame queue based dq storage alloc Shreyansh Jain (1): mk: handle intra drivers dependencies for shared build MAINTAINERS | 4 + config/common_base | 5 + config/defconfig_arm64-dpaa2-linuxapp-gcc | 8 +- drivers/Makefile | 1 + drivers/bus/Makefile | 38 + drivers/bus/fslmc/Makefile | 78 + drivers/bus/fslmc/fslmc_bus.c | 135 ++ drivers/bus/fslmc/fslmc_logs.h | 76 + drivers/bus/fslmc/fslmc_vfio.c | 629 ++++++++ drivers/bus/fslmc/fslmc_vfio.h | 82 ++ drivers/bus/fslmc/mc/dpbp.c | 261 ++++ drivers/bus/fslmc/mc/dpio.c | 279 ++++ drivers/bus/fslmc/mc/fsl_dpbp.h | 241 ++++ drivers/bus/fslmc/mc/fsl_dpbp_cmd.h | 88 ++ drivers/bus/fslmc/mc/fsl_dpio.h | 282 ++++ drivers/bus/fslmc/mc/fsl_dpio_cmd.h | 122 ++ drivers/bus/fslmc/mc/fsl_mc_cmd.h | 239 ++++ drivers/bus/fslmc/mc/fsl_mc_sys.h | 105 ++ drivers/bus/fslmc/mc/mc_sys.c | 114 ++ drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 137 ++ drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 441 ++++++ drivers/bus/fslmc/portal/dpaa2_hw_dpio.h | 70 + drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 248 ++++ drivers/bus/fslmc/qbman/include/compat.h | 406 ++++++ drivers/bus/fslmc/qbman/include/fsl_qbman_base.h | 160 +++ drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h | 1093 ++++++++++++++ drivers/bus/fslmc/qbman/qbman_portal.c | 1496 ++++++++++++++++++++ drivers/bus/fslmc/qbman/qbman_portal.h | 277 ++++ drivers/bus/fslmc/qbman/qbman_private.h | 170 +++ drivers/bus/fslmc/qbman/qbman_sys.h | 385 +++++ drivers/bus/fslmc/qbman/qbman_sys_decl.h | 73 + drivers/bus/fslmc/rte_bus_fslmc_version.map | 50 + drivers/bus/fslmc/rte_fslmc.h | 148 ++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 3 + mk/machine/dpaa2/rte.vars.mk | 5 +- mk/rte.lib.mk | 2 +- 36 files changed, 7947 insertions(+), 4 deletions(-) create mode 100644 drivers/bus/Makefile create mode 100644 drivers/bus/fslmc/Makefile create mode 100644 drivers/bus/fslmc/fslmc_bus.c create mode 100644 drivers/bus/fslmc/fslmc_logs.h create mode 100644 drivers/bus/fslmc/fslmc_vfio.c create mode 100644 drivers/bus/fslmc/fslmc_vfio.h create mode 100644 drivers/bus/fslmc/mc/dpbp.c create mode 100644 drivers/bus/fslmc/mc/dpio.c create mode 100644 drivers/bus/fslmc/mc/fsl_dpbp.h create mode 100644 drivers/bus/fslmc/mc/fsl_dpbp_cmd.h create mode 100644 drivers/bus/fslmc/mc/fsl_dpio.h create mode 100644 drivers/bus/fslmc/mc/fsl_dpio_cmd.h create mode 100644 drivers/bus/fslmc/mc/fsl_mc_cmd.h create mode 100644 drivers/bus/fslmc/mc/fsl_mc_sys.h create mode 100644 drivers/bus/fslmc/mc/mc_sys.c create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h create mode 100644 drivers/bus/fslmc/qbman/include/compat.h create mode 100644 drivers/bus/fslmc/qbman/include/fsl_qbman_base.h create mode 100644 drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h create mode 100644 drivers/bus/fslmc/qbman/qbman_portal.c create mode 100644 drivers/bus/fslmc/qbman/qbman_portal.h create mode 100644 drivers/bus/fslmc/qbman/qbman_private.h create mode 100644 drivers/bus/fslmc/qbman/qbman_sys.h create mode 100644 drivers/bus/fslmc/qbman/qbman_sys_decl.h create mode 100644 drivers/bus/fslmc/rte_bus_fslmc_version.map create mode 100644 drivers/bus/fslmc/rte_fslmc.h -- 1.9.1