U-boot Splash Screen for 24 Bit Parallel RGB LCD

I am trying to splash screen with a custom logo during u-boot running. My carrier boards connects to a 480x272 display with a 24-bit parallel RGB interface. I am using u-boot image version V2.7. Here is what I did in the u-boot colibri_imx6.c file as attached:
(1) Modified an exisitng display (“vga-rgb”) in display_info_t structure with the pixfmt set to IPU_PIX_FMT_RGB24. Modified “.mode” parameters according to my display specs.
(2) Added MX6_PAD_DISP0_DAT18_IPU1_DISP0_DATA18 thru MX6_PAD_DISP0_DAT23_IPU1_DISP0_DATA23 to “static iomux_v3_cfg_t const rgb_pads
(3) Changed to IOMUXC_GPR2_DATA_WIDTH_CH1_24BIT and IOMUXC_GPR2_DATA_WIDTH_CH0_24BIT

I also followed this u-boot splash screen article to add a custom logo. The u-boot was built and deployed successfully. But when entered into u-boot prompt, I don’t see anything on the screen (just black screen). Not sure if the logo file was created incorrectly or the u-boot file was modified incorrectly. Any idea of that?

colibri_imx6.c

Hi

The pixclock field of the display_info_t struct takes the period in pico seconds, not a frequency in kHz.
What happens if you change the value to 100000 ps?

Note that the splash screen must really fit on the screen, otherwise nothing is being displayed.

Max

I changed that value to 100000 ns as you requested. Still nothing on the screen. Shouldn’t that value be 1000/9 = 111 (ns) for 9 MHz pixel clock? My logo image is 240x96 pixels. That should fit on my 480x272 screen.

My bad, that should have read pico seconds. I’ll fix that in my original answer.

Yes 111111ps would be closer to 9MHz, I guess though that the code will have to choose a divider which will not produce exactly 9MHz.

What happens if you set the stdout variable in U-Boot to also output the console on the graphic output?

setenv stdout serial,vga

Entered that command at u-boot prompt and saved it. But still nothing on the screen.

Then its probably time to really measure the signals with an oscilloscope.

Pixelclock, HSync, VSync, DisplayEnable would be of interest.
I assume the display is working in Linux. So you could compare the signals in U-Boot to the ones in Linux.