When the Uboot is boot up, I can watch a logo image on the screen, but the the screen will turn black after "Starting kernel"
I made a code change to uboot to keep the display driver up; however it can occasionally shift the splash screen a random number of pixels up and right. Maybe that's why they turn off the display...
Hi Steven,
you made a change in uboot only and the display continues to work throughout the kernel boot process including the screen content?
In my attempts I had big problems with the kernel power management stopping and restarting the mipi unit several times during the kernel boot process.
And when I disabled the mipi driver shutdown at the end of uboot, my kernel only booted correctly in 2 out of 3 attempts. So this was not usable in practice.
#if defined(CONFIG_VIDEO_MXS)
- lcdif_power_down();
+ /* lcdif_power_down(); */
#en
I simply commented out the call power down the LCD. This brings no unpredictable kernel issue that you experienced save the random position shift of the splash image from center immediately after uboot. From the log times, if takes 10 seconds for the kernel to relocate itself and begin executing code. When kernel init gets to the display driver, any splash shift is corrected by the driver init and then writing of the kernel's identical splash image. If I let uboot power down the LCD, I would have 10+ seconds of black screen. I will explore doing part of lcdif_power_down() perhaps to unmap memory while still leaving the LCD backlight on, etc...
Kernel log from the debug serial port.
[12:42:06.076] Using Device Tree in place at 908056a0, end 90813a31
[12:42:06.083]
[12:42:06.083] Starting kernel ...
*** splash image sometimes shifts position ***
[12:42:06.083]
[12:42:17.085] [ 0.000000] Booting Linux on physical CPU 0x0
Looks a bit different from my page.
lcdif_power_down() is not used in the file cpu.c because the above define contains another entry:
#if defined(CONFIG_VIDEO_MXS) && !defined(CONFIG_DM_VIDEO)
lcdif_power_down();
#endif
I have tried removing the device_remove() and mxs_remove_common() call in the mxs_video_remove() function, but this sometimes ends up in a deadlock when booting the kernel.
Also, the kernel directly disables my display in the first 2 seconds of booting. So there was no real added value to this code change.
What uboot and kernel version are you using?
Hello @ruansy ,
did you already find a solution for this issue?
The link from @Bio_TICFSL is interesting, but only shows how to replace the Linux penguins with your own logo.
I'm also looking for a solution on how to display any splash screen in uboot and keep it active until Linux finishes booting. I did a lot of research with examples based on imx6, but the mipi interface is completely different and so is the power management when booting Linux.
So if you have any further information I would be very interested.
Thanks in advance
Cedric
Have you find a solution?
I am trying everything, but whit no great success. I have removed "mipi shutdown" from uboot (so the uboot-splash would stays on to kernel) but when the kernel start at some point the screen started fading away.
Hi @topphysician,
I have not found a solution either. In my tests I tried the same as you and it also ended in random boot errors.
At the moment I just live with the display turning off for a short time between uboot and kernel boot.
Best regards
Cedric
yep, I also want to know how to solve this problem. When switching from u-boot to kernel display, the screen is always black, and the logo cannot be displayed continuously. how to solve this problem?
Hello ruansy,
Maybe this link can help:
https://developer.toradex.com/knowledge-base/splash-screen-linux
Regards
Hello @Bio_TICFSL ,
your added link shows how to change the Linux penguins to an own logo. But the original question was about passing the splash screen from the uboot to the kernel.
Do you have a solution for that today too?
Regards
Cedric