From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shreyansh Jain Subject: [PATCH v6 00/40] Introduce NXP DPAA Bus, Mempool and PMD Date: Thu, 28 Sep 2017 17:59:20 +0530 Message-ID: <20170928123000.1711-1-shreyansh.jain@nxp.com> References: <20170928113344.12248-1-shreyansh.jain@nxp.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , To: Return-path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0070.outbound.protection.outlook.com [104.47.32.70]) by dpdk.org (Postfix) with ESMTP id EF48423B for ; Thu, 28 Sep 2017 14:19:11 +0200 (CEST) In-Reply-To: <20170928113344.12248-1-shreyansh.jain@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" Change Log: ============ v6: - rebased over net-next/master (9d660ac) - fixed mk/rte.app.mk (Thomas's comment). It had incorrect style of adding library linking - changed from manual memcpy of etheraddr to ether_addr_copy as suggested by Ferruh (these were minor changes missed in v5) v5: - rebased over net-next/master (9d660ac) - restructuring debugging macros. Removed a few and combined others. DPAA now reflects the dynamic logging with segragated DP logging - updated documentation for missing configuration option - fixed map file; shared build was broken earlier - other minor fixes from review comments v4: - Some checkpatch fixes which were reported by checkpatch@dpdk - adding extra stats feature patch (patch 41) v3: - Rebasing over 17.11-rc0 (85238f50) - Checkpatch fixes (There are still 2 errors which I think are false positives) - Implement rte_bus.find_device() interface - Various other minor updates/cleanups v2: - Fixing various comments from Ferruh, but broadly: -) Logging is been changed to reflect rte_log_register -) Logs across Bus, Mempool and PMD updated -) fixed incorrect feature claimed in dpaa.ini - Removed 24/40/48 bit swapping macro from EAL. These are defined in dpaa/bus now (compat.h) - Added missing memory cleanup operation - Updated documentation with some missing information Introduction ============ RFC was posted here -> [R3] V5 was posted here -> [R8] 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. Patch Layout ============ 01: Add DPAA SoC build configuration 02~16: Add DPAA Bus support and features, incrementally 17: Add Documentation 18~21: Add DPAA Mempool support 22~40: Add PMD and its various features, incrementally 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 [R4] v1: http://dpdk.org/ml/archives/dev/2017-June/068020.html [R5] v2: http://dpdk.org/ml/archives/dev/2017-July/070113.html [R6] v3: http://dpdk.org/ml/archives/dev/2017-August/073269.html [R7] v4: http://dpdk.org/ml/archives/dev/2017-September/074936.html [R8] v5: http://dpdk.org/dev/patchwork/patch/29245/ Hemant Agrawal (3): bus/dpaa: add compatibility and helper macros net/dpaa: support firmware version get API net/dpaa: support extended statistics Shreyansh Jain (37): 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: support 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 bus/dpaa: add DPAA mempool logging macros mempool/dpaa: support NXP DPAA Mempool config: enable compilation of DPAA Mempool driver bus/dpaa: add DPAA PMD logging macros net/dpaa: add NXP DPAA PMD driver skeleton config: enable NXP DPAA PMD compilation net/dpaa: support Tx and Rx queue setup net/dpaa: support MTU update net/dpaa: support jumbo frames net/dpaa: support link status update net/dpaa: support device info and speed capability net/dpaa: support promiscuous toggle net/dpaa: support multicast toggle net/dpaa: support MAC address update net/dpaa: support basic stats net/dpaa: support flow control net/dpaa: support hashed RSS net/dpaa: support packet type parsing net/dpaa: support checksum offload net/dpaa: support Scattered Rx net/dpaa: add packet dump for debugging MAINTAINERS | 9 + config/common_base | 5 + config/defconfig_arm64-dpaa-linuxapp-gcc | 59 + doc/guides/nics/dpaa.rst | 377 ++++ doc/guides/nics/features/dpaa.ini | 24 + doc/guides/nics/index.rst | 1 + drivers/bus/Makefile | 3 + drivers/bus/dpaa/Makefile | 76 + drivers/bus/dpaa/base/fman/fman.c | 611 +++++ drivers/bus/dpaa/base/fman/fman_hw.c | 590 +++++ drivers/bus/dpaa/base/fman/netcfg_layer.c | 214 ++ 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 | 61 + 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 | 310 +++ drivers/bus/dpaa/dpaa_bus.c | 465 ++++ drivers/bus/dpaa/include/compat.h | 385 ++++ 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 | 458 ++++ drivers/bus/dpaa/include/fsl_bman.h | 375 ++++ drivers/bus/dpaa/include/fsl_fman.h | 181 ++ drivers/bus/dpaa/include/fsl_fman_crc64.h | 263 +++ drivers/bus/dpaa/include/fsl_qman.h | 2021 +++++++++++++++++ drivers/bus/dpaa/include/fsl_usd.h | 107 + drivers/bus/dpaa/include/netcfg.h | 96 + drivers/bus/dpaa/include/of.h | 190 ++ drivers/bus/dpaa/include/process.h | 107 + drivers/bus/dpaa/rte_bus_dpaa_version.map | 57 + drivers/bus/dpaa/rte_dpaa_bus.h | 173 ++ drivers/bus/dpaa/rte_dpaa_logs.h | 107 + drivers/mempool/Makefile | 2 + drivers/mempool/dpaa/Makefile | 58 + drivers/mempool/dpaa/dpaa_mempool.c | 286 +++ drivers/mempool/dpaa/dpaa_mempool.h | 77 + drivers/mempool/dpaa/rte_mempool_dpaa_version.map | 8 + drivers/net/Makefile | 2 + drivers/net/dpaa/Makefile | 61 + drivers/net/dpaa/dpaa_ethdev.c | 1110 +++++++++ drivers/net/dpaa/dpaa_ethdev.h | 182 ++ drivers/net/dpaa/dpaa_rxtx.c | 760 +++++++ drivers/net/dpaa/dpaa_rxtx.h | 297 +++ drivers/net/dpaa/rte_pmd_dpaa_version.map | 4 + mk/machine/dpaa/rte.vars.mk | 61 + mk/rte.app.mk | 4 + 55 files changed, 16758 insertions(+) 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.9.3