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:
CONFIG_FB_SIMPLE=y
CONFIG_DRM_SIMPLEDRM=y
CONFIG_FRAMEBUFFER_CONSOLE=y
2. Patch the device tree in U-Boot to provide simple-framebuffer
You need to update your U-Boot or Linux device tree to include a chosen
node with a framebuffer
subnode like:
/ {
chosen {
framebuffer@0 {
compatible = "simple-framebuffer";
reg = <0xXXXXXXXX 0xYYYYYYYY>; // framebuffer address and size
width = <1920>;
height = <1080>;
stride = <1920 * 3>; // assuming 24bpp
format = "r8g8b8";
};
};
};
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):
setenv tdxargs "video=LVDS-1:1920x1080@60e fbcon=map:1 fbcon=font:VGA8x8"
4. Optional: Suppress kernel console on framebuffer
To avoid any text appearing, add:
quiet loglevel=3