Update Your BMC Firmware

BMC User Guide (Latest Version)

Use the following command-line instructions to update the BMC firmware on your NVIDIA IGX Developer Kit or your NVIDIA IGX Orin Board Kit. However, we recommend that you update your BMC firmware by using the BMC web user interface.

Note

The BMC Web User Interface (BMC Web UI) is only available for BMC firmware version 24.04-11-v3.2 or newer.

Use this documentation to perform the following tasks:

  1. Download bmc_fw_R36.x.x_aarch64.tbz2 to your Linux host computer from the IGX Download Center.

  2. On your host computer, extract the downloaded BMC firmware using command line, for example

    Copy
    Copied!
                

    tar -xvjf bmc_fw_R36.x.x_aarch64.tbz2

    Firmware images are available in bmc/fw/apfw directory.

    Note

    Check bmc/README for information about release versions and dates.

External Root of Trust (ERoT) hardware is part of the BMC module for the IGX Orin Board Kit, which is intended for production. ERoT hardware provides a secure flash and boot mechanism. Because the IGX Developer Kit is not intended for production, it is provided without ERoT hardware.

Warning

Verify whether your BMC platform is ERoT or Non-ERoT before you update the firmware, and use the correct instructions. If you use the wrong instructions your BMC is put in a non-recoverable state.

Choose the correct update instructions to avoid damaging your hardware:

Use one of the following procedures to update your IGX Developer Kit (Non-ERoT). Do the steps on the local Ubuntu host computer that has the BMC is attached.

  1. Run the following code.

    Copy
    Copied!
                

    ./tools/bmc_non_erot_updater.sh -f fw/apfw/image-bmc -p YourBmcPassword

  2. The bmc_non_erot_updater.sh script requires sshpass, if you do not have it installed, you can run the following command.

    Copy
    Copied!
                

    sudo apt-get install sshpass

Alternative procedure

  1. Verify that you are using the IGX Developer Kit.

    Warning

    If you use this procedure with the IGX Orin Board Kit, you will put your BMC into a nonrecoverable state.

  2. Comment out everything inside /usr/share/mctp/mctp by prepending each line with a #, using a text editor such as vi, or with the following sed command.

    Copy
    Copied!
                

    sed 's/^/#/' -i /usr/share/mctp/mctp

  3. Reboot the BMC.

    Copy
    Copied!
                

    reboot

  4. Copy image-bmc from Steps to Get BMC Firmware in run/initramfs/ using the SCP tool from the host.

    Copy
    Copied!
                

    scp image-bmc root@192.168.1.110:/run/initramfs/

  5. Update the new image in the BMC.

    Copy
    Copied!
                

    /run/initramfs/update

    Wait for 100% completion.

  6. Reboot BMC. Wait approximately 1 minute for the BMC reboot to complete.

    Copy
    Copied!
                

    reboot

  7. Set the password again, as this procedure reset it to the default 0penBmc.

Use the following procedure to update the IGX Orin Board Kit (ERoT). Do the steps on the local Ubuntu host computer that has the BMC is attached.

  1. Verify that you are using the IGX Orin Board Kit, not the IGX Developer Kit.

    Warning

    If you use this procedure with the IGX Developer Kit, you will put your BMC into a nonrecoverable state.

  2. Download igx-bmc-apfw-erot.fwpkg from the path in Steps to Get BMC Firmware.

  3. Save the IP address of your BMC as an environment variable by running the following code. Replace <BMC_IP> with your IP address, for example 192.168.1.110.

    Copy
    Copied!
                

    export bmc=<BMC_IP>

  4. Log into your BMC and save your access token as an environment variable by running the following code. Change <BMC_Password> to your password.

    Copy
    Copied!
                

    export token=`curl -k \ -H "Content-Type: application/json" \ -X POST https://$bmc/login \ -d '{"username": "root", "password": "<BMC_Password>"}' | grep token | awk '{print $2;}' | tr -d '"'`

  5. To start the update, run the following command. You save the task id as an environment variable so that you can check the status of the update in the following step.

    Copy
    Copied!
                

    export task_id=`curl -k \ -H "X-Auth-Token:$token" \ -H "Content-Type: application/octet-stream" \ -X POST https://$bmc/redfish/v1/UpdateService \ -T "<path of igx-bmc-apfw-erot.fwpkg>"`

  6. To check the status of the update run the following command. After the update is done, the task status is completed.

    Copy
    Copied!
                

    curl -k \ -H "X-Auth-Token:$token" \ -X GET https://$bmc/redfish/v1/TaskService/Tasks/$task_id

  7. After the task state changes to complete, reboot the BMC from the BMC Web UI, or by using the following command.

Copy
Copied!
            

curl -k \ -H "X-Auth-Token:$token" \ -X POST https://$bmc/redfish/v1/Managers/IGX_BMC_0/Actions/Manager.Reset \ -d '{"ResetType": "GracefulRestart"}'

Previous Power Management
Next Update Your MCU Firmware
© Copyright © 2024, NVIDIA Corporation. Last updated on Jun 10, 2024.