Multiple System Firmware Updates#
The nvfwupd
tool enables sequential updates of multiple systems using the same firmware package
via a YAML configuration file. This requires defining the update file and a list of target systems,
including their respective credentials.
Note
Deprecated feature: Starting with nvfwupd
version 2.0.5, specifying the targets
sub-option
with a JSON file of multiple targets for multiple system updates is no longer supported.
Multiple targets can be updated sequentially by using the config.yaml
file, described
in this section.
Multiple System Sample Configuration#
The following example shows a configuration YAML file for sequential updates:
# Set TargetPlatform to DGX
TargetPlatform: 'DGX'
# Disable Sanitize Log optionally
# Disabling SANITIZE_LOG prints system IPs and user credentials to the logs and screen
SANITIZE_LOG: False
# Provide the full path of the firmware file to be used for firmware update
FWUpdateFilePath:
- "nvfw_DGX_0005_250415.1.1_dbg-signed.fwpkg"
# Set FwUpdateMethod to MultipartHttpPushUri
FwUpdateMethod: "MultipartHttpPushUri"
# List of update targets. replaces -s/--special option input file. Value is list of target URIs
# Use UpdateParametersTargets: {} for DGX empty JSON value used for full DGX update
UpdateParametersTargets: {}
# If updating entire GPU Trays, uncomment the following UpdateParametersTargets and comment out the above "UpdateParametersTargets: {}"
#UpdateParametersTargets:
# - "/redfish/v1/UpdateService/FirmwareInventory/HGX_0"
# Multi target input. Value is list of dicts.
# Update BMC_IP, RF_USERNAME, and RF_PASSWORD credentials for each system
Targets:
- BMC_IP: "1.1.1.1"
RF_USERNAME: "user"
RF_PASSWORD: "password"
- BMC_IP: "2.2.2.2"
RF_USERNAME: "username2"
RF_PASSWORD: "my_secondary_password"
Running nvfwupd Using the Configuration File#
To display the version information for each target system component sequentially alongside the
corresponding firmware update file component version information, specify the configuration file
with the -c
flag or the --config
option and the show_version
command.
$ nvfwupd -c config.yaml show_version
System Model: DGXB200
Part number: 965-24387-0017-000
Serial number: 1662224610084
Packages: ['DGX_0005_250415.1.1']
Connection Status: Successful
Firmware Devices:
AP Name Sys Version Pkg Version Up-To-Date
------- ----------- ----------- ----------
CPLDMB_0 0.2.1.8 0.2.1.9 No
CPLDMID_0 0.2.1.1 0.2.1.4 No
CX7NIC_0 28.42.1000 32.43.2024 No
CX7NIC_1 28.42.1000 32.43.2024 No
CX7_0 28.42.1000 N/A No
CX7_1 28.42.1000 N/A No
CX7_2 28.42.1000 N/A No
CX7_3 28.42.1000 N/A No
CX7_4 28.42.1000 N/A No
CX7_5 28.42.1000 N/A No
CX7_6 28.42.1000 N/A No
CX7_7 28.42.1000 N/A No
EROT_BIOS_0 00.04.0052.0000_n00 00.04.0058.0000_n00 No
EROT_BMC_0 00.04.0052.0000_n00 00.04.0058.0000_n00 No
HGX_FW_BMC_0 25.02-1-ga18 N/A No
HGX_FW_ERoT_BMC_0 01.04.0018.0000_n04 N/A No
HGX_FW_ERoT_FPGA_0 01.04.0018.0000_n04 N/A No
HGX_FW_ERoT_NVLinkManagementNIC_0 01.04.0018.0000_n04 N/A No
HGX_FW_ERoT_NVSwitch_0 01.04.0018.0000_n04 N/A No
HGX_FW_ERoT_NVSwitch_1 01.04.0018.0000_n04 N/A No
HGX_FW_FPGA_0 1.85 N/A No
HGX_FW_GPU_SXM_1 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_2 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_3 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_4 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_5 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_6 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_7 97.00.9A.00.14 N/A No
HGX_FW_GPU_SXM_8 97.00.9A.00.14 N/A No
HGX_FW_NVLinkManagementNIC_0 28.45.0350 N/A No
HGX_FW_NVSwitch_0 35_2014_1680 N/A No
HGX_FW_NVSwitch_1 35_2014_1680 N/A No
HGX_FW_PCIeRetimer_0 2.20.21 N/A No
HGX_FW_PCIeRetimer_1 2.20.21 N/A No
HGX_FW_PCIeRetimer_2 2.20.21 N/A No
HGX_FW_PCIeRetimer_3 2.20.21 N/A No
HGX_FW_PCIeRetimer_4 2.20.21 N/A No
HGX_FW_PCIeRetimer_5 2.20.21 N/A No
HGX_FW_PCIeRetimer_6 2.20.21 N/A No
HGX_FW_PCIeRetimer_7 2.20.21 N/A No
HGX_InfoROM_GPU_SXM_1 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_2 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_3 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_4 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_5 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_6 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_7 G525.0230.00.02 N/A No
HGX_InfoROM_GPU_SXM_8 G525.0230.00.02 N/A No
HostBIOS_0 01.05.03 01.05.05 No
HostBMC_0 25.02.12 25.02.12 Yes
PCIeRetimer_0 2.07.19 2.07.19 Yes
PCIeRetimer_1 2.07.19 2.07.19 Yes
PCIeSwitch_0 0.0.7 0.0.7 Yes
PCIeSwitch_1 1.0.7 1.0.7 Yes
PSU_0 0204.0201.0204 0204.0201.0204 Yes
PSU_1 0204.0201.0204 0204.0201.0204 Yes
PSU_2 0204.0201.0204 0204.0201.0204 Yes
PSU_3 0204.0201.0204 0204.0201.0204 Yes
PSU_4 0204.0201.0204 0204.0201.0204 Yes
PSU_5 0204.0201.0204 0204.0201.0204 Yes
------------------------------------------------------------------------------------------------------------------------
System Model: DGXB200
Part number: 965-24387-0017-000
Serial number: 1234567890123
Packages: ['DGX_0005_250415.1.1']
Connection Status: Successful
Firmware Devices:
AP Name Sys Version Pkg Version Up-To-Date
------- ----------- ----------- ----------
CPLDMB_0 0.2.1.9 0.2.1.9 Yes
CPLDMID_0 0.2.1.3 0.2.1.4 No
EROT_BIOS_0 00.04.0058.0000_n00 00.04.0058.0000_n00 Yes
EROT_BMC_0 00.04.0058.0000_n00 00.04.0058.0000_n00 Yes
HostBIOS_0 01.06.07 01.05.05 Yes
HostBMC_0 25.04.22 25.02.12 Yes
PCIeRetimer_0 2.07.19 2.07.19 Yes
PCIeRetimer_1 2.07.19 2.07.19 Yes
PCIeSwitch_0 0.0.7 0.0.7 Yes
PCIeSwitch_1 1.0.7 1.0.7 Yes
PSU_0 0204.0201.0204 0204.0201.0204 Yes
PSU_1 0204.0201.0204 0204.0201.0204 Yes
PSU_2 0204.0201.0204 0204.0201.0204 Yes
PSU_3 0204.0201.0204 0204.0201.0204 Yes
PSU_4 0204.0201.0204 0204.0201.0204 Yes
PSU_5 0204.0201.0204 0204.0201.0204 Yes
------------------------------------------------------------------------------------------------------------------------
Error Code: 0
To update each target system sequentially, specify the configuration file with the -c
flag
or the --config
option and the update_fw
command.
$ nvfwupd -c config.yaml update_fw -y
Updating ip address: ip=1.1.1.1
FW package: ['nvfw_DGX_0005_250415.1.1_dbg-signed.fwpkg']
{"@odata.type": "#UpdateService.v1_11_0.UpdateService", "Messages": [{"@odata.type": "#Message.v1_0_8.Message", "Message": "A new task /redfish/v1/TaskService/Tasks/7 was created.", "MessageArgs": ["/redfish/v1/TaskService/Tasks/7"], "MessageId": "Task.1.0.New", "Resolution": "None", "Severity": "OK"}, {"@odata.type": "#Message.v1_0_8.Message", "Message": "The action UpdateService.MultipartPush was submitted to do firmware update.", "MessageArgs": ["UpdateService.MultipartPush"], "MessageId": "UpdateService.1.0.StartFirmwareUpdate", "Resolution": "None", "Severity": "OK"}]}
FW update started, Task Id: 7
Wait for Firmware Update to Start...
TaskState: Running
PercentComplete: 43
TaskStatus: OK
TaskState: Running
PercentComplete: 47
TaskStatus: OK
TaskState: Running
PercentComplete: 51
TaskStatus: OK
TaskState: Running
PercentComplete: 52
TaskStatus: OK
TaskState: Running
PercentComplete: 53
TaskStatus: OK
TaskState: Running
PercentComplete: 54
TaskStatus: OK
TaskState: Running
PercentComplete: 55
TaskStatus: OK
TaskState: Running
PercentComplete: 56
TaskStatus: OK
...
TaskState: Running
PercentComplete: 96
TaskStatus: OK
TaskState: Running
PercentComplete: 97
TaskStatus: OK
TaskState: Running
PercentComplete: 98
TaskStatus: OK
TaskState: Completed
PercentComplete: 100
TaskStatus: OK
Firmware update successful!
Overall Time Taken: 0:31:31
Update successful. Perform activation steps for the new firmware to take effect.
------------------------------------------------------------------------------------------------------------------------
Updating ip address: ip=2.2.2.2
FW package: ['nvfw_DGX_0005_250415.1.1_dbg-signed.fwpkg']
{"@odata.type": "#UpdateService.v1_11_0.UpdateService", "Messages": [{"@odata.type": "#Message.v1_0_8.Message", "Message": "A new task /redfish/v1/TaskService/Tasks/1 was created.", "MessageArgs": ["/redfish/v1/TaskService/Tasks/1"], "MessageId": "Task.1.0.New", "Resolution": "None", "Severity": "OK"}, {"@odata.type": "#Message.v1_0_8.Message", "Message": "The action UpdateService.MultipartPush was submitted to do firmware update.", "MessageArgs": ["UpdateService.MultipartPush"], "MessageId": "UpdateService.1.0.StartFirmwareUpdate", "Resolution": "None", "Severity": "OK"}]}
FW update started, Task Id: 1
Wait for Firmware Update to Start...
TaskState: Running
PercentComplete: 45
TaskStatus: OK
TaskState: Running
PercentComplete: 47
TaskStatus: OK
TaskState: Running
PercentComplete: 51
TaskStatus: OK
TaskState: Running
PercentComplete: 52
TaskStatus: OK
TaskState: Running
PercentComplete: 53
TaskStatus: OK
TaskState: Running
...
TaskState: Running
PercentComplete: 93
TaskStatus: OK
TaskState: Running
PercentComplete: 94
TaskStatus: OK
TaskState: Running
PercentComplete: 95
TaskStatus: OK
TaskState: Running
PercentComplete: 96
TaskStatus: OK
TaskState: Running
PercentComplete: 97
TaskStatus: OK
TaskState: Running
PercentComplete: 98
TaskStatus: OK
TaskState: Completed
PercentComplete: 100
TaskStatus: OK
Firmware update successful!
Overall Time Taken: 0:31:33
Update successful. Perform activation steps for new firmware to take effect.
------------------------------------------------------------------------------------------------------------------------
Error Code: 0
After the update, you must perform an AC cycle on each system for the changes to take effect.