What can I help you with?
NVIDIA BlueField BMC Software v24.10-LTSU1

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 only supports the option to change the boot device selector flag with the following supported options: PXE boot or the default boot device as selected in the boot menu on BlueField. While the Redfish interface supports all available boot options.

Retrieving Active Boot Configuration Values

  • To retrieve the active boot configuration, run:

    Copy
    Copied!
                

    curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield

    Info

    The relevant configurations would be under Boot.

  • To retrieve all boot options (active and pending):

    Copy
    Copied!
                

    curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/BootOptions/

  • To retrieve detailed information on a specific boot option:

    Copy
    Copied!
                

    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:

    Copy
    Copied!
                

    curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings

  • The following command retrieves only BootOptions configurations with a pending value different than the active one.

    Copy
    Copied!
                

    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:

    Copy
    Copied!
                

    curl -k -u root:'<password>' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings/BootOptions/<boot-id>

Applying Pending Boot Configurations

Note

Power reset of the BlueField is necessary for these changes to take effect.

  • To alter the boot configuration, applying patches to the setting attribute is required :

    Copy
    Copied!
                

    curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings -d '{"Boot":{ ... }}'

    • To set the pending boot order. The list must contain all the Boot option, even if the boot option is disabled.

      Copy
      Copied!
                  

      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, currently supporting only BootOptionEnable

    Copy
    Copied!
                

    curl -k -u root:'<password>' -X PATCH https://<bmc_ip>/redfish/v1/Systems/Bluefield/Settings/BootOptions/<Boot id> -d '{"BootOptionEnabled": false}'

Changing BootOrder Configuration

To set boot order using boot order schema, follow this procedure:

  1. Check the current boot order by doing GET on the ComputerSystem schema over 1GbE OOB to the BlueField BMC. Look for the BootOrder attribute under the Boot.

    Copy
    Copied!
                

    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", ], .... } .... }

  2. To get the details of a particular entity in the BootOrder array, perform a GET to the respective BootOption URL over 1GbE OOB to the BlueField BMC. For example, to get details of Boot0006, run:

    Copy
    Copied!
                

    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()" }

  3. To change the boot order, the entire BootOrder array must be PATCHed to the pending settings URI. For this example of the BootOrder array, if you intend to have Boot0006 at the beginning of the array, then the PATCH operation is as follows:

    Note

    Updating the BootOrder array results in a permanent boot order change (persistent across reboots).

    Copy
    Copied!
                

    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

  4. After a successful PATCH, reboot the BlueField and check if the settings have been applied by doing a GET on the ComputerSystem schema.

  5. If the BootOrder array is updated as intended then the settings have been applied and the BlueField should boot as per the order in preceding cycles.

Example of Changing BootOrder Configuration

To get the supported boot options:

Copy
Copied!
            

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" }

To set the pending boot order settings:

Info

In this example, 25 boot options are present. Therefore, the command to establish the boot option order must encompass all 25 options in the active BootOrder list according to the desired sequence.

Copy
Copied!
            

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"] }}'


Example of Changing Boot Configuration

To set boot configuration, it is necessary to post to settings. For example:

Copy
Copied!
            

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

  • BootSourceOverrideEnabled – should be set according to the values under redfish/v1/Systems/Bluefield > Boot/BootSourceOverrideEnabled@Redfish.AllowableValues

  • BootSourceOverrideMode – should be set according to the values under redfish/v1/Systems/Bluefield > Boot/BootSourceOverrideMode@Redfish.AllowableValues

  • BootSourceOverrideTarget – should be set according to the values under redfish/v1/Systems/Bluefield > Boot/BootSourceOverrideTarget@Redfish.AllowableValues

    Note

    When UefiTarget is selected, make sure that:

    • BootSourceOverrideMode is set to UEFI

    • UefiTargetBootSourceOverride is set to one of the UEFI supported BootOptions (e.g., Boot0007)

  • UefiTargetBootSourceOverride – this option would be available in the RF JSON if BootSourceOverrideTarget is set to UefiTarget

  • BootNext – this option would be in the RF JSON if BootSourceOverrideTarget is set to UefiBootnext

  • AutomaticRetryConfig – only Disabled is supported

The ipmitool only provides the ability to manage the override boot option and configure the system to boot from a PXE server.

  • Get current setting:

    Copy
    Copied!
                

    ipmitool chassis bootparam get 5

  • Force PXE boot:

    Copy
    Copied!
                

    ipmitool chassis bootdev pxe options=efiboot

  • Default boot device:

    Copy
    Copied!
                

    ipmitool chassis bootparam set bootflag none

Info

The BlueField boot override setting from BMC is persistent until it is set to none or the BFB image is updated again.

© Copyright 2024, NVIDIA. Last updated on Jan 14, 2025.