Change the boot logo using the display with 800*600 resolution

I would like to change the boot logo and start up Jetson in the following environment.
Jetson Orin NX
JetPack 6.2
Display resolution 800*600

To change the Jetson boot logo, I replaced the bitmap image and built it with reference to the following.

I download UEFI source from GitHub - NVIDIA/edk2-nvidia: NVIDIA EDK2 platform support.
The downloaded source “combo” was specified as “r36.4.3-updates”.
When I write uefi_jetson.bin and start up Jetson, the new boot logo was displayed and the OS also started.
However, after the new boot logo disappeared during startup, the screen remained black and the boot log was not displayed until the OS started.
So I changed to the other display(resolution 19201080). New boot logo and boot log were displayed on the screen.
I also changed back to 800
600 display and wrote the NVIDIA original UEFI. Boot log was displayed.
I downloaded UEFI from the following link:
https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/Jetson_Linux_r36.4.3_aarch64.tbz2

How can I do for changing the boot logo and displaying the boot log on the display with resolution 800*600?

Hi kagesawa,

Are you using the devkit or custom board for Orin NX?

Do you mean that your custom boot logo + boot log can only work with 1920*1080 display?

Do you just change the bmp file and use the exact same name for nvidiagray480.bmp, nvidiagray720.bmp, nvidiagray1080.bmp?
How do you flash the board to apply the change for Orin NX?

Are you using the devkit or custom board for Orin NX?
I use Seeed Studio reComputer J4012.
Do you mean that your custom boot logo + boot log can only work with 19201080 display?
800
600 1920*1080
custom logo: ok ok
boot log: ng ok
Do you just change the bmp file and use the exact same name for nvidiagray480.bmp, nvidiagray720.bmp, nvidiagray1080.bmp?
yes
How do you flash the board to apply the change for Orin NX?
I use flash.sh.
I try 2 ways.
sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit mmcblk0p1
sudo ./flash.sh -k A_cpu-bootloader -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit nvme0n1p1

with original NVIDIA UEFI
800600 19201080
boot log ok ok

I would suggest using l4t_initrd_flash.sh to perform full flash for both internal QSPI and external NVMe.

Okay, it seems the current issue is specific to no boot log when you are using custom boot logo with 800*600 display.

The boot logs are printed due to framebuffer.
Could you share the full dmesg in this case? (using custom boot logo + 800*600 display)

I replace nvidia orginal uefi_jetson.bin under /nvidia/nvidia_sdk with my original uefi_jetson.bin. And flash it with nvidia sdk manager.
My Boot logo is displayed on the screen. But boot log in not displayed.

2025_07_14_var_log_dmesg.log (62.3 KB)

I attach dmesg log.
This log was taken in r36.4.4, not r36.4.3. The issue remains the same whether in r36.4.4 or r36.4.3.

Could you try using flash command instead?
You can simply run the following command to update UEFI binary only.

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

Please also share the full dmesg before you used custom logo. (i.e. the dmesg with the log printed on the display)

2025_07_14_Nvidia_var_log_dmesg.log (64.7 KB)

I attach dmesg before custom logo. (with nvidia original bootloader)

Sorry, I mistake the display resolution. It was 1280x800, not 800x600.
The resolution of my LCD module is 1280x800, and the resolutions other than 1280x800 cannot be displayed.
With NVIDIA standard bootloader, the startup screen → boot sequence → desktop can all be displayed. In other words, the Jetson always outputs the resolution of 1280x800.
When flashing my custom, the startup screen (display OK) > boot sequence (NG) > desktop (display OK), and it appears that the resolution is other than 1280x800 only during the boot sequence.

[    3.144489] kernel: simple-framebuffer chosen:framebuffer: framebuffer at 0x47de00000, 0x640000 bytes
[    3.144508] kernel: simple-framebuffer chosen:framebuffer: format=x8r8g8b8, mode=1280x800x32, linelength=8192

There’re the expected log from framebuffer indicating the 1280*800 resolution in the latest log file you shared.

Do you manage for the current issue after updating the correct 1280*800 logo?

Yes. 1280*800 is correct. (800:600 is wrong)

Sorry. Logo size is 640480, 1280720,19201080. (same size as original bitmap)
I don’t add 1280
800 logo.
Should I add 1280*800 logo?

I change 640480, 1280720,1920*1080 bitmap to my custom logo(same size). I get the source from GitHub - NVIDIA/edk2-nvidia: NVIDIA EDK2 platform support.
And I build the source after only bitmap update.
Boot sequence log don’t be displayed.(Custom logo is displayed)

I think you just need to replace these 3 files with the correct resolution respectively.
And I don’t think it should affect the log printed on the display(framebuffer) since they are from different boot stage.

Please check framebuffer related messages during boot up in both cases.

I would suggest only updating UEFI binary to prevent other factors.

You can refer to the following steps to debug this issue:

  1. flash clean JP6.2 with NVIDIA default logo + boot log through frambuffer
  2. save full serial console log
  3. replace custom boot logo and build UEFI binary
  4. replace UEFI binary and run the command to flash UEFI partition only
  5. boot up and check if there’s custom boot logo and boot log displayed
  6. save full serial console log
  7. compare serial console log between step 2 and 6

I can solove the problem.
I flash uefi_jetson twice like below.

  1. flash NVIDIA original uefi_jetson.bin
    sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit mmcblk0p1
    Replacing “mmcblk0p1” with “internal”, error occure at last stage. So I use “mmcblk0p1”.
  2. flash my custom uefi_jetson
    sudo ./flash.sh -k A_cpu-bootloader -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit internal

So, custom logo and boot sequence log is displayed on the screen.

This command will flash whole QSPI.
Using internal should be more reasonable since there’s no internal eMMC in Orin NX module.

This command will flash only UEFI partition(A_cpu-bootloader).

Could you elaborate on your solution?
Do you mean updating UEFI binary only can help for your issue while updating whole QSPI will cause boot log not printed on the display?

With my custom uefi, updating whole QSPI will cause boot log not printed on the display.
With NVIDIA original uefi, updating whole QSPI will cause boot log printed on the display.
The flash environment is the same and only the uefi binary is replaced.
While log is displayed in flashing NVIDIA original uefi, I flash only uefi (it’s my custom uefi). So custom logo and boot log is displayed.
I don’t know why this causes both the logo and the log to be displayed.

It seems something other than UEFI binary causing the issue.

Could you do a quick test to verify?

  1. clone UEFI source:
$ edk2_docker edkrepo clone nvidia-uefi-r36.4.3 NVIDIA-Platforms r36.4.3
  1. build UEFI binary w/o any change
$ edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh 
  1. replace <Linux_for_Tegra>/bootloader/uefi_jetson.bin with uefi_Jetson_RELEAE.bin you built.
  2. flash whole QSPI
  3. check if there’re both boot logo and log printed on display

At (2), I build the source, uefi_StandaloneMn_RELEASE.bin exist in /images, not ueif_jetson_RELEASE.bin.
Am I missing some setting?

Sorry that I wrote the wrong command and I’ve updated them in previous response.
Please refer to those steps and share the result.