Skip to content

Commit 28f8da8

Browse files
keboliuStormLiangMS
authored andcommitted
[Mellanox] Add support to Mellanox Spectrum-4 ASIC Firmware compiling and upgrade (#12844)
- Why I did it Add support for compiling Spectrum-4 ASIC firmware to the SONiC image Add support for Spectrum-4 ASIC firmware upgrade - How I did it Update Mellanox fw make files to include Spectrum-4 ASIC firmware binaries. Update firmware upgrade scripts to be able to detect Spectrum-4 ASIC. - How to verify it Run regression tests Signed-off-by: Kebo Liu <kebol@nvidia.com>
1 parent 28c8d4c commit 28f8da8

File tree

4 files changed

+18
-1
lines changed

4 files changed

+18
-1
lines changed

files/build_templates/sonic_debian_extension.j2

+1
Original file line numberDiff line numberDiff line change
@@ -925,6 +925,7 @@ sudo mkdir -p $FILESYSTEM_ROOT/etc/mlnx/
925925
sudo cp $files_path/$MLNX_SPC_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC.mfa
926926
sudo cp $files_path/$MLNX_SPC2_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC2.mfa
927927
sudo cp $files_path/$MLNX_SPC3_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC3.mfa
928+
sudo cp $files_path/$MLNX_SPC4_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC4.mfa
928929
sudo cp $files_path/$ISSU_VERSION_FILE $FILESYSTEM_ROOT/etc/mlnx/issu-version
929930
sudo cp $files_path/$MLNX_FFB_SCRIPT $FILESYSTEM_ROOT/usr/bin/mlnx-ffb.sh
930931
sudo cp $files_path/$MLNX_ONIE_FW_UPDATE $FILESYSTEM_ROOT/usr/bin/$MLNX_ONIE_FW_UPDATE

platform/mellanox/fw.dep

+4
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@ $(MLNX_SPC2_FW_FILE)_DEP_FILES := $(DEP_FILES)
1414
$(MLNX_SPC3_FW_FILE)_CACHE_MODE := GIT_CONTENT_SHA
1515
$(MLNX_SPC3_FW_FILE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
1616
$(MLNX_SPC3_FW_FILE)_DEP_FILES := $(DEP_FILES)
17+
18+
$(MLNX_SPC4_FW_FILE)_CACHE_MODE := GIT_CONTENT_SHA
19+
$(MLNX_SPC4_FW_FILE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
20+
$(MLNX_SPC4_FW_FILE)_DEP_FILES := $(DEP_FILES)

platform/mellanox/fw.mk

+7-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,12 @@ MLNX_SPC3_FW_FILE = fw-SPC3-rel-$(subst .,_,$(MLNX_SPC3_FW_VERSION))-EVB.mfa
4242
$(MLNX_SPC3_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
4343
$(MLNX_SPC3_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC3_FW_FILE)
4444

45-
MLNX_FW_FILES = $(MLNX_SPC_FW_FILE) $(MLNX_SPC2_FW_FILE) $(MLNX_SPC3_FW_FILE)
45+
MLNX_SPC4_FW_VERSION = 34.2010.4026
46+
MLNX_SPC4_FW_FILE = fw-SPC4-rel-$(subst .,_,$(MLNX_SPC4_FW_VERSION))-EVB.mfa
47+
$(MLNX_SPC4_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
48+
$(MLNX_SPC4_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC4_FW_FILE)
49+
50+
MLNX_FW_FILES = $(MLNX_SPC_FW_FILE) $(MLNX_SPC2_FW_FILE) $(MLNX_SPC3_FW_FILE) $(MLNX_SPC4_FW_FILE)
4651

4752
ifeq ($(FW_FROM_URL),n)
4853
SONIC_COPY_FILES += $(MLNX_FW_FILES)
@@ -55,3 +60,4 @@ MLNX_FILES += $(MLNX_FW_FILES)
5560
export MLNX_SPC_FW_FILE
5661
export MLNX_SPC2_FW_FILE
5762
export MLNX_SPC3_FW_FILE
63+
export MLNX_SPC4_FW_FILE

platform/mellanox/mlnx-fw-upgrade.j2

+6
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ declare -r LIST_CONTENT_FILE="/tmp/mlxfwmanager-list-content.log"
2828
declare -r SPC1_ASIC="spc1"
2929
declare -r SPC2_ASIC="spc2"
3030
declare -r SPC3_ASIC="spc3"
31+
declare -r SPC4_ASIC="spc4"
3132
declare -r UNKN_ASIC="unknown"
3233
declare -r UNKN_MST="unknown"
3334

3435
declare -rA FW_FILE_MAP=( \
3536
[$SPC1_ASIC]="/etc/mlnx/fw-SPC.mfa" \
3637
[$SPC2_ASIC]="/etc/mlnx/fw-SPC2.mfa" \
3738
[$SPC3_ASIC]="/etc/mlnx/fw-SPC3.mfa" \
39+
[$SPC4_ASIC]="/etc/mlnx/fw-SPC4.mfa" \
3840
)
3941

4042
IMAGE_UPGRADE="${NO_PARAM}"
@@ -137,6 +139,7 @@ function GetAsicType() {
137139
local -r SPC1_PRODUCT_ID="cb84"
138140
local -r SPC2_PRODUCT_ID="cf6c"
139141
local -r SPC3_PRODUCT_ID="cf70"
142+
local -r SPC4_PRODUCT_ID="cf80"
140143

141144
if lspci -n | grep "${VENDOR_ID}:${SPC1_PRODUCT_ID}" &>/dev/null; then
142145
echo "${SPC1_ASIC}"
@@ -147,6 +150,9 @@ function GetAsicType() {
147150
elif lspci -n | grep "${VENDOR_ID}:${SPC3_PRODUCT_ID}" &>/dev/null; then
148151
echo "${SPC3_ASIC}"
149152
exit "${EXIT_SUCCESS}"
153+
elif lspci -n | grep "${VENDOR_ID}:${SPC4_PRODUCT_ID}" &>/dev/null; then
154+
echo "${SPC4_ASIC}"
155+
exit "${EXIT_SUCCESS}"
150156
fi
151157

152158
echo "${UNKN_ASIC}"

0 commit comments

Comments
 (0)