RCM Boot fail during flash with uefi built by myself

Hello,

My device is Jetson Orin Nano DevKit 8G RAM, Jetson Linux 36.4.4,
(CHIP_SKU=00:00:00:D5 BOARDID=3767 FAB=300 BOARDSKU=0005 BOARDREV=T.1 RAMCODE_ID=2)

I followed the steps of edk2-nvidia wiki to get code

edk2_docker edkrepo clone nvidia-uefi NVIDIA-Platforms r36.4.4

and build uefi through docker,

edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh --init-defconfig edk2-nvidia/Platform/NVIDIA/Jetson/Jetson.defconfig

It success, then I copy the image/uefi_Jetson_RELEASE.bin to Linux_of_Tegra/bootloader/uefi_jetson.bin

and flash the uefi fw by below command:

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

after flash, from log I can see the uefi firmware build date is changed, device still boot normally,
looks everything is ok,

BUT,
When I try to flash whole device with the uefi built by myself,
at the stage of ubuntu-host showing “Waiting for targer to boot-up…
the device always quit recovery mode then reboot to kernel,

From uart log I see bellow message

Jetson System firmware version r36.4.4-350c50a6 date 2025-11-10T10:14:43+00:00
ESC   to enter Setup.
F11   to enter Boot Manager Menu.
Enter to continue boot.
…
Error: Could not detect network connection.

Error: Could not detect network connection.
L4TLauncher: Attempting RCM Boot

Synchronous Exception at 0x000000022C7969D8

Synchronous Exception at 0x000000022C7969D8
ASSERT [ArmCpuDxe] /home/LALALA/jetson/36.4.4/uefi/nvidia-uefi/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(345): ((BOOLEAN)(0==1))

Resetting the system in 5 seconds.

If I recover uefi_jetson.bin and jetson_minimal.bin to original,
device can be flashed normally,

May I consult you what’s wrong?

why the uefi built by myself causes such result?
I didn’t modify code of uefi, just build it.

By the way,
I flash device by below command:

sudo CHIP_SKU=00:00:00:D5 BOARDID=3767 FAB=300 BOARDSKU=0005 BOARDREV=T.1 RAMCODE_ID=2 
./tools/kernel_flash/l4t_initrd_flash.sh 
–no-flash --showlogs 
–external-device nvme0n1p1 
-c tools/kernel_flash/flash_l4t_t234_nvme.xml 
-p “-c bootloader/generic/cfg/flash_t234_qspi.xml” 
–network usb0 
jetson-orin-nano-devkit external
sudo ./tools/kernel_flash/l4t_initrd_flash.sh 
–flash-only --showlogs 
–external-device nvme0n1p1 
-c tools/kernel_flash/flash_l4t_t234_nvme.xml 
-p “-c bootloader/generic/cfg/flash_t234_qspi.xml” 
–network usb0 
jetson-orin-nano-devkit external

log_flash_fail_2025_1110_01.log (27.1 KB)

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, it appears that you are experiencing issues with flashing a custom-built UEFI image on your Jetson Orin Nano DevKit. Here’s a comprehensive analysis of the problem and potential solutions:

Problem Statement

You have successfully built a custom UEFI image using the edk2-nvidia wiki instructions and Docker. However, when you try to flash the entire device with the custom-built UEFI image, the device quits recovery mode and reboots to the kernel. You have verified that the original UEFI image (uefi_jetson.bin and jetson_minimal.bin) can be flashed normally.

Comparison with Original UEFI Image

Since you didn’t modify the UEFI code, the issue might be related to the build process or the environment. Here are a few potential differences between your custom-built UEFI image and the original one:

  1. Build Environment: Although you used Docker to build the UEFI image, there might be differences in the build environment, such as the version of the compiler, libraries, or other dependencies.
  2. Configuration: Ensure that you have used the same configuration options as the original UEFI image. Check the build logs and configuration files to verify this.
  3. Signing: The original UEFI image might be signed with a different private key or certificate. Verify that you have used the correct signing key and certificate.

Potential Solutions

To resolve the issue, you can try the following:

  1. Verify the Build Process: Double-check the build process and ensure that you have followed the instructions correctly.
  2. Compare Build Logs: Compare the build logs of your custom-built UEFI image with the original one to identify any differences.
  3. Use the Same Signing Key: Try using the same signing key and certificate as the original UEFI image.
  4. Check the UEFI Image: Verify that the custom-built UEFI image is correct and not corrupted. You can try flashing a different UEFI image or using a different flashing tool.
  5. Revert to Original UEFI Image: As you have already done, try reverting to the original UEFI image (uefi_jetson.bin and jetson_minimal.bin) to ensure that the issue is not related to the device or the flashing process.

Additional Questions

To further assist you, I have a few questions:

  1. Can you provide more details about the error message you see in the UART log?
  2. Have you tried flashing the custom-built UEFI image on a different device or using a different flashing tool?
  3. Can you provide more information about the build environment and configuration options you used to build the custom UEFI image?

By analyzing the differences between your custom-built UEFI image and the original one, and trying the potential solutions mentioned above, you should be able to identify and resolve the issue.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Ah……………….

I guess, maybe the reason is just because I used wrong command to build jetson minimal uefi…

  • edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh --init-defconfig edk2-nvidia/Platform/NVIDIA/JetsonMinimal/Jetson.defconfig

OK, after correctly build uefi:

  • edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh --init-defconfig edk2-nvidia/Platform/NVIDIA/Jetson/Jetson.defconfig
  • edk2_docker edk2-nvidia/Platform/NVIDIA/JetsonMinimal/build.sh --init-defconfig edk2-nvidia/Platform/NVIDIA/JetsonMinimal/Jetson.defconfig

I can flash and boot normally with uefi built by myself now.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.