ubootはブートロゴを表示し、カーネルに入った後もブートロゴは表示されたままになります。
現在、ubootのコードを修正すると、uboot終了時にディスプレイが閉じられず、カーネルがロードされるまでロゴが表示され続けるという問題が発生しています。
LVDSディスプレイに関する情報については、以下の処理方法があります。
+ if (strcmp(scmi_pd->name, "display") == 0) {
+ scmi_pd->genpd.flags = GENPD_FLAG_ACTIVE_WAKEUP | GENPD_FLAG_RPM_ALWAYS_ON;
+ }
現在の問題は、
カーネル時間の3秒後、カーネルの表示モジュールが起動すると、カーネルは緑色の画面を表示し、カーネルのロゴを正常に表示できなくなります。
kernel.log:
カーネルが実行されると、ubootのロゴがカーネルのロゴに切り替わり、画面が2秒間真っ暗になります。
kernel_green.log:
ディスプレイの電源ドメインを維持し、リセットを避けてください。カーネルディスプレイモジュールが実行されると、緑色の画面が表示されます。
--- 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;ディスプレイインターフェース: lvds
理論的には、カーネルのディスプレイ関連ドライバはU-Bootの状態を維持し、二次初期化を経ずに直接ディスプレイ動作モードに入るべきである。
あるいは、初期化プロセスはカーネルの動作モードに直接かつ迅速に切り替えてカーネルのロゴを表示することもできます。
カーネル内でどのように処理すればよいでしょうか?
カーネルに表示される関連設定はDRMフレームワークを通じて構成され、そのためには基盤となるハードウェアドライバをDRMフレームワークに適合させる必要がある。
こんにちは、
LVDS に適切な dts ファイルを使用していますか?Android のプリビルドイメージでテストしましたか?
LVDSに適切なdtsファイルを使用していますか?
----> LVDS画面は既に表示済みです。
LVDSスクリーンは、U-Bootおよびカーネル実行中にロゴを表示できます。
ubootによってロゴが表示された後、システムがカーネルに切り替わり、ディスプレイモジュールデバイスが再初期化されると、ディスプレイの電源ドメインが最初にオフになり、その後オンになるため、2秒間画面が黒くなります。
画面が真っ暗になるとは思っていません。
カーネルがディスプレイモジュールを再初期化する際に、ubootの設定を継承し、カーネルロゴを直接表示した後、Androidに入り、ブートアニメーションを直接表示することを期待しています。この過程で、画面が真っ黒になるのを避けたい。
現在、ubootに修正を加え、uboot終了時にロゴ画像が閉じないようにしました。
diff --git a/arch/arm/lib/bootm.cb/arch/arm/lib/bootm.c
インデックス 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
U-Bootとカーネルの両方でPWMバックライト制御に修正を加え、カーネルドライバがスムーズに制御を引き継げるようにしました。
ubootからカーネルへのPWMバックライトはオフにリセットされません。
さらに、カーネル内のディスプレイ電源ドメインへの継続的な電力供給を確保するために、ディスプレイ電源ドメインの変更を試みました。しかし、この変更の結果、ディスプレイが正常に表示されなくなってしまいました。カーネルのロゴを切り替えた後、画面が緑色に表示された。
この例外はどのように処理すればよいでしょうか?DPUの設定に問題があり、それが原因でディスプレイパイプ全体が誤動作しているようです。
Androidのプリビルドイメージでテストしましたか?
-->はい、LVDSの表示機能は既に正常に動作していると確信しています。
Androidのコードは変更していません