Skip to content

Commit aec2477

Browse files
stepanblyschaklguohan
authored andcommitted
[mellanox] build SDK driver from open source (#3580)
* build SDK driver package sx-kernel from open sourced repository Mellanox/Switch-SDK-driver * copy SDK packages and FW binaries from Mellanox/Switch-SDK-driver Signed-off-by: Stepan Blyschak <[email protected]>
1 parent ce2ecf2 commit aec2477

File tree

6 files changed

+43
-14
lines changed

6 files changed

+43
-14
lines changed

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,6 @@
6666
[submodule "platform/mellanox/mlnx-sai/SAI-Implementation"]
6767
path = platform/mellanox/mlnx-sai/SAI-Implementation
6868
url = https://github.com/Mellanox/SAI-Implementation
69+
[submodule "Switch-SDK-drivers"]
70+
path = platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers
71+
url = https://github.com/Mellanox/Switch-SDK-drivers

platform/mellanox/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ mft/*
88
!mft/Makefile
99
sdk-src/*/*
1010
!sdk-src/*/Makefile
11+
!sdk-src/sx-kernel/Switch-SDK-drivers/
1112
!sdk-src/*/*.patch
1213
*/build
1314
*/deb_dist

platform/mellanox/fw.mk

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
# mellanox firmware
22

3-
MLNX_FW_BASE_URL = $(MLNX_SDK_BASE_URL)
3+
MLNX_FW_BASE_PATH = $(MLNX_SDK_BASE_PATH)
4+
5+
# Place an URL here to FW if you want to download FW instead
6+
MLNX_FW_BASE_URL =
7+
8+
ifneq ($(MLNX_FW_BASE_URL), )
9+
FW_FROM_URL = y
10+
else
11+
FW_FROM_URL = n
12+
endif
13+
414

515
MLNX_SPC_FW_VERSION = 13.2000.2162
616
MLNX_SPC_FW_FILE = fw-SPC-rel-$(subst .,_,$(MLNX_SPC_FW_VERSION))-EVB.mfa
17+
$(MLNX_SPC_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
718
$(MLNX_SPC_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC_FW_FILE)
8-
SONIC_ONLINE_FILES += $(MLNX_SPC_FW_FILE)
919

1020
MLNX_SPC2_FW_VERSION = 29.2000.2162
1121
MLNX_SPC2_FW_FILE = fw-SPC2-rel-$(subst .,_,$(MLNX_SPC2_FW_VERSION))-EVB.mfa
22+
$(MLNX_SPC2_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
1223
$(MLNX_SPC2_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC2_FW_FILE)
13-
SONIC_ONLINE_FILES += $(MLNX_SPC2_FW_FILE)
24+
25+
ifeq ($(FW_FROM_URL),n)
26+
SONIC_COPY_FILES += $(MLNX_SPC_FW_FILE) $(MLNX_SPC2_FW_FILE)
27+
else
28+
SONIC_ONLINE_FILES += $(MLNX_SPC_FW_FILE) $(MLNX_SPC2_FW_FILE)
29+
endif
1430

1531
export MLNX_SPC_FW_VERSION
1632
export MLNX_SPC_FW_FILE

platform/mellanox/sdk-src/sx-kernel/Makefile

+9-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@ PACKAGE_NAME = sx_kernel
77

88
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
99
# get sources
10-
rm -rf sx_kernel-$(MLNX_SDK_VERSION)-$(MLNX_SDK_ISSU_VERSION)
1110

12-
wget -c $(MLNX_SDK_SOURCE_BASE_URL)/$(PACKAGE_NAME)-$(MLNX_SDK_VERSION)-$(MLNX_SDK_ISSU_VERSION).tar.gz -O - | tar -xz
11+
if [ ! -z "$(MLNX_SDK_SOURCE_BASE_URL)" ]; then
12+
rm -rf sx_kernel-$(MLNX_SDK_VERSION)-$(MLNX_SDK_ISSU_VERSION)
13+
wget -c $(MLNX_SDK_SOURCE_BASE_URL)/$(PACKAGE_NAME)-$(MLNX_SDK_VERSION)-$(MLNX_SDK_ISSU_VERSION).tar.gz -O - | tar -xz
14+
pushd sx_kernel-$(MLNX_SDK_VERSION)-$(MLNX_SDK_ISSU_VERSION)
15+
else
16+
pushd Switch-SDK-drivers
17+
git reset --hard
18+
git clean -xfd
19+
fi
1320

1421
# build
15-
pushd sx_kernel-$(MLNX_SDK_VERSION)-$(MLNX_SDK_ISSU_VERSION)
1622
patch -p1 < ../sx_kernel_makefile_sonic_build.patch
1723

1824
debuild -e KVERSION=$(KVERSION) -e KSRC_EXT=/lib/modules/$(KVERSION)/source/ -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS)

platform/mellanox/sdk.mk

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
MLNX_SDK_BASE_URL = https://github.com/Mellanox/SAI-Implementation/raw/350187a41e408daaf03380401a0a2351b6cb0f9e/sdk
1+
MLNX_SDK_BASE_PATH = $(PLATFORM_PATH)/sdk-src/sx-kernel/Switch-SDK-drivers/bin/
22
MLNX_SDK_VERSION = 4.3.2104
33
MLNX_SDK_ISSU_VERSION = 101
44

@@ -135,19 +135,21 @@ $(SX_KERNEL)_SRC_PATH = $(PLATFORM_PATH)/sdk-src/sx-kernel
135135
SX_KERNEL_DEV = sx-kernel-dev_1.mlnx.$(MLNX_SDK_DEB_VERSION)_amd64.deb
136136
$(eval $(call add_derived_package,$(SX_KERNEL),$(SX_KERNEL_DEV)))
137137

138-
define make_url
139-
$(1)_URL = $(MLNX_SDK_BASE_URL)/$(1)
138+
define make_path
139+
$(1)_PATH = $(MLNX_SDK_BASE_PATH)
140140

141141
endef
142142

143-
$(eval $(foreach deb,$(MLNX_SDK_DEBS),$(call make_url,$(deb))))
144-
$(eval $(foreach deb,$(MLNX_SDK_RDEBS),$(call make_url,$(deb))))
145-
$(eval $(foreach deb,$(PYTHON_SDK_API) $(SX_KERNEL) $(SX_KERNEL_DEV),$(call make_url,$(deb))))
143+
$(eval $(foreach deb,$(MLNX_SDK_DEBS),$(call make_path,$(deb))))
144+
$(eval $(foreach deb,$(MLNX_SDK_RDEBS),$(call make_path,$(deb))))
145+
$(eval $(foreach deb,$(PYTHON_SDK_API) $(SX_KERNEL) $(SX_KERNEL_DEV),$(call make_path,$(deb))))
146+
147+
SONIC_MAKE_DEBS += $(SX_KERNEL)
146148

147149
ifeq ($(SDK_FROM_SRC), y)
148-
SONIC_MAKE_DEBS += $(MLNX_SDK_RDEBS) $(PYTHON_SDK_API) $(SX_KERNEL)
150+
SONIC_MAKE_DEBS += $(MLNX_SDK_RDEBS) $(PYTHON_SDK_API)
149151
else
150-
SONIC_ONLINE_DEBS += $(MLNX_SDK_RDEBS) $(PYTHON_SDK_API) $(SX_KERNEL)
152+
SONIC_COPY_DEBS += $(MLNX_SDK_RDEBS) $(PYTHON_SDK_API)
151153
endif
152154

153155
SONIC_STRETCH_DEBS += $(SX_KERNEL)

0 commit comments

Comments
 (0)