About the nvfwupd Command

The nvfwupd executable runs on the Linux operating system and is available for x86_64 or arm64 architecture machines. You can run the x86_64 executable locally on the DGX system or use a remote Linux system.

If you run nvfwupd locally on the DGX system, instead of connecting to the BMC IP address, as shown in the sample commands, you can connect to the host Redfish interface IP address.

Copy
Copied!
            

Usage: nvfwupd [ global options ] <command> Global options: -t --target ip=<bmc-ip-address> user=<bmc-user-id> password=<bmc-password> BMC target comprising BMC IP address and BMC login credentials -v --verbose Increase verbosity Commands: help Show tool help. version Show tool version. <Global options...> show_version [ options... ] -p --package PLDM firmware package <Global options...> update_fw [ options... ] -p --package PLDM firmware package -y --yes Bypass firmware update confirmation prompt -b --background Exit without waiting for the update process to finish -t --timeout API request timeout value in seconds -s --special Special Update json file <Global options...> force_update [ options... ] enable|disable|status enable, disable or check current force update value on target <Global options...> show_update_progress [ options... ] -i --id List of Task IDs delimited by space <Global options...> perform_factory_reset [ options... ] -y --yes Perform factory reset to the baseboard

By default, the nvfwupd update_fw command communicates with the Redfish API, prints the the firmware update progress to the console, and then exits when the command runs to completion.

Alternatively, you can specify the --background or -b argument so that the command communicates with the Redfish API, prints the task ID to the console, and then exits. In this case, you can periodically run the nvfwupd show_update_progress command with the task ID to monitor the update progress.

  1. Create a component-specific updparameters.json file.

  2. Update the firmware in the background:

    Copy
    Copied!
                

    nvfwupd -t ip=<bmc-ip-address> user=<bmc-user-id> password=<bmc-password> update_fw \ -p <firmware-package-file> -y -s updparameters.json -b

    Example Output

    Copy
    Copied!
                

    FW recipe: ['<firmware-package-file>'] {"@odata.type": "#UpdateService.v1_6_0.UpdateService", ...} FW update started, Task Id: 1

  3. Display the update progress for the task:

    Copy
    Copied!
                

    nvfwupd -t ip=<bmc-ip-address> user=<bmc-user-id> password=<bmc-password> show_update_progress -i 1

    Example Output

    Copy
    Copied!
                

    {'id': ['1']} Task Info for Id: 1 StartTime: 2023-03-11T01:10:01-0000 TaskState: Running PercentComplete: 58 TaskStatus: OK EndTime: 2023-03-11T01:10:00+00:00 TaskStatus: Task /redfish/v1/UpdateService/upload is running normally.

    Eventually, the percent complete field reports 100 and the task state field reports Completed.

© Copyright 2022-2023, NVIDIA. Last updated on May 26, 2023.