Updating the BMC

  1. Create a update_bmc.json file with the following contents:

    {
        "Targets" :["/redfish/v1/UpdateService/FirmwareInventory/HostBMC_0"]
    }
    
  2. Update the firmware:

    nvfwupd -t ip=<bmc-ip-address> user=<bmc-username> password=<bmc-password> update_fw \
      -p nvfw_DGX_240918.1.0.fwpkg -y -s update_bmc.json
    

    Example Output

    FW recipe: ['nvfw_DGX_240918.1.0.fwpkg']
    {"@odata.type": "#UpdateService.v1_6_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
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    Wait for FirmwareUpdateStarted in MessageId
    PercentageComplete: 6
     TaskState: Running
     PercentComplete: 6
     TaskStatus: OK
     ...
    
     PercentageComplete: 100
     TaskState: Completed
     PercentComplete: 100
     TaskStatus: OK
    Firmware update successful!
     Overall Time Taken: 0:36:11
    Refer to 'DGX H100 Firmware Update Document' on activation steps for new firmware to take effect.
    
  3. Reset the BMC so the BMC boots the new firmware:

    # If you have a shell on the system
    $ sudo ipmitool mc reset cold
    
    # If you are logged in to a different system
    $ ipmitool -H <bmc-ip-address> -I lanplus -U <bmc-username> -P <bmc-password> mc reset cold
    
  4. Reboot the system.