Updating UEFI Firmware on Jetson Orin Nano Developer Board

Issue Overview

Users are experiencing difficulties updating the UEFI firmware on their Jetson Orin Nano Developer boards. The main concerns revolve around understanding the correct process for updating the UEFI image, whether it can be done from a host PC or directly on the target device, and how to manage updates for different boot slots. This issue is crucial for developers working with Jetson Orin Nano boards, especially those needing to perform updates in field deployments.

Possible Causes

  1. Lack of clear documentation: The complexity of the update process and multiple methods available may lead to confusion.
  2. Version compatibility: Different versions of JetPack (DP vs GA) may require specific update procedures.
  3. Boot slot management: Uncertainty about which slot to update and how it affects the system.
  4. Hardware configuration: Presence of additional storage (e.g., NVMe SSD) may influence the update process.
  5. Recovery mode issues: Failure to properly enter recovery mode before flashing.

Troubleshooting Steps, Solutions & Fixes

  1. Verify JetPack version:
    Run the following command on the Jetson board to check the current version:

    cat /etc/nv_tegra_release
    
  2. Build UEFI binary (for custom updates):

    • Use an x86 host PC
    • Follow the steps outlined in the NVIDIA edk2-nvidia Wiki: https://github.com/NVIDIA/edk2-nvidia/wiki/Build-with-docker
  3. Update UEFI from host PC:
    a. Put the Jetson Orin Nano in Recovery mode
    b. On the host PC, navigate to the Linux_for_Tegra directory
    c. Run the following command:

    sudo ./flash.sh -k A_cpu-bootloader -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit nvme0n1p1
    

    This updates the UEFI on Slot A. It’s safe to update the current boot slot as the device will be in recovery mode.

  4. Update both slots (if needed):
    If you want both slots to have the same state, repeat the flash process for both slots.

  5. Perform Capsule Update (for field updates without host PC):
    Follow the "Update and Redundancy" guide in the NVIDIA Jetson Linux Developer Guide for instructions on performing capsule updates directly on the target device.

  6. Understanding flash commands:

    • When not specifying a slot, both slots will be flashed:
      sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit nvme0n1p1
      
    • Avoid using commands without specifying the configuration file, as it may lead to errors in finding the correct XML for QSPI.
  7. Best practices:

    • Always specify the configuration file in flash commands
    • Ensure the device is in recovery mode before flashing from a host PC
    • Keep both JetPack on the host and the Jetson board updated to compatible versions
    • When in doubt about which slot to update, update both to maintain consistency
  8. For developers needing to update products in the field:
    Implement the Capsule Update process as described in the NVIDIA Jetson Linux Developer Guide. This allows for UEFI updates without requiring a host PC.

By following these steps and best practices, users should be able to successfully update the UEFI firmware on their Jetson Orin Nano Developer boards, whether from a host PC or directly on the target device.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *