What can I help you with?
NVIDIA BlueField BSP v4.9.0

Deploying BlueField Software Using PXE

The BlueField boot flow is similar to a standard server, allowing to boot via an external PXE/HTTP server.

Providing a BFB or ISO image via PXE server enables updating the BlueField software.

The update flow for the two software update image types, BFB and ISO, is slightly different as elaborated on in the following subpages.

  • PXE booting the BlueField device with a BFB file updates all components included in the BFB image at the end of the automated update process

    Note

    The BFB image is available in two formats:

    • BF-Bundle – includes BlueField firmware, BlueField Arm OS, and DOCA

    • BF-FW-Bundle – includes BlueField firmware only

  • PXE booting the BlueField device with the ISO image provides the same result as BF-Bundle installation using standard installation method for Ubuntu OS

Note

Make sure that the BlueField's firmware version and the DOCA version running on BlueField Arm cores belong to the same release.

Users may set the BlueField UEFI for PXE boot using any of the following methods:

Regardless of the method, the following is a list of PXE devices in the BlueField UEFI which are compatible with the software upgrade procedure described in this chapter:

  • NET-NIC_P0-IPV4

  • NET-NIC_P0-IPV6

  • NET-NIC_P1-IPV4

  • NET-NIC_P1-IPV6

  • NET-OOB-IPV4

  • NET-OOB-IPV6

Setting Next-boot Device in BlueField UEFI Menu

The following steps detail the PXE deployment sequence:

  1. Enter into the BlueField UEFI Setup menu.

    Info

    Refer to section "Accessing the UEFI Menu" for instructions.

  2. Navigate to the Boot Manager menu.

  3. Select the relevant PXE devices to boot with, depending on how BlueField is connected to the PXE network.

boot-manager-menu-version-1-modificationdate-1734031423193-api-v2.png

Setting BlueField to PXE Boot Using Redfish

To set boot option ID using Redfish:

Copy
Copied!
            

curl -k -u '<username>:<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings -d '{ "Boot":{ "BootSourceOverrideEnabled": "Once", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideTarget": "Pxe", "UefiTargetBootSourceOverride": "Boot000", "BootNext": "", "AutomaticRetryConfig": "Disabled" } }' | jq

Info

Notice the UefiTargetBootSourceOverride and BootSourceOverrideTarget fields.

Info

Refer to the BlueField BMC User Manual for more information.

Note

To set up a PXE server, please refer to the documentation provided by the distribution vendor. For example, to install Ubuntu 20.04 or later, see official Ubuntu 20.04 documentation.


Setting BlueField to PXE Boot Using efibootmgr

To set boot option ID using efibootmgr:

Copy
Copied!
            

efibootmgr -n 0000

This sets a one-time next-boot to device 0000 (NET-NIC_P0-IPV4).

BlueField includes information in the DHCP vendor class identifier and vendor specific information options to help the DHCP server identify BlueField and select which boot image to serve (e.g., shim, grub). This can be especially useful for the PXE server to serve a specific shim based on the currently running BlueField OS and shim version to work around the installed UEFI secure boot SBAT entries and to reduce issues with BlueField upgrades and downgrades.

The DHCP vendor class ID will start with NVIDIA/BF.

The DHCP vendor specific information will contain:

  • BF type (i.e. BF1, BF2, BF3)

  • UEFI firmware version

  • BF-bundle version

The following is an example of the DHCP vendor information supplied by a BlueField running an older OS version using the Linux dhcpdump tool:

Copy
Copied!
            

bf:~# dhcpdump -i tmfifo_net0 ... OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER) ... OPTION: 97 ( 17) UUID/GUID 009c2debc0368611 ..-..6.. ee8000a088c20ee8 ........ 18 . OPTION: 94 ( 3) Client NDI 010300 ... OPTION: 93 ( 2) Client System 000b .. OPTION: 60 ( 13) Vendor class identifier NVIDIA/BF/PXE OPTION: 43 (131) Vendor specific info 8005424633000081 ..BF3... 30426c7565466965 0BlueFie 6c643a342e382e30 ld:4.8.0 2d322d6765373965 -2-ge79e 3037662d64697274 07f-dirt 7900000000000000 y....... 0000000000000000 ........ 008248444f43415f ..HDOCA_ 322e352e305f4253 2.5.0_BS 505f342e352e305f P_4.5.0_ 5562756e74755f32 Ubuntu_2 322e30342d312e32 2.04-1.2 3032333131303800 0231108. 0000000000000000 ........ 0000000000000000 ........ 0000000000000000 ........ 000000 ... ...

A DHCP server may include some of the following example information in its dhcpd.conf to match against the Bluefield above. Note that matching against the vendor specific information using a regex requires setting the substring start offset so that the search occurs after previous strings have ended:

Copy
Copied!
            

... # Match against vendor class ID class "PXEClient" { match if substring (option vendor-class-identifier, 0, 13) = "NVIDIA/BF/PXE"; filename "/shimaa64.efi"; }   # Match against BF Type class "BfType" { match if substring (option vendor-encapsulated-options, 0, 200) ~= "BF3";  filename "/shimaa64.efi"; }   # Match against UEFI FW version class "BfFwVer" { match if substring (option vendor-encapsulated-options, 6, 200) ~= "4.8.0-2-ge79e07f";  filename "/shimaa64.efi"; }   # Match against BF Bundle version class "BfBundleVer" { match if substring (option vendor-encapsulated-options, 55, 200) ~= "2.5.0-BSP_4.5.0_Ubuntu_22.04";  filename "/shimaa64.efi"; } ...

More information about how to troubleshoot PXE boot issues can be found in NVIDIA BlueField Troubleshooting Guide.

© Copyright 2025, NVIDIA. Last updated on Mar 9, 2025.