Custom bootloader Logo

Hi.

I have been trying to put my customized logo at boot time. Here are some notes regarding my device:

1- it’s Jetson nano with customized carrier board.
2- It is connected to a 7 inch touch screen display with the resolution 1024 x 600

Based on the spec of my display, I managed to generate EDID and the kernel logo and the OS are displayed smoothly. The only problem is the logo at the boot time.

I generated bmp.blob with the repo https://github.com/VladimirSazonov/jw-boot-logo-for-Jetson-Nano
But every time during the booting state, the display shows the logo partially.

I dig into the code in the repo and realized that it generates logos for 1080, 720 and 480 resolutions. As my display supports 1024 x 600, do I have to change the source code to generate proper bmp.blob ? If that’s the case, then I have to have a proper headers to add to the blob. right ?
How to resolve this issue ?

Note that, in the BSP directory Linux_for_Tegra/kernel, there is a shell script called nv-enable-hard-coded-kernel-boot-display-mode.sh where I can specify the dispaly settings and compile the device tree tegra210-p3448-0002-p3449-0000-b00.dtb. I believe that, the device tree is set up correctly and the only issue is the bmp.blob and the metadata inside of it.

thanks
Ben

Hi benyamin,

What’s the Jetpack version in use?

Have you referred to Linux_for_Tegra/tools/bmp-splash/bmp-blob-README.txt to create bmp.blob?

It seems we support specific to the following 5 resolutions.

currently supported bmp-resolutions: 480, 720, 810, 1080, 4k.

Hi @KevinFFF

thank you so much for the follow up.

  • It’s jetpack 4.6.1
  • bmp-splash directory does not work for me. I read the manual carefully and tried to generate the blob with my preferred resolution but it does not work well. Instead, when I generate the blob with jw-boot-logo-for-Jetson-Nano it seems that the blob file is correct. My reasoning is below picture

This is my preferred boot logo when I created the blob using jw-boot-logo-for-Jetson-Nano.

I have two assumptions for this display misalignment:
1- I have to adjust bootloader device tree to support custom display:
I have to pass EDID information to the device tree bootloader. If not, I at least have to set the clock frequency,
hsync, vsync, HBP, VBP, HFP, VFP etc. in the bootloader device tree.

2- the blob file is not 100% correct.
In the ‘jw-boot-logo-for-Jetson-Nano’ source code, there are 4 headers which are added to the blob file in a
fixed order. Below is the blob file layout:
----------------------------
HEADER 1
HEADER 2
image 640 x 480
HEADER 3
image 1280 x 720
HEADER 4
image 1920 x 1080
----------------------------
These header files are fixed with hex values each of which explaining something. Header 2, header 3 and header
4 are considered metadata for images 640 x 480, 1280 x 720 and 1920 x 1080, respectively. Intuitively, If I want
to add a logo with custom resolution, I also have to add respective metadata to the blob. So far, I did not add
anything, but I believe it is logical to do so. My question here is that, these headers have a fixed format ? How
to generate a custom header ?

It seems you have to create custom header for your custom resolution.
But even if you create that, I think bootloader(cboot) would still not recognize it since we don’t handle those custom resolutions. It seems you also have to customize it in cboot for this use case.

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