diff --git a/platform/nvidia-bluefield/bluefield-platform-modules/bin/bfnet.sh b/platform/nvidia-bluefield/bluefield-platform-modules/bin/bfnet.sh index 0c74cfbe5068..76b785c9b536 100755 --- a/platform/nvidia-bluefield/bluefield-platform-modules/bin/bfnet.sh +++ b/platform/nvidia-bluefield/bluefield-platform-modules/bin/bfnet.sh @@ -16,6 +16,7 @@ # limitations under the License. # +pci_iface=eth0-midplane cp_iface=Ethernet0 pidfile=/run/dhcl-internal.$cp_iface.pid leasefile=/var/lib/dhcp/dhcl-internal.$cp_iface.leases @@ -55,12 +56,23 @@ stop() rmmod mlx5_ib mlx5_core } +configure_pci_iface() +{ + mgmt_mac=$(cat /sys/devices/platform/MLNXBF17:00/net/*/address) + + # Set PCI interface MAC address to the MAC address of the mgmt interface + ip link set dev $pci_iface address $mgmt_mac +} + case "$1" in start|stop) $1 ;; + configure-pci-iface) + configure_pci_iface + ;; *) - echo "Usage: $0 {start|stop}" + echo "Usage: $0 {start|stop|configure-pci-iface}" exit 1 ;; esac diff --git a/platform/nvidia-bluefield/bluefield-platform-modules/systemd/dpu.service b/platform/nvidia-bluefield/bluefield-platform-modules/systemd/dpu.service index e713ca18e748..fc4c50d69de7 100644 --- a/platform/nvidia-bluefield/bluefield-platform-modules/systemd/dpu.service +++ b/platform/nvidia-bluefield/bluefield-platform-modules/systemd/dpu.service @@ -5,7 +5,8 @@ After=getty.target [Service] Type=oneshot ExecStartPre=/usr/bin/bfrshlog "Linux up" -ExecStart=/usr/bin/bfrshlog "DPU is ready" +ExecStartPre=/usr/bin/bfrshlog "DPU is ready" +ExecStart=/usr/bin/bfup StandardOutput=journal+console [Install] diff --git a/platform/nvidia-bluefield/bluefield-platform-modules/udev/91-tmfifo_net.rules b/platform/nvidia-bluefield/bluefield-platform-modules/udev/91-tmfifo_net.rules index 540908d69445..af1c3f8e5423 100644 --- a/platform/nvidia-bluefield/bluefield-platform-modules/udev/91-tmfifo_net.rules +++ b/platform/nvidia-bluefield/bluefield-platform-modules/udev/91-tmfifo_net.rules @@ -1 +1 @@ -SUBSYSTEM=="net", ACTION=="add", DEVPATH=="/devices/platform/MLNXBF01:00/virtio1/net/eth*", NAME="tmfifo_net0" \ No newline at end of file +SUBSYSTEM=="net", ACTION=="add", DEVPATH=="/devices/platform/MLNXBF01:00/virtio1/net/eth*", NAME="eth0-midplane", RUN+="/usr/bin/bfnet.sh configure-pci-iface" diff --git a/platform/nvidia-bluefield/pinctrl-mlxbf3/Makefile b/platform/nvidia-bluefield/pinctrl-mlxbf3/Makefile index ca56f30f8324..04fab4b518e4 100644 --- a/platform/nvidia-bluefield/pinctrl-mlxbf3/Makefile +++ b/platform/nvidia-bluefield/pinctrl-mlxbf3/Makefile @@ -32,8 +32,6 @@ $(addprefix $(DEST)/, $(MLXBF3_PINCTRL_DRIVER)): $(DEST)/% : pushd ${MLXBF3_PINCTRL} - patch -p1 < ../../pinctrl-mlxbf3.c.patch - # Build the package make -C /lib/modules/$(KVERSION)/build M=$(MODULE_DIR) diff --git a/platform/nvidia-bluefield/pinctrl-mlxbf3/pinctrl-mlxbf3.c.patch b/platform/nvidia-bluefield/pinctrl-mlxbf3/pinctrl-mlxbf3.c.patch deleted file mode 100644 index c78afc4b2805..000000000000 --- a/platform/nvidia-bluefield/pinctrl-mlxbf3/pinctrl-mlxbf3.c.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/pinctrl-mlxbf3.c b/pinctrl-mlxbf3.c -index 8371d83..d3746f6 100644 ---- a/pinctrl-mlxbf3.c -+++ b/pinctrl-mlxbf3.c -@@ -18,7 +18,7 @@ - - #define DRV_VERSION "1.0" - --#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 3, 0) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) - struct pinfunction { - const char *name; - const char * const *groups; diff --git a/platform/nvidia-bluefield/platform-api/sonic_platform/device_data.py b/platform/nvidia-bluefield/platform-api/sonic_platform/device_data.py index c4d3e902f1e4..5c62ec51ba1a 100644 --- a/platform/nvidia-bluefield/platform-api/sonic_platform/device_data.py +++ b/platform/nvidia-bluefield/platform-api/sonic_platform/device_data.py @@ -30,7 +30,6 @@ def __init__(self, name, thermals=None): self.name = name self.thermals = thermals - class DeviceDataManager: def __init__(self): diff --git a/platform/nvidia-bluefield/recipes/bluefield-soc.mk b/platform/nvidia-bluefield/recipes/bluefield-soc.mk index 3ff258936253..dc256b6b6c11 100644 --- a/platform/nvidia-bluefield/recipes/bluefield-soc.mk +++ b/platform/nvidia-bluefield/recipes/bluefield-soc.mk @@ -16,8 +16,8 @@ # # Bluefied Software Distribution Version -BFSOC_VERSION = 4.6.0 -BFSOC_REVISION = 13035 +BFSOC_VERSION = 4.7.0 +BFSOC_REVISION = 13127 BFB_IMG_TYPE = prod BFSOC_BUILD_DATE = @@ -34,6 +34,7 @@ BSD_BASE_URL = $(BSD_INTERNAL_BASE_URL)/$(BFSOC_BUILD_DATE) endif BSD_BASE_SOURCE_URL = $(BSD_BASE_URL)/build/install/distro/SRPMS/ +QP_BOOTIMAGES_BASE_URL = $(BSD_BASE_URL)/build/install/distro/DEBS/ DEV_BOOTIMAGES_BASE_URL = $(BSD_BASE_URL)/build/install/distro/dev-release/DEBS/ PROD_BOOTIMAGES_BASE_URL = $(BSD_BASE_URL)/build/install/distro/ga-release/DEBS/ endif @@ -133,7 +134,10 @@ $(MLXBF_PTM_DRIVER)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) BF_PLATFORM_DRIVERS += $(MLXBF_PTM_DRIVER) export MLXBF_PTM_DRIVER_VERSION MLXBF_PTM_DRIVER -ifeq ($(BFB_IMG_TYPE), prod) +ifeq ($(BFB_IMG_TYPE), qp) +BOOTIMAGES_BASE_URL = $(QP_BOOTIMAGES_BASE_URL) +BOOTIMAGES = mlxbf-bootimages_$(BFSOC_VERSION)-$(BFSOC_REVISION)_arm64.deb +else ifeq ($(BFB_IMG_TYPE), prod) BOOTIMAGES_BASE_URL = $(PROD_BOOTIMAGES_BASE_URL) BOOTIMAGES = mlxbf-bootimages-signed_$(BFSOC_VERSION)-$(BFSOC_REVISION)_arm64.deb else @@ -160,15 +164,13 @@ $(BF_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/bluefield-platform-modules $(BF_PLATFORM_MODULE)_FILES = $(BF_PLATFORM_DRIVERS) -SONIC_MAKE_DEBS += $(BF_PLATFORM_MODULE) export BF_PLATFORM_MODULE_VERSION BF_PLATFORM_MODULE BF_PLATFORM_DRIVERS ifeq ($(BFSOC_FROM_INTERNAL), y) SONIC_MAKE_FILES += $(BF_PLATFORM_DRIVERS) -SONIC_MAKE_DEBS += $(BFSOC_MAKE_DEBS) +SONIC_MAKE_DEBS += $(BFSOC_MAKE_DEBS) $(BF_PLATFORM_MODULE) SONIC_ONLINE_DEBS += $(BFSOC_ONLINE_DEBS) else -$(eval $(foreach file,$(BF_PLATFORM_DRIVERS) $(BFSOC_MAKE_DEBS) $(BFSOC_MAKE_DEBS_DERIVED) $(BFSOC_ONLINE_DEBS), $(call make_url_bfsoc,$(file)))) -SONIC_ONLINE_FILES += $(BF_PLATFORM_DRIVERS) -SONIC_ONLINE_DEBS += $(BFSOC_MAKE_DEBS) $(BFSOC_MAKE_DEBS_DERIVED) $(BFSOC_ONLINE_DEBS) +$(eval $(foreach file, $(BFSOC_MAKE_DEBS) $(BFSOC_MAKE_DEBS_DERIVED) $(BFSOC_ONLINE_DEBS) $(BF_PLATFORM_MODULE), $(call make_url_bfsoc,$(file)))) +SONIC_ONLINE_DEBS += $(BFSOC_MAKE_DEBS) $(BFSOC_MAKE_DEBS_DERIVED) $(BFSOC_ONLINE_DEBS) $(BF_PLATFORM_MODULE) endif diff --git a/platform/nvidia-bluefield/recipes/dpu-sai.mk b/platform/nvidia-bluefield/recipes/dpu-sai.mk index 6cac410ec104..706fd6d65c4e 100644 --- a/platform/nvidia-bluefield/recipes/dpu-sai.mk +++ b/platform/nvidia-bluefield/recipes/dpu-sai.mk @@ -15,7 +15,7 @@ # limitations under the License. # -DPU_SAI_VERSION = SAIBuild0.0.30.0 +DPU_SAI_VERSION = SAIBuild0.0.32.0 # Place here URL where SAI sources exist DPU_SAI_SOURCE_BASE_URL= diff --git a/platform/nvidia-bluefield/recipes/fw.mk b/platform/nvidia-bluefield/recipes/fw.mk index 94b0486e9e7b..344ed49b18b3 100644 --- a/platform/nvidia-bluefield/recipes/fw.mk +++ b/platform/nvidia-bluefield/recipes/fw.mk @@ -17,7 +17,7 @@ BF3_FW_BASE_URL = -BF3_FW_VERSION = 32.39.1002 +BF3_FW_VERSION = 32.41.1000 BF3_FW_FILE = fw-BlueField-3-rel-$(subst .,_,$(BF3_FW_VERSION)).mfa diff --git a/platform/nvidia-bluefield/recipes/installer-image.mk b/platform/nvidia-bluefield/recipes/installer-image.mk index e3831a54d368..e87fcb03d98d 100644 --- a/platform/nvidia-bluefield/recipes/installer-image.mk +++ b/platform/nvidia-bluefield/recipes/installer-image.mk @@ -67,7 +67,7 @@ $(SONIC_BF_IMAGE_PXE)_INSTALLS += $($(SONIC_BF_IMAGE_BASE)_INSTALLS) $(SONIC_BF_IMAGE_PXE)_DEPENDS += $($(SONIC_BF_IMAGE_BASE)_DEPENDS) $(SONIC_BF_IMAGE_PXE)_DOCKERS += $($(SONIC_BF_IMAGE_BASE)_DOCKERS) $(SONIC_BF_IMAGE_PXE)_LAZY_INSTALLS += $($(SONIC_BF_IMAGE_BASE)_LAZY_INSTALLS) -$(SONIC_BF_IMAGE_PXE)_FILES += $($(SONIC_BF_IMAGE_BASE)_FILES) $(MLX_BOOTCTL_DRIVER) +$(SONIC_BF_IMAGE_PXE)_FILES += $($(SONIC_BF_IMAGE_BASE)_FILES) # The traditional *.bin image. Works for sonic-sonic upgrade. SONIC_BF_IMAGE_BIN = $(SONIC_BF_IMAGE_BASE).bin @@ -87,6 +87,6 @@ $(SONIC_BF_IMAGE_BFB)_INSTALLS += $($(SONIC_BF_IMAGE_BASE)_INSTALLS) $(SONIC_BF_IMAGE_BFB)_DEPENDS += $($(SONIC_BF_IMAGE_BASE)_DEPENDS) $(SONIC_BF_IMAGE_BFB)_DOCKERS += $($(SONIC_BF_IMAGE_BASE)_DOCKERS) $(SONIC_BF_IMAGE_BFB)_LAZY_INSTALLS += $($(SONIC_BF_IMAGE_BASE)_LAZY_INSTALLS) -$(SONIC_BF_IMAGE_BFB)_FILES += $($(SONIC_BF_IMAGE_BASE)_FILES) $(MLX_BOOTCTL_DRIVER) +$(SONIC_BF_IMAGE_BFB)_FILES += $($(SONIC_BF_IMAGE_BASE)_FILES) SONIC_INSTALLERS += $(SONIC_BF_IMAGE_PXE) $(SONIC_BF_IMAGE_BIN) $(SONIC_BF_IMAGE_BFB) diff --git a/platform/nvidia-bluefield/recipes/mft.mk b/platform/nvidia-bluefield/recipes/mft.mk index 7f56158656cb..f4b3722a1ea5 100644 --- a/platform/nvidia-bluefield/recipes/mft.mk +++ b/platform/nvidia-bluefield/recipes/mft.mk @@ -14,8 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -MFT_VERSION = 4.26.1 -MFT_REVISION = 3 +MFT_VERSION = 4.28.0 +MFT_REVISION = 96 MFT_INTERNAL_SOURCE_BASE_URL = diff --git a/platform/nvidia-bluefield/recipes/sdk.mk b/platform/nvidia-bluefield/recipes/sdk.mk index 0e0a048aef86..fbe53fddde64 100644 --- a/platform/nvidia-bluefield/recipes/sdk.mk +++ b/platform/nvidia-bluefield/recipes/sdk.mk @@ -19,7 +19,7 @@ SDK_BASE_PATH = $(PLATFORM_PATH)/sdk-src/sonic-bluefield-packages/bin # Place here URL where SDK sources exist SDK_SOURCE_BASE_URL = -SDK_VERSION = 24.4-RC2 +SDK_VERSION = 24.7-RC4 SDK_COLLECTX_URL = https://linux.mellanox.com/public/repo/doca/1.5.2/debian12/aarch64/