From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4181B46D12; Wed, 13 Aug 2025 08:44:43 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CFD2D406BC; Wed, 13 Aug 2025 08:44:37 +0200 (CEST) Received: from out28-5.mail.aliyun.com (out28-5.mail.aliyun.com [115.124.28.5]) by mails.dpdk.org (Postfix) with ESMTP id C03644025D for ; Wed, 13 Aug 2025 08:44:35 +0200 (CEST) Received: from ubuntu.localdomain(mailfrom:dimon.zhao@nebula-matrix.com fp:SMTPD_---.eELCnbA_1755067470 cluster:ay29) by smtp.aliyun-inc.com; Wed, 13 Aug 2025 14:44:30 +0800 From: Dimon Zhao To: dimon.zhao@nebula-matrix.com, dev@dpdk.org Cc: Thomas Monjalon , Kyo Liu , Leon Yu , Sam Chen Subject: [PATCH v4 01/16] net/nbl: add doc and minimum nbl build framework Date: Tue, 12 Aug 2025 23:43:55 -0700 Message-Id: <20250813064410.3894506-2-dimon.zhao@nebula-matrix.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250813064410.3894506-1-dimon.zhao@nebula-matrix.com> References: <20250627014022.4019625-1-dimon.zhao@nebula-matrix.com> <20250813064410.3894506-1-dimon.zhao@nebula-matrix.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org add minimum PMD code, doc and build infrastructure for nbl driver. Signed-off-by: Dimon Zhao --- .mailmap | 4 ++ MAINTAINERS | 9 ++++ doc/guides/nics/features/nbl.ini | 9 ++++ doc/guides/nics/index.rst | 1 + doc/guides/nics/nbl.rst | 87 ++++++++++++++++++++++++++++++++ drivers/net/meson.build | 1 + drivers/net/nbl/meson.build | 11 ++++ drivers/net/nbl/nbl_ethdev.c | 3 ++ 8 files changed, 125 insertions(+) create mode 100644 doc/guides/nics/features/nbl.ini create mode 100644 doc/guides/nics/nbl.rst create mode 100644 drivers/net/nbl/meson.build create mode 100644 drivers/net/nbl/nbl_ethdev.c diff --git a/.mailmap b/.mailmap index 293ec12da0..c9dc467182 100644 --- a/.mailmap +++ b/.mailmap @@ -375,6 +375,7 @@ Diana Wang Didier Pallard Dilshod Urazov Dima Ruinskiy +Dimon Zhao Ding Zhi Diogo Behrens Dirk-Holger Lenz @@ -857,6 +858,7 @@ Kumar Amber Kumara Parameshwaran Kumar Sanghvi Kyle Larose +Kyo Liu Lance Richardson Laszlo Ersek Laura Stroe @@ -871,6 +873,7 @@ Lei Gong Lei Ji Lei Yao Leonid Myravjev +Leon Yu Leo Xu Leszek Zygo Levend Sayar @@ -1389,6 +1392,7 @@ Saikrishna Edupuganti Saleh Alsouqi Salem Sol Sam Andrew +Sam Chen Sameh Gobriel Sam Grove Samik Gupta diff --git a/MAINTAINERS b/MAINTAINERS index 7aca98c537..edc93cdda0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1009,6 +1009,15 @@ F: drivers/net/rnp/ F: doc/guides/nics/rnp.rst F: doc/guides/nics/features/rnp.ini +Nebulamatrix nbl +M: Dimon Zhao +M: Kyo Liu +M: Leon Yu +M: Sam Chen +F: drivers/net/nbl +F: doc/guides/nics/nbl.rst +F: doc/guides/nics/features/nbl.ini + Realtek r8169 M: Howard Wang M: Chunhao Lin diff --git a/doc/guides/nics/features/nbl.ini b/doc/guides/nics/features/nbl.ini new file mode 100644 index 0000000000..6daabe6ed3 --- /dev/null +++ b/doc/guides/nics/features/nbl.ini @@ -0,0 +1,9 @@ +; +; Supported features of the 'nbl' network poll mode driver. +; +; Refer to default.ini for the full list of available PMD features. +; +[Features] +Linux = Y +ARMv8 = Y +x86-64 = Y diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst index 57d161c526..84d4ece101 100644 --- a/doc/guides/nics/index.rst +++ b/doc/guides/nics/index.rst @@ -50,6 +50,7 @@ Network Interface Controller Drivers mvneta mvpp2 netvsc + nbl nfb nfp ngbe diff --git a/doc/guides/nics/nbl.rst b/doc/guides/nics/nbl.rst new file mode 100644 index 0000000000..94431be859 --- /dev/null +++ b/doc/guides/nics/nbl.rst @@ -0,0 +1,87 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2025 Nebulamatrix Technology Co., Ltd + +NBL Poll Mode Driver +==================== + +The NBL PMD (**librte_net_nbl**) provides poll mode driver support for +10/25/50/100/200 Gbps Nebulamatrix Series Network Adapters. + + +Features +-------- + +Features of the NBL PMD are: + +- Multiple queues for TX and RX +- Receiver Side Scaling (RSS) +- Jumbo frames + + +Supported NICs +-------------- + +The following Nebulamatrix device models are supported by the same nbl driver: + + - S1205CQ-A00CHT + - S1105AS-A00CHT + - S1055AS-A00CHT + - S1052AS-A00CHT + - S1051AS-A00CHT + - S1045XS-A00CHT + - S1205CQ-A00CSP + - S1055AS-A00CSP + - S1052AS-A00CSP + + +Linux Prerequisites +~~~~~~~~~~~~~~~~~~~ + +This driver relies on kernel drivers for resources allocations and initialization. +The following dependencies are not part of DPDK and must be installed separately: + +- **Kernel modules** + + They provide low level device drivers that manage actual hardware initialization + and resources sharing with user-space processes. + + Unlike most other PMDs, these modules must remain loaded and bound to + their devices: + + - ``nbl_core``: hardware driver managing Ethernet kernel network devices. + +Because the nbl_core kernel driver code has not been upstreamed to the Linux kernel community, it cannot be provided by standard Linux distributions. +However, the nbl_core kernel driver has been upstreamed to the openEuler and Anolis communities. You can obtain the nbl_core code from the following links: + +openEuler community: +https://gitee.com/openeuler/kernel/pulls/11667 + +Anolis community: +https://gitee.com/anolis/cloud-kernel/pulls/5185 +https://gitee.com/anolis/cloud-kernel/pulls/5059 + +Alternatively, you can contact us to obtain the nbl_core code and installation package. + + +Prerequisites +------------- + +- Follow the DPDK :ref:`Getting Started Guide for Linux ` + to setup the basic DPDK environment. + +- Learn about `Nebulamatrix Series NICs + `_. + + +Multiple Processes +~~~~~~~~~~~~~~~~~~ + +The NBL PMD does not support Multiple Processes. + + +Limitations or Known Issues +--------------------------- + +32-bit architectures are not supported. + +Windows and BSD are not supported yet. diff --git a/drivers/net/meson.build b/drivers/net/meson.build index 61f8cddb30..517e78d18b 100644 --- a/drivers/net/meson.build +++ b/drivers/net/meson.build @@ -40,6 +40,7 @@ drivers = [ 'mlx5', 'mvneta', 'mvpp2', + 'nbl', 'netvsc', 'nfb', 'nfp', diff --git a/drivers/net/nbl/meson.build b/drivers/net/nbl/meson.build new file mode 100644 index 0000000000..68c045a48c --- /dev/null +++ b/drivers/net/nbl/meson.build @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright 2025 NebulaMatrix Technology Co., Ltd. + +if not is_linux or not dpdk_conf.get('RTE_ARCH_64') + build = false + reason = 'only supported on 64bit Linux' +endif + +sources = files( + 'nbl_ethdev.c', +) diff --git a/drivers/net/nbl/nbl_ethdev.c b/drivers/net/nbl/nbl_ethdev.c new file mode 100644 index 0000000000..3ad8e4033a --- /dev/null +++ b/drivers/net/nbl/nbl_ethdev.c @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2025 Nebulamatrix Technology Co., Ltd. + */ -- 2.34.1