DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 1/4] config/arm: add NVIDIA BlueField-3 platform
@ 2023-02-16 13:59 Raslan Darawsheh
  2023-02-16 13:59 ` [PATCH 2/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 13:59 UTC (permalink / raw)
  To: thomas; +Cc: dev, Ruifeng Wang, Bruce Richardson

Add meson build configuration for NVIDIA BlueField-3 platform
with Cortex-A78AE cores.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 config/arm/meson.build | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 6442ec9596..89d8f327f1 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -85,6 +85,9 @@ part_number_config_arm = {
             ['RTE_MAX_NUMA_NODES', 1]
         ]
     },
+    '0xd42': {
+        'march': 'armv8.4-a',
+    },
     '0xd49': {
         'march': 'armv8.5-a',
         'march_features': ['sve2'],
@@ -442,12 +445,24 @@ soc_thunderxt83 = {
     'part_number': '0xa3'
 }
 
+soc_bluefield3 = {
+  'description': 'NVIDIA BlueField-3',
+  'implementer': '0x41',
+   'flags': [
+          ['RTE_MAX_LCORE', 32],
+          ['RTE_MAX_NUMA_NODES', 1]
+      ],
+   'part_number': '0xd42',
+   'numa': false
+}
+
 '''
 Start of SoCs list
 generic:         Generic un-optimized build for armv8 aarch64 execution mode.
 generic_aarch32: Generic un-optimized build for armv8 aarch32 execution mode.
 armada:          Marvell ARMADA
 bluefield:       NVIDIA BlueField
+bluefield3:      NVIDIA BlueField 3
 centriq2400:     Qualcomm Centriq 2400
 cn9k:            Marvell OCTEON 9
 cn10k:           Marvell OCTEON 10
@@ -474,6 +489,7 @@ socs = {
     'generic_aarch32': soc_generic_aarch32,
     'armada': soc_armada,
     'bluefield': soc_bluefield,
+    'bluefield3': soc_bluefield3,
     'centriq2400': soc_centriq2400,
     'cn9k': soc_cn9k,
     'cn10k' : soc_cn10k,
-- 
2.25.1


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

* [PATCH 2/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs
  2023-02-16 13:59 [PATCH 1/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
@ 2023-02-16 13:59 ` Raslan Darawsheh
  2023-02-16 13:59 ` [PATCH 3/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 13:59 UTC (permalink / raw)
  To: thomas; +Cc: dev, Matan Azrad

This adds the Bluefield-3 and ConnectX-7 device IDs to the
list of supported NVIDIA devices that run the MLX5 compress PMD.
The BlueField-3 device is still in development stage.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/crypto/mlx5/mlx5_crypto.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index 498613939c..9dec1cfbe0 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -994,6 +994,14 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
 					PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
 		},
+		{
+			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+					PCI_DEVICE_ID_MELLANOX_CONNECTX7)
+		},
+		{
+			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+					PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+		},
 		{
 			.vendor_id = 0
 		}
-- 
2.25.1


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

* [PATCH 3/4] doc: update supported devices for NVIDIA NICs
  2023-02-16 13:59 [PATCH 1/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
  2023-02-16 13:59 ` [PATCH 2/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
@ 2023-02-16 13:59 ` Raslan Darawsheh
  2023-02-16 13:59 ` [PATCH 4/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  3 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 13:59 UTC (permalink / raw)
  To: thomas; +Cc: dev, Matan Azrad, Viacheslav Ovsiienko, Ori Kam

This update the supproted list of devices to include
missing ConnectX-7 in some drivers and add BlueFeild-3

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 doc/guides/compressdevs/mlx5.rst |  5 +++--
 doc/guides/cryptodevs/mlx5.rst   | 12 ++++++++----
 doc/guides/nics/mlx5.rst         | 33 +++++++++++++++++++-------------
 doc/guides/platform/mlx5.rst     |  5 +++--
 doc/guides/regexdevs/mlx5.rst    | 12 +++++++-----
 doc/guides/vdpadevs/mlx5.rst     |  5 +++--
 6 files changed, 44 insertions(+), 28 deletions(-)

diff --git a/doc/guides/compressdevs/mlx5.rst b/doc/guides/compressdevs/mlx5.rst
index 37839a59e3..8bf4423882 100644
--- a/doc/guides/compressdevs/mlx5.rst
+++ b/doc/guides/compressdevs/mlx5.rst
@@ -14,8 +14,8 @@ NVIDIA MLX5 Compress Driver
    that are now NVIDIA trademarks.
 
 The mlx5 compress driver library
-(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**
-families of 25/50/100/200 Gb/s adapters.
+(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** families of 25/50/100/200/400 Gb/s adapters.
 
 Design
 ------
@@ -83,6 +83,7 @@ Supported NICs
 --------------
 
 * NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| BlueField-3 SmartNIC
 
 Prerequisites
 -------------
diff --git a/doc/guides/cryptodevs/mlx5.rst b/doc/guides/cryptodevs/mlx5.rst
index 95fcc94fc9..b35ac5f5f2 100644
--- a/doc/guides/cryptodevs/mlx5.rst
+++ b/doc/guides/cryptodevs/mlx5.rst
@@ -14,8 +14,9 @@ NVIDIA MLX5 Crypto Driver
    that are now NVIDIA trademarks.
 
 The MLX5 crypto driver library
-(**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**
-family adapters.
+(**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**,
+**NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-7**, **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** family adapters.
 
 Overview
 --------
@@ -88,7 +89,7 @@ The mlxreg dedicated tool should be used as follows:
   should not be specified.
 
   All the device ports should set it in order to move to operational mode.
-  For BlueField-2, the internal ports in the ARM system should also be set.
+  For BlueField-2, BlueField-3 the internal ports in the ARM system should also be set.
 
 - Query CRYPTO_OPERATIONAL register to make sure the device is in Operational
   mode.
@@ -148,7 +149,9 @@ Supported NICs
 
 * NVIDIA\ |reg| ConnectX\ |reg|-6 200G MCX654106A-HCAT (2x200G)
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx
-* NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| ConnectX\ |reg|-7
+* NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC
+* NVIDIA\ |reg| BlueField\ |reg|-3 SmartNIC
 
 
 Limitations
@@ -168,6 +171,7 @@ FW Prerequisites
 
 - xx.31.0328 for ConnectX-6.
 - xx.32.0108 for ConnectX-6 Dx and BlueField-2.
+- xx.36.xxxx for ConnectX-7 and BlueField-3.
 
 Linux Prerequisites
 ~~~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index ee2df66e77..cec802dbef 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -17,8 +17,8 @@ NVIDIA MLX5 Ethernet Driver
 The mlx5 Ethernet poll mode driver library (**librte_net_mlx5**) provides support
 for **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx** , **NVIDIA ConnectX-5**,
 **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**,
-**NVIDIA ConnectX-7**, **NVIDIA BlueField** and **NVIDIA BlueField-2**
-families of 10/25/40/50/100/200 Gb/s adapters
+**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and
+**NVIDIA BlueField-3** families of 10/25/40/50/100/200/400 Gb/s adapters
 as well as their virtual functions (VF) in SR-IOV context.
 
 
@@ -286,7 +286,7 @@ Limitations
 
 - Flex item:
 
-  - Hardware support: BlueField-2.
+  - Hardware support: **NVIDIA BlueField-2** and **NVIDIA BlueField-3**.
   - Flex item is supported on PF only.
   - Hardware limits ``header_length_mask_width`` up to 6 bits.
   - Firmware supports 8 global sample fields.
@@ -440,7 +440,8 @@ Limitations
 - CRC:
 
   - ``RTE_ETH_RX_OFFLOAD_KEEP_CRC`` cannot be supported with decapsulation
-    for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, and BlueField-2).
+    for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField-2,
+    and BlueField-3).
     The capability bit ``scatter_fcs_w_decap_disable`` shows NIC support.
 
 - TX mbuf fast free:
@@ -670,9 +671,9 @@ for an additional list of options shared with other mlx5 drivers.
   Supported on:
 
   - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
   - POWER9 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7 BlueField, BlueField-2, and BlueField-3.
 
 - ``rxq_pkt_pad_en`` parameter [int]
 
@@ -685,9 +686,9 @@ for an additional list of options shared with other mlx5 drivers.
   Supported on:
 
   - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
   - POWER8 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
 
 - ``delay_drop`` parameter [int]
 
@@ -925,8 +926,8 @@ for an additional list of options shared with other mlx5 drivers.
 - ``txq_mpw_en`` parameter [int]
 
   A nonzero value enables Enhanced Multi-Packet Write (eMPW) for ConnectX-5,
-  ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, BlueField, BlueField-2.
-  eMPW allows the Tx burst function to pack up multiple packets
+  ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2
+  BlueField-3. eMPW allows the Tx burst function to pack up multiple packets
   in a single descriptor session in order to save PCI bandwidth
   and improve performance at the cost of a slightly higher CPU usage.
   When ``txq_inline_mpw`` is set along with ``txq_mpw_en``,
@@ -971,7 +972,7 @@ for an additional list of options shared with other mlx5 drivers.
 - ``tx_vec_en`` parameter [int]
 
   A nonzero value enables Tx vector on ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-  ConnectX-6 Lx, BlueField and BlueField-2 NICs
+  ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3 NICs
   if the number of global Tx queues on the port is less than ``txqs_max_vec``.
   The parameter is deprecated and ignored.
 
@@ -1229,6 +1230,7 @@ The following NVIDIA device families are supported by the same mlx5 driver:
   - ConnectX-7
   - BlueField
   - BlueField-2
+  - BlueField-3
 
 Below are detailed device names:
 
@@ -1259,8 +1261,13 @@ Below are detailed device names:
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 200G MCX623105AN-VDAT (1x200G)
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
-* NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25G)
-
+* NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25Gg
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AA0 (2x200)
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00SV-AA0 (2x200)
+* NVIDIA\ |reg| BlueField\ |reg|-3 400GbE 900-9D3B6-00CN-AB0 (2x400)
+* NVIDIA\ |reg| BlueField\ |reg|-3 100GbE 900-9D3B4-00CC-EA0 (2x100)
+* NVIDIA\ |reg| BlueField\ |reg|-3 100GbE 900-9D3B4-00SC-EA0 (2x100)
+* NVIDIA\ |reg| BlueField\ |reg|-3 400GbE 900-9D3B4-00EN-EA0 (1x100)
 
 Sub-Function
 ------------
diff --git a/doc/guides/platform/mlx5.rst b/doc/guides/platform/mlx5.rst
index 3cc1dd29e2..2d6fbe7e44 100644
--- a/doc/guides/platform/mlx5.rst
+++ b/doc/guides/platform/mlx5.rst
@@ -17,8 +17,8 @@ NVIDIA MLX5 Common Driver
 The mlx5 common driver library (**librte_common_mlx5**) provides support for
 **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx**, **NVIDIA ConnectX-5**,
 **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**,
-**NVIDIA ConnectX-7**, **NVIDIA BlueField**, and **NVIDIA BlueField-2** families of
-10/25/40/50/100/200 Gb/s adapters.
+**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and
+**NVIDIA BlueField-3** families of 10/25/40/50/100/200 Gb/s adapters.
 
 Information and documentation for these adapters can be found on the
 `NVIDIA website <https://www.nvidia.com/en-us/networking/>`_.
@@ -187,6 +187,7 @@ The minimal supported versions are:
   - ConnectX-7: **28.33.2028** and above.
   - BlueField: **18.25.1010** and above.
   - BlueField-2: **24.28.1002** and above.
+  - BlueField-3: **32.36.3126** and above.
 
 The firmware, the libraries libibverbs, libmlx5, and mlnx-ofed-kernel modules
 are packaged in `NVIDIA MLNX_OFED
diff --git a/doc/guides/regexdevs/mlx5.rst b/doc/guides/regexdevs/mlx5.rst
index 19af72bdc8..174b848158 100644
--- a/doc/guides/regexdevs/mlx5.rst
+++ b/doc/guides/regexdevs/mlx5.rst
@@ -14,8 +14,8 @@ NVIDIA MLX5 RegEx Driver
    that are now NVIDIA trademarks.
 
 The mlx5 RegEx (Regular Expression) driver library
-(**librte_regex_mlx5**) provides support for **NVIDIA BlueField-2**
-families of 25/50/100/200 Gb/s adapters.
+(**librte_regex_mlx5**) provides support for **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** families of 25/50/100/200 Gb/s adapters.
 
 Design
 ------
@@ -43,16 +43,18 @@ Supported NICs
 --------------
 
 * NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| BlueField-3 SmartNIC
 
 Prerequisites
 -------------
 
-- BlueField-2 running NVIDIA supported kernel.
-- Enable the RegEx capabilities using system call from the BlueField-2.
+- BlueField-2 or BlueField-3 running NVIDIA supported kernel.
+- Enable the RegEx capabilities using system call from the BlueField-2 or BlueField-3.
 - Official support is not yet released.
 
 
 Limitations
 -----------
 
-- The firmware version must be greater than XX.31.0364
+- The firmware version must be greater than 24.31.0364 for BlueField-2
+  and 32.36.xxxx for BlueField-3.
diff --git a/doc/guides/vdpadevs/mlx5.rst b/doc/guides/vdpadevs/mlx5.rst
index e7cba1b996..f6c3068a21 100644
--- a/doc/guides/vdpadevs/mlx5.rst
+++ b/doc/guides/vdpadevs/mlx5.rst
@@ -16,8 +16,8 @@ NVIDIA MLX5 vDPA Driver
 The mlx5 vDPA (vhost data path acceleration) driver library
 (**librte_vdpa_mlx5**) provides support for **NVIDIA ConnectX-6**,
 **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**, **NVIDIA ConnectX7**,
-**NVIDIA BlueField** and **NVIDIA BlueField-2** families of
-10/25/40/50/100/200 Gb/s adapters as well as their virtual functions (VF) in
+**NVIDIA BlueField**, **NVIDIA BlueField-2** and **NVIDIA BlueField-3** families
+of 10/25/40/50/100/200 Gb/s adapters as well as their virtual functions (VF) in
 SR-IOV context.
 
 .. note::
@@ -39,6 +39,7 @@ Supported NICs
 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
 * NVIDIA\ |reg| BlueField SmartNIC 25G MBF1M332A-ASCAT (2x25G)
 * NVIDIA\ |reg| BlueField |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AAB_Ax
 
 Prerequisites
 -------------
-- 
2.25.1


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

* [PATCH 4/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs
  2023-02-16 13:59 [PATCH 1/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
  2023-02-16 13:59 ` [PATCH 2/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
  2023-02-16 13:59 ` [PATCH 3/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
@ 2023-02-16 13:59 ` Raslan Darawsheh
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  3 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 13:59 UTC (permalink / raw)
  To: thomas
  Cc: dev, Matan Azrad, Viacheslav Ovsiienko, Fan Zhang, Ashish Gupta, Ori Kam

This updates the PCI device names for all NVIDIA BlueField
family.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/common/mlx5/mlx5_common.h     |  8 ++++----
 drivers/common/mlx5/mlx5_common_pci.c |  2 +-
 drivers/compress/mlx5/mlx5_compress.c |  4 ++--
 drivers/crypto/mlx5/mlx5_crypto.c     |  4 ++--
 drivers/net/mlx5/mlx5.c               |  8 ++++----
 drivers/net/mlx5/mlx5_flow.c          | 10 +++++-----
 drivers/net/mlx5/mlx5_txq.c           |  2 +-
 drivers/regex/mlx5/mlx5_regex.c       |  4 ++--
 drivers/vdpa/mlx5/mlx5_vdpa.c         |  4 ++--
 9 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h
index c7bd703497..f8d07d6c6b 100644
--- a/drivers/common/mlx5/mlx5_common.h
+++ b/drivers/common/mlx5/mlx5_common.h
@@ -130,16 +130,16 @@ enum {
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5VF = 0x1018,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5EX = 0x1019,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF = 0x101a,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX5BF = 0xa2d2,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF = 0xa2d3,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD = 0xa2d2,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF = 0xa2d3,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6 = 0x101b,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6VF = 0x101c,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6DX = 0x101d,
 	PCI_DEVICE_ID_MELLANOX_CONNECTXVF = 0x101e,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF = 0xa2d6,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD2 = 0xa2d6,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6LX = 0x101f,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX7 = 0x1021,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX7BF = 0Xa2dc,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD3 = 0Xa2dc,
 };
 
 /* Maximum number of simultaneous unicast MAC addresses. */
diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c
index 73178ce0f3..5122c596bc 100644
--- a/drivers/common/mlx5/mlx5_common_pci.c
+++ b/drivers/common/mlx5/mlx5_common_pci.c
@@ -116,7 +116,7 @@ mlx5_dev_is_vf_pci(struct rte_pci_device *pci_dev)
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX4LXVF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX5VF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX6VF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTXVF:
 		return true;
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index 459e4b5e8a..430f769d41 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -786,11 +786,11 @@ mlx5_compress_dev_remove(struct mlx5_common_device *cdev)
 static const struct rte_pci_id mlx5_compress_pci_id_map[] = {
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index 9dec1cfbe0..5267f48c1e 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -992,7 +992,7 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 		},
 		{
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-					PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+					PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 		},
 		{
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -1000,7 +1000,7 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 		},
 		{
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-					PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+					PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 		},
 		{
 			.vendor_id = 0
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index cfc4609448..f55c1caca0 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -3202,11 +3202,11 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-			       PCI_DEVICE_ID_MELLANOX_CONNECTX5BF)
+			       PCI_DEVICE_ID_MELLANOX_BLUEFIELD)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-			       PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF)
+			       PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -3226,7 +3226,7 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -3238,7 +3238,7 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 73e6d3b486..a6a426caf7 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -11221,8 +11221,8 @@ mlx5_flow_flex_item_create(struct rte_eth_dev *dev,
 		return NULL;
 	}
 	switch (priv->pci_dev->id.device_id) {
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD2:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD3:
 		break;
 	default:
 		rte_flow_error_set(error, ENOTSUP,
@@ -11470,9 +11470,9 @@ int16_t mlx5_flow_get_esw_manager_vport_id(struct rte_eth_dev *dev)
 	if (priv->pci_dev == NULL)
 		return 0;
 	switch (priv->pci_dev->id.device_id) {
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX5BF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD2:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD3:
 	/*
 	 * In old FW which doesn't expose the E-Switch Manager vport ID in the capability,
 	 * only the BF embedded CPUs control the E-Switch Manager port. Hence,
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 5543f2c570..419e913559 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -767,7 +767,7 @@ txq_set_params(struct mlx5_txq_ctrl *txq_ctrl)
 		txqs_inline =
 #if defined(RTE_ARCH_ARM64)
 		(priv->pci_dev && priv->pci_dev->id.device_id ==
-			PCI_DEVICE_ID_MELLANOX_CONNECTX5BF) ?
+			PCI_DEVICE_ID_MELLANOX_BLUEFIELD) ?
 			MLX5_INLINE_MAX_TXQS_BLUEFIELD :
 #endif
 			MLX5_INLINE_MAX_TXQS;
diff --git a/drivers/regex/mlx5/mlx5_regex.c b/drivers/regex/mlx5/mlx5_regex.c
index 4c20daac94..4ed62b538b 100644
--- a/drivers/regex/mlx5/mlx5_regex.c
+++ b/drivers/regex/mlx5/mlx5_regex.c
@@ -156,11 +156,11 @@ mlx5_regex_dev_remove(struct mlx5_common_device *cdev)
 static const struct rte_pci_id mlx5_regex_pci_id_map[] = {
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
index 026daa3f24..f8dfa95133 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
@@ -961,7 +961,7 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -973,7 +973,7 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
-- 
2.25.1


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

* [PATCH v2 0/4] support NVIDIA  Bluefield-3 device
  2023-02-16 13:59 [PATCH 1/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
                   ` (2 preceding siblings ...)
  2023-02-16 13:59 ` [PATCH 4/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
@ 2023-02-16 14:04 ` Raslan Darawsheh
  2023-02-16 14:04   ` [PATCH v2 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
                     ` (4 more replies)
  3 siblings, 5 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 14:04 UTC (permalink / raw)
  To: thomas; +Cc: dev

this series is intentioned to update missing docs, drivers and
config for supporting NVIDIA BlueField-3 device.

---
v2: send cover letter
    fix patches order
---


Raslan Darawsheh (4):
  mlx: update PCI device IDs names for NVIDIA BlueField NICs
  config/arm: add NVIDIA BlueField-3 platform
  crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs
  doc: update supported devices for NVIDIA NICs

 config/arm/meson.build                | 16 +++++++++++++
 doc/guides/compressdevs/mlx5.rst      |  5 ++--
 doc/guides/cryptodevs/mlx5.rst        | 12 ++++++----
 doc/guides/nics/mlx5.rst              | 33 ++++++++++++++++-----------
 doc/guides/platform/mlx5.rst          |  5 ++--
 doc/guides/regexdevs/mlx5.rst         | 12 ++++++----
 doc/guides/vdpadevs/mlx5.rst          |  5 ++--
 drivers/common/mlx5/mlx5_common.h     |  8 +++----
 drivers/common/mlx5/mlx5_common_pci.c |  2 +-
 drivers/compress/mlx5/mlx5_compress.c |  4 ++--
 drivers/crypto/mlx5/mlx5_crypto.c     | 10 +++++++-
 drivers/net/mlx5/mlx5.c               |  8 +++----
 drivers/net/mlx5/mlx5_flow.c          | 10 ++++----
 drivers/net/mlx5/mlx5_txq.c           |  2 +-
 drivers/regex/mlx5/mlx5_regex.c       |  4 ++--
 drivers/vdpa/mlx5/mlx5_vdpa.c         |  4 ++--
 16 files changed, 90 insertions(+), 50 deletions(-)

-- 
2.25.1


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

* [PATCH v2 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
@ 2023-02-16 14:04   ` Raslan Darawsheh
  2023-02-16 14:04   ` [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 14:04 UTC (permalink / raw)
  To: thomas
  Cc: dev, Matan Azrad, Viacheslav Ovsiienko, Fan Zhang, Ashish Gupta, Ori Kam

This updates the PCI device names for all NVIDIA BlueField
family.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/common/mlx5/mlx5_common.h     |  8 ++++----
 drivers/common/mlx5/mlx5_common_pci.c |  2 +-
 drivers/compress/mlx5/mlx5_compress.c |  4 ++--
 drivers/crypto/mlx5/mlx5_crypto.c     |  2 +-
 drivers/net/mlx5/mlx5.c               |  8 ++++----
 drivers/net/mlx5/mlx5_flow.c          | 10 +++++-----
 drivers/net/mlx5/mlx5_txq.c           |  2 +-
 drivers/regex/mlx5/mlx5_regex.c       |  4 ++--
 drivers/vdpa/mlx5/mlx5_vdpa.c         |  4 ++--
 9 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h
index c7bd703497..f8d07d6c6b 100644
--- a/drivers/common/mlx5/mlx5_common.h
+++ b/drivers/common/mlx5/mlx5_common.h
@@ -130,16 +130,16 @@ enum {
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5VF = 0x1018,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5EX = 0x1019,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF = 0x101a,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX5BF = 0xa2d2,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF = 0xa2d3,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD = 0xa2d2,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF = 0xa2d3,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6 = 0x101b,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6VF = 0x101c,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6DX = 0x101d,
 	PCI_DEVICE_ID_MELLANOX_CONNECTXVF = 0x101e,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF = 0xa2d6,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD2 = 0xa2d6,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6LX = 0x101f,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX7 = 0x1021,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX7BF = 0Xa2dc,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD3 = 0Xa2dc,
 };
 
 /* Maximum number of simultaneous unicast MAC addresses. */
diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c
index 73178ce0f3..5122c596bc 100644
--- a/drivers/common/mlx5/mlx5_common_pci.c
+++ b/drivers/common/mlx5/mlx5_common_pci.c
@@ -116,7 +116,7 @@ mlx5_dev_is_vf_pci(struct rte_pci_device *pci_dev)
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX4LXVF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX5VF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX6VF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTXVF:
 		return true;
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index 459e4b5e8a..430f769d41 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -786,11 +786,11 @@ mlx5_compress_dev_remove(struct mlx5_common_device *cdev)
 static const struct rte_pci_id mlx5_compress_pci_id_map[] = {
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index 498613939c..2988642857 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -992,7 +992,7 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 		},
 		{
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-					PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+					PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 		},
 		{
 			.vendor_id = 0
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index cfc4609448..f55c1caca0 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -3202,11 +3202,11 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-			       PCI_DEVICE_ID_MELLANOX_CONNECTX5BF)
+			       PCI_DEVICE_ID_MELLANOX_BLUEFIELD)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-			       PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF)
+			       PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -3226,7 +3226,7 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -3238,7 +3238,7 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 73e6d3b486..a6a426caf7 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -11221,8 +11221,8 @@ mlx5_flow_flex_item_create(struct rte_eth_dev *dev,
 		return NULL;
 	}
 	switch (priv->pci_dev->id.device_id) {
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD2:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD3:
 		break;
 	default:
 		rte_flow_error_set(error, ENOTSUP,
@@ -11470,9 +11470,9 @@ int16_t mlx5_flow_get_esw_manager_vport_id(struct rte_eth_dev *dev)
 	if (priv->pci_dev == NULL)
 		return 0;
 	switch (priv->pci_dev->id.device_id) {
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX5BF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD2:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD3:
 	/*
 	 * In old FW which doesn't expose the E-Switch Manager vport ID in the capability,
 	 * only the BF embedded CPUs control the E-Switch Manager port. Hence,
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 5543f2c570..419e913559 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -767,7 +767,7 @@ txq_set_params(struct mlx5_txq_ctrl *txq_ctrl)
 		txqs_inline =
 #if defined(RTE_ARCH_ARM64)
 		(priv->pci_dev && priv->pci_dev->id.device_id ==
-			PCI_DEVICE_ID_MELLANOX_CONNECTX5BF) ?
+			PCI_DEVICE_ID_MELLANOX_BLUEFIELD) ?
 			MLX5_INLINE_MAX_TXQS_BLUEFIELD :
 #endif
 			MLX5_INLINE_MAX_TXQS;
diff --git a/drivers/regex/mlx5/mlx5_regex.c b/drivers/regex/mlx5/mlx5_regex.c
index 4c20daac94..4ed62b538b 100644
--- a/drivers/regex/mlx5/mlx5_regex.c
+++ b/drivers/regex/mlx5/mlx5_regex.c
@@ -156,11 +156,11 @@ mlx5_regex_dev_remove(struct mlx5_common_device *cdev)
 static const struct rte_pci_id mlx5_regex_pci_id_map[] = {
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
index 026daa3f24..f8dfa95133 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
@@ -961,7 +961,7 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -973,7 +973,7 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
-- 
2.25.1


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

* [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  2023-02-16 14:04   ` [PATCH v2 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
@ 2023-02-16 14:04   ` Raslan Darawsheh
  2023-02-20  2:50     ` Ruifeng Wang
  2023-02-16 14:04   ` [PATCH v2 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
                     ` (2 subsequent siblings)
  4 siblings, 1 reply; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 14:04 UTC (permalink / raw)
  To: thomas; +Cc: dev, Ruifeng Wang, Bruce Richardson

Add meson build configuration for NVIDIA BlueField-3 platform
with Cortex-A78AE cores.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 config/arm/meson.build | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 6442ec9596..89d8f327f1 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -85,6 +85,9 @@ part_number_config_arm = {
             ['RTE_MAX_NUMA_NODES', 1]
         ]
     },
+    '0xd42': {
+        'march': 'armv8.4-a',
+    },
     '0xd49': {
         'march': 'armv8.5-a',
         'march_features': ['sve2'],
@@ -442,12 +445,24 @@ soc_thunderxt83 = {
     'part_number': '0xa3'
 }
 
+soc_bluefield3 = {
+  'description': 'NVIDIA BlueField-3',
+  'implementer': '0x41',
+   'flags': [
+          ['RTE_MAX_LCORE', 32],
+          ['RTE_MAX_NUMA_NODES', 1]
+      ],
+   'part_number': '0xd42',
+   'numa': false
+}
+
 '''
 Start of SoCs list
 generic:         Generic un-optimized build for armv8 aarch64 execution mode.
 generic_aarch32: Generic un-optimized build for armv8 aarch32 execution mode.
 armada:          Marvell ARMADA
 bluefield:       NVIDIA BlueField
+bluefield3:      NVIDIA BlueField 3
 centriq2400:     Qualcomm Centriq 2400
 cn9k:            Marvell OCTEON 9
 cn10k:           Marvell OCTEON 10
@@ -474,6 +489,7 @@ socs = {
     'generic_aarch32': soc_generic_aarch32,
     'armada': soc_armada,
     'bluefield': soc_bluefield,
+    'bluefield3': soc_bluefield3,
     'centriq2400': soc_centriq2400,
     'cn9k': soc_cn9k,
     'cn10k' : soc_cn10k,
-- 
2.25.1


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

* [PATCH v2 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  2023-02-16 14:04   ` [PATCH v2 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
  2023-02-16 14:04   ` [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
@ 2023-02-16 14:04   ` Raslan Darawsheh
  2023-02-16 14:04   ` [PATCH v2 4/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 14:04 UTC (permalink / raw)
  To: thomas; +Cc: dev, Matan Azrad

This adds the Bluefield-3 and ConnectX-7 device IDs to the
list of supported NVIDIA devices that run the MLX5 compress PMD.
The BlueField-3 device is still in development stage.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/crypto/mlx5/mlx5_crypto.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index 2988642857..5267f48c1e 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -994,6 +994,14 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
 					PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 		},
+		{
+			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+					PCI_DEVICE_ID_MELLANOX_CONNECTX7)
+		},
+		{
+			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+					PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
+		},
 		{
 			.vendor_id = 0
 		}
-- 
2.25.1


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

* [PATCH v2 4/4] doc: update supported devices for NVIDIA NICs
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
                     ` (2 preceding siblings ...)
  2023-02-16 14:04   ` [PATCH v2 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
@ 2023-02-16 14:04   ` Raslan Darawsheh
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-16 14:04 UTC (permalink / raw)
  To: thomas; +Cc: dev, Matan Azrad, Viacheslav Ovsiienko, Ori Kam

This update the supproted list of devices to include
missing ConnectX-7 in some drivers and add BlueFeild-3

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 doc/guides/compressdevs/mlx5.rst |  5 +++--
 doc/guides/cryptodevs/mlx5.rst   | 12 ++++++++----
 doc/guides/nics/mlx5.rst         | 33 +++++++++++++++++++-------------
 doc/guides/platform/mlx5.rst     |  5 +++--
 doc/guides/regexdevs/mlx5.rst    | 12 +++++++-----
 doc/guides/vdpadevs/mlx5.rst     |  5 +++--
 6 files changed, 44 insertions(+), 28 deletions(-)

diff --git a/doc/guides/compressdevs/mlx5.rst b/doc/guides/compressdevs/mlx5.rst
index 37839a59e3..8bf4423882 100644
--- a/doc/guides/compressdevs/mlx5.rst
+++ b/doc/guides/compressdevs/mlx5.rst
@@ -14,8 +14,8 @@ NVIDIA MLX5 Compress Driver
    that are now NVIDIA trademarks.
 
 The mlx5 compress driver library
-(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**
-families of 25/50/100/200 Gb/s adapters.
+(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** families of 25/50/100/200/400 Gb/s adapters.
 
 Design
 ------
@@ -83,6 +83,7 @@ Supported NICs
 --------------
 
 * NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| BlueField-3 SmartNIC
 
 Prerequisites
 -------------
diff --git a/doc/guides/cryptodevs/mlx5.rst b/doc/guides/cryptodevs/mlx5.rst
index 95fcc94fc9..b35ac5f5f2 100644
--- a/doc/guides/cryptodevs/mlx5.rst
+++ b/doc/guides/cryptodevs/mlx5.rst
@@ -14,8 +14,9 @@ NVIDIA MLX5 Crypto Driver
    that are now NVIDIA trademarks.
 
 The MLX5 crypto driver library
-(**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**
-family adapters.
+(**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**,
+**NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-7**, **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** family adapters.
 
 Overview
 --------
@@ -88,7 +89,7 @@ The mlxreg dedicated tool should be used as follows:
   should not be specified.
 
   All the device ports should set it in order to move to operational mode.
-  For BlueField-2, the internal ports in the ARM system should also be set.
+  For BlueField-2, BlueField-3 the internal ports in the ARM system should also be set.
 
 - Query CRYPTO_OPERATIONAL register to make sure the device is in Operational
   mode.
@@ -148,7 +149,9 @@ Supported NICs
 
 * NVIDIA\ |reg| ConnectX\ |reg|-6 200G MCX654106A-HCAT (2x200G)
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx
-* NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| ConnectX\ |reg|-7
+* NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC
+* NVIDIA\ |reg| BlueField\ |reg|-3 SmartNIC
 
 
 Limitations
@@ -168,6 +171,7 @@ FW Prerequisites
 
 - xx.31.0328 for ConnectX-6.
 - xx.32.0108 for ConnectX-6 Dx and BlueField-2.
+- xx.36.xxxx for ConnectX-7 and BlueField-3.
 
 Linux Prerequisites
 ~~~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index ee2df66e77..cec802dbef 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -17,8 +17,8 @@ NVIDIA MLX5 Ethernet Driver
 The mlx5 Ethernet poll mode driver library (**librte_net_mlx5**) provides support
 for **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx** , **NVIDIA ConnectX-5**,
 **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**,
-**NVIDIA ConnectX-7**, **NVIDIA BlueField** and **NVIDIA BlueField-2**
-families of 10/25/40/50/100/200 Gb/s adapters
+**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and
+**NVIDIA BlueField-3** families of 10/25/40/50/100/200/400 Gb/s adapters
 as well as their virtual functions (VF) in SR-IOV context.
 
 
@@ -286,7 +286,7 @@ Limitations
 
 - Flex item:
 
-  - Hardware support: BlueField-2.
+  - Hardware support: **NVIDIA BlueField-2** and **NVIDIA BlueField-3**.
   - Flex item is supported on PF only.
   - Hardware limits ``header_length_mask_width`` up to 6 bits.
   - Firmware supports 8 global sample fields.
@@ -440,7 +440,8 @@ Limitations
 - CRC:
 
   - ``RTE_ETH_RX_OFFLOAD_KEEP_CRC`` cannot be supported with decapsulation
-    for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, and BlueField-2).
+    for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField-2,
+    and BlueField-3).
     The capability bit ``scatter_fcs_w_decap_disable`` shows NIC support.
 
 - TX mbuf fast free:
@@ -670,9 +671,9 @@ for an additional list of options shared with other mlx5 drivers.
   Supported on:
 
   - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
   - POWER9 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7 BlueField, BlueField-2, and BlueField-3.
 
 - ``rxq_pkt_pad_en`` parameter [int]
 
@@ -685,9 +686,9 @@ for an additional list of options shared with other mlx5 drivers.
   Supported on:
 
   - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
   - POWER8 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
 
 - ``delay_drop`` parameter [int]
 
@@ -925,8 +926,8 @@ for an additional list of options shared with other mlx5 drivers.
 - ``txq_mpw_en`` parameter [int]
 
   A nonzero value enables Enhanced Multi-Packet Write (eMPW) for ConnectX-5,
-  ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, BlueField, BlueField-2.
-  eMPW allows the Tx burst function to pack up multiple packets
+  ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2
+  BlueField-3. eMPW allows the Tx burst function to pack up multiple packets
   in a single descriptor session in order to save PCI bandwidth
   and improve performance at the cost of a slightly higher CPU usage.
   When ``txq_inline_mpw`` is set along with ``txq_mpw_en``,
@@ -971,7 +972,7 @@ for an additional list of options shared with other mlx5 drivers.
 - ``tx_vec_en`` parameter [int]
 
   A nonzero value enables Tx vector on ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-  ConnectX-6 Lx, BlueField and BlueField-2 NICs
+  ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3 NICs
   if the number of global Tx queues on the port is less than ``txqs_max_vec``.
   The parameter is deprecated and ignored.
 
@@ -1229,6 +1230,7 @@ The following NVIDIA device families are supported by the same mlx5 driver:
   - ConnectX-7
   - BlueField
   - BlueField-2
+  - BlueField-3
 
 Below are detailed device names:
 
@@ -1259,8 +1261,13 @@ Below are detailed device names:
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 200G MCX623105AN-VDAT (1x200G)
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
-* NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25G)
-
+* NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25Gg
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AA0 (2x200)
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00SV-AA0 (2x200)
+* NVIDIA\ |reg| BlueField\ |reg|-3 400GbE 900-9D3B6-00CN-AB0 (2x400)
+* NVIDIA\ |reg| BlueField\ |reg|-3 100GbE 900-9D3B4-00CC-EA0 (2x100)
+* NVIDIA\ |reg| BlueField\ |reg|-3 100GbE 900-9D3B4-00SC-EA0 (2x100)
+* NVIDIA\ |reg| BlueField\ |reg|-3 400GbE 900-9D3B4-00EN-EA0 (1x100)
 
 Sub-Function
 ------------
diff --git a/doc/guides/platform/mlx5.rst b/doc/guides/platform/mlx5.rst
index 3cc1dd29e2..2d6fbe7e44 100644
--- a/doc/guides/platform/mlx5.rst
+++ b/doc/guides/platform/mlx5.rst
@@ -17,8 +17,8 @@ NVIDIA MLX5 Common Driver
 The mlx5 common driver library (**librte_common_mlx5**) provides support for
 **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx**, **NVIDIA ConnectX-5**,
 **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**,
-**NVIDIA ConnectX-7**, **NVIDIA BlueField**, and **NVIDIA BlueField-2** families of
-10/25/40/50/100/200 Gb/s adapters.
+**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and
+**NVIDIA BlueField-3** families of 10/25/40/50/100/200 Gb/s adapters.
 
 Information and documentation for these adapters can be found on the
 `NVIDIA website <https://www.nvidia.com/en-us/networking/>`_.
@@ -187,6 +187,7 @@ The minimal supported versions are:
   - ConnectX-7: **28.33.2028** and above.
   - BlueField: **18.25.1010** and above.
   - BlueField-2: **24.28.1002** and above.
+  - BlueField-3: **32.36.3126** and above.
 
 The firmware, the libraries libibverbs, libmlx5, and mlnx-ofed-kernel modules
 are packaged in `NVIDIA MLNX_OFED
diff --git a/doc/guides/regexdevs/mlx5.rst b/doc/guides/regexdevs/mlx5.rst
index 19af72bdc8..174b848158 100644
--- a/doc/guides/regexdevs/mlx5.rst
+++ b/doc/guides/regexdevs/mlx5.rst
@@ -14,8 +14,8 @@ NVIDIA MLX5 RegEx Driver
    that are now NVIDIA trademarks.
 
 The mlx5 RegEx (Regular Expression) driver library
-(**librte_regex_mlx5**) provides support for **NVIDIA BlueField-2**
-families of 25/50/100/200 Gb/s adapters.
+(**librte_regex_mlx5**) provides support for **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** families of 25/50/100/200 Gb/s adapters.
 
 Design
 ------
@@ -43,16 +43,18 @@ Supported NICs
 --------------
 
 * NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| BlueField-3 SmartNIC
 
 Prerequisites
 -------------
 
-- BlueField-2 running NVIDIA supported kernel.
-- Enable the RegEx capabilities using system call from the BlueField-2.
+- BlueField-2 or BlueField-3 running NVIDIA supported kernel.
+- Enable the RegEx capabilities using system call from the BlueField-2 or BlueField-3.
 - Official support is not yet released.
 
 
 Limitations
 -----------
 
-- The firmware version must be greater than XX.31.0364
+- The firmware version must be greater than 24.31.0364 for BlueField-2
+  and 32.36.xxxx for BlueField-3.
diff --git a/doc/guides/vdpadevs/mlx5.rst b/doc/guides/vdpadevs/mlx5.rst
index e7cba1b996..f6c3068a21 100644
--- a/doc/guides/vdpadevs/mlx5.rst
+++ b/doc/guides/vdpadevs/mlx5.rst
@@ -16,8 +16,8 @@ NVIDIA MLX5 vDPA Driver
 The mlx5 vDPA (vhost data path acceleration) driver library
 (**librte_vdpa_mlx5**) provides support for **NVIDIA ConnectX-6**,
 **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**, **NVIDIA ConnectX7**,
-**NVIDIA BlueField** and **NVIDIA BlueField-2** families of
-10/25/40/50/100/200 Gb/s adapters as well as their virtual functions (VF) in
+**NVIDIA BlueField**, **NVIDIA BlueField-2** and **NVIDIA BlueField-3** families
+of 10/25/40/50/100/200 Gb/s adapters as well as their virtual functions (VF) in
 SR-IOV context.
 
 .. note::
@@ -39,6 +39,7 @@ Supported NICs
 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
 * NVIDIA\ |reg| BlueField SmartNIC 25G MBF1M332A-ASCAT (2x25G)
 * NVIDIA\ |reg| BlueField |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AAB_Ax
 
 Prerequisites
 -------------
-- 
2.25.1


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

* RE: [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform
  2023-02-16 14:04   ` [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
@ 2023-02-20  2:50     ` Ruifeng Wang
  2023-02-20  8:42       ` Raslan Darawsheh
  0 siblings, 1 reply; 17+ messages in thread
From: Ruifeng Wang @ 2023-02-20  2:50 UTC (permalink / raw)
  To: Raslan Darawsheh, thomas; +Cc: dev, Bruce Richardson, nd

> -----Original Message-----
> From: Raslan Darawsheh <rasland@nvidia.com>
> Sent: Thursday, February 16, 2023 10:04 PM
> To: thomas@monjalon.net
> Cc: dev@dpdk.org; Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce Richardson
> <bruce.richardson@intel.com>
> Subject: [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform
> 
> Add meson build configuration for NVIDIA BlueField-3 platform with Cortex-A78AE cores.
> 
> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
> ---
>  config/arm/meson.build | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
A cross-file 'config/arm/arm64_bluefield3_linux_gcc' is also needed.

Thanks and regards
/Ruifeng

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

* RE: [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform
  2023-02-20  2:50     ` Ruifeng Wang
@ 2023-02-20  8:42       ` Raslan Darawsheh
  0 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-20  8:42 UTC (permalink / raw)
  To: Ruifeng Wang, NBU-Contact-Thomas Monjalon (EXTERNAL)
  Cc: dev, Bruce Richardson, nd

Hi,

> -----Original Message-----
> From: Ruifeng Wang <Ruifeng.Wang@arm.com>
> Sent: Monday, February 20, 2023 4:51 AM
> To: Raslan Darawsheh <rasland@nvidia.com>; NBU-Contact-Thomas
> Monjalon (EXTERNAL) <thomas@monjalon.net>
> Cc: dev@dpdk.org; Bruce Richardson <bruce.richardson@intel.com>; nd
> <nd@arm.com>
> Subject: RE: [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform
> 
> > -----Original Message-----
> > From: Raslan Darawsheh <rasland@nvidia.com>
> > Sent: Thursday, February 16, 2023 10:04 PM
> > To: thomas@monjalon.net
> > Cc: dev@dpdk.org; Ruifeng Wang <Ruifeng.Wang@arm.com>; Bruce
> > Richardson <bruce.richardson@intel.com>
> > Subject: [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform
> >
> > Add meson build configuration for NVIDIA BlueField-3 platform with
> Cortex-A78AE cores.
> >
> > Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
> > ---
> >  config/arm/meson.build | 16 ++++++++++++++++
> >  1 file changed, 16 insertions(+)
> >
> A cross-file 'config/arm/arm64_bluefield3_linux_gcc' is also needed.
> 
> Thanks and regards
> /Ruifeng
Thanks for the input I'll add it in the next version,

Kindest regards,
Raslan Darawsheh

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

* [PATCH v3 0/4]  support NVIDIA Bluefield-3 device
  2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
                     ` (3 preceding siblings ...)
  2023-02-16 14:04   ` [PATCH v2 4/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
@ 2023-02-20  8:48   ` Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
                       ` (4 more replies)
  4 siblings, 5 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-20  8:48 UTC (permalink / raw)
  To: thomas; +Cc: dev, ruifeng.wang

this series is intentioned to update missing docs, drivers and
config for supporting NVIDIA BlueField-3 device.

---
v2: send cover letter
    fix patches order
v3: add missing cross build file
---


Raslan Darawsheh (4):
  mlx: update PCI device IDs names for NVIDIA BlueField NICs
  config/arm: add NVIDIA BlueField-3 platform
  crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs
  doc: update supported devices for NVIDIA NICs

 config/arm/arm64_bluefield3_linux_gcc | 16 +++++++++++++
 config/arm/meson.build                | 16 +++++++++++++
 doc/guides/compressdevs/mlx5.rst      |  5 ++--
 doc/guides/cryptodevs/mlx5.rst        | 12 ++++++----
 doc/guides/nics/mlx5.rst              | 33 ++++++++++++++++-----------
 doc/guides/platform/mlx5.rst          |  5 ++--
 doc/guides/regexdevs/mlx5.rst         | 12 ++++++----
 doc/guides/vdpadevs/mlx5.rst          |  5 ++--
 drivers/common/mlx5/mlx5_common.h     |  8 +++----
 drivers/common/mlx5/mlx5_common_pci.c |  2 +-
 drivers/compress/mlx5/mlx5_compress.c |  4 ++--
 drivers/crypto/mlx5/mlx5_crypto.c     | 10 +++++++-
 drivers/net/mlx5/mlx5.c               |  8 +++----
 drivers/net/mlx5/mlx5_flow.c          | 10 ++++----
 drivers/net/mlx5/mlx5_txq.c           |  2 +-
 drivers/regex/mlx5/mlx5_regex.c       |  4 ++--
 drivers/vdpa/mlx5/mlx5_vdpa.c         |  4 ++--
 17 files changed, 106 insertions(+), 50 deletions(-)
 create mode 100644 config/arm/arm64_bluefield3_linux_gcc

-- 
2.25.1


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

* [PATCH v3 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
@ 2023-02-20  8:48     ` Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
                       ` (3 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-20  8:48 UTC (permalink / raw)
  To: thomas
  Cc: dev, ruifeng.wang, Matan Azrad, Viacheslav Ovsiienko, Fan Zhang,
	Ashish Gupta, Ori Kam

This updates the PCI device names for all NVIDIA BlueField
family.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/common/mlx5/mlx5_common.h     |  8 ++++----
 drivers/common/mlx5/mlx5_common_pci.c |  2 +-
 drivers/compress/mlx5/mlx5_compress.c |  4 ++--
 drivers/crypto/mlx5/mlx5_crypto.c     |  2 +-
 drivers/net/mlx5/mlx5.c               |  8 ++++----
 drivers/net/mlx5/mlx5_flow.c          | 10 +++++-----
 drivers/net/mlx5/mlx5_txq.c           |  2 +-
 drivers/regex/mlx5/mlx5_regex.c       |  4 ++--
 drivers/vdpa/mlx5/mlx5_vdpa.c         |  4 ++--
 9 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h
index c7bd703497..f8d07d6c6b 100644
--- a/drivers/common/mlx5/mlx5_common.h
+++ b/drivers/common/mlx5/mlx5_common.h
@@ -130,16 +130,16 @@ enum {
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5VF = 0x1018,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5EX = 0x1019,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF = 0x101a,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX5BF = 0xa2d2,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF = 0xa2d3,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD = 0xa2d2,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF = 0xa2d3,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6 = 0x101b,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6VF = 0x101c,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6DX = 0x101d,
 	PCI_DEVICE_ID_MELLANOX_CONNECTXVF = 0x101e,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF = 0xa2d6,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD2 = 0xa2d6,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX6LX = 0x101f,
 	PCI_DEVICE_ID_MELLANOX_CONNECTX7 = 0x1021,
-	PCI_DEVICE_ID_MELLANOX_CONNECTX7BF = 0Xa2dc,
+	PCI_DEVICE_ID_MELLANOX_BLUEFIELD3 = 0Xa2dc,
 };
 
 /* Maximum number of simultaneous unicast MAC addresses. */
diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c
index 73178ce0f3..5122c596bc 100644
--- a/drivers/common/mlx5/mlx5_common_pci.c
+++ b/drivers/common/mlx5/mlx5_common_pci.c
@@ -116,7 +116,7 @@ mlx5_dev_is_vf_pci(struct rte_pci_device *pci_dev)
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX4LXVF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX5VF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTX6VF:
 	case PCI_DEVICE_ID_MELLANOX_CONNECTXVF:
 		return true;
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index 459e4b5e8a..430f769d41 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -786,11 +786,11 @@ mlx5_compress_dev_remove(struct mlx5_common_device *cdev)
 static const struct rte_pci_id mlx5_compress_pci_id_map[] = {
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index 498613939c..2988642857 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -992,7 +992,7 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 		},
 		{
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-					PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+					PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 		},
 		{
 			.vendor_id = 0
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index cfc4609448..f55c1caca0 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -3202,11 +3202,11 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-			       PCI_DEVICE_ID_MELLANOX_CONNECTX5BF)
+			       PCI_DEVICE_ID_MELLANOX_BLUEFIELD)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-			       PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF)
+			       PCI_DEVICE_ID_MELLANOX_BLUEFIELDVF)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -3226,7 +3226,7 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -3238,7 +3238,7 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 73e6d3b486..a6a426caf7 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -11221,8 +11221,8 @@ mlx5_flow_flex_item_create(struct rte_eth_dev *dev,
 		return NULL;
 	}
 	switch (priv->pci_dev->id.device_id) {
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD2:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD3:
 		break;
 	default:
 		rte_flow_error_set(error, ENOTSUP,
@@ -11470,9 +11470,9 @@ int16_t mlx5_flow_get_esw_manager_vport_id(struct rte_eth_dev *dev)
 	if (priv->pci_dev == NULL)
 		return 0;
 	switch (priv->pci_dev->id.device_id) {
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX5BF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF:
-	case PCI_DEVICE_ID_MELLANOX_CONNECTX7BF:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD2:
+	case PCI_DEVICE_ID_MELLANOX_BLUEFIELD3:
 	/*
 	 * In old FW which doesn't expose the E-Switch Manager vport ID in the capability,
 	 * only the BF embedded CPUs control the E-Switch Manager port. Hence,
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 5543f2c570..419e913559 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -767,7 +767,7 @@ txq_set_params(struct mlx5_txq_ctrl *txq_ctrl)
 		txqs_inline =
 #if defined(RTE_ARCH_ARM64)
 		(priv->pci_dev && priv->pci_dev->id.device_id ==
-			PCI_DEVICE_ID_MELLANOX_CONNECTX5BF) ?
+			PCI_DEVICE_ID_MELLANOX_BLUEFIELD) ?
 			MLX5_INLINE_MAX_TXQS_BLUEFIELD :
 #endif
 			MLX5_INLINE_MAX_TXQS;
diff --git a/drivers/regex/mlx5/mlx5_regex.c b/drivers/regex/mlx5/mlx5_regex.c
index 4c20daac94..4ed62b538b 100644
--- a/drivers/regex/mlx5/mlx5_regex.c
+++ b/drivers/regex/mlx5/mlx5_regex.c
@@ -156,11 +156,11 @@ mlx5_regex_dev_remove(struct mlx5_common_device *cdev)
 static const struct rte_pci_id mlx5_regex_pci_id_map[] = {
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
index 026daa3f24..f8dfa95133 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
@@ -961,7 +961,7 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX6DXBF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
@@ -973,7 +973,7 @@ static const struct rte_pci_id mlx5_vdpa_pci_id_map[] = {
 	},
 	{
 		RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
-				PCI_DEVICE_ID_MELLANOX_CONNECTX7BF)
+				PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
 	},
 	{
 		.vendor_id = 0
-- 
2.25.1


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

* [PATCH v3 2/4] config/arm: add NVIDIA BlueField-3 platform
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
@ 2023-02-20  8:48     ` Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
                       ` (2 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-20  8:48 UTC (permalink / raw)
  To: thomas; +Cc: dev, ruifeng.wang, Bruce Richardson

Add meson build configuration for NVIDIA BlueField-3 platform
with Cortex-A78AE cores.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 config/arm/arm64_bluefield3_linux_gcc | 16 ++++++++++++++++
 config/arm/meson.build                | 16 ++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 config/arm/arm64_bluefield3_linux_gcc

diff --git a/config/arm/arm64_bluefield3_linux_gcc b/config/arm/arm64_bluefield3_linux_gcc
new file mode 100644
index 0000000000..775cf5883d
--- /dev/null
+++ b/config/arm/arm64_bluefield3_linux_gcc
@@ -0,0 +1,16 @@
+[binaries]
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-g++']
+ar = 'aarch64-linux-gnu-gcc-ar'
+strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
+pcap-config = ''
+
+[host_machine]
+system = 'linux'
+cpu_family = 'aarch64'
+cpu = 'armv8.4-a'
+endian = 'little'
+
+[properties]
+platform = 'bluefield3'
diff --git a/config/arm/meson.build b/config/arm/meson.build
index 6442ec9596..89d8f327f1 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -85,6 +85,9 @@ part_number_config_arm = {
             ['RTE_MAX_NUMA_NODES', 1]
         ]
     },
+    '0xd42': {
+        'march': 'armv8.4-a',
+    },
     '0xd49': {
         'march': 'armv8.5-a',
         'march_features': ['sve2'],
@@ -442,12 +445,24 @@ soc_thunderxt83 = {
     'part_number': '0xa3'
 }
 
+soc_bluefield3 = {
+  'description': 'NVIDIA BlueField-3',
+  'implementer': '0x41',
+   'flags': [
+          ['RTE_MAX_LCORE', 32],
+          ['RTE_MAX_NUMA_NODES', 1]
+      ],
+   'part_number': '0xd42',
+   'numa': false
+}
+
 '''
 Start of SoCs list
 generic:         Generic un-optimized build for armv8 aarch64 execution mode.
 generic_aarch32: Generic un-optimized build for armv8 aarch32 execution mode.
 armada:          Marvell ARMADA
 bluefield:       NVIDIA BlueField
+bluefield3:      NVIDIA BlueField 3
 centriq2400:     Qualcomm Centriq 2400
 cn9k:            Marvell OCTEON 9
 cn10k:           Marvell OCTEON 10
@@ -474,6 +489,7 @@ socs = {
     'generic_aarch32': soc_generic_aarch32,
     'armada': soc_armada,
     'bluefield': soc_bluefield,
+    'bluefield3': soc_bluefield3,
     'centriq2400': soc_centriq2400,
     'cn9k': soc_cn9k,
     'cn10k' : soc_cn10k,
-- 
2.25.1


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

* [PATCH v3 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
@ 2023-02-20  8:48     ` Raslan Darawsheh
  2023-02-20  8:48     ` [PATCH v3 4/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
  2023-02-20 10:40     ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Thomas Monjalon
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-20  8:48 UTC (permalink / raw)
  To: thomas; +Cc: dev, ruifeng.wang, Matan Azrad

This adds the Bluefield-3 and ConnectX-7 device IDs to the
list of supported NVIDIA devices that run the MLX5 compress PMD.
The BlueField-3 device is still in development stage.

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/crypto/mlx5/mlx5_crypto.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c
index 2988642857..5267f48c1e 100644
--- a/drivers/crypto/mlx5/mlx5_crypto.c
+++ b/drivers/crypto/mlx5/mlx5_crypto.c
@@ -994,6 +994,14 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = {
 			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
 					PCI_DEVICE_ID_MELLANOX_BLUEFIELD2)
 		},
+		{
+			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+					PCI_DEVICE_ID_MELLANOX_CONNECTX7)
+		},
+		{
+			RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+					PCI_DEVICE_ID_MELLANOX_BLUEFIELD3)
+		},
 		{
 			.vendor_id = 0
 		}
-- 
2.25.1


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

* [PATCH v3 4/4] doc: update supported devices for NVIDIA NICs
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
                       ` (2 preceding siblings ...)
  2023-02-20  8:48     ` [PATCH v3 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
@ 2023-02-20  8:48     ` Raslan Darawsheh
  2023-02-20 10:40     ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Thomas Monjalon
  4 siblings, 0 replies; 17+ messages in thread
From: Raslan Darawsheh @ 2023-02-20  8:48 UTC (permalink / raw)
  To: thomas; +Cc: dev, ruifeng.wang, Matan Azrad, Viacheslav Ovsiienko, Ori Kam

This update the supproted list of devices to include
missing ConnectX-7 in some drivers and add BlueFeild-3

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
 doc/guides/compressdevs/mlx5.rst |  5 +++--
 doc/guides/cryptodevs/mlx5.rst   | 12 ++++++++----
 doc/guides/nics/mlx5.rst         | 33 +++++++++++++++++++-------------
 doc/guides/platform/mlx5.rst     |  5 +++--
 doc/guides/regexdevs/mlx5.rst    | 12 +++++++-----
 doc/guides/vdpadevs/mlx5.rst     |  5 +++--
 6 files changed, 44 insertions(+), 28 deletions(-)

diff --git a/doc/guides/compressdevs/mlx5.rst b/doc/guides/compressdevs/mlx5.rst
index 37839a59e3..8bf4423882 100644
--- a/doc/guides/compressdevs/mlx5.rst
+++ b/doc/guides/compressdevs/mlx5.rst
@@ -14,8 +14,8 @@ NVIDIA MLX5 Compress Driver
    that are now NVIDIA trademarks.
 
 The mlx5 compress driver library
-(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**
-families of 25/50/100/200 Gb/s adapters.
+(**librte_compress_mlx5**) provides support for **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** families of 25/50/100/200/400 Gb/s adapters.
 
 Design
 ------
@@ -83,6 +83,7 @@ Supported NICs
 --------------
 
 * NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| BlueField-3 SmartNIC
 
 Prerequisites
 -------------
diff --git a/doc/guides/cryptodevs/mlx5.rst b/doc/guides/cryptodevs/mlx5.rst
index 95fcc94fc9..b35ac5f5f2 100644
--- a/doc/guides/cryptodevs/mlx5.rst
+++ b/doc/guides/cryptodevs/mlx5.rst
@@ -14,8 +14,9 @@ NVIDIA MLX5 Crypto Driver
    that are now NVIDIA trademarks.
 
 The MLX5 crypto driver library
-(**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**
-family adapters.
+(**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**,
+**NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-7**, **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** family adapters.
 
 Overview
 --------
@@ -88,7 +89,7 @@ The mlxreg dedicated tool should be used as follows:
   should not be specified.
 
   All the device ports should set it in order to move to operational mode.
-  For BlueField-2, the internal ports in the ARM system should also be set.
+  For BlueField-2, BlueField-3 the internal ports in the ARM system should also be set.
 
 - Query CRYPTO_OPERATIONAL register to make sure the device is in Operational
   mode.
@@ -148,7 +149,9 @@ Supported NICs
 
 * NVIDIA\ |reg| ConnectX\ |reg|-6 200G MCX654106A-HCAT (2x200G)
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx
-* NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| ConnectX\ |reg|-7
+* NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC
+* NVIDIA\ |reg| BlueField\ |reg|-3 SmartNIC
 
 
 Limitations
@@ -168,6 +171,7 @@ FW Prerequisites
 
 - xx.31.0328 for ConnectX-6.
 - xx.32.0108 for ConnectX-6 Dx and BlueField-2.
+- xx.36.xxxx for ConnectX-7 and BlueField-3.
 
 Linux Prerequisites
 ~~~~~~~~~~~~~~~~~~~
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index ee2df66e77..cec802dbef 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -17,8 +17,8 @@ NVIDIA MLX5 Ethernet Driver
 The mlx5 Ethernet poll mode driver library (**librte_net_mlx5**) provides support
 for **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx** , **NVIDIA ConnectX-5**,
 **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**,
-**NVIDIA ConnectX-7**, **NVIDIA BlueField** and **NVIDIA BlueField-2**
-families of 10/25/40/50/100/200 Gb/s adapters
+**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and
+**NVIDIA BlueField-3** families of 10/25/40/50/100/200/400 Gb/s adapters
 as well as their virtual functions (VF) in SR-IOV context.
 
 
@@ -286,7 +286,7 @@ Limitations
 
 - Flex item:
 
-  - Hardware support: BlueField-2.
+  - Hardware support: **NVIDIA BlueField-2** and **NVIDIA BlueField-3**.
   - Flex item is supported on PF only.
   - Hardware limits ``header_length_mask_width`` up to 6 bits.
   - Firmware supports 8 global sample fields.
@@ -440,7 +440,8 @@ Limitations
 - CRC:
 
   - ``RTE_ETH_RX_OFFLOAD_KEEP_CRC`` cannot be supported with decapsulation
-    for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, and BlueField-2).
+    for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField-2,
+    and BlueField-3).
     The capability bit ``scatter_fcs_w_decap_disable`` shows NIC support.
 
 - TX mbuf fast free:
@@ -670,9 +671,9 @@ for an additional list of options shared with other mlx5 drivers.
   Supported on:
 
   - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
   - POWER9 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7 BlueField, BlueField-2, and BlueField-3.
 
 - ``rxq_pkt_pad_en`` parameter [int]
 
@@ -685,9 +686,9 @@ for an additional list of options shared with other mlx5 drivers.
   Supported on:
 
   - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
   - POWER8 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-    ConnectX-6 Lx, BlueField and BlueField-2.
+    ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3.
 
 - ``delay_drop`` parameter [int]
 
@@ -925,8 +926,8 @@ for an additional list of options shared with other mlx5 drivers.
 - ``txq_mpw_en`` parameter [int]
 
   A nonzero value enables Enhanced Multi-Packet Write (eMPW) for ConnectX-5,
-  ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, BlueField, BlueField-2.
-  eMPW allows the Tx burst function to pack up multiple packets
+  ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2
+  BlueField-3. eMPW allows the Tx burst function to pack up multiple packets
   in a single descriptor session in order to save PCI bandwidth
   and improve performance at the cost of a slightly higher CPU usage.
   When ``txq_inline_mpw`` is set along with ``txq_mpw_en``,
@@ -971,7 +972,7 @@ for an additional list of options shared with other mlx5 drivers.
 - ``tx_vec_en`` parameter [int]
 
   A nonzero value enables Tx vector on ConnectX-5, ConnectX-6, ConnectX-6 Dx,
-  ConnectX-6 Lx, BlueField and BlueField-2 NICs
+  ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3 NICs
   if the number of global Tx queues on the port is less than ``txqs_max_vec``.
   The parameter is deprecated and ignored.
 
@@ -1229,6 +1230,7 @@ The following NVIDIA device families are supported by the same mlx5 driver:
   - ConnectX-7
   - BlueField
   - BlueField-2
+  - BlueField-3
 
 Below are detailed device names:
 
@@ -1259,8 +1261,13 @@ Below are detailed device names:
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 200G MCX623105AN-VDAT (1x200G)
 * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G)
 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
-* NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25G)
-
+* NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25Gg
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AA0 (2x200)
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00SV-AA0 (2x200)
+* NVIDIA\ |reg| BlueField\ |reg|-3 400GbE 900-9D3B6-00CN-AB0 (2x400)
+* NVIDIA\ |reg| BlueField\ |reg|-3 100GbE 900-9D3B4-00CC-EA0 (2x100)
+* NVIDIA\ |reg| BlueField\ |reg|-3 100GbE 900-9D3B4-00SC-EA0 (2x100)
+* NVIDIA\ |reg| BlueField\ |reg|-3 400GbE 900-9D3B4-00EN-EA0 (1x100)
 
 Sub-Function
 ------------
diff --git a/doc/guides/platform/mlx5.rst b/doc/guides/platform/mlx5.rst
index 3cc1dd29e2..2d6fbe7e44 100644
--- a/doc/guides/platform/mlx5.rst
+++ b/doc/guides/platform/mlx5.rst
@@ -17,8 +17,8 @@ NVIDIA MLX5 Common Driver
 The mlx5 common driver library (**librte_common_mlx5**) provides support for
 **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx**, **NVIDIA ConnectX-5**,
 **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**,
-**NVIDIA ConnectX-7**, **NVIDIA BlueField**, and **NVIDIA BlueField-2** families of
-10/25/40/50/100/200 Gb/s adapters.
+**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and
+**NVIDIA BlueField-3** families of 10/25/40/50/100/200 Gb/s adapters.
 
 Information and documentation for these adapters can be found on the
 `NVIDIA website <https://www.nvidia.com/en-us/networking/>`_.
@@ -187,6 +187,7 @@ The minimal supported versions are:
   - ConnectX-7: **28.33.2028** and above.
   - BlueField: **18.25.1010** and above.
   - BlueField-2: **24.28.1002** and above.
+  - BlueField-3: **32.36.3126** and above.
 
 The firmware, the libraries libibverbs, libmlx5, and mlnx-ofed-kernel modules
 are packaged in `NVIDIA MLNX_OFED
diff --git a/doc/guides/regexdevs/mlx5.rst b/doc/guides/regexdevs/mlx5.rst
index 19af72bdc8..174b848158 100644
--- a/doc/guides/regexdevs/mlx5.rst
+++ b/doc/guides/regexdevs/mlx5.rst
@@ -14,8 +14,8 @@ NVIDIA MLX5 RegEx Driver
    that are now NVIDIA trademarks.
 
 The mlx5 RegEx (Regular Expression) driver library
-(**librte_regex_mlx5**) provides support for **NVIDIA BlueField-2**
-families of 25/50/100/200 Gb/s adapters.
+(**librte_regex_mlx5**) provides support for **NVIDIA BlueField-2**,
+and **NVIDIA BlueField-3** families of 25/50/100/200 Gb/s adapters.
 
 Design
 ------
@@ -43,16 +43,18 @@ Supported NICs
 --------------
 
 * NVIDIA\ |reg| BlueField-2 SmartNIC
+* NVIDIA\ |reg| BlueField-3 SmartNIC
 
 Prerequisites
 -------------
 
-- BlueField-2 running NVIDIA supported kernel.
-- Enable the RegEx capabilities using system call from the BlueField-2.
+- BlueField-2 or BlueField-3 running NVIDIA supported kernel.
+- Enable the RegEx capabilities using system call from the BlueField-2 or BlueField-3.
 - Official support is not yet released.
 
 
 Limitations
 -----------
 
-- The firmware version must be greater than XX.31.0364
+- The firmware version must be greater than 24.31.0364 for BlueField-2
+  and 32.36.xxxx for BlueField-3.
diff --git a/doc/guides/vdpadevs/mlx5.rst b/doc/guides/vdpadevs/mlx5.rst
index e7cba1b996..f6c3068a21 100644
--- a/doc/guides/vdpadevs/mlx5.rst
+++ b/doc/guides/vdpadevs/mlx5.rst
@@ -16,8 +16,8 @@ NVIDIA MLX5 vDPA Driver
 The mlx5 vDPA (vhost data path acceleration) driver library
 (**librte_vdpa_mlx5**) provides support for **NVIDIA ConnectX-6**,
 **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**, **NVIDIA ConnectX7**,
-**NVIDIA BlueField** and **NVIDIA BlueField-2** families of
-10/25/40/50/100/200 Gb/s adapters as well as their virtual functions (VF) in
+**NVIDIA BlueField**, **NVIDIA BlueField-2** and **NVIDIA BlueField-3** families
+of 10/25/40/50/100/200 Gb/s adapters as well as their virtual functions (VF) in
 SR-IOV context.
 
 .. note::
@@ -39,6 +39,7 @@ Supported NICs
 * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G)
 * NVIDIA\ |reg| BlueField SmartNIC 25G MBF1M332A-ASCAT (2x25G)
 * NVIDIA\ |reg| BlueField |reg|-2 SmartNIC MT41686 - MBF2H332A-AEEOT_A1 (2x25G)
+* NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AAB_Ax
 
 Prerequisites
 -------------
-- 
2.25.1


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

* Re: [PATCH v3 0/4]  support NVIDIA Bluefield-3 device
  2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
                       ` (3 preceding siblings ...)
  2023-02-20  8:48     ` [PATCH v3 4/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
@ 2023-02-20 10:40     ` Thomas Monjalon
  4 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2023-02-20 10:40 UTC (permalink / raw)
  To: Raslan Darawsheh; +Cc: dev, ruifeng.wang

> Raslan Darawsheh (4):
>   mlx: update PCI device IDs names for NVIDIA BlueField NICs
>   config/arm: add NVIDIA BlueField-3 platform
>   crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs
>   doc: update supported devices for NVIDIA NICs

Applied, thanks.




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

end of thread, other threads:[~2023-02-20 10:40 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-16 13:59 [PATCH 1/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
2023-02-16 13:59 ` [PATCH 2/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
2023-02-16 13:59 ` [PATCH 3/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
2023-02-16 13:59 ` [PATCH 4/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
2023-02-16 14:04 ` [PATCH v2 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
2023-02-16 14:04   ` [PATCH v2 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
2023-02-16 14:04   ` [PATCH v2 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
2023-02-20  2:50     ` Ruifeng Wang
2023-02-20  8:42       ` Raslan Darawsheh
2023-02-16 14:04   ` [PATCH v2 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
2023-02-16 14:04   ` [PATCH v2 4/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
2023-02-20  8:48   ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Raslan Darawsheh
2023-02-20  8:48     ` [PATCH v3 1/4] mlx: update PCI device IDs names for NVIDIA BlueField NICs Raslan Darawsheh
2023-02-20  8:48     ` [PATCH v3 2/4] config/arm: add NVIDIA BlueField-3 platform Raslan Darawsheh
2023-02-20  8:48     ` [PATCH v3 3/4] crypto/mlx5: add Bluefield-3 and ConnectX-7 device IDs Raslan Darawsheh
2023-02-20  8:48     ` [PATCH v3 4/4] doc: update supported devices for NVIDIA NICs Raslan Darawsheh
2023-02-20 10:40     ` [PATCH v3 0/4] support NVIDIA Bluefield-3 device Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).