This patch set adds support of a new net PMD for Huawei Intelligent nic. This patch provides supoort for basic RX/TX and the contorl path needed for it. Later on new features will be added like VLAN, VFs, etc.
Basic features: 1. Basic device operations: probe, initialization, start/stop, configure, info get. 2. RX/TX queue operations: setup/release, start/stop. 3. RX/TX. Stats: 1. statistics and extended statistics. --- v2: - Fix arm64 compilation issue. - Fix some checkpatch checks issues - Fix patches thread issue. - Fit to the newest rte_ prefix patch v3: - Remove Rami from hinic pmd maintainers - Remove hinic_logs.* files and move log codes to other files - Remove the C++ guards within hinic pmd codes - Remove variable related errors shields from compilation files - Use lib link statu related functions but selfdefined - Fix x86_64-native-linuxapp-clang compilation errors - Fix i686-native-linuxapp-gcc compilation errors v4: - Update doc hinic.ini and hinic.rst - Remove x86-32, i686, BSD, Power8, ARMv7 compilations - Fit to newest IPV4 and IPV6 uppercase v5: - Update doc hinic.rst and release_19_08.rst - Delete unused codes - Optimize arch of codes and delete unnecessary files - Remove rte_panic - Subdivided patches v6: - Adjust hinic pmd maintainers - Use "CONFIG_RTE_ARCH_X86_64" to determine X86_64 for SSE instruction - Fix "check-git-log.sh" checking errors - Move "hinic_pmd_ethdev.h" to patch 11/15, and "hinic_pmd_rx.h"/"hinic_pmd_tx.h" to patch 12/15 Ziyang Xuan (15): net/hinic/base: add HW registers definition net/hinic/base: add HW interfaces of bar operation net/hinic/base: add API command channel code net/hinic/base: add support for cmdq mechanism net/hinic/base: add eq mechanism function code net/hinic/base: add mgmt module function code net/hinic/base: add code about hardware operation net/hinic/base: add NIC business configurations net/hinic/base: add context and work queue support net/hinic/base: add various headers net/hinic: add hinic PMD build and doc files net/hinic: add device initailization net/hinic: add start stop close queue ops net/hinic: add Rx/Tx package burst net/hinic: add RSS stats promiscuous ops MAINTAINERS | 8 + config/common_base | 5 + config/common_linux | 5 + config/defconfig_arm-armv7a-linuxapp-gcc | 1 + config/defconfig_i686-native-linuxapp-gcc | 5 + config/defconfig_i686-native-linuxapp-icc | 5 + config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + config/defconfig_x86_64-native-linuxapp-icc | 5 + config/defconfig_x86_x32-native-linuxapp-gcc | 5 + doc/guides/nics/features/hinic.ini | 37 + doc/guides/nics/hinic.rst | 58 + doc/guides/rel_notes/release_19_08.rst | 6 + drivers/net/Makefile | 1 + drivers/net/hinic/Makefile | 48 + drivers/net/hinic/base/hinic_compat.h | 256 ++ drivers/net/hinic/base/hinic_csr.h | 160 ++ drivers/net/hinic/base/hinic_pmd_api_cmd.c | 1042 ++++++++ drivers/net/hinic/base/hinic_pmd_api_cmd.h | 271 ++ drivers/net/hinic/base/hinic_pmd_cfg.c | 208 ++ drivers/net/hinic/base/hinic_pmd_cfg.h | 145 ++ drivers/net/hinic/base/hinic_pmd_cmd.h | 453 ++++ drivers/net/hinic/base/hinic_pmd_cmdq.c | 849 +++++++ drivers/net/hinic/base/hinic_pmd_cmdq.h | 242 ++ drivers/net/hinic/base/hinic_pmd_eqs.c | 609 +++++ drivers/net/hinic/base/hinic_pmd_eqs.h | 101 + drivers/net/hinic/base/hinic_pmd_hwdev.c | 1414 +++++++++++ drivers/net/hinic/base/hinic_pmd_hwdev.h | 485 ++++ drivers/net/hinic/base/hinic_pmd_hwif.c | 474 ++++ drivers/net/hinic/base/hinic_pmd_hwif.h | 119 + drivers/net/hinic/base/hinic_pmd_mgmt.c | 773 ++++++ drivers/net/hinic/base/hinic_pmd_mgmt.h | 119 + drivers/net/hinic/base/hinic_pmd_niccfg.c | 1276 ++++++++++ drivers/net/hinic/base/hinic_pmd_niccfg.h | 658 +++++ drivers/net/hinic/base/hinic_pmd_nicio.c | 894 +++++++ drivers/net/hinic/base/hinic_pmd_nicio.h | 265 ++ drivers/net/hinic/base/hinic_pmd_wq.c | 179 ++ drivers/net/hinic/base/hinic_pmd_wq.h | 137 + drivers/net/hinic/base/meson.build | 24 + drivers/net/hinic/hinic_pmd_ethdev.c | 2344 ++++++++++++++++++ drivers/net/hinic/hinic_pmd_ethdev.h | 71 + drivers/net/hinic/hinic_pmd_rx.c | 1049 ++++++++ drivers/net/hinic/hinic_pmd_rx.h | 128 + drivers/net/hinic/hinic_pmd_tx.c | 1248 ++++++++++ drivers/net/hinic/hinic_pmd_tx.h | 143 ++ drivers/net/hinic/meson.build | 13 + drivers/net/hinic/rte_pmd_hinic_version.map | 4 + drivers/net/meson.build | 1 + mk/rte.app.mk | 1 + 48 files changed, 16345 insertions(+) create mode 100644 doc/guides/nics/features/hinic.ini create mode 100644 doc/guides/nics/hinic.rst create mode 100644 drivers/net/hinic/Makefile create mode 100644 drivers/net/hinic/base/hinic_compat.h create mode 100644 drivers/net/hinic/base/hinic_csr.h create mode 100644 drivers/net/hinic/base/hinic_pmd_api_cmd.c create mode 100644 drivers/net/hinic/base/hinic_pmd_api_cmd.h create mode 100644 drivers/net/hinic/base/hinic_pmd_cfg.c create mode 100644 drivers/net/hinic/base/hinic_pmd_cfg.h create mode 100644 drivers/net/hinic/base/hinic_pmd_cmd.h create mode 100644 drivers/net/hinic/base/hinic_pmd_cmdq.c create mode 100644 drivers/net/hinic/base/hinic_pmd_cmdq.h create mode 100644 drivers/net/hinic/base/hinic_pmd_eqs.c create mode 100644 drivers/net/hinic/base/hinic_pmd_eqs.h create mode 100644 drivers/net/hinic/base/hinic_pmd_hwdev.c create mode 100644 drivers/net/hinic/base/hinic_pmd_hwdev.h create mode 100644 drivers/net/hinic/base/hinic_pmd_hwif.c create mode 100644 drivers/net/hinic/base/hinic_pmd_hwif.h create mode 100644 drivers/net/hinic/base/hinic_pmd_mgmt.c create mode 100644 drivers/net/hinic/base/hinic_pmd_mgmt.h create mode 100644 drivers/net/hinic/base/hinic_pmd_niccfg.c create mode 100644 drivers/net/hinic/base/hinic_pmd_niccfg.h create mode 100644 drivers/net/hinic/base/hinic_pmd_nicio.c create mode 100644 drivers/net/hinic/base/hinic_pmd_nicio.h create mode 100644 drivers/net/hinic/base/hinic_pmd_wq.c create mode 100644 drivers/net/hinic/base/hinic_pmd_wq.h create mode 100644 drivers/net/hinic/base/meson.build create mode 100644 drivers/net/hinic/hinic_pmd_ethdev.c create mode 100644 drivers/net/hinic/hinic_pmd_ethdev.h create mode 100644 drivers/net/hinic/hinic_pmd_rx.c create mode 100644 drivers/net/hinic/hinic_pmd_rx.h create mode 100644 drivers/net/hinic/hinic_pmd_tx.c create mode 100644 drivers/net/hinic/hinic_pmd_tx.h create mode 100644 drivers/net/hinic/meson.build create mode 100644 drivers/net/hinic/rte_pmd_hinic_version.map -- 2.18.0