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. Ziyang Xuan (11): net/hinic/base: add registers for Huawei Hi1822 NIC net/hinic/base: add command channels code net/hinic/base: add mgmt module interactive code net/hinic/base: add code about hardware operation net/hinic/base: add eqs and context code net/hinic/base: add code for nic business net/hinic/base: add various headers net/hinic: add hinic PMD build and doc files net/hinic: add RX module net/hinic: add TX module net/hinic: add support for basic device operations MAINTAINERS | 9 + config/common_base | 5 + doc/guides/nics/features/hinic.ini | 32 + drivers/net/Makefile | 1 + drivers/net/hinic/Makefile | 91 + drivers/net/hinic/base/hinic_compat.h | 257 +++ drivers/net/hinic/base/hinic_csr.h | 172 ++ drivers/net/hinic/base/hinic_ctx_def.h | 201 ++ drivers/net/hinic/base/hinic_logs.c | 16 + drivers/net/hinic/base/hinic_logs.h | 31 + drivers/net/hinic/base/hinic_pmd_api_cmd.c | 1040 ++++++++++ drivers/net/hinic/base/hinic_pmd_api_cmd.h | 271 +++ drivers/net/hinic/base/hinic_pmd_cfg.c | 269 +++ drivers/net/hinic/base/hinic_pmd_cfg.h | 264 +++ drivers/net/hinic/base/hinic_pmd_cmdq.c | 910 +++++++++ drivers/net/hinic/base/hinic_pmd_cmdq.h | 190 ++ drivers/net/hinic/base/hinic_pmd_dpdev.h | 149 ++ drivers/net/hinic/base/hinic_pmd_eqs.c | 736 +++++++ drivers/net/hinic/base/hinic_pmd_eqs.h | 94 + drivers/net/hinic/base/hinic_pmd_hw.h | 49 + drivers/net/hinic/base/hinic_pmd_hw_mgmt.h | 85 + drivers/net/hinic/base/hinic_pmd_hwdev.c | 1544 +++++++++++++++ drivers/net/hinic/base/hinic_pmd_hwdev.h | 207 ++ drivers/net/hinic/base/hinic_pmd_hwif.c | 542 ++++++ drivers/net/hinic/base/hinic_pmd_hwif.h | 90 + drivers/net/hinic/base/hinic_pmd_mgmt.c | 619 ++++++ drivers/net/hinic/base/hinic_pmd_mgmt.h | 125 ++ drivers/net/hinic/base/hinic_pmd_mgmt_interface.h | 503 +++++ drivers/net/hinic/base/hinic_pmd_nic.h | 85 + drivers/net/hinic/base/hinic_pmd_niccfg.c | 1408 ++++++++++++++ drivers/net/hinic/base/hinic_pmd_niccfg.h | 333 ++++ drivers/net/hinic/base/hinic_pmd_nicio.c | 920 +++++++++ drivers/net/hinic/base/hinic_pmd_nicio.h | 53 + drivers/net/hinic/base/hinic_pmd_qp.c | 26 + drivers/net/hinic/base/hinic_pmd_qp.h | 76 + drivers/net/hinic/base/hinic_pmd_wq.c | 164 ++ drivers/net/hinic/base/hinic_pmd_wq.h | 52 + drivers/net/hinic/base/hinic_port_cmd.h | 494 +++++ drivers/net/hinic/base/hinic_qe_def.h | 461 +++++ drivers/net/hinic/base/meson.build | 61 + drivers/net/hinic/hinic_pmd_dpdev.c | 720 +++++++ drivers/net/hinic/hinic_pmd_ethdev.c | 2157 +++++++++++++++++++++ drivers/net/hinic/hinic_pmd_ethdev.h | 106 + drivers/net/hinic/hinic_pmd_rx.c | 906 +++++++++ drivers/net/hinic/hinic_pmd_rx.h | 135 ++ drivers/net/hinic/hinic_pmd_tx.c | 1036 ++++++++++ drivers/net/hinic/hinic_pmd_tx.h | 97 + drivers/net/hinic/meson.build | 18 + drivers/net/hinic/rte_pmd_hinic_version.map | 4 + mk/rte.app.mk | 1 + 50 files changed, 17815 insertions(+) create mode 100644 doc/guides/nics/features/hinic.ini 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_ctx_def.h create mode 100644 drivers/net/hinic/base/hinic_logs.c create mode 100644 drivers/net/hinic/base/hinic_logs.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_cmdq.c create mode 100644 drivers/net/hinic/base/hinic_pmd_cmdq.h create mode 100644 drivers/net/hinic/base/hinic_pmd_dpdev.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_hw.h create mode 100644 drivers/net/hinic/base/hinic_pmd_hw_mgmt.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_mgmt_interface.h create mode 100644 drivers/net/hinic/base/hinic_pmd_nic.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_qp.c create mode 100644 drivers/net/hinic/base/hinic_pmd_qp.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/hinic_port_cmd.h create mode 100644 drivers/net/hinic/base/hinic_qe_def.h create mode 100644 drivers/net/hinic/base/meson.build create mode 100644 drivers/net/hinic/hinic_pmd_dpdev.c 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 -- 1.8.3.1