2372921_en-US

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2372921_en-US

2372921_en-US

i.mx95 android 16 boot logo: Smooth transition from uboot logo to kernel logo

uboot displays the boot logo, and the boot logo persists after entering the kernel.


Currently, when I modify the code of uboot, the display is not closed when uboot exits, resulting in the logo being continuously displayed until the kernel loads;

Regarding the information related to LVDS display, I have the following handling methods:

  1. Regarding the issues related to PWM screen backlight control, I have resolved the chain, ensuring that the pins related to backlight are initialized in uboot, and then during kernel initialization, through configuration, the kernel will not reset the initialization of LVDS PWM.
  2. For the power domain of the display, I modified the scmi_pm_domain.c driver source code to prevent the display's power module from being reset, by adding the following information:
+               if (strcmp(scmi_pd->name, "display") == 0) {
+                       scmi_pd->genpd.flags = GENPD_FLAG_ACTIVE_WAKEUP | GENPD_FLAG_RPM_ALWAYS_ON;
+               }​



The current problem is,
After the third second of kernel time, when the display module of the kernel is started, the kernel displays a green screen and cannot normally display the kernel logo

回复: i.mx95 android 16 boot logo: Smooth transition from uboot logo to kernel logo

kernel.log:
When the kernel is running, the uboot logo switches to the kernel logo, and the screen goes black for 2 seconds
kernel_green.log: 
Keep the display power domain and avoid resetting; after the kernel display module runs, a green screen appears

--- a/drivers/pmdomain/arm/scmi_pm_domain.c
+++ b/drivers/pmdomain/arm/scmi_pm_domain.c
@@ -105,6 +105,9 @@ static int scmi_pm_domain_probe(struct scmi_device *sdev)
                scmi_pd->genpd.power_on = scmi_pd_power_on;
                scmi_pd->genpd.flags = GENPD_FLAG_ACTIVE_WAKEUP;
 
+               if (strcmp(scmi_pd->name, "display") == 0) {
+                       scmi_pd->genpd.flags = GENPD_FLAG_ACTIVE_WAKEUP | GENPD_FLAG_RPM_ALWAYS_ON;
+               }
                if (!strcmp(scmi_pd->name, "hsio_top"))
                        scmi_pd->genpd.flags = 0;

回复: i.mx95 android 16 boot logo: Smooth transition from uboot logo to kernel logo

display interface: lvds
Theoretically, the display-related drivers of the kernel should maintain the state of U-Boot and directly enter the display working mode without undergoing secondary initialization,
Or the initialization process can directly and quickly switch to the kernel's working mode to display the kernel's logo

How should I handle it in the kernel?
The relevant configurations displayed in the kernel are configured through the DRM framework, which requires adapting the underlying HW driver to the DRM framework

Re: i.mx95 android 16 boot logo: Smooth transition from uboot logo to kernel logo

Hello,

Are you using the correct dts for LVDS?, have you tested with the Android pre-build image?


Re: i.mx95 android 16 boot logo: Smooth transition from uboot logo to kernel logo

Are you using the correct dts for LVDS?
----> I have already bring up the LVDS screen.
The LVDS screen can display the logo during U-Boot and the kernel.

When the system runs to the kernel after the logo is displayed by uboot, and the display module device is reinitialized, the power domain of the display will first be powered off and then powered on, resulting in a black screen for 2 seconds;
I don't expect the screen to go black;
I expect that when the kernel reinitializes the display module, it will inherit the configuration of uboot, directly display the kernel logo, and then enter Android to directly display the boot animation. During this process, I want to avoid the appearance of a black screen.

Currently, I have made modifications in uboot so that the logo image will not be closed when uboot exits
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 81e8ddae..c6f1f8e8 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -72,7 +72,7 @@ static void announce_and_cleanup(int fake)
#endif

#if defined(CONFIG_VIDEO_LINK)
- video_link_shut_down();
+ //video_link_shut_down();
#endif


I have made modifications to the PWM backlight control in both U-Boot and the kernel, enabling the kernel driver to smoothly take over
The PWM backlight from uboot to the kernel will not be reset to off.

Additionally, I attempted to modify the display power domain to ensure continuous power supply to the display power domain within the kernel; however, this modification ultimately resulted in the display failing to display normally. After switching the kernel logo, the screen displayed in green.
How should I handle this exception? It seems that there is a problem with the configuration of the dpu, which has caused the entire display pipe to malfunction.


have you tested with the Android pre-build image?
--->yes, I am certain that the display function of LVDS is already working properly.
I haven't modified the Android code

タグ(1)
評価なし
バージョン履歴
最終更新日:
8 時間前
更新者: