imx95 verdin-evk mlan/moal サポート こんにちは、リストの皆さん 次のボードの Wi-Fi/Bluetooth をサポートするために、Linux-imx カーネルと mwifiex コンポーネントのタグlf-6.6.3-1.0.0 を使用しています。 8<-- U-Boot SPL 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) SOC: 0xa1009500 LC: 0x40010 SYS ブート理由: por、発生元: -1、エラー: -1 SYS シャットダウン理由: por、発生元: -1、エラー: -1 DDRMIXがパワーアップしました 通常のブート MMC1から起動しようとしています プライマリセットが選択されました MMC/SD 0xacc00からイメージをロードする お知らせ: BL31: v2.8(リリース):android-14.0.0-imx95-demo-1-g8dbe28631 通知: BL31: 構築日時: 2024年1月22日 17:57:56 U-Boot 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) CPU: i.MX95 rev1.1(1800MHz) CPU: オートモーティブ温度グレード (-40℃~125℃)、22℃ LM ブート理由: por、origin: -1、errid: -1 LM シャットダウン理由: por、発生元: -1、エラー: -1 モデル: Toradex i.MX95 19X19 TITAN EVK [..] -->8 私はimx95-19x19-titan.dtbを使用していますが、この dtb にノードがなくても Wi-Fi がどのようにサポートされるのか疑問に思っています。この dtb を逆コンパイルすると、Bluetooth 用のノードが 1 つあります (動作していません)。 8<-- [..] シリアル番号@42590000 { 互換性 = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart"; <0x42590000 0x1000> レジスタ<0x00 0x42 0x04> =; 割り込み<0x11 0x90> =; クロック =; クロック名 = "ipg"; dmas<0x27 0x16 0x00 0x01 0x27 0x15 0x00 0x00> =; dma-names = "rx", "tx"; ステータス = "正常"; pinctrl-names = "デフォルト"; ピンコントロール-0 =<0x2e> �; ファンドル =<0xcf> �; ブルートゥース { 互換性 = "nxp、88w8987-bt"; fw-init-baudrate<0x2dc6c0> =; }; }; [..] -->8 しかし、Wi-Fi のノードがありません。 どうすれば正常に動作するのでしょうか? モジュール mlan と moal をロードすると「正常」になりますが、新しいネットワーク インターフェースがありません。 8<-- root@target-imx95-verdin-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [ 1451.671079] mlan: ツリー外のモジュールをロードするとカーネルが汚染されます。 [ 1451.705854] wlan: MWLANドライバを読み込んでいます [ 1451.709988] wlan: バス ドライバに登録... [ 1451.714385] wlan: バスドライバへの登録が完了しました [ 1451.718855] wlan: ドライバが正常にロードされました -->8 何か手がかりはありますか? ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは@ebio 、 ご反応いただきありがとうございます。 toradex (git://git.toradex.com/linux-toradex.git)からカーネルリポジトリを取得します。ブランチtoradex_6.6-2.2.x-imxを選択し、カーネルをビルドします。 imx カーネル リポジトリとは対照的に、「wifi」を含む dtb ファイル名がいくつかあります。 8<-- % arch/arm64/boot/dts/freescale -iname "imx95*wifi*.dtb" を検索 arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-yavia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-yavia.dtb -->8 ご想像のとおり、Toradexから必要なものを抽出し、NXPカーネルリポジトリ(タグ: lf-6.6.3-1.0.0)のDTBを適応させようとしています。😞 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts インデックス ccb88efde3c1..859183be58dc 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts @@ -189,6 +189,20 @@ reg_usdhc2_vmmc: レギュレータ-usdhc2 { アクティブハイを有効にする; }; + /* Wi-Fi を追加 */ + reg_wifi_en: レギュレーター Wifi-en { + 互換 = 「レギュレータ固定」; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wifi_pwr_en>; + /* PMIC_EN_WIFI */ + gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; + アクティブハイを有効にする; + レギュレータ最大マイクロボルト = <3300000>; + レギュレータ最小マイクロボルト = <3300000>; + レギュレータ名 = "PDn_MAYA-W260"; + 起動遅延時間 = <2000>; + }; + reg_pcie0: レギュレータ-pcie { compatible = "レギュレータ固定"; レギュレータ名 = "PCIE_WLAN_EN"; @@ -676,6 +690,19 @@ &usdhc2 { ステータス = "正常"; }; +/* Wi-Fiサポートを追加 */ +/* モジュール内 Wi-Fi */ +&usdhc3 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + ピンctrl-0 = <&pinctrl_usdhc3>; + ピンctrl-1 = <&pinctrl_usdhc3>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + 電源を停止したままにします。 + 取り外し不可。 + vmmc-supply = <®_wifi_en>; + ステータス = "正常"; +}; + &enetc_port0 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc0>; @@ -1142,6 +1169,32 @@ IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e >; }; + + + /* WB SKU ではモジュール内 Wi-Fi、それ以外の場合はモジュール固有の SDIO */ + pinctrl_usdhc3: usdhc3grp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA0 */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + ; /* SD3_DATA3 */ + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + , /* SD3_DATA3 */ + ; /* SD3_DATA4 */ + }; + + pinctrl_wifi_pwr_en: wifipwrengrp { + /* PMIC_EN_WIFI */ + fsl、ピン = ; + }; + }; &vpuctrl { -->8 ご想像のとおり、動作しません。 nxp カーネル タグ 6.6.3-1.0.0 では、なぜ nxp は dtb を提供しないのでしょうか? ドキュメントhttps://www.nxp.com/docs/en/user-guide/UG10163.pdfに驚きました第11.1章/11.3章wifi/bluetooth カーネル モジュールをロードする方法を説明します。このドキュメントはカーネルタグLF6.12.34_2.1.0に基づいていることを知っていますしかし、同じハードウェア サポートが提供されると期待できます。 また、カーネルと imx95-verdin-wifi-dev.dtb の起動を試みましたが、scmi の非互換性のため失敗しました。 この問題を解決するのに NXP についてが適切な会社なのか、それとも Toradex の方が優れているのか教えてください。 ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、
Linux カーネル タグ lf-6.6.3-1.0.0 を使用する i.MX95 プラットフォームの場合、88w8987 モジュールの WiFi サポートには適切なデバイス ツリー構成が必要です。デバイス ツリーには Bluetooth ノードがありますが、WiFi ノードがないためインターフェースが表示されません。 WiFi では、88w8987 モジュールと適切にインターフェースするために、デバイス ツリー内に SDIO ノードが必要です。mlan および moal モジュールをロードすると、ログに「ドライバが正常にロードされました」と表示されるため正常にロードされますが、適切なデバイス ツリー構成がないとハードウェアを検出できないため、ネットワーク インターフェースを作成できません。 1. デバイスツリーファイル(imx95-19x19-titan.dtb)にSDIOノードを追加する必要があります。88w8987 モジュールの WiFi コンポーネントを参照します。 2. ノードには通常、次のものが含まれます。 - SDIOコントローラの互換文字列 - 移動できないプロパティ - システムのサスペンド中も電源をオンにしたままにする - WiFi固有の設定 3. WiFi ノードと Bluetooth ノードの両方を含む i.MX8MM EVK など、88w8987 をサポートする他の i.MX ボードの既存の実装を参照します。 Toradex ボードを使用している場合は、i.MX95 モジュールで WiFi を有効にするために推奨されている特定の実装の詳細については、Toradex のドキュメントも確認することをお勧めします。
よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、リストの皆さん 自分自身に答えています^^。 linux-imx 用のタグlf-6.6.3-1.0.0で WiFi を作成するには、次の手順に従います。 コミット483162118e93に従って、ファイルarch/arm64/boot/dts/freescale/imx95-19x19-titan.dtsを変更します。 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts インデックス 38f985d5f87c..3c0a2708114e 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts @@ -18,6 +18,18 @@ ダミーレジスタ: ダミーレジスタ { レギュレータ最小マイクロボルト = <3300000>; レギュレータ最大マイクロボルト = <3300000>; }; + + usdhc3_pwrseq: usdhc3_pwrseq { + 互換性 = "mmc-pwrseq-simple"; + リセットgpio = <&i2c7_pcal6524_23 11 GPIO_ACTIVE_HIGH>; + }; + + /delete-node/ reg_serdes_stby; + /delete-node/ レギュレータ MAC スタンバイ; + /delete-node/ reg_m2_pwr; + /delete-node/ reg_slot_pwr; + /delete-node/ レギュレータ-m2-pwr; + /delete-node/ レギュレータスロット電源; }; ®_can1_stby { @@ -48,11 +60,40 @@ ®_aqr_en { gpio = <&i2c7_pcal6524_23 21 GPIO_ACTIVE_HIGH>; }; +®_pcie0 { + /delete-property/ vin-supply; + gpio = <&i2c7_pcal6524_23 18 GPIO_ACTIVE_HIGH>; +}; + +&pcie0 { + リセットgpio = <&i2c7_pcal6524_23 17 GPIO_ACTIVE_LOW>; +}; + +&pcie1 { + /delete-property/ vpcie-supply; + リセットgpio = <&i2c7_pcal6524_23 16 GPIO_ACTIVE_LOW>; +}; + +&pcie1_ep { + /delete-property/ vpcie-supply; +}; + ®_serdes_en { vin-supply = <&dummy_reg>; gpio = <&gpio4 28 GPIO_ACTIVE_LOW>; }; +&usdhc3 { + pinctrl-names = "default"; + ピンctrl-0 = <&pinctrl_usdhc3>; + mmc-pwrseq = <&usdhc3_pwrseq>; + vmmc-電源 = <®_pcie0>; + バス幅 = <4>; + 電源を停止したままにします。 + 取り外し不可。 + ステータス = "正常"; +}; + &enetc_port1 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc1>; @@ -161,4 +202,15 @@ pinctrl_pwm_3_dsi_hpd_gpio: dsihpdgrp { IMX95_PAD_GPIO_IO12__GPIO2_IO_BIT12 0x31e >; }; + + pinctrl_usdhc3: usdhc3grp { + fsl、ピン = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; -->8 リポジトリhttps://github.com/nxp-imx/mwifiex/からドライバをコンパイルします。タグ lf-6.6.3-1.0.0で、 mlan.ko moal.koをターゲットディレクトリ /usr/lib/modules/6.6.3-gccf0a99701a7/updates/ にコピーします。 https://github.com/nxp-imx/imx-firmware.gitからタグ lf-6.6.3-1.0.0のファームウェアを取得し、 sduart_nw61x_v1.bin.se をターゲットディレクトリ /lib/firmware/nxp/ にコピーします。 ターゲットにモジュールをロードするには 8<-- root@imx95-19x19-lpddr5-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [..] [ 2690.237289] NXP 802.11 アダプタ uap0 を登録 [ 2690.250018] NXP 802.11 アダプタ wfd0 を登録 [ 2690.254421] wlan: バージョン = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92)-dbg [ 2690.267643] wlan: バスドライバへの登録が完了しました [ 2690.272323] wlan: ドライバが正常にロードされました [..] --->8 新しいネットワーク インターフェースmlan0、uap0、wfd0が作成されます。 チケットを閉じることができます。 これが役に立つことを願います。 よろしくお願いします。
View full article