This patch set introduces DPDK poll mode driver for new QLogic FastLinQ QL4xxxx 25G/40G capable family of CNAs as well as their SR-IOV Virtual Functions (VF).
The overall PMD driver design includes a common module called ecore that deals with the low level HW and a upper layer portion that provides the glue logic. Specifically, the ecore module contains all of the common logic, e.g. initialization, cleanup, infrastructure for interrupt handling, link management, slowpath etc. as well as protocol agnostic features and supplying an abstraction layer for other modules. The higher layer implements DPDK exported APIs/driver entry points by interfacing with the common module for configuration/status and also the fastpath routines. Included in the patch set is the supporting documentation and maintainers. Please apply. Thanks, Harish Patil (6): qede: add maintainers qede: add documentation qede: add QLogic PCI ids qede: add driver common module qede: add driver qede: enable PMD build MAINTAINERS | 7 + config/common_bsdapp | 15 + config/common_linuxapp | 16 + doc/guides/nics/index.rst | 1 + doc/guides/nics/qede.rst | 344 + drivers/net/Makefile | 1 + drivers/net/qede/LICENSE.qede_pmd | 28 + drivers/net/qede/Makefile | 95 + drivers/net/qede/ecore/bcm_osal.c | 130 + drivers/net/qede/ecore/bcm_osal.h | 408 + drivers/net/qede/ecore/common_hsi.h | 714 ++ drivers/net/qede/ecore/ecore.h | 785 ++ drivers/net/qede/ecore/ecore_attn_values.h | 13287 ++++++++++++++++++++++ drivers/net/qede/ecore/ecore_chain.h | 724 ++ drivers/net/qede/ecore/ecore_cxt.c | 2164 ++++ drivers/net/qede/ecore/ecore_cxt.h | 173 + drivers/net/qede/ecore/ecore_cxt_api.h | 79 + drivers/net/qede/ecore/ecore_dcbx.c | 950 ++ drivers/net/qede/ecore/ecore_dcbx.h | 55 + drivers/net/qede/ecore/ecore_dcbx_api.h | 166 + drivers/net/qede/ecore/ecore_dev.c | 3907 +++++++ drivers/net/qede/ecore/ecore_dev_api.h | 497 + drivers/net/qede/ecore/ecore_gtt_reg_addr.h | 42 + drivers/net/qede/ecore/ecore_gtt_values.h | 33 + drivers/net/qede/ecore/ecore_hsi_common.h | 1912 ++++ drivers/net/qede/ecore/ecore_hsi_eth.h | 1912 ++++ drivers/net/qede/ecore/ecore_hsi_tools.h | 1081 ++ drivers/net/qede/ecore/ecore_hw.c | 1000 ++ drivers/net/qede/ecore/ecore_hw.h | 273 + drivers/net/qede/ecore/ecore_hw_defs.h | 49 + drivers/net/qede/ecore/ecore_init_fw_funcs.c | 1275 +++ drivers/net/qede/ecore/ecore_init_fw_funcs.h | 263 + drivers/net/qede/ecore/ecore_init_ops.c | 610 + drivers/net/qede/ecore/ecore_init_ops.h | 103 + drivers/net/qede/ecore/ecore_int.c | 2234 ++++ drivers/net/qede/ecore/ecore_int.h | 234 + drivers/net/qede/ecore/ecore_int_api.h | 277 + drivers/net/qede/ecore/ecore_iov_api.h | 931 ++ drivers/net/qede/ecore/ecore_iro.h | 168 + drivers/net/qede/ecore/ecore_iro_values.h | 59 + drivers/net/qede/ecore/ecore_l2.c | 1801 +++ drivers/net/qede/ecore/ecore_l2.h | 151 + drivers/net/qede/ecore/ecore_l2_api.h | 401 + drivers/net/qede/ecore/ecore_mcp.c | 1952 ++++ drivers/net/qede/ecore/ecore_mcp.h | 304 + drivers/net/qede/ecore/ecore_mcp_api.h | 629 + drivers/net/qede/ecore/ecore_proto_if.h | 88 + drivers/net/qede/ecore/ecore_rt_defs.h | 449 + drivers/net/qede/ecore/ecore_sp_api.h | 42 + drivers/net/qede/ecore/ecore_sp_commands.c | 531 + drivers/net/qede/ecore/ecore_sp_commands.h | 137 + drivers/net/qede/ecore/ecore_spq.c | 989 ++ drivers/net/qede/ecore/ecore_spq.h | 302 + drivers/net/qede/ecore/ecore_sriov.c | 3422 ++++++ drivers/net/qede/ecore/ecore_sriov.h | 390 + drivers/net/qede/ecore/ecore_status.h | 30 + drivers/net/qede/ecore/ecore_utils.h | 31 + drivers/net/qede/ecore/ecore_vf.c | 1319 +++ drivers/net/qede/ecore/ecore_vf.h | 415 + drivers/net/qede/ecore/ecore_vf_api.h | 185 + drivers/net/qede/ecore/ecore_vfpf_if.h | 588 + drivers/net/qede/ecore/eth_common.h | 526 + drivers/net/qede/ecore/mcp_public.h | 1243 ++ drivers/net/qede/ecore/nvm_cfg.h | 935 ++ drivers/net/qede/ecore/reg_addr.h | 1112 ++ drivers/net/qede/qede_eth_if.c | 461 + drivers/net/qede/qede_eth_if.h | 180 + drivers/net/qede/qede_ethdev.c | 815 ++ drivers/net/qede/qede_ethdev.h | 138 + drivers/net/qede/qede_if.h | 167 + drivers/net/qede/qede_logs.h | 93 + drivers/net/qede/qede_main.c | 587 + drivers/net/qede/qede_rxtx.c | 1346 +++ drivers/net/qede/qede_rxtx.h | 183 + drivers/net/qede/rte_pmd_qede_version.map | 4 + lib/librte_eal/common/include/rte_pci_dev_ids.h | 44 + mk/rte.app.mk | 2 + scripts/test-build.sh | 1 + 78 files changed, 58995 insertions(+) create mode 100644 doc/guides/nics/qede.rst create mode 100644 drivers/net/qede/LICENSE.qede_pmd create mode 100644 drivers/net/qede/Makefile create mode 100644 drivers/net/qede/ecore/bcm_osal.c create mode 100644 drivers/net/qede/ecore/bcm_osal.h create mode 100644 drivers/net/qede/ecore/common_hsi.h create mode 100644 drivers/net/qede/ecore/ecore.h create mode 100644 drivers/net/qede/ecore/ecore_attn_values.h create mode 100644 drivers/net/qede/ecore/ecore_chain.h create mode 100644 drivers/net/qede/ecore/ecore_cxt.c create mode 100644 drivers/net/qede/ecore/ecore_cxt.h create mode 100644 drivers/net/qede/ecore/ecore_cxt_api.h create mode 100644 drivers/net/qede/ecore/ecore_dcbx.c create mode 100644 drivers/net/qede/ecore/ecore_dcbx.h create mode 100644 drivers/net/qede/ecore/ecore_dcbx_api.h create mode 100644 drivers/net/qede/ecore/ecore_dev.c create mode 100644 drivers/net/qede/ecore/ecore_dev_api.h create mode 100644 drivers/net/qede/ecore/ecore_gtt_reg_addr.h create mode 100644 drivers/net/qede/ecore/ecore_gtt_values.h create mode 100644 drivers/net/qede/ecore/ecore_hsi_common.h create mode 100644 drivers/net/qede/ecore/ecore_hsi_eth.h create mode 100644 drivers/net/qede/ecore/ecore_hsi_tools.h create mode 100644 drivers/net/qede/ecore/ecore_hw.c create mode 100644 drivers/net/qede/ecore/ecore_hw.h create mode 100644 drivers/net/qede/ecore/ecore_hw_defs.h create mode 100644 drivers/net/qede/ecore/ecore_init_fw_funcs.c create mode 100644 drivers/net/qede/ecore/ecore_init_fw_funcs.h create mode 100644 drivers/net/qede/ecore/ecore_init_ops.c create mode 100644 drivers/net/qede/ecore/ecore_init_ops.h create mode 100644 drivers/net/qede/ecore/ecore_int.c create mode 100644 drivers/net/qede/ecore/ecore_int.h create mode 100644 drivers/net/qede/ecore/ecore_int_api.h create mode 100644 drivers/net/qede/ecore/ecore_iov_api.h create mode 100644 drivers/net/qede/ecore/ecore_iro.h create mode 100644 drivers/net/qede/ecore/ecore_iro_values.h create mode 100644 drivers/net/qede/ecore/ecore_l2.c create mode 100644 drivers/net/qede/ecore/ecore_l2.h create mode 100644 drivers/net/qede/ecore/ecore_l2_api.h create mode 100644 drivers/net/qede/ecore/ecore_mcp.c create mode 100644 drivers/net/qede/ecore/ecore_mcp.h create mode 100644 drivers/net/qede/ecore/ecore_mcp_api.h create mode 100644 drivers/net/qede/ecore/ecore_proto_if.h create mode 100644 drivers/net/qede/ecore/ecore_rt_defs.h create mode 100644 drivers/net/qede/ecore/ecore_sp_api.h create mode 100644 drivers/net/qede/ecore/ecore_sp_commands.c create mode 100644 drivers/net/qede/ecore/ecore_sp_commands.h create mode 100644 drivers/net/qede/ecore/ecore_spq.c create mode 100644 drivers/net/qede/ecore/ecore_spq.h create mode 100644 drivers/net/qede/ecore/ecore_sriov.c create mode 100644 drivers/net/qede/ecore/ecore_sriov.h create mode 100644 drivers/net/qede/ecore/ecore_status.h create mode 100644 drivers/net/qede/ecore/ecore_utils.h create mode 100644 drivers/net/qede/ecore/ecore_vf.c create mode 100644 drivers/net/qede/ecore/ecore_vf.h create mode 100644 drivers/net/qede/ecore/ecore_vf_api.h create mode 100644 drivers/net/qede/ecore/ecore_vfpf_if.h create mode 100644 drivers/net/qede/ecore/eth_common.h create mode 100644 drivers/net/qede/ecore/mcp_public.h create mode 100644 drivers/net/qede/ecore/nvm_cfg.h create mode 100644 drivers/net/qede/ecore/reg_addr.h create mode 100644 drivers/net/qede/qede_eth_if.c create mode 100644 drivers/net/qede/qede_eth_if.h create mode 100644 drivers/net/qede/qede_ethdev.c create mode 100644 drivers/net/qede/qede_ethdev.h create mode 100644 drivers/net/qede/qede_if.h create mode 100644 drivers/net/qede/qede_logs.h create mode 100644 drivers/net/qede/qede_main.c create mode 100644 drivers/net/qede/qede_rxtx.c create mode 100644 drivers/net/qede/qede_rxtx.h create mode 100644 drivers/net/qede/rte_pmd_qede_version.map -- 1.8.3.1