Mellanox bullseye merge (#1)

Allow mellanox platform to build and successfully switch packets in
Debian 11

Upgraded

* Mellanox SDK
* Mellanox Hardware Management
* Mellanox Firmware
* Mellanox Kernel Patches

Adjusted build system to support host system running bullseye and
dockers running buster.
This commit is contained in:
Alexander Allen 2021-10-28 20:15:31 -07:00 committed by Saikrishna Arcot
parent 1379ca14cc
commit 2847265bfd
13 changed files with 28 additions and 21 deletions

View File

@ -829,7 +829,7 @@ sudo mkdir -p $FILESYSTEM_ROOT/etc/mlnx/
sudo cp $files_path/$MLNX_SPC_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC.mfa sudo cp $files_path/$MLNX_SPC_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC.mfa
sudo cp $files_path/$MLNX_SPC2_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC2.mfa sudo cp $files_path/$MLNX_SPC2_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC2.mfa
sudo cp $files_path/$MLNX_SPC3_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC3.mfa sudo cp $files_path/$MLNX_SPC3_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC3.mfa
#sudo cp $files_path/$ISSU_VERSION_FILE $FILESYSTEM_ROOT/etc/mlnx/issu-version sudo cp $files_path/$ISSU_VERSION_FILE $FILESYSTEM_ROOT/etc/mlnx/issu-version
sudo cp $files_path/$MLNX_FFB_SCRIPT $FILESYSTEM_ROOT/usr/bin/mlnx-ffb.sh sudo cp $files_path/$MLNX_FFB_SCRIPT $FILESYSTEM_ROOT/usr/bin/mlnx-ffb.sh
sudo cp $files_path/$MLNX_ONIE_FW_UPDATE $FILESYSTEM_ROOT/usr/bin/$MLNX_ONIE_FW_UPDATE sudo cp $files_path/$MLNX_ONIE_FW_UPDATE $FILESYSTEM_ROOT/usr/bin/$MLNX_ONIE_FW_UPDATE
sudo cp $files_path/$MLNX_SSD_FW_UPDATE $FILESYSTEM_ROOT/usr/bin/$MLNX_SSD_FW_UPDATE sudo cp $files_path/$MLNX_SSD_FW_UPDATE $FILESYSTEM_ROOT/usr/bin/$MLNX_SSD_FW_UPDATE

View File

@ -21,6 +21,8 @@ include $(PLATFORM_PATH)/../template/docker-syncd-base.mk
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MFT) $(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MFT)
$(DOCKER_SYNCD_BASE)_FILES += $(ISSU_VERSION_FILE)
$(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \ $(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
$(LIBSWSSCOMMON_DBG) \ $(LIBSWSSCOMMON_DBG) \
$(LIBSAIMETADATA_DBG) \ $(LIBSAIMETADATA_DBG) \
@ -34,3 +36,4 @@ $(DOCKER_SYNCD_BASE)_VERSION = 1.0.0
$(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd $(DOCKER_SYNCD_BASE)_PACKAGE_NAME = syncd
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/warmboot:/var/warmboot
SONIC_BUSTER_DOCKERS += $(DOCKER_SYNCD_BASE)

View File

@ -27,17 +27,17 @@ else
FW_FROM_URL = n FW_FROM_URL = n
endif endif
MLNX_SPC_FW_VERSION = 13.2008.3326 MLNX_SPC_FW_VERSION = 13.2008.3330
MLNX_SPC_FW_FILE = fw-SPC-rel-$(subst .,_,$(MLNX_SPC_FW_VERSION))-EVB.mfa MLNX_SPC_FW_FILE = fw-SPC-rel-$(subst .,_,$(MLNX_SPC_FW_VERSION))-EVB.mfa
$(MLNX_SPC_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH) $(MLNX_SPC_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC_FW_FILE) $(MLNX_SPC_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC_FW_FILE)
MLNX_SPC2_FW_VERSION = 29.2008.3326 MLNX_SPC2_FW_VERSION = 29.2008.3330
MLNX_SPC2_FW_FILE = fw-SPC2-rel-$(subst .,_,$(MLNX_SPC2_FW_VERSION))-EVB.mfa MLNX_SPC2_FW_FILE = fw-SPC2-rel-$(subst .,_,$(MLNX_SPC2_FW_VERSION))-EVB.mfa
$(MLNX_SPC2_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH) $(MLNX_SPC2_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC2_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC2_FW_FILE) $(MLNX_SPC2_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC2_FW_FILE)
MLNX_SPC3_FW_VERSION = 30.2008.3326 MLNX_SPC3_FW_VERSION = 30.2008.3330
MLNX_SPC3_FW_FILE = fw-SPC3-rel-$(subst .,_,$(MLNX_SPC3_FW_VERSION))-EVB.mfa MLNX_SPC3_FW_FILE = fw-SPC3-rel-$(subst .,_,$(MLNX_SPC3_FW_VERSION))-EVB.mfa
$(MLNX_SPC3_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH) $(MLNX_SPC3_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC3_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC3_FW_FILE) $(MLNX_SPC3_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC3_FW_FILE)

View File

@ -16,7 +16,7 @@
# #
# Mellanox HW Management # Mellanox HW Management
MLNX_HW_MANAGEMENT_VERSION = 7.0010.2344 MLNX_HW_MANAGEMENT_VERSION = 7.0010.3300
export MLNX_HW_MANAGEMENT_VERSION export MLNX_HW_MANAGEMENT_VERSION

@ -1 +1 @@
Subproject commit b661fa329e2dff4fd6c22da89d009169e1008d99 Subproject commit efbfa1e83d4bbbad08d80360c343bb3185c786f3

View File

@ -21,9 +21,4 @@ $(ISSU_VERSION_FILE)_SRC_PATH = $(PLATFORM_PATH)/issu-version
$(ISSU_VERSION_FILE)_DEPENDS += $(APPLIBS) $(ISSU_VERSION_FILE)_DEPENDS += $(APPLIBS)
SONIC_MAKE_FILES += $(ISSU_VERSION_FILE) SONIC_MAKE_FILES += $(ISSU_VERSION_FILE)
# TODO: Disable because the base OS version (bullseye) doesn't match what the
# SDK app packages are built for (buster), and this target assumes that they
# are available.
#MLNX_FILES += $(ISSU_VERSION_FILE)
export ISSU_VERSION_FILE export ISSU_VERSION_FILE

View File

@ -19,6 +19,7 @@ SHELL = /bin/bash
.SHELLFLAGS += -e .SHELLFLAGS += -e
MAIN_TARGET = issu-version MAIN_TARGET = issu-version
BULLSEYE_FILES_PATH = /sonic/target/files/bullseye
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
sx_sdk --version | egrep -o 'ISSU [0-9]+' > $(DEST)/$(MAIN_TARGET) || { sx_sdk --version | egrep -o 'ISSU [0-9]+' > $(DEST)/$(MAIN_TARGET) || {
@ -26,3 +27,4 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
rm $(DEST)/$(MAIN_TARGET) rm $(DEST)/$(MAIN_TARGET)
exit 1 exit 1
} }
cp $(DEST)/$(MAIN_TARGET) $(BULLSEYE_FILES_PATH)/$(MAIN_TARGET)

View File

@ -23,15 +23,14 @@ export MFT_VERSION MFT_REVISION
MFT = mft_$(MFT_VERSION)-$(MFT_REVISION)_amd64.deb MFT = mft_$(MFT_VERSION)-$(MFT_REVISION)_amd64.deb
$(MFT)_SRC_PATH = $(PLATFORM_PATH)/mft $(MFT)_SRC_PATH = $(PLATFORM_PATH)/mft
ifeq ($(DISTRO), bullseye)
$(MFT)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON)
endif
SONIC_MAKE_DEBS += $(MFT) SONIC_MAKE_DEBS += $(MFT)
ifeq ($(DISTRO), bullseye) ifeq ($(BLDENV), bullseye)
$(MFT)_DEPENDS = $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON)
endif
KERNEL_MFT = kernel-mft-dkms-modules-$(KVERSION)_$(MFT_VERSION)_amd64.deb KERNEL_MFT = kernel-mft-dkms-modules-$(KVERSION)_$(MFT_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(MFT),$(KERNEL_MFT))) $(eval $(call add_derived_package,$(MFT),$(KERNEL_MFT)))
endif
MFT_OEM = mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_amd64.deb MFT_OEM = mft-oem_$(MFT_VERSION)-$(MFT_REVISION)_amd64.deb
$(eval $(call add_derived_package,$(MFT),$(MFT_OEM))) $(eval $(call add_derived_package,$(MFT),$(MFT_OEM)))

View File

@ -35,7 +35,6 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
wget -O $(MFT_TGZ) http://www.mellanox.com/downloads/MFT/$(MFT_TGZ) wget -O $(MFT_TGZ) http://www.mellanox.com/downloads/MFT/$(MFT_TGZ)
tar xzf $(MFT_TGZ) tar xzf $(MFT_TGZ)
ifeq ($(DISTRO), bullseye)
pushd $(MFT_NAME)/SDEBS pushd $(MFT_NAME)/SDEBS
# put a lock here because dpkg does not allow installing packages in parallel # put a lock here because dpkg does not allow installing packages in parallel
@ -47,7 +46,7 @@ ifeq ($(DISTRO), bullseye)
popd popd
sudo dkms build kernel-mft-dkms/$(MFT_VERSION) -k $(KVERSION) -a amd64 sudo dkms build kernel-mft-dkms/$(MFT_VERSION) -k $(KVERSION) -a amd64 --kernelsourcedir /usr/src/linux-headers-$(KVERSION)
sudo dkms mkbmdeb kernel-mft-dkms/$(MFT_VERSION) -k $(KVERSION) -a amd64 sudo dkms mkbmdeb kernel-mft-dkms/$(MFT_VERSION) -k $(KVERSION) -a amd64
# w/a: remove dependencies # w/a: remove dependencies
@ -63,7 +62,6 @@ ifeq ($(DISTRO), bullseye)
popd popd
rm -rf $(DKMS_TMP) rm -rf $(DKMS_TMP)
endif
# fix timestamp because we do not actually build tools, only kernel # fix timestamp because we do not actually build tools, only kernel
touch $(MFT_NAME)/DEBS/*.deb touch $(MFT_NAME)/DEBS/*.deb

View File

@ -14,6 +14,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
# Set KVERSION correctly depending on build environment
ifeq ($(BLDENV), buster)
KVERSION = 5.10.0-0.bpo.9-amd64
endif
include $(PLATFORM_PATH)/sdk.mk include $(PLATFORM_PATH)/sdk.mk
include $(PLATFORM_PATH)/fw.mk include $(PLATFORM_PATH)/fw.mk
include $(PLATFORM_PATH)/mft.mk include $(PLATFORM_PATH)/mft.mk

@ -1 +1 @@
Subproject commit 726bef49c07a1a0d7c52d8e3062e95ec6efa736f Subproject commit 306567c6e89a94fb61ed0efa2bcb125ee8b162cd

View File

@ -16,7 +16,7 @@
# #
MLNX_SDK_BASE_PATH = $(PLATFORM_PATH)/sdk-src/sx-kernel/Switch-SDK-drivers/bin/ MLNX_SDK_BASE_PATH = $(PLATFORM_PATH)/sdk-src/sx-kernel/Switch-SDK-drivers/bin/
MLNX_SDK_PKG_BASE_PATH = $(MLNX_SDK_BASE_PATH)/$(BLDENV)/ MLNX_SDK_PKG_BASE_PATH = $(MLNX_SDK_BASE_PATH)/$(BLDENV)/
MLNX_SDK_VERSION = 4.4.3326 MLNX_SDK_VERSION = 4.4.3334
MLNX_SDK_ISSU_VERSION = 101 MLNX_SDK_ISSU_VERSION = 101
MLNX_SDK_DEB_VERSION = $(subst -,.,$(subst _,.,$(MLNX_SDK_VERSION))) MLNX_SDK_DEB_VERSION = $(subst -,.,$(subst _,.,$(MLNX_SDK_VERSION)))

View File

@ -153,6 +153,10 @@ RUN apt-get update && apt-get install -y \
# For mellanox sai build # For mellanox sai build
libtool-bin \ libtool-bin \
libxml2-dev \ libxml2-dev \
# For mellanox MFT build
linux-image-5.10.0-0.bpo.9-amd64 \
linux-headers-5.10.0-0.bpo.9-amd64 \
linux-headers-5.10.0-0.bpo.9-common \
# For BFN sdk build # For BFN sdk build
libusb-1.0-0-dev \ libusb-1.0-0-dev \
libcurl3-nss-dev \ libcurl3-nss-dev \