This patch set provides the initial version of DPDK PMD for the built-in NIC device in Cavium ThunderX SoC family.
Implemented features and ThunderX nicvf PMD documentation added in doc/guides/nics/overview.rst and doc/guides/nics/thunderx.rst respectively in this patch set. These patches are checked using checkpatch.sh with following additional ignore option: options="$options --ignore=CAMELCASE,BRACKET_SPACE" CAMELCASE - To accommodate PRIx64 BRACKET_SPACE - To accommodate AT&T inline line assembly in two places This patch set is based on DPDK 16.07-RC1 and tested with git HEAD change-set ca173a909538a2f1082cd0dcb4d778a97dab69c3 along with following depended patch http://dpdk.org/dev/patchwork/patch/11826/ ethdev: add tunnel and port RSS offload types V1->V2 http://dpdk.org/dev/patchwork/patch/12609/ -- added const for the const struct tables -- remove multiple blank lines -- addressed style comments http://dpdk.org/dev/patchwork/patch/12610/ -- removed DEPDIRS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += lib/librte_net lib/librte_malloc -- add const for table structs -- addressed style comments http://dpdk.org/dev/patchwork/patch/12614/ -- s/DEFAULT_*/NICVF_DEFAULT_*/gc http://dpdk.org/dev/patchwork/patch/12615/ -- Fix typos -- addressed style comments http://dpdk.org/dev/patchwork/patch/12616/ -- removed redundant txq->tail = 0 and txq->head = 0 http://dpdk.org/dev/patchwork/patch/12627/ -- fixed the documentation changes -- fixed TAB+space occurrences in functions -- rebased to c8c33ad7f94c59d1c0676af0cfd61207b3e808db V2->V3 http://dpdk.org/dev/patchwork/patch/13060/ -- Changed polling infrastructure to use rte_eal_alarm* instead of timerfd_create API -- rebased to ca173a909538a2f1082cd0dcb4d778a97dab69c3 V3->V4 addressed review comments of Ferruh's review http://dpdk.org/dev/patchwork/patch/13314/ -- s/avilable/available http://dpdk.org/dev/patchwork/patch/13323/ -- s/witout/without http://dpdk.org/dev/patchwork/patch/13318/ -- s/nicvf_free_xmittted_buffers/nicvf_free_xmitted_buffers -- fix checkpatch errors http://dpdk.org/dev/patchwork/patch/13307/ -- addressed review comments http://dpdk.org/dev/patchwork/patch/13308/ -- addressed review comments http://dpdk.org/dev/patchwork/patch/13320/ -- addressed review comments http://dpdk.org/dev/patchwork/patch/13321/ -- addressed review comments http://dpdk.org/dev/patchwork/patch/13322/ -- addressed review comments http://dpdk.org/dev/patchwork/patch/13324/ -- addressed review comments and created separated patch for platform specific config change -- update change log to net/thunderx: ........ V4->V5 -- splitting up drivers/net/thunderx/nicvf/base files to following patches as suggested by Bruce net/thunderx/base: add HW constants for ThunderX inbuilt NIC net/thunderx/base: add register definition for ThunderX inbuilt NIC net/thunderx/base: implement DPDK based platform abstraction for base code net/thunderx/base: add mbox API for ThunderX PF/VF driver communication net/thunderx/base: add hardware API for ThunderX nicvf inbuilt NIC net/thunderx/base: add RSS and reta configuration HW APIs net/thunderx/base: add statistics get HW APIs -- Corrected wrong git commit log messages flagged by check-git-log.sh Jerin Jacob (25): net/thunderx/base: add HW constants for ThunderX inbuilt NIC net/thunderx/base: add register definition for ThunderX inbuilt NIC net/thunderx/base: implement DPDK based platform abstraction for base code net/thunderx/base: add mbox API for ThunderX PF/VF driver communication net/thunderx/base: add hardware API for ThunderX nicvf inbuilt NIC net/thunderx/base: add RSS and reta configuration HW APIs net/thunderx/base: add statistics get HW APIs net/thunderx: add pmd skeleton net/thunderx: add link status and link update support net/thunderx: add registers dump support net/thunderx: add ethdev configure support net/thunderx: add get device info support net/thunderx: add Rx queue setup and release support net/thunderx: add Tx queue setup and release support net/thunderx: add RSS and reta query and update support net/thunderx: add MTU set and promiscuous enable support net/thunderx: add stats support net/thunderx: add single and multi segment Tx functions net/thunderx: add single and multi segment Rx functions net/thunderx: implement supported ptype get and Rx queue count net/thunderx: add Rx queue start and stop support net/thunderx: add Tx queue start and stop support net/thunderx: add device start,stop and close support net/thunderx: updated driver documentation and release notes maintainers: claim responsibility for the ThunderX nicvf PMD MAINTAINERS | 6 + config/common_base | 10 + config/defconfig_arm64-thunderx-linuxapp-gcc | 10 + doc/guides/nics/index.rst | 1 + doc/guides/nics/overview.rst | 96 +- doc/guides/nics/thunderx.rst | 354 ++++ doc/guides/rel_notes/release_16_07.rst | 1 + drivers/net/Makefile | 1 + drivers/net/thunderx/Makefile | 65 + drivers/net/thunderx/base/nicvf_hw.c | 905 ++++++++++ drivers/net/thunderx/base/nicvf_hw.h | 240 +++ drivers/net/thunderx/base/nicvf_hw_defs.h | 1219 +++++++++++++ drivers/net/thunderx/base/nicvf_mbox.c | 418 +++++ drivers/net/thunderx/base/nicvf_mbox.h | 232 +++ drivers/net/thunderx/base/nicvf_plat.h | 132 ++ drivers/net/thunderx/nicvf_ethdev.c | 1789 ++++++++++++++++++++ drivers/net/thunderx/nicvf_ethdev.h | 106 ++ drivers/net/thunderx/nicvf_logs.h | 83 + drivers/net/thunderx/nicvf_rxtx.c | 599 +++++++ drivers/net/thunderx/nicvf_rxtx.h | 101 ++ drivers/net/thunderx/nicvf_struct.h | 124 ++ .../thunderx/rte_pmd_thunderx_nicvf_version.map | 4 + mk/rte.app.mk | 2 + 23 files changed, 6450 insertions(+), 48 deletions(-) create mode 100644 doc/guides/nics/thunderx.rst create mode 100644 drivers/net/thunderx/Makefile create mode 100644 drivers/net/thunderx/base/nicvf_hw.c create mode 100644 drivers/net/thunderx/base/nicvf_hw.h create mode 100644 drivers/net/thunderx/base/nicvf_hw_defs.h create mode 100644 drivers/net/thunderx/base/nicvf_mbox.c create mode 100644 drivers/net/thunderx/base/nicvf_mbox.h create mode 100644 drivers/net/thunderx/base/nicvf_plat.h create mode 100644 drivers/net/thunderx/nicvf_ethdev.c create mode 100644 drivers/net/thunderx/nicvf_ethdev.h create mode 100644 drivers/net/thunderx/nicvf_logs.h create mode 100644 drivers/net/thunderx/nicvf_rxtx.c create mode 100644 drivers/net/thunderx/nicvf_rxtx.h create mode 100644 drivers/net/thunderx/nicvf_struct.h create mode 100644 drivers/net/thunderx/rte_pmd_thunderx_nicvf_version.map -- 2.5.5