[PATCH 00/16] net-next/yunsilicon: ADD Yunsilicon XSC Ethernet Driver
From: Tian Xin <hidden>
Date: 2024-12-09 07:14:43
From: Xin Tian <redacted> The patch series adds the xsc driver, which will support the Yuncilicon MS/MC/MV series of network devices. The Yunsilicon MS/MC/MV series network cards provide support for both Ethernet and RDMA functionalities. This submission is the first phase, which includes the PF-based Ethernet transmit and receive functionality. Once this is merged, we will submit additional patches to implement support for other features, such as SR-IOV, ethtool support, and a new RDMA driver. Xin Tian (16): net-next/yunsilicon: Add yunsilicon xsc driver basic framework net-next/yunsilicon: Enable CMDQ net-next/yunsilicon: Add hardware setup APIs net-next/yunsilicon: Add qp and cq management net-next/yunsilicon: Add eq and alloc net-next/yunsilicon: Add pci irq net-next/yunsilicon: Device and interface management net-next/yunsilicon: Add ethernet interface net-next/yunsilicon: Init net device net-next/yunsilicon: Add eth needed qp and cq apis net-next/yunsilicon: ndo_open and ndo_stop net-next/yunsilicon: Add ndo_start_xmit net-next/yunsilicon: Add eth rx net-next/yunsilicon: add ndo_get_stats64 net-next/yunsilicon: Add ndo_set_mac_address net-next/yunsilicon: Add change mtu drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/yunsilicon/Kconfig | 26 + drivers/net/ethernet/yunsilicon/Makefile | 8 + .../yunsilicon/xsc/common/xsc_auto_hw.h | 97 + .../ethernet/yunsilicon/xsc/common/xsc_cmd.h | 2513 +++++++++++++++++ .../ethernet/yunsilicon/xsc/common/xsc_cmdq.h | 218 ++ .../ethernet/yunsilicon/xsc/common/xsc_core.h | 659 +++++ .../yunsilicon/xsc/common/xsc_device.h | 77 + .../yunsilicon/xsc/common/xsc_driver.h | 25 + .../ethernet/yunsilicon/xsc/common/xsc_pp.h | 38 + .../ethernet/yunsilicon/xsc/common/xsc_pph.h | 176 ++ .../net/ethernet/yunsilicon/xsc/net/Kconfig | 16 + .../net/ethernet/yunsilicon/xsc/net/Makefile | 9 + .../net/ethernet/yunsilicon/xsc/net/main.c | 2195 ++++++++++++++ .../net/ethernet/yunsilicon/xsc/net/xsc_eth.h | 58 + .../yunsilicon/xsc/net/xsc_eth_common.h | 237 ++ .../ethernet/yunsilicon/xsc/net/xsc_eth_rx.c | 651 +++++ .../yunsilicon/xsc/net/xsc_eth_stats.c | 42 + .../yunsilicon/xsc/net/xsc_eth_stats.h | 33 + .../ethernet/yunsilicon/xsc/net/xsc_eth_tx.c | 310 ++ .../yunsilicon/xsc/net/xsc_eth_txrx.c | 185 ++ .../yunsilicon/xsc/net/xsc_eth_txrx.h | 90 + .../ethernet/yunsilicon/xsc/net/xsc_eth_wq.c | 109 + .../ethernet/yunsilicon/xsc/net/xsc_eth_wq.h | 207 ++ .../ethernet/yunsilicon/xsc/net/xsc_queue.h | 230 ++ .../net/ethernet/yunsilicon/xsc/pci/Kconfig | 17 + .../net/ethernet/yunsilicon/xsc/pci/Makefile | 10 + .../net/ethernet/yunsilicon/xsc/pci/alloc.c | 225 ++ .../net/ethernet/yunsilicon/xsc/pci/alloc.h | 15 + .../net/ethernet/yunsilicon/xsc/pci/cmdq.c | 2162 ++++++++++++++ drivers/net/ethernet/yunsilicon/xsc/pci/cq.c | 151 + drivers/net/ethernet/yunsilicon/xsc/pci/cq.h | 14 + drivers/net/ethernet/yunsilicon/xsc/pci/eq.c | 356 +++ drivers/net/ethernet/yunsilicon/xsc/pci/eq.h | 46 + drivers/net/ethernet/yunsilicon/xsc/pci/hw.c | 269 ++ drivers/net/ethernet/yunsilicon/xsc/pci/hw.h | 18 + .../net/ethernet/yunsilicon/xsc/pci/intf.c | 279 ++ .../net/ethernet/yunsilicon/xsc/pci/intf.h | 22 + .../net/ethernet/yunsilicon/xsc/pci/main.c | 432 +++ .../net/ethernet/yunsilicon/xsc/pci/pci_irq.c | 429 +++ .../net/ethernet/yunsilicon/xsc/pci/pci_irq.h | 14 + drivers/net/ethernet/yunsilicon/xsc/pci/qp.c | 189 ++ drivers/net/ethernet/yunsilicon/xsc/pci/qp.h | 15 + .../net/ethernet/yunsilicon/xsc/pci/vport.c | 102 + 45 files changed, 12976 insertions(+) create mode 100644 drivers/net/ethernet/yunsilicon/Kconfig create mode 100644 drivers/net/ethernet/yunsilicon/Makefile create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_auto_hw.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmdq.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_device.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_driver.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_pp.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/common/xsc_pph.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/Kconfig create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/Makefile create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/main.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_common.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_rx.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_stats.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_stats.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_tx.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_txrx.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_txrx.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_wq.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_wq.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/net/xsc_queue.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/Kconfig create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/Makefile create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/alloc.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/alloc.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/cmdq.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/cq.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/cq.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/eq.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/eq.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/hw.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/hw.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/intf.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/intf.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/main.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/pci_irq.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/pci_irq.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/qp.c create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/qp.h create mode 100644 drivers/net/ethernet/yunsilicon/xsc/pci/vport.c -- 2.43.0