From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shreyansh Jain Subject: [PATCH 00/38] Introduce NXP DPAA Bus, Mempool and PMD Date: Fri, 16 Jun 2017 11:10:30 +0530 Message-ID: <1497591668-3320-1-git-send-email-shreyansh.jain@nxp.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , To: Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0053.outbound.protection.outlook.com [104.47.34.53]) by dpdk.org (Postfix) with ESMTP id B2C822BB9 for ; Fri, 16 Jun 2017 07:32:28 +0200 (CEST) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Series based on net-next/master (bc16bce) Introduction ============ RFC was posted here -> [R3] This patch series adds NXP's QorIQ-Layerscape DPAA Architecture based bus driver, mempool driver and PMD. This version of driver supports NXP LS1043A/LS1023A, LS1046A/LS1026A family of network SoCs. [R1] DPAA, or Datapath Acceleration Architecture [R2], is a set of hardware components designed for high-speed network packet processing. This architecture provides the infrastructure to support simplified sharing of networking interfaces and accelerators by multiple CPU cores, and the accelerators themselves. This patchset introduces the following: 1. DPAA Bus (drivers/bus/dpaa) The core of DPAA bus is implemented using 3 main hardware blocks: QMan, or Queue Manager; BMan, or Buffer Manager and FMan, or Frame Manager. The patches introduce necessary layers to expose the DPAA hardware blocks for interfacing with RTE framework. 2. DPAA Mempool (drivers/mempool/dpaa) BMan, or Buffer Manager, block of DPAA features a hardware offloaded mempool. These patches add support for a driver to manage the BMan block. This driver allows for mempool creation, deletion, buffer acquire and release, as per the RTE APIs. 3. DPAA PMD (drivers/net/dpaa) The Poll Mode Driver for DPAA NIC Interfaces. Changes from RFC ================ - Some patch restructuring and checkpatch fixes (there are still some checkpatch fixes - which I have ignored for now.) - Some issues observed during internal testing Patch Layout ============ 01: Add EAL support for 24, 40 and 48 bit operations 02~17: Add DPAA Bus support and features, incrementally 18: Add Documentation 19~21: Add DPAA Mempool support 22~38: Add PMD and its various features, incrementally Dependency ========== This patch is dependent on: [D1] Patch: http://dpdk.org/dev/patchwork/patch/24478/ This patch adds macro for Bus logging to RTE logging framework References ========== [R1] http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-layerscape-arm-processors:QORIQ-ARM [R2] http://www.nxp.com/assets/documents/data/en/white-papers/QORIQDPAAWP.pdf [R3] RFC: http://dpdk.org/ml/archives/dev/2017-May/066675.html Hemant Agrawal (2): eal: add support for 24 40 and 48 bit operations bus/dpaa: add compatibility and helper macros Shreyansh Jain (36): config: add NXP DPAA SoC build configuration bus/dpaa: introduce NXP DPAA Bus driver skeleton bus/dpaa: add OF parser for device scanning bus/dpaa: introducing FMan configurations bus/dpaa: add FMan hardware operations bus/dpaa: enable DPAA IOCTL portal driver bus/dpaa: add layer for interrupt emulation using pthread bus/dpaa: add routines for managing a RB tree bus/dpaa: add QMAN interface driver bus/dpaa: add QMan driver core routines bus/dpaa: add BMAN driver core bus/dpaa: add support for FMAN frame queue lookup bus/dpaa: add BMan hardware interfaces bus/dpaa: add fman flow control threshold setting bus/dpaa: integrate DPAA Bus with hardware blocks doc: add NXP DPAA PMD documentation mempool/dpaa: add support for NXP DPAA Mempool maintainers: claim ownership of DPAA Mempool driver drivers: enable compilation of DPAA Mempool driver net/dpaa: add NXP DPAA PMD driver skeleton config: enable NXP DPAA PMD compilation net/dpaa: add support for Tx and Rx queue setup net/dpaa: add support for MTU update net/dpaa: add support for jumbo frames net/dpaa: add support for link status update net/dpaa: add support for device info net/dpaa: add support for promiscuous toggle net/dpaa: add support for multicast toggle net/dpaa: add support for basic stats net/dpaa: add support for MAC address update net/dpaa: add support for flow control net/dpaa: add support for hashed RSS net/dpaa: add support for packet type parsing net/dpaa: add support for checksum offload net/dpaa: add support for Scattered Rx net/dpaa: add packet dump for debugging MAINTAINERS | 9 + config/common_base | 5 + config/defconfig_arm64-dpaa-linuxapp-gcc | 62 + doc/guides/nics/dpaa.rst | 360 +++ doc/guides/nics/features/dpaa.ini | 23 + doc/guides/nics/index.rst | 1 + drivers/bus/Makefile | 3 + drivers/bus/dpaa/Makefile | 84 + drivers/bus/dpaa/base/fman/fman.c | 537 +++++ drivers/bus/dpaa/base/fman/fman_hw.c | 634 +++++ drivers/bus/dpaa/base/fman/netcfg_layer.c | 205 ++ drivers/bus/dpaa/base/fman/of.c | 576 +++++ drivers/bus/dpaa/base/qbman/bman.c | 394 +++ drivers/bus/dpaa/base/qbman/bman.h | 550 +++++ drivers/bus/dpaa/base/qbman/bman_driver.c | 323 +++ drivers/bus/dpaa/base/qbman/bman_priv.h | 125 + drivers/bus/dpaa/base/qbman/dpaa_alloc.c | 104 + drivers/bus/dpaa/base/qbman/dpaa_sys.c | 136 ++ drivers/bus/dpaa/base/qbman/dpaa_sys.h | 65 + drivers/bus/dpaa/base/qbman/process.c | 331 +++ drivers/bus/dpaa/base/qbman/qman.c | 2497 ++++++++++++++++++++ drivers/bus/dpaa/base/qbman/qman.h | 888 +++++++ drivers/bus/dpaa/base/qbman/qman_driver.c | 288 +++ drivers/bus/dpaa/base/qbman/qman_priv.h | 314 +++ drivers/bus/dpaa/dpaa_bus.c | 414 ++++ drivers/bus/dpaa/include/compat.h | 330 +++ drivers/bus/dpaa/include/dpaa_bits.h | 65 + drivers/bus/dpaa/include/dpaa_list.h | 101 + drivers/bus/dpaa/include/dpaa_rbtree.h | 143 ++ drivers/bus/dpaa/include/fman.h | 474 ++++ drivers/bus/dpaa/include/fsl_bman.h | 375 +++ drivers/bus/dpaa/include/fsl_fman.h | 189 ++ drivers/bus/dpaa/include/fsl_fman_crc64.h | 263 +++ drivers/bus/dpaa/include/fsl_qman.h | 2038 ++++++++++++++++ drivers/bus/dpaa/include/fsl_usd.h | 107 + drivers/bus/dpaa/include/netcfg.h | 96 + drivers/bus/dpaa/include/of.h | 191 ++ drivers/bus/dpaa/include/process.h | 107 + drivers/bus/dpaa/rte_bus_dpaa_version.map | 46 + drivers/bus/dpaa/rte_dpaa_bus.h | 169 ++ drivers/bus/dpaa/rte_dpaa_logs.h | 92 + drivers/mempool/Makefile | 2 + drivers/mempool/dpaa/Makefile | 65 + drivers/mempool/dpaa/dpaa_mempool.c | 265 +++ drivers/mempool/dpaa/dpaa_mempool.h | 78 + drivers/mempool/dpaa/rte_mempool_dpaa_version.map | 6 + drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 2 +- drivers/net/Makefile | 2 + drivers/net/dpaa/Makefile | 68 + drivers/net/dpaa/dpaa_ethdev.c | 883 +++++++ drivers/net/dpaa/dpaa_ethdev.h | 144 ++ drivers/net/dpaa/dpaa_rxtx.c | 697 ++++++ drivers/net/dpaa/dpaa_rxtx.h | 256 ++ drivers/net/dpaa/rte_pmd_dpaa_version.map | 4 + .../common/include/generic/rte_byteorder.h | 78 + mk/machine/dpaa/rte.vars.mk | 61 + mk/rte.app.mk | 6 + 57 files changed, 16330 insertions(+), 1 deletion(-) create mode 100644 config/defconfig_arm64-dpaa-linuxapp-gcc create mode 100644 doc/guides/nics/dpaa.rst create mode 100644 doc/guides/nics/features/dpaa.ini create mode 100644 drivers/bus/dpaa/Makefile create mode 100644 drivers/bus/dpaa/base/fman/fman.c create mode 100644 drivers/bus/dpaa/base/fman/fman_hw.c create mode 100644 drivers/bus/dpaa/base/fman/netcfg_layer.c create mode 100644 drivers/bus/dpaa/base/fman/of.c create mode 100644 drivers/bus/dpaa/base/qbman/bman.c create mode 100644 drivers/bus/dpaa/base/qbman/bman.h create mode 100644 drivers/bus/dpaa/base/qbman/bman_driver.c create mode 100644 drivers/bus/dpaa/base/qbman/bman_priv.h create mode 100644 drivers/bus/dpaa/base/qbman/dpaa_alloc.c create mode 100644 drivers/bus/dpaa/base/qbman/dpaa_sys.c create mode 100644 drivers/bus/dpaa/base/qbman/dpaa_sys.h create mode 100644 drivers/bus/dpaa/base/qbman/process.c create mode 100644 drivers/bus/dpaa/base/qbman/qman.c create mode 100644 drivers/bus/dpaa/base/qbman/qman.h create mode 100644 drivers/bus/dpaa/base/qbman/qman_driver.c create mode 100644 drivers/bus/dpaa/base/qbman/qman_priv.h create mode 100644 drivers/bus/dpaa/dpaa_bus.c create mode 100644 drivers/bus/dpaa/include/compat.h create mode 100644 drivers/bus/dpaa/include/dpaa_bits.h create mode 100644 drivers/bus/dpaa/include/dpaa_list.h create mode 100644 drivers/bus/dpaa/include/dpaa_rbtree.h create mode 100644 drivers/bus/dpaa/include/fman.h create mode 100644 drivers/bus/dpaa/include/fsl_bman.h create mode 100644 drivers/bus/dpaa/include/fsl_fman.h create mode 100644 drivers/bus/dpaa/include/fsl_fman_crc64.h create mode 100644 drivers/bus/dpaa/include/fsl_qman.h create mode 100644 drivers/bus/dpaa/include/fsl_usd.h create mode 100644 drivers/bus/dpaa/include/netcfg.h create mode 100644 drivers/bus/dpaa/include/of.h create mode 100644 drivers/bus/dpaa/include/process.h create mode 100644 drivers/bus/dpaa/rte_bus_dpaa_version.map create mode 100644 drivers/bus/dpaa/rte_dpaa_bus.h create mode 100644 drivers/bus/dpaa/rte_dpaa_logs.h create mode 100644 drivers/mempool/dpaa/Makefile create mode 100644 drivers/mempool/dpaa/dpaa_mempool.c create mode 100644 drivers/mempool/dpaa/dpaa_mempool.h create mode 100644 drivers/mempool/dpaa/rte_mempool_dpaa_version.map create mode 100644 drivers/net/dpaa/Makefile create mode 100644 drivers/net/dpaa/dpaa_ethdev.c create mode 100644 drivers/net/dpaa/dpaa_ethdev.h create mode 100644 drivers/net/dpaa/dpaa_rxtx.c create mode 100644 drivers/net/dpaa/dpaa_rxtx.h create mode 100644 drivers/net/dpaa/rte_pmd_dpaa_version.map create mode 100644 mk/machine/dpaa/rte.vars.mk -- 2.7.4