Uefi network config changes not applied during build

Hello, I am attempting to build a new UEFI with some unneeded features disabled as part of a process to decrease boot time of our Jetson Orin Nano. I followed the process from edk2-nvidia repo and wiki.

Specifically I was testing out first removing network libraries from the build. I tried to set relevant configs such as “CONFIG_NETWORKING=n” in order to disable but upon checking build logs this did not seem to have any effect.

What is the proper way to customize UEFI features?

Hi idlerwheel,

Are you using the devkit or custom board for Orin Nano?
What’s the Jetpack version in use?

How did you clone the UEFI source? Please share the full command for further check.

I followed the process to build without Docker as here. Jetpack version is 6.2

Please share the exact command you used to clone UEFI source.

edkrepo clone nvidia-uefi NVIDIA-Platforms main

Here is the build log after I removed some networking features and removed 5s delay etc.
BUILDLOG_Jetson.txt (4.5 MB).

Here is UART debug log after I replaced uefi_jetson.bin in L4T with the uefi_Jetson_RELEASE.bin that was built:
screen.log (99.5 KB)

Also here are the changes that I made to the UEFI configurations (I had to copy these over from a different device and later realized I forgot to remove a dependency or two but otherwise these are the changes I made, saved as txt so I can upload).
NVIDIA.fvmain.fdf.txt (28.2 KB)
NVIDIA.common.dsc.txt (103.9 KB)

Despite removing the delay, on testing with the Jetson Orin the delay appears to still be there, among other things that should have been removed.

It is not the expected one to me since you are working with JP6.2.
Please run the following command instead.

$ edkrepo clone nvidia-uefi-r36.4.3 NVIDIA-Platforms r36.4.3

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

I see, I will clone with correct version. I am confused as to how this would affect the end result that I see on the board with the new UEFI? Since I was still able to build, flash, and boot with using the most recent version.

The result would be affected since there might be newer commits for development and not for the current release like r36.4.3.
main branch includes all uefi commits and it should not be used for any current release.

Please use the command I shared to clone the source and give it a try.

How would I verify that new UEFI is properly used when creating new image for flashing from the BSP after replacing uefi binaries? Do I need to modify any other files to make sure old versions are not used?

You can just check the build date/time as following in the serial console log during boot up.

 Jetson UEFI firmware (version 36.4.0-l4t-r36.4-uefi-202405_a8a8b5_385f6_13cd4 built on 2024-12-24T05:48:31+00:00)

Okay from boot logs it looks like the version being used isJetson UEFI firmware (version 36.4.3-gcid-38968081 built on 2025-01-08T01:18:20+00:00). I am confused as to where this UEFI is from since I have replaced the uefi_jetson.bin that is default in the BSP with a different file?

Do you mean that you’ve replace <Linux_for_Tegra>/bootloader/uefi_jetson.bin with the one built from yourself but you see the build date/time is the same?
If so, please share the steps how do you flash the board to apply the change.

I am creating an image to flash to SD card, so:
sudo ./jetson-disk-image-creator.sh -o new_image_name.img -b jetson-orin-nano-devkit -d SD
Then I flash it with Balena Etcher.

Your command would just update the data in SD card.
However, UEFI(bootloader) is stored in the QSPI, which is inside the module.

As a result, you have to run flash.sh as following to update UEFI binary.

$ sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit internal

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