Nvidia UEFI Adaptation

I am trying to make a “commercial clean” startup process with only a logo during boot.
All goes fine, and I can suspend linux stuf mostly with the bootargs, however the UEFI is a whole new story
I’m using a rebuild version of the nvidia-uefi repository you have hosted here: https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-v3.1.0/edkrepo-3.1.0.0.tar.gz

How can I get rid of notifications 1 and 2 in the below image?
IMG_3400

Any help on this would be highly apreciated

Sorry for the late response, have you managed to get issue resolved or still need the support? Thanks

Hi lightscape.nl,

You could refer to the following thread to remove messages in UEFI.
Jetson Xavier NX L4T 35.1 suppress bootloader messages on THS0 - #4 by KevinFFF

Well no,

Its not resolved im still trying to get rid of those 2 messages. (or at least mesage 2 since its overlapping our custom logo) so yes I have rebuild the uefi numerious times now trying to resolve this and im using the following procedure:
mkdir UEFI_Build
cd UEFI_Build
sudo apt-get install git python3 python3-setuptools python3-pip
mkdir edkrepo
cd edkrepo
wget https://github.com/tianocore/edk2-edkrepo/releases/download/edkrepo-v3.1.0/edkrepo-3.1.0.0.tar.gz
tar xvf edkrepo-3.1.0.0.tar.gz
rm edkrepo-3.1.0.0.tar.gz
sudo ./install.py --user ${USER}
cd …
edkrepo manifest-repos add nvidia GitHub - NVIDIA/edk2-edkrepo-manifest: NVIDIA fork of tianocore/edk2-edkrepo-manifest main nvidia
edkrepo clone nvidia-uefi NVIDIA-Jetson main
sudo apt-get update
sudo apt-get install build-essential uuid-dev git gcc python3 virtualenv gcc-aarch64-linux-gnu device-tree-compiler
rm -rf edkrepo/
cd nvidia-uefi

sudo convert -resize 1920X1080! …/…/Assets/graphic/uefi_boot/bootlogo_nvidia-fhd.bmp BMP3:./edk2-nvidia/Silicon/NVIDIA/Assets/logo-1080.bmp
sudo convert -resize 1280X720! …/…/Assets/graphic/uefi_boot/bootlogo_nvidia-fhd.bmp BMP3:./edk2-nvidia/Silicon/NVIDIA/Assets/logo-720.bmp
sudo convert -resize 640X480! …/…/Assets/graphic/uefi_boot/bootlogo_nvidia-sd.bmp BMP3:./edk2-nvidia/Silicon/NVIDIA/Assets/logo-480.bmp
sed -i ‘s/SECTION RAW = Silicon/NVIDIA/Assets/nvidiagray480.bmp/SECTION RAW = Silicon/NVIDIA/Assets/logo-480.bmp/’ edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
sed -i ‘s/SECTION RAW = Silicon/NVIDIA/Assets/nvidiagray720.bmp/SECTION RAW = Silicon/NVIDIA/Assets/logo-720.bmp/’ edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
sed -i ‘s/SECTION RAW = Silicon/NVIDIA/Assets/nvidiagray1080.bmp/SECTION RAW = Silicon/NVIDIA/Assets/logo-1080.bmp/’ edk2-nvidia/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc

//build and replace uefi
edk2-nvidia/Platform/NVIDIA/Jetson/build.sh
cp images/uefi_Jetson_RELEASE.bin …/…/Linux_for_Tegra/bootloader/uefi_jetson.bin
cd …/…/Linux_for_Tegra/

Currently im stuck

Could you build and update the UEFI image(uefi_jetson.bin) successfully?

You would only need to do once of your first part.

Could you replace the boot logo with your custom log successfully?

Yes the UEFI image is built succesfully and updated corectly to the bootloader folder wich resulted in a working boot logo after a full flash using:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/t186ref/cfg/flash_t194_uefi_qspi_p3668.xml --no-systemimg” --network usb0 jetson-xavier-nx-devkit-emmc external

However the displayed text 1 and 2 is still present, i was thinking maybe some overlay of UEFI wich can be disabled but to be honest I dont have a clue on this

It’s good to hear this.

You could also update uefi_jetson.bin only with the following command for Xavier NX.

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

Could you help to show me which text you want to remove and current status?
You may refer to the thread I shared before to modify both UEFI and kernel source.

In the initial posting i created a screen with our custom logo blurred and a 1 and 2 added to the pic

1: Would be nice to have removed but can understand if this cant be achieved
2: These messages are a must to remove since the interfere with our branding

PS. Thanks for the flash procedure for only the UEFI this can help in troubleshooting however its not the fix :P

You could try to refer the previous thread I shared to remove “L4TLauncher: …” first

Ok i tried the suplied procedure you mentioned above to get rid of the messages and also found the following ([Jetson Xavier NX] How to change Debug UART to general UART?) wich i tried aswell.

after the procedures i tried a full flash and the suplied “bootloader only” flash however this does not resolve in a clean bootlogo

Removing all messages on the screen could not be achieved by one config or setting.
You have to find the corresponding string in the source and remove them one by one.

Could you remove “L4TLauncher:” after updating UEFI image(uefi_jetson.bin)?

Ok thats clear i can understand that for each message (like L4Launcher:…) you can comment out the part in the c files wit this leaves the Jetson UEFI Firmware… text over the bootlogo (position 2)

But OK, I have edited edk2-nvidia/L4TLauncher.c at main · NVIDIA/edk2-nvidia · GitHub
to comment out the following: ErrorPrint (L"%a: Attempting Direct Boot\r\n", FUNCTION);

i rebuild the UEFI and placed the new uefi_jetson.bin on the right location then issued a flash of the board

and the result is exactly the same without any modifications and the line still showing

Do you replace the Linux_for_Tegra/bootloader/uefi_jetson.bin with uefi_Jetson_RELEASE.bin which you built?

Please also replace Linux_for_Tegra/bootloader/BOOTAA64.efi with BOOTAA64_Jetson_RELEASE.efi which you built.

How do you flash the board? Could you provide the command?

There’s the user successfully removing them.
How can I remove text printing from the UEFI Logo interface? - #5 by yaolei

First of all I used :
cp images/uefi_Jetson_RELEASE.bin …/…/Linux_for_Tegra/bootloader/uefi_jetson.bin
cp images/BOOTAA64_Jetson_RELEASE.efi …/…/Linux_for_Tegra/bootloader/BOOTAA64.efi

and then flashed with:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/t186ref/cfg/flash_t194_uefi_qspi_p3668.xml --no-systemimg” --network usb0 jetson-xavier-nx-devkit-emmc external

This resulted in a double texted boot logo like the images shared above (double text bootlogo illustrated as 2 in earlier fotos)

However:
If I use the main repo i get the described issues with double text and such
(edkrepo clone nvidia-uefi NVIDIA-Jetson main)
but i went for a try with the r35.2.1 repo (edkrepo clone nvidia-uefi NVIDIA-Jetson r35.2.1) the double text disapeared ,I still get the messages (expected and can be commented out of code like you described).
After this i directly flashed the already build main repo again (different folder) to see if it came back, but it didn’t (the bootlogo remained in a good way without a double text)

But once I rebuild the main repo again and flashed it, I got the double texted boot logo back again.

So what is does the edk2-nvidia/Platform/NVIDIA/Jetson/build.sh of the r35.2.1 do diferently than the main ?

What’s your Jetpack version in use?

If you are using Jetpack5.1, then you should use this command to clone the source of r35.2.1.

The main codeline, which will always track the most recent code.
There are many commits and changes thus I am hard to list them all here.

Are you using the devkit or custom board for Xavier NX?
Could you help to remove the NVMe drive and boot up from internal eMMC or SD?

Thanks for the response, as described earlier it works like it should with the r35.2.1 branch. To bad the main branche isn’t working like it should on the Xavier NX platform.

Im going with the this working branch of UEFI for now (r35.2.1).

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