The problem resides when linux takes over the framebuffer, it flickers because the kernel does the framebuffer initialization again. Kernel booting log show these error:
"root@apalis-imx8-15097164:~# dmesg | grep lvds
[ 0.455092] platform panel-lvds: Fixing up cyclic dependency with bus@57240000:ldb@572410e0
[ 1.381218] lvds1_pixel_clk: failed to set clock parent -16
[ 1.386851] clk: failed to reparent lvds1_pixel_clk to lvds1_bypass_clk: -16
[ 2.120392] lvds1_phy_clk: failed to set clock parent -16
[ 2.125841] clk: failed to reparent lvds1_phy_clk to lvds1_bypass_clk: -16
[ 2.169435] lvds1_pixel_clk: failed to set clock parent -16
[ 2.175051…19] lvds1_pixel_clk: failed to set clock parent -16
[ 3.419357] clk: failed to reparent lvds1_pixel_clk to lvds1_bypass_clk: -16
…[ 9.234296] clk: failed to reparent lvds1_pixel_clk to lvds1_bypass_clk: -16
[ 9.248813] lvds1_pixel_clk: failed to set clock parent -16
[ 9.254509] clk: failed to reparent lvds1_pixel_clk to lvds1_bypass_clk: -16
[ 9.433436] lvds1_pixel_clk: failed to set clock parent -16
[ 9.442421] clk: failed to reparent lvds1_pixel_clk to lvds1_bypass_clk: -16
"
Are there anyway to keep uboot splash screen still display when kernel is booting?
Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
Hello!
Thank you for your question about U-Boot splash screen support on i.MX8-based modules. Currently, there are some limitations in this area:
Mainline U-Boot does not support video displays on i.MX8-based modules.
There is no mechanism for a smooth transition of video handling between U-Boot and the Linux kernel.
The support for splash screens varies across different modules and display interfaces, so there isn’t a universal solution.
For your specific case with the i.MX8QM, while some display controller drivers are available in BSP 6’s U-Boot, seamless display transitions are still not fully supported.
As an alternative, you might consider using Plymouth for splash screen implementation. Although Plymouth operates from userspace and may take longer to display, it offers a more stable solution for splash screens. If you’re interested in optimizing boot time with Plymouth, there are resources available to help reduce the delay in displaying the splash screen.
If you need more information about implementing Plymouth, feel free to ask!
Best regards,
Toradex AI Assistant.
Please, also check if these links can help you solve your problem:
Plymouth does not start at the time kernel start booting, It take long time to show. So, i want a way to keep uboot splash screen still displays in kernel booting.
Hi @victorduong , I was checking the other ticket with @henrique.tx. I’m thinking that this issue could be prevented if use simple-framebuffer in Uboot. What do you think @henrique.tx ?
Can you try the following?
1. Enable simple-framebuffer in the Linux kernel
Ensure the following are set in your kernel config:
U-Boot can populate this node dynamically during runtime if your patches support it. You can verify this by checking the flattened device tree passed to Linux (/proc/device-tree/chosen/framebuffer@0).
3. Prevent Linux from resetting the display
Make sure the LVDS panel settings in the Linux device tree match exactly what U-Boot uses (timings, bus format, etc.).
Add to kernel command line (The following is an example):
Thanks for the information @victorduong. Can you check my previous post about simple-framebuffer and try to implement it and see if it solves the flicker? I don’t think there are other alternatives for a smooth transition between U-Boot and Linux kernel.