Jetson Orin Nano Developer board: failed to bootup after UEFI updated

Hi,

Jetson Orin Nano Developer board and installed a 256G SSD on it. I upgraded to the latest SDK manger (2.1.0.11682) with JetPack 6.0 (rev. 2) on a X86 host machine to flash these boards with Ubuntu 22.04.

I used to be able to build the UEFI (both with docker or without docker) and flash to the target board from the host PC. The target board will boot up without any issue.
However, a few days ago, I pulled (git pull) the latest source for ‘edkrepo’. Here are the outputs from ‘git log’:


commit a9a61c80c224f418418bd5f94c0e04762cd4cbdb (HEAD → main, tag: uefi-202406.0, origin/uefi-202406.0-updates, origin/main, origin/HEAD)
Author: Jake Garver jake@nvidia.com
Date: Fri Jun 7 07:35:54 2024 -0700

fix(build): Fix BUILDID_STRING generation

This affacted scenarios where FIRMWARE_VERSION_BASE or GIT_SYNC_REVISION
were not set.  When using git to generate these values, the edk2-nvidia
path was not replaced resulting in a failed git command.

Signed-off-by: Jake Garver <jake@nvidia.com>

After pulled the latest code, I did NOT change anything. I still could build the code and flashed my target board without any problem. See attached for two log files.

But, my target board would fail to boot up.
I used the debug UART to take a look at, here are the last few messages:


Jetson System firmware version 202406.0-a9a61c80 date 2024-07-03T14:56:43-05:00
ESC to enter Setup.
F11 to enter Boot Manager Menu.
Enter to continue boot.

L4TLauncher: Attempting Direct Boot
EFI stub: Booting Linux Kernel…
EFI stub: Using DTB from configuration table
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Exiting boot services…
▒▒ERROR: **************************************
ERROR: RAS Uncorrectable Error in CCPMU, base=0xe001000:
ERROR: Status = 0xe4000504
ERROR: SERR = Assertion failure: 0x4
ERROR: IERR = uCode Error: 0x5
ERROR: MISC0 = 0x0
ERROR: MISC1 = 0x0
ERROR: MISC2 = 0x0
ERROR: MISC3 = 0x0
ERROR: ADDR = 0x60a5a5a5a5a5a5a5
ERROR: **************************************
ERROR: sdei_dispatch_event returned -1
ERROR: Powering off core
ERROR: ARI request timed out: req 34
ASSERT: plat/nvidia/tegra/soc/t234/drivers/mce/ari.c:154

If I used the original ‘uefi_jetson.bin’ file (came with Nvidia SDK manager) to redo the flash, the command is:
‘sudo ./flash.sh -k A_cpu-bootloader -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit nvme0n1p1’

The board will boot up without any issue.

Do you know what the problem is?

Thanks,

Steven

BUILDLOG_Jetson.txt (1.4 MB)
Flash_log.txt (71.7 KB)

Hi stevenc,

It seems you are using the main branch of UEFI source.
The boot failed issue may be caused from some CLs in main branch.

May I know how did you clone the UEFI source?

Hi,
Thanks for the reply.

A few weeks ago, I followed the instruction from the link:

to clone back all the source code, EdkRepo v3.2.2. At that time, I could build the ‘uefi’ binary file and it would boot up successfully.

A few days ago, I used ‘git pull’ from ‘~/edkrepo/nvidia-uefi/edk2-nvidia’ directory to pull in the latest source code. Then, I got this problem. I could build the UEFI with or without docker but neither ‘.bin’ file would boot up successfully.

If I used the default ‘uefi’ binary file (came with SDK), the ‘uefi’ would boot up.

BTW, I am using Jeptack6.0 DP (developer preview) and rel-36.2. Don’t know if this is the problem.
I am having troubles to upgrade to rel-36.3.

One more question, do you have a command to remove all the ‘.obj’ files so I can have a clean build?
I tried ‘edk2-nvidia/Platform/NVIDIA/Server/build.sh clean’ but apparently it did not clean the intermediary files so I can have a clean build.

Thanks,

Steven

We would suggest using R36.3 instead of R36.2 since Jetpack 6.0 DP is a developer preview release.

Please share the command how you clone UEFI source.

If you are using the devkit, you can simply update it through SDK Manager.

Could you try to remove Build and images folder?

Hi,
Thanks for the reply. Here are my answers:

  1. Please share the command how you clone UEFI source.
    I was using this link to clone the UEFI soruce:
    Build without docker · NVIDIA/edk2-nvidia Wiki · GitHub
    Basically, the following commands will clone the source back and install:

wget https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-v3.2.2/edkrepo-3.2.2.0.tar.gz
tar xvf edkrepo-3.2.2.0.tar.gz
sudo ./install.py --user ${USER}


At that time, I could build the ‘uefi’ binary file and it would boot up successfully.

However, a few days ago, I used ‘git pull’ from ‘~/edkrepo/nvidia-uefi/edk2-nvidia’ directory to pull in the latest source code. Then, I got this problem. I could build the UEFI with or without docker but neither ‘.bin’ file would boot up successfully.

  1. Yes, I am using devkit. But, the SDK on my host PC is 2.1.0.11682 which is up-to-date already. SDK would NOT update anything. In other words, SDK would not update Jetpack R36.2 (DP) to R36.3 (GA) for me.
    Any other way to install the R36.3?

Thanks,

Steven

Your steps may download the source from main branch.
I would suggest using the following command to clone the source for R36.3.0.

$ edk2_docker edkrepo clone nvidia-uefi-r36.3.0 NVIDIA-Platforms r36.3.0

Are you using x86-64 Ubuntu 20.04 as your host PC?
Please enter into force recovery state for your devkit first, and then connecting it(TypeC port) to your host PC.
Follow the steps in SDK Manager to install Jetpack 6.0GA(R36.3.0) for the devkit.

Hi,

I reinstalled everything and got R36.3 Jetpack. I also followed your instruction to clone the source for R36.3.0.
Now, everything is working now.

Thanks,

Steven

1 Like