The patch-set contains driver for Huawei's 3rd generation HiNIC Ethernet device that will be available in the future. This is an SRIOV device, designed for data centers. Initially, the driver only supports VFs. Following the discussion over RFC01, the code will be submitted in separate smaller patches where until the last patch the driver is non-functional. This RFC02 is an overall view of the entire driver but every patch will be posted as a standalone submission. Changes: V01: https://lore.kernel.org/netdev/cover.1730290527.git.gur.stavi@xxxxxxxxxx * Reduce overall line of code by removing optional functionality. * Break down into smaller patches. gongfan (3): net: hinic3: module initialization and tx/rx logic net: hinic3: management interfaces net: hinic3: sw and hw initialization code .../device_drivers/ethernet/huawei/hinic3.rst | 136 +++ MAINTAINERS | 7 + drivers/net/ethernet/huawei/Kconfig | 1 + drivers/net/ethernet/huawei/Makefile | 1 + drivers/net/ethernet/huawei/hinic3/Kconfig | 16 + drivers/net/ethernet/huawei/hinic3/Makefile | 25 + .../net/ethernet/huawei/hinic3/hinic3_cmdq.c | 898 ++++++++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_cmdq.h | 150 +++ .../ethernet/huawei/hinic3/hinic3_common.c | 98 ++ .../ethernet/huawei/hinic3/hinic3_common.h | 54 ++ .../net/ethernet/huawei/hinic3/hinic3_csr.h | 74 ++ .../net/ethernet/huawei/hinic3/hinic3_eqs.c | 786 +++++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_eqs.h | 128 +++ .../ethernet/huawei/hinic3/hinic3_hw_cfg.c | 266 ++++++ .../ethernet/huawei/hinic3/hinic3_hw_cfg.h | 62 ++ .../ethernet/huawei/hinic3/hinic3_hw_comm.c | 412 ++++++++ .../ethernet/huawei/hinic3/hinic3_hw_comm.h | 42 + .../ethernet/huawei/hinic3/hinic3_hw_intf.h | 248 +++++ .../net/ethernet/huawei/hinic3/hinic3_hwdev.c | 569 +++++++++++ .../net/ethernet/huawei/hinic3/hinic3_hwdev.h | 82 ++ .../net/ethernet/huawei/hinic3/hinic3_hwif.c | 430 +++++++++ .../net/ethernet/huawei/hinic3/hinic3_hwif.h | 91 ++ .../net/ethernet/huawei/hinic3/hinic3_irq.c | 172 ++++ .../net/ethernet/huawei/hinic3/hinic3_lld.c | 417 ++++++++ .../net/ethernet/huawei/hinic3/hinic3_lld.h | 20 + .../net/ethernet/huawei/hinic3/hinic3_main.c | 417 ++++++++ .../net/ethernet/huawei/hinic3/hinic3_mbox.c | 844 ++++++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_mbox.h | 147 +++ .../net/ethernet/huawei/hinic3/hinic3_mgmt.c | 21 + .../net/ethernet/huawei/hinic3/hinic3_mgmt.h | 14 + .../huawei/hinic3/hinic3_mgmt_interface.h | 212 +++++ .../huawei/hinic3/hinic3_netdev_ops.c | 518 ++++++++++ .../ethernet/huawei/hinic3/hinic3_nic_cfg.c | 395 ++++++++ .../ethernet/huawei/hinic3/hinic3_nic_cfg.h | 76 ++ .../ethernet/huawei/hinic3/hinic3_nic_dev.h | 107 +++ .../ethernet/huawei/hinic3/hinic3_nic_io.c | 885 +++++++++++++++++ .../ethernet/huawei/hinic3/hinic3_nic_io.h | 142 +++ .../huawei/hinic3/hinic3_pci_id_tbl.h | 10 + .../huawei/hinic3/hinic3_queue_common.c | 65 ++ .../huawei/hinic3/hinic3_queue_common.h | 51 + .../net/ethernet/huawei/hinic3/hinic3_rss.c | 378 ++++++++ .../net/ethernet/huawei/hinic3/hinic3_rss.h | 14 + .../net/ethernet/huawei/hinic3/hinic3_rx.c | 620 ++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_rx.h | 104 ++ .../net/ethernet/huawei/hinic3/hinic3_tx.c | 817 ++++++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_tx.h | 141 +++ .../net/ethernet/huawei/hinic3/hinic3_wq.c | 132 +++ .../net/ethernet/huawei/hinic3/hinic3_wq.h | 87 ++ 48 files changed, 11382 insertions(+) create mode 100644 Documentation/networking/device_drivers/ethernet/huawei/hinic3.rst create mode 100644 drivers/net/ethernet/huawei/hinic3/Kconfig create mode 100644 drivers/net/ethernet/huawei/hinic3/Makefile create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_common.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_common.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_csr.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_eqs.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hw_cfg.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hw_comm.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hw_comm.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hw_intf.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hwdev.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hwif.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_hwif.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_irq.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_lld.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_lld.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_main.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mbox.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mbox.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mgmt_interface.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_netdev_ops.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_nic_cfg.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_nic_cfg.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_nic_dev.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_nic_io.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_pci_id_tbl.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_queue_common.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rss.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rss.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rx.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rx.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_tx.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_tx.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_wq.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_wq.h base-commit: 65fb414c93f486cef5408951350f20552113abd0 -- 2.45.2