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.