Introduction#

An NVIDIA® Grace™ Hopper™ or Grace Blackwell server comprises Grace CPUs, optional GPUs, and a few other components (refer to the table below). Application Programming (AP) components can be updated using Out-Of-Band (OOB) with Redfish APIs or using in-band with vendor-provided tools.

The table below lists the available Grace Hopper or Grace Blackwell AP components, the update methods, and where to find the instructions to update these components.

Grace Hopper or Grace Blackwell Components#

Component

OOB Bundle

In Band Update

Entire Bundle

Y

N

BMC ERoT

Y

N

BMC

Y

N

CPU ERoT

Y

N

GPU

Y

N

FPGA

Y

N

Supported Platforms#

The following platforms are supported in NVFWUPD:

  • NVIDIA Grace P4352, NVIDIA GH200 P4351, and NVIDIA Grace Hopper x4

  • NVIDIA GH200, NVIDIA MGX C2 Grace SuperChip, and NVIDIA MGX GH200

  • NVIDIA GB200 NVL, NVIDIA GB300 NVL

  • Delta PowerShelf, LiteOn PowerShelf

Updating Grace Hopper or Grace Blackwell Firmware#

This section provides information about how to update the firmware using the nvfwupd tool.

Tool and Firmware Availability#

To determine the tool and firmware availability, complete the following steps:

  1. To get a PLDM firmware package that is signed by NVIDIA, contact the Application Engineering (AE) Team.

  2. Enter the following information:

    • BMC-IP address or hostname

    • User ID

    • password

To get the dynamic libraries required, run the following commands.

$ ldd nvfwupd

linux-vdso.so.1 (0x00007ffed3bcd000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe2cab9e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe2cab7b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe2ca989000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe2caddb000)
  1. Additional Tools Needed:

    • IPMITool must additionally be installed for full firmware activation command support

Important

  • The package only runs in a Linux environment, and nvfwupd is an ELF binary.

  • The package has been tested on arm64 and x86_64 Ubuntu.

  • Any Linux distribution that supports the listed dynamic libraries and additional tools should be able to run nvfwupd.

Command Syntax#

Usage: nvfwupd [ global options ] <command>

Global options:
    -t --target ip=<BMC IP/NVOS IP> user=<login id> password=<password> port=<port num for port forwarding> servertype=<Type of server>
          Target comprising BMC/NVOS IP address and BMC/NVOS login credentials. NVOS IP used for GB200Switch/GB300Switch. servertype and port are optional arguments. Valid value for servertype is one of [DGX, HGX, MGX, GH200, HGXB100, HGXB300, GB200, GB300, MGX-NVL, GB200Switch, GB300Switch, Powershelf]

    -o --os_target ip=<OS IP> user=<OS login id> password=<OS password> port=<port num for port forwarding> servertype=<Type of server>
          OS target comprising OS IP address and OS login credentials. servertype and port are optional. Valid value for servertype is one of [DGX, HGX, MGX, GH200, HGXB100, HGXB300, GB200, GB300, MGX-NVL, GB200Switch, GB300Switch, Powershelf]

    -c --config Path for config file (optional).
          Configure tool behavior

    -v --verbose Chosen path for logfile (optional). Default path is current working directory.
          Increase verbosity

Commands:
    help       Show tool help.

    version    Show tool version.

    show_pkg_content [ options... ]
        -p  --package        PLDM firmware package

    unpack [ options... ]
        -p  --package        PLDM firmware package
        -o  --outdir         Directory path to save unpacked firmware files (optional). Default path is current working directory of tool.

    <Global options...> show_version [ options... ]
        -p  --package                PLDM firmware package
        -j  --json                   show output in JSON
        -s  --staged                 Show staged firmware versions

    <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
        -o  --oem_parameters         Oem Parameters json file
        -d  --details                Show update progress in table format
        -j  --json                   show output in JSON. Must be paired with the -b background option, and always bypasses update confirmation prompt.
        -u  --staged_update          SPI Staged Update
        -a  --staged_activate_update SPI and Activate Staged Update

    <Global options...> activate_fw [ options... ]
        -c  --cmd                    Activation command name. List of supported commands ['PWR_STATUS', 'PWR_OFF', 'PWR_ON', 'PWR_CYCLE', 'RESET_COLD', 'RESET_WARM', 'NVUE_PWR_CYCLE', 'RF_AUX_PWR_CYCLE', 'RF_PWR_ON', 'RF_PWR_OFF', 'RF_PWR_CYCLE', 'RF_PWR_STATUS']

    <Global options...> background_copy [ options... ]
        -s  --special                JSON File for selecting background copy target

    <Global options...> force_update [ options... ]
        enable|disable|status        enable, disable or check current force update value on target
        -j  --json                   show output in JSON

    <Global options...> show_update_progress [ options... ]
        -i  --id                     List of Task IDs delimited by space
        -j  --json                   show output in JSON

    <Global options...> perform_factory_reset

    <Global options...> install_license

    <Global options...> make_upd_targets [ options... ]
        -o  --outdir                 Directory path to create update target files (optional). Default path is current working directory of tool.

    <Global options...> flint_update [ options... ]
        -i  --image                  Image file for firmware flashing and version comparison
        -d  --device_type            Device type for firmware flashing and version query (e.g., BlueField3, ConnectX)
        -j  --json                   show output in JSON.
        -v  --version                Query firmware version only