NXP リファレンス デザイン コード ベース:
i.MX8MQ プラットフォーム / Android 13.0.0_2.0.0 (L6.1.22_2.0.0 BSP)
Android 13(GKI)ではMIPI-DSIに接続されたLCDIFは動作しませんが、Android 11では機能が動作します。
Android 11 ログ: (Android11_LCDIF_OK.log )
[ 3.511971] nwl-dsi 30a00000.mipi-dsi:[drm:nwl_dsi_probe] LCDIFを入力ソースとして使用する
[ 4.084346] [gm8775c_bridge_attach]
[ 4.084349] [gm8775c_simple_panel_host_register]
[ 4.084353] 子ノードパネル、パネル@0
[ 4.084609] panel-simple panel0: DMAマスクが設定されていません
[ 4.084653] [パネル_シンプル_プローブ]
[ 4.084686] panel-simple panel0: 供給電源が見つかりません。ダミーレギュレータを使用しています。
[ 4.084862] [gm8775c_attach_dsi]
[ 4.084955] nwl-dsi 30a00000.mipi-dsi:[drm:nwl_dsi_host_attach] レーン=4、フォーマット=0x0、フラグ=0x15
[ 4.085966] [drm] 30320000.lcd-コントローラ 用に mxsfb-drm 1.0.0 20160824 を初期化しましたマイナー1
[ 4.237089] mxsfb 30320000.lcd-コントローラ:[drm] fb0: mxsfb-drmdrmfb フレームバッファデバイス
Android 13 ログ: (Android13_LCDIF_Fail.log )
[ 2.401658][ T8] nwl-dsi 30a00000.mipi-dsi:[drm:nwl_dsi_probe [nwl_dsi]] LCDIF を入力ソースとして使用する
[ 2.412617][ T8] [gm8775c_bridge_attach] DRM_BRIDGE_ATTACH_NO_CONNECTOR
[ 2.419684][ T8] [drm:drm_bridge_attach] *エラー* ブリッジ /soc@0/bus@30800000/i2c@30a20000/gm8775c@2C2 の接続に失敗しました
[ 2.419734][ T1] __power_supply_register: 'battery' の適切な親デバイスが必要です
[ 2.420045][ T1] __power_supply_register: 'usb' の適切な親デバイスが必要です
[ 2.432612][ T8] [drm:drm_bridge_attach] *エラー* ブリッジ /soc@0/bus@30800000/mipi-dsi@30a00000 を en2 に接続できませんでした
[ 2.460891][ T8] mxsfb 30320000.lcd-コントローラ:エラー -EINVAL: ブリッジの接続に失敗しました
[ 2.469098][ T8] mxsfb 30320000.lcd-コントローラ:エラー -EINVAL: ブリッジに接続できません
[ 2.477247][ T8] mxsfb: 30320000.lcd-コントローラ のプローブエラー -22 で失敗しました
添付のLCDIF_Log.zipAndroid11_LCDIF_OK.log と Android13_LCDIF_Fail.log の両方が含まれます。
Android 11 のログには「Initialized mxsfb-drm」と表示されますが、Android 13 のログにはメッセージが見つかりません。
また、インターネットで「mxsfb」を検索します。
[ 11.141177] mxsfb 30320000.lcdif:ブリッジを接続できません: -22
[ 11.161062] mxsfb: 30320000.lcdif のプローブがエラー -22 で失敗しました
mxsfb は lcdif と同じですか?
mxsfb-drm を初期化CAN、問題は解決できるでしょうか?
はいの場合、Android 13(GKI)でmxsfb-drmを有効にする方法を教えてください。
いいえの場合、問題をどのように解決しますか?
ちなみに、&lcdif の代わりに &dcss を使用しているため、DSI から LVDS へのブリッジ ドライバ (gm8775c) が機能すると考えており、Android 13 の MIPI-DSI にコネクテッドされた DCSS が機能する可能性があります。
U-Boot 環境変数を次のように設定しようとしましたが、まだ機能しません。
u-boot=> setenv append_bootargs androidboot.primary_display=mxsfb-drm
u-boot=> saveenv
親愛なる友人、私も同様の問題を抱えています。SN65dsi ブリッジは lvds をサポートするために使用されます。
条件
1) DCSS+LVDSは正常に動作します
2) DCSS+HDMIは正常に動作します
しかし、lcdif+lvdsは動作しません。デュアル ディスプレイをサポートする必要があるSO、LVDS は LCDIF で駆動し、HDMI は DCSS で駆動する必要があります。
Android11 デバイスのデュアル ディスプレイ用のデバイスツリー構成を共有していただけますか?ログを確認しましたが、同様です。
i.MX8MQ の場合、mxsfb は lcdif ドライバであり、lcdif は MIPI DSI のみを出力できます。DCSSはDSIとHDMIの両方CAN出力します。
imx-dcnano と imx-drm は、他の i.MX プラットフォームのディスプレイ コントローラ ドライバでもあります。
親愛なる志明様
「primary_display」を調べてみると、Android_Quick_Start_Guide.pdf では下図のようにあまり詳しく説明されていません。
NXP 独自の用語の意味を整理していただけますか?ありがとう。
プライマリディスプレイ=mxsfb-drm
primary_display=imx-dcss
プライマリディスプレイ=imx-drm
プライマリディスプレイ=imx-dcnano
ブリッジの接続が成功すると、mxsfb-drm がカーネル空間で初期化されるということですか。
-->はい、そのようなドキュメントはありませんが、uboot とカーネルのソースコードを参照できます。
Zhiming_Liu 様
GM8775C ドライバを移植する際には、NXP が提供する Android 11 用の imx8mp_ite6151_mipi2edp_linux_5.4.24_20200921.patch と Android 13 BSP 上の adv7511 ブリッジ ドライバを参照するため、ブリッジ ドライバを再度確認し、DRM_BRIDGE_ATTACH_NO_CONNECTOR フラグに注目します。
ところで、「ブリッジ接続に失敗したため、mxsfb-drm を初期化CANません」とおっしゃいました。
=> ブリッジの接続に成功すると、mxsfb-drm がカーネル空間で初期化されるということですか。
はい、Android のブートアニメーション (ロゴ) に u-boot で mxsfb を使用したいのですが、学習して実装するための Android-13 ドキュメントはありますか?ありがとう。
間違っていたら訂正してください。
こんにちは@KyleChang
mxsfb は lcdif と同じですか?
--> i.MX8MQのlcdifドライバはdrivers/GPU/drm/mxsfb/mxsfb_drv.cです。SO、mxsfb です。ブリッジ接続に失敗したため、mxsfb-drm を初期化できません
DRM_BRIDGE_ATTACH_NO_CONNECTORフラグの処理方法に関係しているようです。この点を確認していただけますか?
mxsfb は DRM_BRIDGE_ATTACH_NO_CONNECTOR を渡しませんが、dcss ドライバは渡します。
ret = drm_bridge_attach(&mxsfb->encoder, bridge, NULL, 0);
if (ret)
return dev_err_probe(drm->dev, ret, "Failed to attach bridge\n");
mxsfb->bridge = bridge;
よろしくお願いいたします。
志明