Jetson AGX Xavier DevKit Boot Time Optimization and Bootloader Flashing Issue (Jetpack 5.1.3)

Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
other DRIVE OS version

Target Operating System
Linux

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)

SDK Manager Version
1.9.1.10844
other
Only using NVIDIA Jetson Linux 35.6.0 BSP

Host Machine Version
native Ubuntu 18.04
other (Ubuntu 22.04.5 LTS)
ps. for building UEFI bootloader

1. Goal:
I am trying to upgrade Jetson AGX Xavier DevKit to JetPack 5.1.3 and optimize the boot time by disabling unnecessary drivers and services in the bootloader.

2. Steps Taken:

  • Downloaded the Jetson SDK and the corresponding File System.
  • Attempted to flash the bootloader using the following command:
sudo ./flash.sh -r -k cpu-bootloader jetson-agx-xavier-devkit mmcblk0p1
  • The following error occurred during flashing:
[   7.4989 ] tegradevflash_v2 --write A_cpu-bootloader 1_nvdisp-init_sigheader.bin.encrypt
[   7.4993 ] Bootloader version 01.00.0000
[   7.5009 ] Writing partition A_cpu-bootloader with 1_nvdisp-init_sigheader.bin.encrypt [ 3477504 bytes ]
[   7.5011 ] 000000000d0d090d: E> NV3P_SERVER: Failed to open partition A_cpu-bootloader.
[   7.5035 ]
Error: Return value 13
Command tegradevflash_v2 --write A_cpu-bootloader 1_nvdisp-init_sigheader.bin.encrypt
Failed to flash/read t186ref.

3. Debugging Attempts:

  • Suspecting an issue with the initial configuration, I built the bootloader by disabling unnecessary device drivers following the guide:
    • NVIDIA EDK2 Repository: edkrepo
    • Boot Time Optimization Guide: NVIDIA Docs
  • The build process completed successfully, and I replaced the newly built UEFI binary:
cp /home/user/jetson_os/yp_test/nvidia-uefi/images/uefi_Jetson_RELEASE.bin \
   /home/user/jetson_os/yp/Linux_for_Tegra/bootloader/uefi_jetson.bin
  • After replacing the bootloader, I attempted to flash it again using:
sudo ./flash.sh -r -k cpu-bootloader jetson-agx-xavier-devkit mmcblk0p1
  • However, after flashing, the Jetson failed to boot and displayed the following crash log:
ERROR:   MPIDR 0x80000000: exception reason=0 syndrome=0xbe000000
ERROR:   Overflows, Uncorrectable errors - Unrecoverable error
ERROR:   Status 0xC006612
ERROR:   Uncorrectable fault (this is fatal)
ERROR:   Exception raised from EL1
ERROR:   sp_el0 = 0x0000000040018400
ERROR:   esr_el1 = 0x0000000000000000
ERROR:   MPIDR_EL1 = 0x0000000080000300
  • When I restore the original uefi_jetson.bin and perform a full flash, the Jetson boots normally.
  • However, when flashing only the bootloader with the newly built UEFI binary, the issue persists.

4. Questions:

  1. What could be causing the boot failure when using the newly built UEFI binary?
  2. Is there a specific step required when flashing a custom-built UEFI bootloader separately from a full system flash?
  3. Are there additional configurations required when disabling drivers for boot time optimization?
  4. How can I properly validate that my UEFI build is correctly formatted and compatible with Jetson AGX Xavier DevKit?
  5. Is there an NVIDIA-recommended method to flash only the bootloader partition without encountering this issue?

Any insights or guidance would be greatly appreciated. Thank you!


System Details:

  • Jetson Platform: AGX Xavier DevKit
  • JetPack Version: 5.1.3
  • L4T Version: R35.6.0
  • Flashing Tool: flash.sh from Linux for Tegra (L4T)
  • Bootloader: Custom-built UEFI from NVIDIA EDK2

Looking forward to your support. Thank you!

BuildLog (bootloader)
BUILDLOG_Jetson.txt (202.7 KB)

BootLog (abnormal, jetson-agx-xavier)
kernel_log3.txt (15.6 KB)

inc files (for modifying bootloader)
NVIDIA.common.dsc.inc.txt (103.8 KB)
NVIDIA.fvmain.fdf.inc.txt (28.0 KB)

flashing failure (after flash.sh bootloader)
flashing failure.txt (48.3 KB)

Hi hkp119,

Please share the command how did yo clone the uefi source.

I’m curious about why it tried to find A_cpu-bootloader rather than cpu-bootloader if you are using AGX Xavier devkit with JP5.1.3.

copying cfgfile(/home/user/jetson_os/yp/Linux_for_Tegra/bootloader/t186ref/cfg/flash_t194_sdmmc.xml) to flash.xml... done.

In the flash log you shared, it is using flash_t194_sdmmc.xml as partition layout. Please check the name for bootloader.

How about using the new uefi_jetson.bin and perform a full flash?

Hi kevin, this is abby.

1. UEFI Source Code Cloning & Build Process

I followed the instructions from the official NVIDIA GitHub repository:
🔗 Build without Docker

Steps Taken:

  1. Installed edkrepo and set up the EDK2 workspace.
  2. Used the following command to download the UEFI source:
edkrepo clone nvidia-uefi NvidiaPlatform main
  1. I referred to this guide and disabled items 2, 4, 5, and 7.

  2. Configured the development environment and built the UEFI bootloader using:

edk2-nvidia/Platform/NVIDIA/Jetson/build.sh
  1. The build completed successfully, generating:
uefi_jetson/images/uefi_Jetson_RELEASE.bin
  1. Replaced the default bootloader with the new one:
cp uefi_jetson/images/uefi_Jetson_RELEASE.bin Linux_for_Tegra/bootloader/uefi_jetson.bin
  1. Attempted to flash using:
sudo ./flash.sh -r -k cpu-bootloader jetson-agx-xavier-devkit mmcblk0p1

The inc file used when modifying the bootloader is attached in the original document.

2. Flashing Issue with A_cpu_bootloader

I mainly followed the Flashing Manual from the link below to configure the setup:
Jetson Flashing Support.

However, even when using the following command, the result remains the same:

sudo ./flash.sh -r -k cpu-bootloader jetson-agx-xavier-devkit mmcblk0p1

bootloader_flashing_log.txt (49.1 KB)

3. Understanding flash_t194_sdmmc.xml & Bootloader Naming

  • What does it mean to use the flash_t194_sdmmc.xml as the partition layout?
    (We don’t have any special partition settings. Does that mean there are any special settings?)
  • How can I check the name of the bootloader?"
  • How can I check the exact name of the bootloader partition being flashed?
  • Is there a recommended way to ensure that the correct bootloader is being used?

4. Full Flash with New UEFI Bootloader

The following content is the result obtained after performing a full flash with the modified bootloader.
new uefi full flashing log.txt (70.5 KB)

$ cp uefi_jetson/images/uefi_Jetson_RELEASE.bin Linux_for_Tegra/bootloader/uefi_jetson.bin
$ sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1

The boot result is the same as the boot log attached in the original document.

I think your problem is here:
edkrepo clone nvidia-uefi NvidiaPlatform Jetson

You would need to clone the correct l4t branch for the AGX Xavier:
edkrepo clone nvidia-uefi NVIDIA-Platforms r35.5.0

Make the sure version used for edkrepo matches your L4T version.
Jetpack 5.1.3 is r35.5.0
Jetpack 5.1.4 is r35.6.0

1 Like

I’m sorry, I edited the text as well, but I cloned it as instructed in the manual with the following command. Is this also incorrect?

edkrepo clone nvidia-uefi NvidiaPlatform main

MrRiboyama is correct.

If you want to work with JP5.1.3, please run the following command instead.

$ edkrepo clone nvidia-uefi-r35.5.0 NVIDIA-Platforms r35.5.0

main is the latest branch which may not work with your release.

1 Like

Thanks to your help, I am now able to successfully build the bootloader. However, I am encountering an issue after flashing the system.

After completing the installation, including License Agreement, User ID/PW setup, Chromium installation and the installation progress bar disappears, but the screen remains stuck on the background image.

The system does not automatically reboot, unlike previous versions where it used to do so. I am receiving an error during boot for installation, which I will attach for your reference.

Could you help me identify what might be going wrong?
kernel_log.txt (131.9 KB)

[   31.519294] Please complete system configuration setup on desktop to proceed...

It seems your board is waiting for the system configuration for the first boot.

If you want to skip this, you can refer to Skipping oem-config to configure them before flash.