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...
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.
+ /* lcdif_power_down(); */
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] Starting kernel ...
*** splash image sometimes shifts position ***
[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
how to initialized the MIPI DSI controller in uboot ,and display logo
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?
BSP version is L5.4.70-2.3.0
Maybe this link can help:
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?