Skip to content

Commit 7172d85

Browse files
[Nvidia] [DPU] Update SAI to SAIBuild0.0.30.0, SDK to v24.4-RC2 (sonic-net#18769)
- Why I did it Update SAI to SAIBuild0.0.30.0, SDK to v24.4-RC2. - How I did it Align SDK compilation makefiles to be compatible with the latest version. - How to verify it Build sonic-nvidia-bluefield.bin image.
1 parent 65b07ce commit 7172d85

14 files changed

+240
-54
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/pinctrl-mlxbf3.c b/pinctrl-mlxbf3.c
2+
index 8371d83..d3746f6 100644
3+
--- a/pinctrl-mlxbf3.c
4+
+++ b/pinctrl-mlxbf3.c
5+
@@ -18,7 +18,7 @@
6+
7+
#define DRV_VERSION "1.0"
8+
9+
-#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 3, 0)
10+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0)
11+
struct pinfunction {
12+
const char *name;
13+
const char * const *groups;

platform/nvidia-bluefield/recipes/dpu-sai.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# limitations under the License.
1616
#
1717

18-
DPU_SAI_VERSION = SAIBuild0.0.29.0
18+
DPU_SAI_VERSION = SAIBuild0.0.30.0
1919

2020
# Place here URL where SAI sources exist
2121
DPU_SAI_SOURCE_BASE_URL=

platform/nvidia-bluefield/recipes/sdk.dep

-17
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,6 @@ $(DPDK_DEV)_CACHE_MODE := GIT_CONTENT_SHA
112112
$(DPDK_DEV)_DEP_FLAGS := $(SDK_COMMON_FLAGS_LIST)
113113
$(DPDK_DEV)_DEP_FILES := $(DEP_FILES)
114114

115-
# Collectx CLXAPI
116-
117-
FLAGS := $($(COLLECTX_CLXAPI)_URL)
118-
DEP_FILES := $(SDK_COMMON_FILES_LIST)
119-
120-
$(COLLECTX_CLXAPI)_CACHE_MODE := GIT_CONTENT_SHA
121-
$(COLLECTX_CLXAPI)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(FLAGS)
122-
$(COLLECTX_CLXAPI)_DEP_FILES := $(DEP_FILES)
123115

124116
# RXP compiler
125117

@@ -135,15 +127,6 @@ $(LIBRXPCOMPILER_DEV)_CACHE_MODE := GIT_CONTENT_SHA
135127
$(LIBRXPCOMPILER_DEV)_DEP_FLAGS := $(SDK_COMMON_FLAGS_LIST)
136128
$(LIBRXPCOMPILER_DEV)_DEP_FILES := $(DEP_FILES)
137129

138-
# UCX
139-
140-
SPATH := $($(UCX)_SRC_PATH)
141-
DEP_FILES := $(SDK_COMMON_FILES_LIST)
142-
DEP_FILES += $(shell git ls-files -- $(SPATH))
143-
144-
$(UCX)_CACHE_MODE := GIT_CONTENT_SHA
145-
$(UCX)_DEP_FLAGS := $(SDK_COMMON_FLAGS_LIST)
146-
$(UCX)_DEP_FILES := $(DEP_FILES)
147130

148131
# GRPC
149132

platform/nvidia-bluefield/recipes/sdk.mk

+6-34
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ SDK_BASE_PATH = $(PLATFORM_PATH)/sdk-src/sonic-bluefield-packages/bin
1919

2020
# Place here URL where SDK sources exist
2121
SDK_SOURCE_BASE_URL =
22-
SDK_VERSION = 24.1-RC3
22+
SDK_VERSION = 24.4-RC2
2323

2424
SDK_COLLECTX_URL = https://linux.mellanox.com/public/repo/doca/1.5.2/debian12/aarch64/
2525

@@ -213,20 +213,6 @@ export DPDK_DERIVED_DEBS
213213
SDK_DEBS += $(DPDK) $(DPDK_DERIVED_DEBS)
214214
SDK_SRC_TARGETS += $(DPDK)
215215

216-
# Collectx
217-
218-
COLLECTX_CLXAPI = collectx_1.14.3-9642347-debian12.1-aarch64-clxapi.deb
219-
$(COLLECTX_CLXAPI)_URL = $(SDK_COLLECTX_URL)/collectx_1.14.3-9642347-debian12.1-aarch64-clxapi.deb
220-
$(COLLECTX_CLXAPI)_RDEPENDS = $(IB_UMAD)
221-
222-
COLLECTX_CLXAPI_DEV = collectx_1.14.3-9642347-debian12.1-aarch64-clxapidev.deb
223-
$(COLLECTX_CLXAPI_DEV)_URL = $(SDK_COLLECTX_URL)/collectx_1.14.3-9642347-debian12.1-aarch64-clxapidev.deb
224-
$(COLLECTX_CLXAPI_DEV)_DEPENDS = $(COLLECTX_CLXAPI)
225-
$(COLLECTX_CLXAPI_DEV)_RDEPENDS = $(IB_UMAD)
226-
227-
SDK_DEBS += $(COLLECTX_CLXAPI) $(COLLECTX_CLXAPI_DEV)
228-
SDK_ONLINE_TARGETS += $(COLLECTX_CLXAPI) $(COLLECTX_CLXAPI_DEV)
229-
230216
# RXP compiler and derived packages
231217

232218
RXPCOMPILER_VER = $(call get_sdk_package_version_full,"rxp-tools")
@@ -245,20 +231,6 @@ export RXPCOMPILER_DERIVED_DEBS
245231
SDK_DEBS += $(RXPCOMPILER) $(RXPCOMPILER_DERIVED_DEBS)
246232
SDK_SRC_TARGETS += $(RXPCOMPILER)
247233

248-
# UCX and derived packages
249-
250-
UCX_VER = $(call get_sdk_package_version_full,"ucx")
251-
252-
UCX = ucx_$(UCX_VER)_arm64.deb
253-
$(UCX)_DEPENDS = $(IB_VERBS_PROV) $(IB_VERBS) $(IB_VERBS_DEV) $(RDMACM) $(RDMACM_DEV)
254-
$(UCX)_RDEPENDS = $(IB_VERBS_PROV) $(IB_VERBS)
255-
$(UCX)_SRC_PATH = $(PLATFORM_PATH)/sdk-src/ucx
256-
257-
export UCX_VER UCX
258-
259-
SDK_DEBS += $(UCX)
260-
SDK_SRC_TARGETS += $(UCX)
261-
262234
# GRPC and derived packages
263235

264236
LIBGRPC_VER = $(call get_sdk_package_version_full,"grpc")
@@ -282,12 +254,12 @@ SDK_SRC_TARGETS += $(LIBGRPC_DEV)
282254
DOCA_VERSION = $(call get_sdk_package_version_full,"doca")
283255
DOCA_DEB_VERSION = $(DOCA_VERSION)-1
284256

285-
DOCA_LIBS = doca-libs_${DOCA_DEB_VERSION}_${CONFIGURED_ARCH}.deb
257+
DOCA_LIBS = doca-cx-libs_${DOCA_DEB_VERSION}_${CONFIGURED_ARCH}.deb
286258
$(DOCA_LIBS)_SRC_PATH = $(PLATFORM_PATH)/sdk-src/doca
287-
$(DOCA_LIBS)_RDEPENDS = $(DPDK) $(COLLECTX_CLXAPI) $(RXPCOMPILER) $(LIBRXPCOMPILER_DEV) $(UCX) $(LIBGRPC_DEV) $(FLEXIO)
288-
$(DOCA_LIBS)_DEPENDS = $(COLLECTX_CLXAPI) $(COLLECTX_CLXAPI_DEV) $(RXPCOMPILER) $(LIBRXPCOMPILER_DEV) $(UCX) $(DPDK_DEV) $(LIBGRPC_DEV) $(FLEXIO)
289-
DOCA_LIBS_DEV = libdoca-libs-dev_${DOCA_DEB_VERSION}_${CONFIGURED_ARCH}.deb
290-
DOCA_LIBS_DBG = doca-libs-dbgsym_${DOCA_DEB_VERSION}_${CONFIGURED_ARCH}.deb
259+
$(DOCA_LIBS)_RDEPENDS = $(DPDK) $(RXPCOMPILER) $(LIBRXPCOMPILER_DEV) $(LIBGRPC_DEV) $(FLEXIO)
260+
$(DOCA_LIBS)_DEPENDS = $(RXPCOMPILER) $(LIBRXPCOMPILER_DEV) $(DPDK_DEV) $(LIBGRPC_DEV) $(FLEXIO)
261+
DOCA_LIBS_DEV = libdoca-cx-libs-dev_${DOCA_DEB_VERSION}_${CONFIGURED_ARCH}.deb
262+
DOCA_LIBS_DBG = doca-cx-libs-dbgsym_${DOCA_DEB_VERSION}_${CONFIGURED_ARCH}.deb
291263

292264
$(eval $(call add_derived_package,$(DOCA_LIBS),$(DOCA_LIBS_DEV)))
293265
$(eval $(call add_derived_package,$(DOCA_LIBS),$(DOCA_LIBS_DBG)))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
diff --git a/configs/profiles/connectx/debian/control b/configs/profiles/connectx/debian/control
2+
index 62f9403..fea0155 100644
3+
--- a/configs/profiles/connectx/debian/control
4+
+++ b/configs/profiles/connectx/debian/control
5+
@@ -4,7 +4,6 @@ Maintainer: <networking-support@nvidia.com>
6+
Build-Depends: debhelper (>= 10~),
7+
gcc,
8+
g++,
9+
- meson,
10+
pkg-config,
11+
libibverbs-dev,
12+
mlnx-dpdk-dev,
13+
@@ -55,7 +54,6 @@ Architecture: amd64 arm64 armhf i386 ppc64el
14+
Depends: ${misc:Depends},
15+
libdoca-cx-libs-dev,
16+
gcc,
17+
- meson,
18+
pkg-config,
19+
mlnx-dpdk-dev,
20+
libjson-c-dev,
21+
@@ -71,7 +69,6 @@ Architecture: amd64 arm64 armhf i386 ppc64el
22+
Depends: ${misc:Depends},
23+
libdoca-cx-libs-dev,
24+
gcc,
25+
- meson,
26+
pkg-config,
27+
mlnx-dpdk-dev,
28+
libjson-c-dev

platform/nvidia-bluefield/sdk-src/doca/Makefile

+3-2
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
3636
find . -type f -exec touch {} +
3737

3838
patch -p1 < ../0001-Allow-compilation-with-warnings.patch
39-
patch -p1 < ../0001-Remove-meson-from-dependencies.patch
39+
patch -p1 < ../0001-Remove-meson-from-connectx-dependencies.patch
40+
4041
source /etc/profile.d/libgrpc.sh
4142
source /etc/profile.d/mlnx-dpdk-aarch64-linux-gnu.sh
4243

4344
# Build the Debs
44-
PATH=/opt/mellanox/grpc/bin:/usr/bin/:$(PATH) dpkg-buildpackage -us -uc -b -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
45+
PATH=/opt/mellanox/grpc/bin:/usr/bin/:$(PATH) ./devtools/doca_package_build.sh connectx
4546

4647
popd
4748
mv $(DERIVED_TARGETS) $* $(DEST)/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
From 178c90074d62fc6d8dfcef500cde1de8b4928eee Mon Sep 17 00:00:00 2001
2+
From: Oleksandr Ivantsiv <oivantsiv@nvidia.com>
3+
Date: Fri, 18 Nov 2022 20:09:52 +0200
4+
Subject: [PATCH] Remove meson from dependencies.
5+
6+
---
7+
debian/control | 1 -
8+
1 file changed, 1 deletion(-)
9+
10+
diff --git a/debian/control b/debian/control
11+
index a737765..b99b3e9 100644
12+
--- a/debian/control
13+
+++ b/debian/control
14+
@@ -21,7 +21,6 @@ Build-Depends: debhelper (>= 10.3~),
15+
linux-headers-arm64 [arm64] | linux-headers-generic [arm64],
16+
linux-headers-armmp [armhf] | linux-headers-generic [armhf],
17+
linux-headers-powerpc64le [ppc64el] | linux-headers-generic [ppc64el],
18+
- meson (>= 0.41~),
19+
pkg-config,
20+
python3,
21+
python3-sphinx <!nodoc>,
22+
--
23+
2.25.1
24+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
From 6ce6a644e561f22021d031bc99f7b54a8d1142ad Mon Sep 17 00:00:00 2001
2+
From: Oleksandr Ivantsiv <oivantsiv@nvidia.com>
3+
Date: Mon, 10 Oct 2022 15:46:31 +0300
4+
Subject: [PATCH] Allow warning during package compilation.
5+
6+
---
7+
debian/rules | 4 ++--
8+
1 file changed, 2 insertions(+), 2 deletions(-)
9+
10+
diff --git a/debian/rules b/debian/rules
11+
index 01e76c4..f4460af 100755
12+
--- a/debian/rules
13+
+++ b/debian/rules
14+
@@ -8,13 +8,13 @@ export DEB_BUILD_OPTIONS=nostrip
15+
dh $@
16+
17+
override_dh_auto_build:
18+
- ./build.sh
19+
+ ./build.sh --allow_warnings
20+
./scripts/cp_pkg_content.sh deb ./debian/tmp
21+
22+
clean:
23+
rm -f ./debian/debhelper-build-stamp ./debian/files ./debian/flexio.debhelper.log
24+
rm -rf ./debian/flexio.substvars ./debian/tmp ./debian/flexio
25+
- ./build.sh --clean
26+
+ ./build.sh --clean --allow_warnings
27+
28+
override_dh_prep:
29+
@ echo DH PREP
30+
--
31+
2.25.1
32+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
From a009c7ed8fb199aaf456d91471937d1cc80871bc Mon Sep 17 00:00:00 2001
2+
From: Oleksandr Ivantsiv <oivantsiv@nvidia.com>
3+
Date: Mon, 17 Oct 2022 17:02:43 +0300
4+
Subject: [PATCH] Install LD configuration.
5+
6+
---
7+
debian/flexio-aarch64-linux-gnu.conf | 1 +
8+
debian/flexio.install | 3 ++-
9+
2 files changed, 3 insertions(+), 1 deletion(-)
10+
create mode 100644 debian/flexio-aarch64-linux-gnu.conf
11+
12+
diff --git a/debian/flexio-aarch64-linux-gnu.conf b/debian/flexio-aarch64-linux-gnu.conf
13+
new file mode 100644
14+
index 0000000..abfff31
15+
--- /dev/null
16+
+++ b/debian/flexio-aarch64-linux-gnu.conf
17+
@@ -0,0 +1 @@
18+
+/opt/mellanox/flexio/lib/
19+
diff --git a/debian/flexio.install b/debian/flexio.install
20+
index c54c604..93238ad 100644
21+
--- a/debian/flexio.install
22+
+++ b/debian/flexio.install
23+
@@ -1 +1,2 @@
24+
-debian/tmp/* /
25+
\ No newline at end of file
26+
+debian/tmp/* /
27+
+debian/flexio-aarch64-linux-gnu.conf /etc/ld.so.conf.d/
28+
--
29+
2.25.1
30+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
From d2168682c00d3738d458a4f2bce23595e0e0729c Mon Sep 17 00:00:00 2001
2+
From: Oleksandr Ivantsiv <oivantsiv@nvidia.com>
3+
Date: Fri, 18 Nov 2022 17:29:38 +0200
4+
Subject: [PATCH] Remove meson from dependencies.
5+
6+
---
7+
debian/control | 1 -
8+
1 file changed, 1 deletion(-)
9+
10+
diff --git a/debian/control b/debian/control
11+
index b8a9ca1..d2367e3 100644
12+
--- a/debian/control
13+
+++ b/debian/control
14+
@@ -6,7 +6,6 @@ Build-Depends: autotools-dev,
15+
debhelper (>= 10),
16+
clang,
17+
lld,
18+
- meson,
19+
patchelf
20+
#Standards-Version: 4.1.2
21+
Homepage: www.nvidia.com
22+
--
23+
2.25.1
24+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{#-
2+
Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES.
3+
Apache-2.0
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
Unless required by applicable law or agreed to in writing, software
9+
distributed under the License is distributed on an "AS IS" BASIS,
10+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
See the License for the specific language governing permissions and
12+
limitations under the License.
13+
-#}
14+
Package: mlnx-ofed-kernel-modules-{{kversion}}
15+
Source: mlnx-ofed-kernel-modules-bin
16+
Version: {{mft_version}}
17+
Architecture: arm64
18+
Maintainer: Vivek Reddy <vkarri@nvidia.com>
19+
Provides: mlnx-ofed-kernel-modules
20+
Depends: linux-image-{{ kversion }}-unsigned
21+
Section: misc
22+
Priority: optional
23+
Description: mlnx-ofed-kernel-modules binary drivers for linux-image-{{kversion}} Kernel
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{#-
2+
Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES.
3+
Apache-2.0
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
Unless required by applicable law or agreed to in writing, software
9+
distributed under the License is distributed on an "AS IS" BASIS,
10+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
See the License for the specific language governing permissions and
12+
limitations under the License.
13+
-#}
14+
15+
#!/bin/sh
16+
set -e
17+
depmod -a {{kversion}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{#-
2+
Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES.
3+
Apache-2.0
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
Unless required by applicable law or agreed to in writing, software
9+
distributed under the License is distributed on an "AS IS" BASIS,
10+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
See the License for the specific language governing permissions and
12+
limitations under the License.
13+
-#}
14+
15+
#!/bin/sh
16+
set -e
17+
depmod -a {{kversion}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/debian/control b/debian/control
2+
index 0ef86f4..3e8dfb1 100644
3+
--- a/debian/control
4+
+++ b/debian/control
5+
@@ -65,7 +65,7 @@ Description: InfiniBand Communication Manager Assistant (ACM)
6+
Package: ibverbs-providers
7+
Architecture: linux-any
8+
Multi-Arch: same
9+
-Depends: ${misc:Depends}, ${shlibs:Depends}
10+
+#Depends: ${misc:Depends}, ${shlibs:Depends}
11+
Provides: libefa1, libipathverbs1, libmana1, libmlx5-1, libmthca1
12+
Replaces: libipathverbs1,
13+
libmlx5-1,
14+
@@ -138,7 +138,7 @@ Section: libs
15+
Pre-Depends: ${misc:Pre-Depends}
16+
Depends: adduser, ${misc:Depends}, ${shlibs:Depends}
17+
Recommends: ibverbs-providers
18+
-Breaks: ibverbs-providers (<< 34~)
19+
+#Breaks: ibverbs-providers (<< 34~)
20+
Description: Library for direct userspace use of RDMA (InfiniBand/iWARP)
21+
libibverbs is a library that allows userspace processes to use RDMA
22+
"verbs" as described in the InfiniBand Architecture Specification and

0 commit comments

Comments
 (0)