Boot Configuration
BMC supports boot option selection commands using the Redfish or IPMI interfaces. UEFI on NVIDIA® BlueField® can query for the boot options through an IPMI/Redfish command. The BMC IPMI command supports changing the boot device selector flag only through the following options: PXE boot, or the default boot device as selected in the boot menu on BlueField. In contrast, the Redfish interface supports all available boot options.
Retrieving Active Boot Configuration Values
To retrieve the active boot configuration, run:
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield
InfoThe relevant configurations are under
Boot.To retrieve all boot options (active and pending), run:
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/BootOptions/
To retrieve detailed information on a specific boot option, run:
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/BootOptions/<boot-option>
Retrieving Information on Pending Boot Configurations
To retrieve the pending boot settings, run:
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings
The following command retrieves only
BootOptionsconfigurations with a pending value different than the active one.curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings/BootOptions
To retrieve the details of a specific pending boot option, run:
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings/BootOptions/<boot-id>
Applying Pending Boot Configurations
Power reset of BlueField is necessary for these changes to take effect.
To alter the boot configuration, it is required to apply patches to the setting attribute. Run:
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings -d '{"Boot":{ ... }}'
To set the pending boot order, run the following command. The list must contain all boot options, including those that are disabled.
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings/ -d '{"Boot":{ "BootOrder": ["Boot0002",...,"BootXXX"] }}'
To alter the bootOption value, run the following command.
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings/BootOptions/<Boot id> -d '{"BootOptionEnabled": false}'
InfoCurrently, only BootOptionEnable is supported.
Changing BootOrder Configuration
To set boot order using a boot order schema, follow the procedure described below.
Retrieve the current boot order using a GET on the
ComputerSystemschema over the 1GbE OOB connection to the BlueField BMC. Look for theBootOrderattribute under theBoot.curl -k -X GET -u root:<password> https://<BF-BMC-IP>/redfish/v1/Systems/<SystemID>/ | python3 -m json.tool { .... "Boot": { .... "BootOrder": [ "Boot0017", "Boot0001", "Boot0002", "Boot0003", "Boot0004", "Boot0005", "Boot0006", "Boot0007", ], .... } .... }
To get the details of a particular entity in the
BootOrderarray, perform a GET to the respective BootOption URL over the 1GbE OOB connection to the BlueField BMC. For example, to get details ofBoot0006, run:curl -k -X GET -u root:<password> https://<BF-BMC-IP>/redfish/v1/Systems/<SystemID>/BootOptions/Boot0006 | python3 -m json.tool { "@odata.type": "#BootOption.v1_0_3.BootOption", "@odata.id": "/redfish/v1/Systems/SystemId/BootOptions/Boot0006", "Id": "Boot0006", "BootOptionEnabled": true, "BootOptionReference": "Boot0006", "DisplayName": "UEFI HTTPv6 (MAC:B8CEF6B8A006)", "UefiDevicePath": "PciRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/MAC(B8CEF6B8A006,0x1)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000,0x0,Static,0000:0000:0000:0000:0000:0000:0000:0000,0x40,0000:0000:0000:0000:0000:0000:0000:0000)/Uri()" }
To change the boot order, the entire
BootOrderarray must be PATCHed to the pending settings URI. For this example of theBootOrderarray, and if you intend to haveBoot0006at the beginning of the array, use the following PATCH operation:NoteUpdating the BootOrder array results in a permanent boot order change (persistent across reboots).
curl -k -u root:<password> -X PATCH -d '{ "Boot": { "BootOrder": [ "Boot0006", "Boot0017", "Boot0001", "Boot0002", "Boot0003", "Boot0004", "Boot0005", "Boot0007", ] }}' https://<BF-BMC-IP>/redfish/v1/Systems/<SystemID>/Settings | python3 -m json.tool
After a successful PATCH, reboot BlueField and check if the settings have been applied using a GET on the
ComputerSystemschema.If the
BootOrderarray is updated as intended, then the settings have been applied and the BlueField device should boot as per the order in preceding cycles.
Example of Changing BootOrder Configuration
Get the supported boot options.
curl -k -u root:<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/BootOptions { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions", "@odata.type": "#BootOptionCollection.BootOptionCollection", "Members": [ { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0000" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot000A" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot000B" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot000C" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot000D" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot000E" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot000F" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0001" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0002" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0003" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0004" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0005" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0006" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0007" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0008" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0009" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0010" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0011" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0012" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0013" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0014" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0015" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0016" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0017" }, { "@odata.id": "/redfish/v1/Systems/Bluefield/BootOptions/Boot0040" } ], "Members@odata.count": 25, "Name": "Boot Option Collection" }
Set the pending boot order settings.
InfoIn this example, 25 boot options are present. Therefore, the command to establish the boot option order must encompass all 25 options in the active
BootOrderlist according to the desired sequence.curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings -d '{"Boot":{ "BootOrder": ["Boot0040", "Boot0017", "Boot0000", "Boot0001", "Boot0002", "Boot0003", "Boot0004", "Boot0005", "Boot0006", "Boot0007", "Boot0008", "Boot0009", "Boot000A", "Boot000B", "Boot000C", "Boot000D", "Boot000E", "Boot000F", "Boot0010", "Boot0011", "Boot0012", "Boot0013", "Boot0014", "Boot0015", "Boot0016"] }}'
The Boot Source Override feature provides administrators with remote control over a system's boot sequence, eliminating the need for physical access to configure boot order settings. This capability allows for one-time or persistent boot source overrides, enabling seamless OS deployment, system recovery, and remote diagnostics. Administrators can dynamically set the boot target (for example, PXE) , ensuring flexibility for various operational needs. Boot Source Override is particularly useful for automated provisioning, disaster recovery, firmware updates, and security hardening by enforcing specific boot policies.
Boot Source Override Config Using RedFish
Get Boot Source Override Configuration
To retrieve boot source override configuration, run:
curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield
Example for Redfish Boot Source Override Get result:
"Boot": {
...
"BootSourceOverrideEnabled": "Disabled",
"BootSourceOverrideMode": "UEFI",
"BootSourceOverrideTarget": "None",
...
}
The following parameters can be set when configuring the boot source via the Redfish command:
BootSourceOverrideEnabled– should be set according to the following values:Disabled –Boot Source Override will be disabledOnce– host will use the Boot Source Override settings only during the next host bootContinuous– host will always use the Boot Source Override settings
BootSourceOverrideMode– should be set according to the values underredfish/v1/Systems/Bluefield>Boot/BootSourceOverrideMode@Redfish.AllowableValuesBootSourceOverrideTarget– should be set according to the values underredfish/v1/Systems/Bluefield>Boot/BootSourceOverrideTarget@Redfish.AllowableValues
When UefiTarget is selected, make sure that:
BootSourceOverrideModeis set toUEFI, andUefiTargetBootSourceOverrideis set to one of the UEFI supported BootOptions (e.g., Boot0007).
UefiTargetBootSourceOverride– this option will be available in the RF JSON ifBootSourceOverrideTargetis set toUefiTargetAutomaticRetryConfig– onlyDisabledis supportedBootNext– this option will be in the RF JSON ifBootSourceOverrideTargetis set toUefiBootnext
Set Boot Source Override Configuration
To set the Boot Source Override command, use the following redfish command:
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings -d '{
"Boot":{
"BootSourceOverrideEnabled": "<OverrideEnabled>",
"BootSourceOverrideMode": "<Mode>",
"BootSourceOverrideTarget": "<Target>"
}
}'
Boot Override Setting will be utilized by the BIOS/UEFI on the next boot and will be reflected in the redfish/v1/Systems/Bluefield boot schema.
Example for Redfish Boot Source Override command, setting next boot non-persistent to PXE boot:
curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings -d '{
"Boot":{
"BootSourceOverrideEnabled": "Once",
"BootSourceOverrideMode": "UEFI",
"BootSourceOverrideTarget": "Pxe"
}
}'
Boot Source Override Config Using IPMI
The ipmitool utility allows configuring the Boo Source Override option, enabling the system to boot from a PXE server or another specified device.
Retrieving Current Boot Override Settings
To view the current boot override configuration, run:
ipmitool chassis bootparam get 5
This command returns information about:
Whether the boot override option is valid
Whether it is persistent or applies to the next boot only
The configured boot device type
Configuring One-time PXE Boot with Timeout
To configure a one-time PXE boot with a 60-second timeout, use the following command:
ipmitool chassis bootparam set bootflag force_pxe options=timeout
If the DPU is not reset within 60 seconds, the boot parameters are invalidated.
Configuring One-time PXE Boot without Timeout
To configure a one-time PXE boot without the 60-second timeout, run:
ipmitool chassis bootparam set bootflag force_pxe options=no-timeout
The boot override timer is only applicable for BlueField-3.
It is not recommended to use ipmitool chassis bootparam without explicitly specifying the options parameter, as this may result in anomalous timer behavior.
Resetting Boot Override to Default
To clear the boot override and return to the default boot device, run:
ipmitool chassis bootparam set bootflag none
Setting Persistent PXE Boot
To configure the system to always boot from PXE (persistent override), run:
ipmitool chassis bootdev pxe options=persistent
The persistent option prevents the 60-second timeout from being triggered.
If you modify bootdev or bootparam settings without explicitly specifying options=persistent, then the persistent configuration is disabled.
Behavior of Boot Source Override on BlueField
The Boot Source Override configuration set through the BMC remains persistent until one of the following occurs:
It is explicitly reset to
noneThe BFB image is updated, which clears the override settings