2200078_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2200078_ja-JP

2200078_ja-JP

U-BootからMIPI DSIパネルに画像を表示する(i.MX8M Mini + TL070WSH30)

こんにちは、

現在、 Yocto KirkstoneU-Boot (2022 年 4 月 / NXP 2022.04)を使用して、 i.MX8M Mini ベースのボード上でU-Bootから直接 MIPI DSI ディスプレイ出力を有効にする作業を行っています。

私の目標は、 U-Boot の起動時 (カーネルの前) に画像またはロゴを表示することです。

ハードウェアのセットアップは次のとおりです。

  • SoC: i.MX8Mミニ

  • ディスプレイインターフェース: MIPI DSI

  • パネル: TDO TL070WSH30 (Linux で動作するカスタム パネル ドライバ)

  • U-Boot バージョン: 2022.04 (NXP フォーク)

  • Yocto バージョン:カークストーン

これが私の DT ノードです:

#include
#include "imx8mm.dtsi"
/ {
 
バックライト: バックライト {
ステータス = "正常";
互換性 = "pwm-backlight";
pwms = <&pwm3 0 2000000 0>;
明るさレベル = <0 4 8 16 32 64 128 255>;
デフォルトの明るさレベル = <6>;
デフォルトの明るさレベル = <80>;
デフォルトでオン;
};
 
panel_gpio_regulator: panel_gpio_regulator {
compatible = "regulator-gpio";
 
レギュレータ名 = "mmci-gpio-supply";
レギュレータ最小マイクロボルト = <5000000>;
レギュレータ最大マイクロボルト = <5000000>;
レギュレータブートオン;
gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
状態 = <5000000 0x1>;
 
アクティブハイを有効にする;
 
ステータス = "正常";
};
 
 
dsi_host: dsiホスト {
互換性 = "サムスン、sec-mipi-dsi";
ステータス = "正常";
};
};
 
&lcdif {
ステータス = "正常";
ディスプレイ = <&display0>;
ディスプレイ0: ディスプレイ@0 {
ピクセルあたりのビット数 = <24>;
バス幅 = <24>;
};
ポート@0 {
lcdif_to_dsim: エンドポイント {
リモートエンドポイント = <&dsim_from_lcdif>;
};
};
};
 
&mipi_dsi {
ステータス = "正常";
ポート@0 {
dsim_from_lcdif: エンドポイント {
リモートエンドポイント = <&lcdif_to_dsim>;
};
};
ポート@1 {
dsim_to_panel: エンドポイント {
リモートエンドポイント = <&panel_from_dsim>;
};
};
 
パネル@0 {
互換性 = "tdo,tl070wsh30";
レジスタ = <0>;
 
pinctrl-0 = <&pinctrl_mipi_dsi>;
pinctrl-names = "デフォルト";
リセットgpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
 
バックライト = <&backlight>;
電源 = <&panel_gpio_regulator>;
 
dsi-lanes = <4>;
ビデオモード = <0>;
 
ステータス = "正常";
ポート {
panel_from_dsim: エンドポイント {
リモートエンドポイント = <&dsim_to_panel>;
};
};
表示タイミング {
ネイティブモード = <&timing0>;
タイミング0: タイミング0 {
クロック周波数 = <51200000>;
hactive = <1024>;
vアクティブ = <600>;
hフロントポーチ = <46>;
hback-porch = <100>;
hsync-len = <80>;
vフロントポーチ = <5>;
vback-porch = <20>;
vsync-len = <5>;
};
};
};
};



U-Boot が初期化されると、次のメッセージが表示されます。

[*]-ビデオリンク 0
mxs_video lcdif@32e00000: 必要な表示プロパティが指定されていません
ビデオデバイスのプローブに失敗しました。戻り値 -22

[0] lcdif@32e00000、ビデオ
[1] mipi_dsi@32e10000、ビデオブリッジ


そして dm ツリーから:

ビデオ 0 [ ] mxs_video |-- lcdif@32e00000
ビデオブリッド 0 [ ] imx_sec_dsim |-- mipi_dsi@32e10000
syscon 4 [ ] syscon |-- display-gpr@32e28000
dsi_host 0 [ ] sec_mipi_dsim |-- dsi-host
レギュレータ 0 [ ] gpio レギュレータ |-- panel_gpio_regulator


ご覧のとおり、パネルは U-Boot でまったくプローブされておらず、LCDIF ノードで display = <&display0> を設定しているにもかかわらず、ディスプレイ プロパティが提供されていないことを示すエラーが表示されています。

私の質問


  • U-Boot の i.MX8MM に必要なブリッジ バインディングまたは DSI ホスト ノードが不足していますか?

  • U-Bootの LCDIF → MIPI DSI → パネル パイプラインの正しい DT 構造は何ですか?

  • 最後に、 i.MX8M Mini の U-Bootでの MIPI DSI パネル出力の実例はありますか?


Re: Displaying an image on a MIPI DSI panel from U-Boot (i.MX8M Mini + TL070WSH30)

こんにちは、

「必要な表示プロパティが指定されていません」というエラー メッセージは、表示チェーン内の接続が欠落していることを示します。デフォルトでは、i.MX8M Mini の U-Boot はディスプレイ パス「LCDIF - MIPI-DSI - av7535 - HDMI」をサポートしていますが、代わりに「LCDIF - MIPI-DSI - MIPI パネル」構成を使用する必要があります。

この問題を解決するには、次の操作を行う必要があります。

1. カスタム TL070WSH30 パネルを直接サポートするには、U-Boot のデバイス ツリーまたはビデオ リンク ID のいずれかを変更します。

2. デバイスツリー構造の場合、LCDIF → MIPI DSI → パネルの正しいパイプラインには以下が含まれる必要があります。
- 適切なパネルドライバノード
- LCDIFとMIPI DSI間の接続
- MIPI DSIとパネル間の接続

3. パネル ノードは、LCDIF ノードの「display」プロパティで適切に参照される必要があります。

i.MX8MM の場合、開始点として RM67191 パネル実装を CAN 参照できます。TL070WSH30 用のカスタム パネル ドライバを作成し、デバイス ツリーに正しくコネクテッドされていることを確認する必要があります。

すぐにテストしたい場合は、U-Boot で環境変数を設定して、既存のパネル構成のいずれかを使用してみてください。
「」
setenv パネル RM67191_OLED
保存環境
ブート
「」

これにより、カスタム パネル ドライバーを実装する前に、基本的なディスプレイ パスが機能するかどうかを確認できます。

よろしくお願いします。

Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 05:28 PM
Updated by: