mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v1 net-next 00/15] nbl driver for Nebulamatrix NICs
@ 2025-12-23  3:50 illusion.wang
  2025-12-23  3:50 ` [PATCH v1 net-next 01/15] net/nebula-matrix: add minimum nbl build framework illusion.wang
                   ` (15 more replies)
  0 siblings, 16 replies; 25+ messages in thread
From: illusion.wang @ 2025-12-23  3:50 UTC (permalink / raw)
  To: dimon.zhao, illusion.wang, alvin.wang, sam.chen, netdev; +Cc: open list

The patch series add the nbl driver, which will support the nebula-matrix 18100 and 18110 series 
of network cards.
This submission is the first phase. which includes the PF-based and VF-based Ethernet transmit 
and receive functionality. Once this is merged. will submit addition patches to implement support
for other features. such as ethtool support, debugfs support and etc.
Our Driver architecture  supports Kernel Mode and Coexistence Mode(kernel and dpdk)

illusion.wang (15):
  net/nebula-matrix: add minimum nbl build framework
  net/nebula-matrix: add simple probe/remove.
  net/nebula-matrix: add HW layer definitions and implementation
  net/nebula-matrix: add Channel layer definitions and implementation
  net/nebula-matrix: add Resource layer definitions and implementation
  net/nebula-matrix: add intr resource definitions and implementation
  net/nebula-matrix: add vsi, queue, adminq resource definitions and
    implementation
  net/nebula-matrix: add flow resource definitions and implementation
  net/nebula-matrix: add txrx resource definitions and implementation
  net/nebula-matrix: add Dispatch layer definitions and implementation
  net/nebula-matrix: add Service layer definitions and implementation
  net/nebula-matrix: add Dev layer definitions and implementation
  net/nebula-matrix: add Dev start, stop operation
  net/nebula-matrix: fully support ndo operations
  net/nebula-matrix: add kernel/user coexist mode support

 .../ethernet/nebula-matrix/m18100.rst         |   52 +
 MAINTAINERS                                   |   10 +
 drivers/net/ethernet/Kconfig                  |    1 +
 drivers/net/ethernet/Makefile                 |    1 +
 drivers/net/ethernet/nebula-matrix/Kconfig    |   39 +
 drivers/net/ethernet/nebula-matrix/Makefile   |    6 +
 .../net/ethernet/nebula-matrix/nbl/Makefile   |   41 +
 .../nbl/nbl_channel/nbl_channel.c             | 1518 +++++
 .../nbl/nbl_channel/nbl_channel.h             |  214 +
 .../nebula-matrix/nbl/nbl_common/nbl_common.c | 1063 ++++
 .../nebula-matrix/nbl/nbl_common/nbl_common.h |   69 +
 .../net/ethernet/nebula-matrix/nbl/nbl_core.h |  145 +
 .../nebula-matrix/nbl/nbl_core/nbl_dev.c      | 3277 +++++++++++
 .../nebula-matrix/nbl/nbl_core/nbl_dev.h      |  343 ++
 .../nebula-matrix/nbl/nbl_core/nbl_dev_user.c | 1607 ++++++
 .../nebula-matrix/nbl/nbl_core/nbl_dev_user.h |   76 +
 .../nebula-matrix/nbl/nbl_core/nbl_dispatch.c | 4756 ++++++++++++++++
 .../nebula-matrix/nbl/nbl_core/nbl_dispatch.h |   89 +
 .../nebula-matrix/nbl/nbl_core/nbl_service.c  | 4895 +++++++++++++++++
 .../nebula-matrix/nbl/nbl_core/nbl_service.h  |  301 +
 .../nebula-matrix/nbl/nbl_core/nbl_sysfs.c    |   79 +
 .../nebula-matrix/nbl/nbl_core/nbl_sysfs.h    |   21 +
 .../nebula-matrix/nbl/nbl_hw/nbl_adminq.c     | 1520 +++++
 .../nebula-matrix/nbl/nbl_hw/nbl_adminq.h     |  196 +
 .../nebula-matrix/nbl/nbl_hw/nbl_hw.h         |  184 +
 .../nbl_hw/nbl_hw_leonis/base/nbl_datapath.h  |   14 +
 .../nbl_hw_leonis/base/nbl_datapath_dpa.h     |  765 +++
 .../nbl_hw_leonis/base/nbl_datapath_dped.h    | 2152 ++++++++
 .../nbl_hw_leonis/base/nbl_datapath_dstore.h  |  957 ++++
 .../nbl_hw_leonis/base/nbl_datapath_ucar.h    |  414 ++
 .../nbl_hw_leonis/base/nbl_datapath_upa.h     |  822 +++
 .../nbl_hw_leonis/base/nbl_datapath_uped.h    | 1499 +++++
 .../nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe.h   |   16 +
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_acl.h   | 2417 ++++++++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_epro.h  |  665 +++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_fem.h   | 1490 +++++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_ipro.h  | 1397 +++++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_mcc.h   |  412 ++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_pp0.h   |  619 +++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_pp1.h   |  701 +++
 .../nbl_hw/nbl_hw_leonis/base/nbl_ppe_pp2.h   |  619 +++
 .../nbl_hw/nbl_hw_leonis/nbl_flow_leonis.c    | 2094 +++++++
 .../nbl_hw/nbl_hw_leonis/nbl_flow_leonis.h    |  204 +
 .../nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.c  | 3062 +++++++++++
 .../nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.h  | 1844 +++++++
 .../nbl_hw/nbl_hw_leonis/nbl_hw_leonis_regs.c | 3864 +++++++++++++
 .../nbl_hw/nbl_hw_leonis/nbl_hw_leonis_regs.h |   12 +
 .../nbl_hw/nbl_hw_leonis/nbl_queue_leonis.c   | 1373 +++++
 .../nbl_hw/nbl_hw_leonis/nbl_queue_leonis.h   |   25 +
 .../nbl_hw_leonis/nbl_resource_leonis.c       | 1073 ++++
 .../nbl_hw_leonis/nbl_resource_leonis.h       |   26 +
 .../nebula-matrix/nbl/nbl_hw/nbl_hw_reg.h     |  187 +
 .../nebula-matrix/nbl/nbl_hw/nbl_interrupt.c  |  409 ++
 .../nebula-matrix/nbl/nbl_hw/nbl_interrupt.h  |   13 +
 .../nebula-matrix/nbl/nbl_hw/nbl_p4_actions.h |   59 +
 .../nebula-matrix/nbl/nbl_hw/nbl_queue.c      |   56 +
 .../nebula-matrix/nbl/nbl_hw/nbl_queue.h      |   11 +
 .../nebula-matrix/nbl/nbl_hw/nbl_resource.c   |  409 ++
 .../nebula-matrix/nbl/nbl_hw/nbl_resource.h   |  853 +++
 .../nebula-matrix/nbl/nbl_hw/nbl_txrx.c       | 2026 +++++++
 .../nebula-matrix/nbl/nbl_hw/nbl_txrx.h       |  188 +
 .../nebula-matrix/nbl/nbl_hw/nbl_vsi.c        |  270 +
 .../nebula-matrix/nbl/nbl_hw/nbl_vsi.h        |   12 +
 .../nbl/nbl_include/nbl_def_channel.h         |  785 +++
 .../nbl/nbl_include/nbl_def_common.h          |  515 ++
 .../nbl/nbl_include/nbl_def_dev.h             |   37 +
 .../nbl/nbl_include/nbl_def_dispatch.h        |  192 +
 .../nbl/nbl_include/nbl_def_hw.h              |  142 +
 .../nbl/nbl_include/nbl_def_resource.h        |  188 +
 .../nbl/nbl_include/nbl_def_service.h         |  164 +
 .../nbl/nbl_include/nbl_include.h             |  624 +++
 .../nbl/nbl_include/nbl_product_base.h        |   21 +
 .../net/ethernet/nebula-matrix/nbl/nbl_main.c |  477 ++
 73 files changed, 56677 insertions(+)
 create mode 100644 Documentation/networking/device_drivers/ethernet/nebula-matrix/m18100.rst
 create mode 100644 drivers/net/ethernet/nebula-matrix/Kconfig
 create mode 100644 drivers/net/ethernet/nebula-matrix/Makefile
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/Makefile
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_channel/nbl_channel.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_channel/nbl_channel.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_common/nbl_common.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_common/nbl_common.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_sysfs.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_sysfs.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath_dpa.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath_dped.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath_dstore.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath_ucar.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath_upa.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_datapath_uped.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_acl.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_epro.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_fem.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_ipro.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_mcc.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_pp0.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_pp1.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_pp2.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_flow_leonis.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_flow_leonis.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis_regs.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_hw_leonis_regs.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_queue_leonis.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_queue_leonis.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_resource_leonis.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_resource_leonis.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_reg.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_interrupt.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_interrupt.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_p4_actions.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_queue.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_queue.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_resource.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_resource.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_channel.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_common.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_dev.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_dispatch.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_hw.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_resource.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_include.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_product_base.h
 create mode 100644 drivers/net/ethernet/nebula-matrix/nbl/nbl_main.c

-- 
2.43.0


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2025-12-29 16:41 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-23  3:50 [PATCH v1 net-next 00/15] nbl driver for Nebulamatrix NICs illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 01/15] net/nebula-matrix: add minimum nbl build framework illusion.wang
2025-12-23 10:02   ` Andrew Lunn
2025-12-23  3:50 ` [PATCH v1 net-next 02/15] net/nebula-matrix: add simple probe/remove illusion.wang
2025-12-23 10:19   ` Andrew Lunn
2025-12-23  3:50 ` [PATCH v1 net-next 03/15] net/nebula-matrix: add HW layer definitions and implementation illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 04/15] net/nebula-matrix: add Channel " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 05/15] net/nebula-matrix: add Resource " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 06/15] net/nebula-matrix: add intr resource " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 07/15] net/nebula-matrix: add vsi, queue, adminq " illusion.wang
2025-12-24 10:49   ` Andrew Lunn
2025-12-23  3:50 ` [PATCH v1 net-next 08/15] net/nebula-matrix: add flow " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 09/15] net/nebula-matrix: add txrx " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 10/15] net/nebula-matrix: add Dispatch layer " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 11/15] net/nebula-matrix: add Service " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 12/15] net/nebula-matrix: add Dev " illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 13/15] net/nebula-matrix: add Dev start, stop operation illusion.wang
2025-12-24 11:03   ` Andrew Lunn
2025-12-29  1:36     ` 回复:[PATCH " Illusion Wang
2025-12-23  3:50 ` [PATCH v1 net-next 14/15] net/nebula-matrix: fully support ndo operations illusion.wang
2025-12-23  3:50 ` [PATCH v1 net-next 15/15] net/nebula-matrix: add kernel/user coexist mode support illusion.wang
2025-12-24 10:52   ` Andrew Lunn
2025-12-23  7:08 ` [PATCH v1 net-next 00/15] nbl driver for Nebulamatrix NICs Paolo Abeni
2025-12-29  1:47   ` 回复:[PATCH " Illusion Wang
2025-12-29 16:41     ` Paolo Abeni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®