I have the goal to achieve a FlickerFreeBoot.
A good way to get there seams the simple-framebuffer support in linux.
Using the frame buffer initialized from u-boot, until drm is fully in charge.
My first try, see devictree fragment below, doesn't work.
(u-boot starts and the Display show the Logo but goes black during switch to Linux,
2 seconds later goes on showing the Linux Logo)
Could somebody provide me an example for a working config?
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
bootargs = "console=ttyLP1,115200 earlycon";
stdout-path = &lpuart1;
simplefb_lvds0: framebuffer-lvds0 {
compatible = "amlogic,simple-framebuffer",
"simple-framebuffer";
reg = <0 0xbf700000 0 0xa00000>;
width = <1280>;
height = <800>;
stride = <5120>;
format = "x8r8g8b8";
power-supply = <®_12v0>;
power-domains = <&pd IMX_SC_R_LVDS_0>,
<&pd IMX_SC_R_LVDS_1>,
<&pd IMX_SC_R_GPU_0_PID0>,
<&pd IMX_SC_R_DC_0>,
<&pd IMX_SC_R_DC_0_PLL_0>,
<&pd IMX_SC_R_DC_0_PLL_1>,
<&pd IMX_SC_R_DC_0_VIDEO0>,
<&pd IMX_SC_R_GPU_0_PID0>;
clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
<&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>,
<&clk IMX_SC_R_LVDS_1 IMX_SC_PM_CLK_MISC2>,
<&clk IMX_SC_R_LVDS_1 IMX_SC_PM_CLK_BYPASS>,
<&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC3>,
<&clk IMX_SC_R_GPU_0_PID0 IMX_SC_PM_CLK_PER>,
<&clk IMX_SC_R_GPU_0_PID0 IMX_SC_PM_CLK_MISC>,
<&clk IMX_SC_R_DC_0_PLL_0 IMX_SC_PM_CLK_PLL>,
<&clk IMX_SC_R_DC_0_PLL_1 IMX_SC_PM_CLK_PLL>,
<&clk IMX_SC_R_DC_0_VIDEO0 IMX_SC_PM_CLK_BYPASS>,
<&clk IMX_SC_R_DC_0 IMX_SC_PM_CLK_MISC0>,
<&clk IMX_SC_R_DC_0 IMX_SC_PM_CLK_MISC1>,
<&clk IMX_SC_R_DC_0 IMX_SC_PM_CLK_MISC0>,
<&clk IMX_SC_R_DC_0 IMX_SC_PM_CLK_MISC1>,
<&dc0_cfg_clk>,
<&dc0_axi_ext_clk>,
<&dc0_disp_lpcg 0>,
<&dc0_prg8_lpcg 0>,
<&dc0_prg8_lpcg 1>,
<&dc0_prg7_lpcg 0>,
<&dc0_prg7_lpcg 1>,
<&dc0_prg6_lpcg 0>,
<&dc0_prg6_lpcg 1>,
<&dc0_prg5_lpcg 0>,
<&dc0_prg5_lpcg 1>,
<&dc0_prg4_lpcg 0>,
<&dc0_prg4_lpcg 1>,
<&dc0_prg3_lpcg 0>,
<&dc0_prg3_lpcg 1>,
<&dc0_prg2_lpcg 0>,
<&dc0_prg2_lpcg 1>,
<&dc0_prg1_lpcg 0>,
<&dc0_prg1_lpcg 1>,
<&dc0_prg0_lpcg 0>,
<&dc0_prg0_lpcg 1>,
<&dc0_rtram0_lpcg 0>,
<&dc0_rtram0_lpcg 1>,
<&dc0_rtram1_lpcg 0>,
<&dc0_rtram1_lpcg 1>,
<&dc0_dpr0_lpcg 0>,
<&dc0_dpr0_lpcg 1>,
<&dc0_dpr1_lpcg 0>,
<&dc0_dpr1_lpcg 1>,
<&dc0_cfg_clk>,
<&dc0_axi_ext_clk>;
status = "okay";
};
};
fb_reserved: fb_reserved@bf700000 {
reg = <0 0xbf700000 0 0xa00000>;
no-map;
};
I am working on "imx kernel 5.4.47" and "imx u-boot 2020.04"