DGX GB300 Station Update Examples#
The firmware update mechanism for DGX GB300 Station is different from the update mechanism for MGX in the following ways:
DGX GB300 Station uses one fwpkg bundle.
The Galaxy-GB300-WS packages are for the compute tray.
The update targets file is passed with the
–soption, which can be used to specify the update target for the compute tray (refer to the sample outputs in the next section).To downgrade the DGX GB300 Station firmware, set the
ForceUpdateflag in the update target JSON file that is passed with the–soption.
Updating the DGX GB300 Station Compute Tray#
To update the compute tray:
Create a JSON file like the
BMC_Full.jsonfile in the example.Use the nvfwupd tool and run the
update_fwcommand.
In the package name, the compute tray update packages can be identified by Galaxy-GB300-WS.
After the update successfully completes, to activate the firmware, complete a power cycle.
After the BMC is up and the Redfish service is running, to determine whether the BMC tray components were updated and they match the versions in the package, run the
show_versioncommand.
Here is the output:
$ cat BMC_Full.json
{
"Targets": []
}
nvfwupd -t ip=<BMC_IP> user=**** password=**** servertype=GB300 update_fw -p nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg -s BMC_Full.json
Updating ip address: ip=XXXX
FW package: ['nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg']
Ok to proceed with firmware update? <Y/N>
y
{"@odata.id": "/redfish/v1/TaskService/Tasks/1", "@odata.type": "#Task.v1_4_3.Task", "Id": "1", "TaskState": "Running", "TaskStatus": "OK"}
FW update started, Task Id: 1
Wait for Firmware Update to Start...
TaskState: Running
PercentComplete: 20
TaskStatus: OK
TaskState: Running
PercentComplete: 40
TaskStatus: OK
TaskState: Completed
PercentComplete: 100
TaskStatus: OK
Firmware update successful!
Overall Time Taken: 0:05:24
Refer to 'NVIDIA Firmware Update Document' on activation steps for new firmware to take effect.
------------------------------------------------------------------------------------------------------------------------
Error Code: 0
Note
For NVFWUPD 2.0.6 and later, the -s option is no longer required when updating the entire compute tray. The default “Targets” are all components without force_update.
DGX GB300 Station Firmware Downgrades Using the Force Update Option#
To downgrade the DGX GB300 Station firmware, you must use the force update multipart option, which can be set in the update parameters JSON file targets, and are passed in the JSON file with the –s option. If you try firmware updates as described in the previous sections, and you see the following error message in the firmware update log:
Note
The Component comparison stamp is lower than the firmware component comparison stamp in the FD.
Retry with a force firmware update but change the Targets value based on the tray you want to force update.
For example, to force update the BMC tray on the target:
Create a JSON file, like the
force_BMC_Full.jsonfile, in the example.Run the tool.
Here is an example:
$ cat force_BMC_Full.json
{
"ForceUpdate":true,
"Targets":[]
}
$ nvfwupd -t ip=<BMC IP> user=*** password=**** servertype=GB300 update_fw -s force_BMC_Full.json -p nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg
Updating ip address: ip=XXXX
FW package: ['nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg']
Ok to proceed with firmware update? <Y/N>
y
{"@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK"}
FW update started, Task Id: 0
Wait for Firmware Update to Start...
TaskState: Running
PercentComplete: 20
TaskStatus: OK
TaskState: Running
PercentComplete: 40
TaskStatus: OK
TaskState: Completed
PercentComplete: 100
TaskStatus: OK
Firmware update successful!
Overall Time Taken: 0:05:24
Refer to 'NVIDIA Firmware Update Document' on activation steps for new firmware to take effect.
---------------------------------------------------------------------------------------
Error Code: 0
DGX GB300 Station Firmware Updates for Selected Components#
To complete a firmware update of a component:
Identify the inventory name of the component.
The
show_versionoption can be used to list all the components in the inventory with their current versions.
nvfwupd -t ip=<BMC_IP> user=**** password=**** show_version -p nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg
System Model: GB300 Station BMC
Part number: 699-13809-0503-600
Serial number: 1332225030004
Packages: ['Galaxy-GB300-WS_0002_250728.1.0_custom']
Connection Status: Successful
Firmware Devices:
AP Name Sys Version Pkg Version Up-To-Date
------- ----------- ----------- ----------
FW_BMC_0 GB3S-2507-00.1 25.07.003 No
FW_CPU_0 03.01.00 03.01.01 No
FW_CX8_0 40.45.4107 40.45.4110 No
FW_ERoT_CPU_0 01.04.0031.0000_n04 N/A No
FW_ERoT_FPGA_0 01.04.0031.0000_n04 N/A No
FW_FPGA_0 0.22 0.22 Yes
FW_GPU_0 97.10.35.00.00 97.10.35.00.00 Yes
FW_SMA_CX8_0 0017.00.0000.0000 0017.00.0203.0000 No
FW_SMA_GPU_0 0004.00.0186.0000 0004.00.0186.0000 Yes
InfoROM_GPU_0 G540.0211.00.06 N/A No
UEFI buildbrain-gcid-41090182 N/A No
------------------------------------------------------------------------------------------------------------------------
Error Code: 0
After identifying the inventory name, create the JSON file with the Redfish inventory URI of that component (
/redfish/v1/UpdateService/FirmwareInventory/<component name>).The example in step 4 shows a sample
CPU.jsonfile that is used to update only theFW_CPU_0component on the tray.Run the
update_fwcommand with theCPU.jsonfile and compute tray bundle as the inputs.To perform a downgrade, add the
"ForceUpdate": truefield to this JSON file.
$ cat CPU.json
{
"Targets":["/redfish/v1/UpdateService/FirmwareInventory/FW_CPU_0"]
}
$ nvfwupd --target ip=<BMC IP> user=*** password=*** servertype=GB300 update_fw -s CPU.json -p nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg
Updating ip address: ip=XXXX
FW package: ['nvfw_Galaxy-GB300-WS_0002_250724.1.0_custom_prod-signed.fwpkg']
Ok to proceed with firmware update? <Y/N>
y
{"@odata.id": "/redfish/v1/TaskService/Tasks/1", "@odata.type": "#Task.v1_4_3.Task", "Id": "1", "TaskState": Running", "TaskStatus": "OK"}
FW update started, Task Id: 1
Wait for Firmware Update to Start...
TaskState: Running
PercentComplete: 20
TaskStatus: OK
TaskState: Running
PercentComplete: 40
TaskStatus: OK
TaskState: Completed
PercentComplete: 100
TaskStatus: OK
Firmware update successful!
Overall Time Taken: 0:06:08
Refer to 'NVIDIA Firmware Update Document' on activation steps for new firmware to take effect.
---------------------------------------------------------------------------------------
Error Code: 0
Activating the Firmware#
After performing firmware update of a component, or a full bundle, complete an AC power cycle to activate the new firmware. It can take up to five minutes for the BMC and Redfish service to come up after power cycle is complete. The activate_fw command returns immediately after issuing a command and does not wait for the BMC to come back up. To check new system versions after the BMC Redfish service is back, run the show version command. Version 2.0.3 and later of the tool supports the activate_fw command to complete this task.
Here is an example that uses the activate_fw command:
$ nvfwupd -t ip=<BMC IP> user=**** password=**** servertype=GB300 activate_fw -c PWR_OFF
IPMI Command Status: Success
Chassis Power Control: Down/Off
-------------------------------------------------------------------------------------------
$ nvfwupd -t ip=<BMC IP> user=**** password=**** servertype=GB300 activate_fw –c RF_AUX_PWR_CYCLE
AUX Power Cycle requested successfully.
Server response:
""
-------------------------------------------------------------------------------------------
After running the above commands, the system will reboot. Once the system is reachable again, use the Power On command to enable everything.
$ nvfwupd -t ip=<BMC IP> user=**** password=**** servertype=GB300 activate_fw -c PWR_ON
IPMI Command Status: Success
Chassis Power Control: Up/On
-------------------------------------------------------------------------------------------
Alternatively, as of NVFWUPD 2.0.6, Redfish activation commands can be used:
$ nvfwupd -t ip=<BMC IP> user=**** password=**** servertype=GB300 activate_fw -c RF_PWR_OFF
RF_PWR_OFF requested successfully.
Server response:
{
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The request completed successfully.",
"MessageArgs": [],
"MessageId": "Base.1.18.1.Success",
"MessageSeverity": "OK",
"Resolution": "None."
}
]
}
------------------------------------------------------------------------------------------------------------------------
$ nvfwupd -t ip=<BMC IP> user=**** password=**** servertype=GB300 activate_fw –c RF_AUX_PWR_CYCLE
AUX Power Cycle requested successfully.
Server response:
""
-------------------------------------------------------------------------------------------
After running the above commands, the system will reboot. Once the system is reachable again, use the Redfish Power On command to enable everything.
$ nvfwupd -t ip=<BMC IP> user=**** password=**** servertype=GB300 activate_fw -c RF_PWR_ON
RF_PWR_ON requested successfully.
Server response:
{
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The request completed successfully.",
"MessageArgs": [],
"MessageId": "Base.1.18.1.Success",
"MessageSeverity": "OK",
"Resolution": "None."
}
]
}
------------------------------------------------------------------------------------------------------------------------