2206978_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2206978_ja-JP

2206978_ja-JP

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 = <&reg_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/ レギュレータスロット電源;
};

&reg_can1_stby {
@@ -48,11 +60,40 @@ &reg_aqr_en {
gpio = <&i2c7_pcal6524_23 21 GPIO_ACTIVE_HIGH>;
};

+&reg_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;
+};
+
&reg_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-電源 = <&reg_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、uap0wfd0が作成されます。

チケットを閉じることができます。

これが役に立つことを願います。

よろしくお願いします。

标记 (1)
无评分
版本历史
最后更新:
‎12-19-2025 04:35 AM
更新人: