Parallel System Firmware Update#

Starting with nvfwupd version 2.0.5, several systems can be updated simultaneously in parallel.

Sample Configuration for Parallel System Update#

The nvfwupd tool enables parallel update of multiple systems using either the same or different packages via the configuration YAML file.

This requires defining the update PACKAGE, TARGET_PLATFORM (as DGX), UPDATE_PARAMETERS_TARGETS, and system credentials for each system. You can optionally add a user-defined SYSTEM_NAME string to each target system to identify it in update outputs

UPDATE_PARAMETERS_TARGETS requires the same parameters as the -s special update file for selecting update targets from the nvfwupd command line.

For reference, set UPDATE_PARAMETERS_TARGETS for each of the following:

  • {}: for updating the entire motherboard tray

  • {"Targets": ["/redfish/v1/UpdateService/FirmwareInventory/HGX_0"]}: for updating the entire GPU tray

  • {"Targets": ["/redfish/v1/UpdateService/FirmwareInventory/HostBMC_0"]}: for updating only the host BMC

    Adjust HostBMC_0 to a single update target as desired.

The following example shows a configuration file:

# Disable Sanitize Log optionally
# Disabling SANITIZE_LOG prints system IPs and user credentials to the logs and screen
SANITIZE_LOG: False

# Set ParallelUpdate to True
ParallelUpdate: True

# Multi target input. Value is list of dicts.
# Update BMC_IP, RF_USERNAME, and RF_PASSWORD credentials for each system
# Set TARGET_PLATFORM for each system to DGX
# Set PACKAGE to desired update file path for each system
# UPDATE_PARAMETERS_TARGETS set to desired update targets
Targets:
- BMC_IP: "1.1.1.1"
  RF_USERNAME: "user"
  RF_PASSWORD: "password"
  TARGET_PLATFORM: "DGX"
  PACKAGE: "nvfw_DGX_251108.1.1.fwpkg"
  UPDATE_PARAMETERS_TARGETS: {}
  SYSTEM_NAME: "DGX_SYSTEM_LAB_1"
- BMC_IP: "2.2.2.2"
  RF_USERNAME: "username2"
  RF_PASSWORD: "my_secondary_password"
  TARGET_PLATFORM: "DGX"
  PACKAGE: "nvfw_DGX_251108.1.1.fwpkg"
  UPDATE_PARAMETERS_TARGETS: {}
  SYSTEM_NAME: "EXTERNAL_DGX_SYSTEM"

Running nvfwupd Using the Configuration File#

You can display the component version information for each target system in parallel with the firmware update file component version information by specifying the configuration file with the -c flag or the --config option and the show_version command. Because a SYSTEM_NAME was added for each system in the configuration file, the output will also indicate which system information is displayed.

$ nvfwupd -c config.yaml show_version

Displaying version info for DGX_SYSTEM_LAB_1
System Model: DGXB300
Part number: 965-24387-0303-000
Serial number: 1943925000010
Packages: ['DGX-B300_0002_251108.1.1_custom']
Connection Status: Successful

Firmware Devices:
AP Name                                  Sys Version                    Pkg Version                    Up-To-Date
-------                                  -----------                    -----------                    ----------
CPLDBACK_0                               0.1.0.7                        0.1.0.7                        Yes
CPLDDCSM_0                               0.1.0.9                        0.1.0.9                        Yes
CPLDE1SBP_0                              0.1.0.5                        0.1.0.5                        Yes
CPLDMB_0                                 0.1.2.7                        0.1.0.9                        Yes
CX7NIC_0                                 32.43.2402                     N/A                            No
CX7NIC_1                                 32.43.2402                     N/A                            No
EROT_BIOS_0                              00.04.0061.0000_n04            00.04.0061.0000_n04            Yes
EROT_BMC_0                               00.04.0061.0000_n04            00.04.0061.0000_n04            Yes
HGX_FW_BMC_0                             B3-2509-05.0                   N/A                            No
HGX_FW_ConnectX_0                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_1                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_2                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_3                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_4                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_5                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_6                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_7                        40.46.5500                     N/A                            No
HGX_FW_ConnectX_SMA_0                    0011.00.0265.0000              N/A                            No
HGX_FW_ConnectX_SMA_1                    0011.00.0265.0000              N/A                            No
HGX_FW_ConnectX_SMA_2                    0011.00.0265.0000              N/A                            No
HGX_FW_ConnectX_SMA_3                    0011.00.0265.0000              N/A                            No
HGX_FW_ERoT_BMC_0                        01.04.0031.0000_n04            N/A                            No
HGX_FW_ERoT_FPGA_0                       01.04.0031.0000_n04            N/A                            No
HGX_FW_ERoT_NVLinkManagementNIC_0        01.04.0031.0000_n04            N/A                            No
HGX_FW_ERoT_NVSwitch_0                   01.04.0031.0000_n04            N/A                            No
HGX_FW_ERoT_NVSwitch_1                   01.04.0031.0000_n04            N/A                            No
HGX_FW_FPGA_0                            1.54                           N/A                            No
HGX_FW_GPU_0                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_1                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_2                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_3                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_4                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_5                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_6                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_7                             97.10.52.00.17                 N/A                            No
HGX_FW_NVLinkManagementNIC_0             28.46.5500                     N/A                            No
HGX_FW_NVSwitch_0                        35_2014_4716                   N/A                            No
HGX_FW_NVSwitch_1                        35_2014_4716                   N/A                            No
HGX_FW_SXM_SMA_0                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_1                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_2                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_3                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_4                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_5                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_6                         0004.00.0257.0002              N/A                            No
HGX_FW_SXM_SMA_7                         0004.00.0257.0002              N/A                            No
HGX_InfoROM_GPU_0                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_1                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_2                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_3                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_4                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_5                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_6                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_7                        G540.0216.00.03                N/A                            No
HostBIOS_0                               01.00.05                       01.00.05                       Yes
HostBMC_0                                00.09.07                       00.09.07                       Yes
PCIeSwitch_0                             0.0.8                          0.0.8                          Yes
PCIeSwitch_1                             1.0.8                          0.0.8                          Yes
PSU_0                                    0105.0105                      N/A                            No
PSU_10                                   0105.0105                      N/A                            No
PSU_11                                   0105.0105                      N/A                            No
PSU_1                                    0105.0105                      N/A                            No
PSU_2                                    0105.0105                      N/A                            No
PSU_3                                    0105.0105                      N/A                            No
PSU_4                                    0105.0105                      N/A                            No
PSU_5                                    0105.0105                      N/A                            No
PSU_6                                    0105.0105                      N/A                            No
PSU_7                                    0105.0105                      N/A                            No
PSU_8                                    0105.0105                      N/A                            No
PSU_9                                    0105.0105                      N/A                            No
------------------------------------------------------------------------------------------------------------------------
Displaying version info for EXTERNAL_DGX_SYSTEM
System Model: DGXB300
Part number: 675-24387-0100-TS2
Serial number: 1943425000008
Packages: ['DGX-B300_0002_251108.1.1_custom']
Connection Status: Successful

Firmware Devices:
AP Name                                  Sys Version                    Pkg Version                    Up-To-Date
-------                                  -----------                    -----------                    ----------
CPLDBACK_0                               0.1.0.7                        0.1.0.7                        Yes
CPLDDCSM_0                               0.1.0.9                        0.1.0.9                        Yes
CPLDE1SBP_0                              0.1.0.5                        0.1.0.5                        Yes
CPLDMB_0                                 0.1.2.7                        0.1.2.7                        Yes
CX7NIC_0                                 32.43.2402                     N/A                            No
CX7NIC_1                                 32.43.2402                     N/A                            No
EROT_BIOS_0                              00.04.0061.0000_n04            00.04.0061.0000_n04            Yes
EROT_BMC_0                               00.04.0061.0000_n04            00.04.0061.0000_n04            Yes
HGX_FW_BMC_0                             B3-2509-05.0                   B3-2509-05.0                   Yes
HGX_FW_ConnectX_0                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_1                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_2                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_3                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_4                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_5                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_6                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_7                        40.46.5500                     40.46.5500                     Yes
HGX_FW_ConnectX_SMA_0                    0011.00.0265.0000              0011.00.0265.0000              Yes
HGX_FW_ConnectX_SMA_1                    0011.00.0265.0000              0011.00.0265.0000              Yes
HGX_FW_ConnectX_SMA_2                    0011.00.0265.0000              0011.00.0265.0000              Yes
HGX_FW_ConnectX_SMA_3                    0011.00.0265.0000              0011.00.0265.0000              Yes
HGX_FW_ERoT_BMC_0                        01.04.0031.0000_n04            01.04.0031.0000_n04            Yes
HGX_FW_ERoT_FPGA_0                       01.04.0031.0000_n04            01.04.0031.0000_n04            Yes
HGX_FW_ERoT_NVLinkManagementNIC_0        01.04.0031.0000_n04            01.04.0031.0000_n04            Yes
HGX_FW_ERoT_NVSwitch_0                   01.04.0031.0000_n04            01.04.0031.0000_n04            Yes
HGX_FW_ERoT_NVSwitch_1                   01.04.0031.0000_n04            01.04.0031.0000_n04            Yes
HGX_FW_FPGA_0                            1.54                           1.54                           Yes
HGX_FW_GPU_0                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_GPU_1                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_GPU_2                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_GPU_3                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_GPU_4                             97.10.52.00.17                 N/A                            No
HGX_FW_GPU_5                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_GPU_6                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_GPU_7                             97.10.52.00.17                 97.10.52.00.17                 Yes
HGX_FW_NVLinkManagementNIC_0             28.46.5500                     28.46.5500                     Yes
HGX_FW_NVSwitch_0                        35_2014_4716                   35_2014_4716                   Yes
HGX_FW_NVSwitch_1                        35_2014_4716                   35_2014_4716                   Yes
HGX_FW_SXM_SMA_0                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_1                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_2                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_3                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_4                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_5                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_6                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_FW_SXM_SMA_7                         0004.00.0257.0002              0004.00.0257.0002              Yes
HGX_InfoROM_GPU_0                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_1                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_2                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_3                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_4                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_5                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_6                        G540.0216.00.03                N/A                            No
HGX_InfoROM_GPU_7                        G540.0216.00.03                N/A                            No
HostBIOS_0                               01.00.05                       01.00.05                       Yes
HostBMC_0                                00.09.00                       00.09.00                       Yes
PCIeSwitch_0                             0.0.8                          0.0.8                          Yes
PCIeSwitch_1                             1.0.8                          0.0.8                          Yes
PSU_0                                    0.5.0.5                        N/A                            No
PSU_10                                   0.5.0.5                        N/A                            No
PSU_11                                   0.5.0.5                        N/A                            No
PSU_1                                    0.5.0.5                        N/A                            No
PSU_2                                    0.5.0.5                        N/A                            No
PSU_3                                    0.5.0.5                        N/A                            No
PSU_4                                    0.5.0.5                        N/A                            No
PSU_5                                    0.5.0.5                        N/A                            No
PSU_6                                    0.5.0.5                        N/A                            No
PSU_7                                    0.5.0.5                        N/A                            No
PSU_8                                    0.5.0.5                        N/A                            No
PSU_9                                    0.5.0.5                        N/A                            No
------------------------------------------------------------------------------------------------------------------------
Error Code: 0

You can update several target systems in parallel by specifying the configuration file with the -c flag or --config option and the update_fw command. Because a SYSTEM_NAME was added for each system in the configuration file, the output will also indicate which system information is displayed.

$ nvfwupd -c config.yaml update_fw

Updating ip address: ip=1.1.1.1
Updating ip address: ip=2.2.2.2
FW package: ['nvfw_DGX_251108.1.1.fwpkg']
FW package: ['nvfw_DGX_251108.1.1.fwpkg']
{"@odata.type": "#UpdateService.v1_11_0.UpdateService", "Messages": [{"@odata.type": "#Message.v1_0_8.Message", "Message": "A new task /redfish/v1/TaskService/Tasks/2 was created.", "MessageArgs": ["/redfish/v1/TaskService/Tasks/2"], "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: 2
------------------------------------------------------------------------------------------------------------------------
{"@odata.type": "#UpdateService.v1_11_0.UpdateService", "Messages": [{"@odata.type": "#Message.v1_0_8.Message", "Message": "A new task /redfish/v1/TaskService/Tasks/8 was created.", "MessageArgs": ["/redfish/v1/TaskService/Tasks/8"], "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: 8
------------------------------------------------------------------------------------------------------------------------
Printing Task status for IP: 1.1.1.1
Printing Task status for system: DGX_SYSTEM_LAB_1
------------------------------------------------------------------------------------------------------------------------
Task Info for Id: 8
StartTime: 2025-11-15T00:07:01+00:00
TaskState: Running
PercentComplete: 0
TaskStatus: OK
EndTime: 2025-11-15T00:06:58+00:00
Overall Task Status: {
    "@odata.context": "/redfish/v1/$metadata#Task.Task",
    "@odata.etag": "\"1745539617\"",
    "@odata.id": "/redfish/v1/TaskService/Tasks/8",
    "@odata.type": "#Task.v1_4_2.Task",
    "Description": "Task for Update Service Task",
    "EndTime": "2025-11-15T00:06:58+00:00",
    "HidePayload": false,
    "Id": "8",
    "Messages": [
        {
            "@odata.type": "#Message.v1_0_8.Message",
            "Message": "Image '/var/tmp/bundles/nvfw_DGX_251108.1.1.fwpkg' is being transferred to 'HostBMC_0'.",
            "MessageArgs": [
                "/var/tmp/bundles/nvfw_DGX_251108.1.1.fwpkg",
                "HostBMC_0"
            ],
            "MessageId": "Update.1.0.TransferringToComponent",
            "Resolution": "None.",
            "Severity": "OK"
        },
        {
            "@odata.type": "#Message.v1_0_8.Message",
            "Message": "Task /redfish/v1/UpdateService/upload is running normally.",
            "MessageArgs": [
                "/redfish/v1/UpdateService/upload"
            ],
            "MessageId": "Task.1.0.Running",
            "Resolution": "None",
            "Severity": "OK"
        }
    ],
    "Name": "Update Service Task",
    "PercentComplete": 0,
    "StartTime": "2025-11-15T00:07:01+00:00",
    "TaskState": "Running",
    "TaskStatus": "OK"
}
Update is still running.
Printing Task status for IP: 2.2.2.2
Printing Task status for system: EXTERNAL_DGX_SYSTEM
------------------------------------------------------------------------------------------------------------------------
 Task Info for Id: 2
StartTime: 2025-11-15T08:06:22+08:00
TaskState: Running
PercentComplete: 57
TaskStatus: Warning
EndTime: 1970-01-01T08:00:00+08:00
Overall Task Status: {
    "@odata.context": "/redfish/v1/$metadata#Task.Task",
    "@odata.etag": "\"1745539580\"",
    "@odata.id": "/redfish/v1/TaskService/Tasks/2",
    "@odata.type": "#Task.v1_4_2.Task",
    "Description": "Task for Update Service Task",
    "EndTime": "1970-01-01T08:00:00+08:00",
    "HidePayload": false,
    "Id": "2",
    "Messages": [
        {
            "@odata.type": "#Message.v1_0_8.Message",
            "Message": "Image '/var/tmp/bundles/nvfw_DGX_251108.1.1.fwpkg' is being transferred to 'HostBMC_0'.",
            "MessageArgs": [
                "/var/tmp/bundles/nvfw_DGX_251108.1.1.fwpkg",
                "HostBMC_0"
            ],
            "MessageId": "Update.1.0.TransferringToComponent",
            "Resolution": "None.",
            "Severity": "OK"
        },
        {
            "@odata.type": "#Message.v1_0_8.Message",
            "Message": "Task /redfish/v1/UpdateService/upload is running normally.",
            "MessageArgs": [
                "/redfish/v1/UpdateService/upload"
            ],
            "MessageId": "Task.1.0.Running",
            "Resolution": "None",
            "Severity": "OK"
        }
    ],
    "Name": "Update Service Task",
    "PercentComplete": 0,
    "StartTime": "2025-11-15T00:07:01+00:00",
    "TaskState": "Running",
    "TaskStatus": "OK"
}
    Update is still running.
    ...

            {
            "@odata.type": "#Message.v1_0_8.Message",
            "Message": "Device 'CPLDMID_0' successfully updated with image '0.2.1.4'.",
            "MessageArgs": [
                "CPLDMID_0",
                "0.2.1.4"
            ],
            "MessageId": "Update.1.0.UpdateSuccessful",
            "Resolution": "None.",
            "Severity": "OK"
        },
        {
            "@odata.type": "#Message.v1_0_8.Message",
            "Message": "Task /redfish/v1/UpdateService/upload has completed.",
            "MessageArgs": [
                "/redfish/v1/UpdateService/upload"
            ],
            "MessageId": "Task.1.0.Completed",
            "Resolution": "None",
            "Severity": "OK"
        }
    ],
    "Name": "Update Service Task",
    "PercentComplete": 100,
    "StartTime": "2025-11-15T00:07:01+00:00",
    "TaskState": "Completed",
    "TaskStatus": "OK"
}
Update is successful.

After the update, you must perform an AC cycle on each system for the changes to take effect.