IMX95 VERDIN-EVK MLAN/MOAL 支持 您好名单、 我正在使用 linux-imx 内核和 mwifiex 组件的标签 lf-6.6.3-1.0.0 来支持以下主板上的 wifi/蓝牙: 8<-- U-Boot SPL 2023.04+gf8a2983ec8+p0(2024 年 3 月 4 日-07:25:04 +0000) SOC:0 xa1009500 LC:0x40010 系统启动原因:por,起源: -1,错误:-1 SYS 关机原因:por,起源: -1,错误:-1 DDRMIX 已启动正常启动正在尝试从 MMC1 主设置中加载映像 MMC/ S D 0xacc 00 通知:BL31:v2.8(发布):android-14.0.0-imx95-demo-1-g8dbe28 631 通知:BL31:版本:2024 年 1 月 22 日 17:57:56 U-启动 2023.04+gf8a2983ec8+p0(2024 年 3 月 4 日-07:25:04 +0000) CPU:1800MHz 时的 i.mx95 rev1.1 CPU:22C 时的 汽车温度等级(-40 摄氏度至 125 摄氏度) LM 启动原因:por,起源:-1,错误:-1 L M 关机原因:por,起源:-1,errid:-1 型号: Toradex i.MX95 19X19 TITAN EVK [..] -->8 我使用的是imx95-19x19-titan.dtb,我想知道该 dtb 如何在没有任何节点的情况下支持 Wifi。我反编译了这个 dtb,其中有一个节点用于蓝牙(无法正常工作......): 8<-- [..] serial@42590000 { compatible ="fsl,imx95-lpuart","fsl,imx8ulp-lpuart","fsl,imx7ulp-lpuart"; reg =<0x42590000 0x1000>; interrupts =<0x00 0x42 0x04>; clocks =<0x11 0x90>; clock-names ="ipg" ; dmas =<0x27 0x16 0x00 0x01 0x27 0x15 0x00 0x00>; dma-names ="rx","tx"; status ="okay"; pinctrl-names ="default" ; pinctrl-0 =<0x2e>; phandle =<0xcf>; bluetooth { compatible ="nxp,88w8987-bt"; fw-init-baudrate =<0x2dc6c0>; }; }; [..] -->8 但没有无线网络节点。 请问它应该如何正常工作? 当我加载 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 内核库相反,有几个 dtb 文件名包含"wifi" : 8<-- % find arch/arm64/启动/dts/freescale-iname " imx95*wifi*.dtb " arch/arm64/启动/dts/freescale/imx95-verdin-nonwifi-mallow.dtb arch/arm64/启动/dts/freescale/imx95-verdin-nonwifi-dev.dtb arch/arm64/启动/dts/freescale/imx95-verdin-wifi-ivy.dtb arch/arm64/启动/dts/freescale/imx95-verdin-nonwifi-ivy.dtb arch/arm64/启动/dts/freescale/imx95-verdin-wifi-dev.dtb arch/arm64/启动/dts/freescale/imx95-verdin-wifi-mallow.dtb arch/arm64/启动/dts/freescale/imx95-verdin-nonwifi-dahlia.dtb arch/arm64/启动/dts/freescale/imx95-verdin-nonwifi-yavia.dtb arch/arm64/启动/dts/freescale/imx95-verdin-wifi-dahlia.dtb arch/arm64/启动/dts/freescale/imx95-verdin-wifi-yavia.dtb -->8 如您所想,我尝试从 toradex 中提取所需的内容,并调整 nxp 内核资源库中的 dtb(标签:lf-6.6.3-1.0.0😞 8<-- diff--git a/arch/arm64/启动/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/启动/dts/dts/freescale/imx95-19x19-evk.dts 索引 ccb88efde3c1.. 859183be58dc 100644 — a/arch/arm64/启动/dts/freescale/imx 95-19x19-evk.dts +++ b/arch/arm64/启动/dts/freescale/imx95-19x19-evk.dts @@ -189,6 +189,20 @@ reg_usdhc2_vmmc: regulator-usdhc2 { enable-active-high; }; + /* Add Wi-Fi */ + reg_wifi_en:regulator-wifi-en { + compatible ="regulator-fixed"; + pinctrl-names ="default"; + pinctrl-0 =<& pinctrl_wifi_pwr_en >; + /* PMIC_EN_WIFI */ + gpios =<& gpio1 11 GPIO_ACTIVE_HIGH>;+ enable-active-high; + regulator-max-microvolt =< 3300000>; + regulator-min-microvolt =<3300000>; + regulator-name ="<3300000> PDn_MAYA-W260"; + startup-delay-us =<2000> ; + }; + reg_pcie0:regulator-pcie { compatible ="regulator-fixed"; regulator-name ="PCIE_WLAN_EN; @@-676,6 +690,19 @@&usdhc2 { status ="okay"; }; +/* 添加 wi-fi 支持 */ +/* 模块上的 Wi-Fi */ +&usdhc3 { + pinctrl-names ="default","state_100mhz","state_200mhz"; + pinctrl-0 =<& pinctrl_usdhc3> ; + pinctrl-1 =<& pinctrl_usdhc3>;+ pinctrl-2 =<& pinctrl_usdhc3_200mhz>; + keep-power-in-suspend; + non-removable; + vmmc-supply =<& reg_wifi_en>; + status ="okay"; +}; + &enetc_port0 { pinctrl-names ="default"; 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,pins = , /* SD3_CLK */ + , /* SD3_CMD */ + 、/* SD3_DATA0 */ + , /* SD3_DATA1 */ + < IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e>, /* SD3_DATA2 */ + ;/* SD3_DATA3 */ + }; + + pinctrl_usdhc3_200mhz:usdhc3-200mhzgrp { + fsl,pins = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + , /* SD3_DATA3 */ + ;/* SD3_DATA4 */ + }; ++ pinctrl_wifi_pwr_en:wifipwrengrp { +/* PMIC_EN_WIFI */ + fsl,pins = ; + }; + }; & 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/ 蓝牙内核模块。我知道这份文件基于内核标签 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 支持需要正确的设备树配置。虽然你已经注意到设备树中有一个蓝牙节点,但缺少 WiFi 节点会阻止该接口的出现。 WiFi 需要设备树中的 SDIO 节点才能正确连接 88w8987 模块。加载 mlan 和 moal 模块时,它们正在成功加载,如您的日志所示,显示 " Driver 已成功加载 ",但是它们无法创建网络接口,因为如果没有正确的设备树配置,它们将无法检测到硬件。 1。你需要在设备树文件 (imx95-19x19-titan.dtb) 中添加一个 SDIO 节点它参考了 88w8987 模块的 WiFi 元器件。 2。该节点通常应包括: -SDIO 控制器的兼容字符串 -不可拆卸属性 -在系统挂起期间保持开机状态 -WiFi 特定配置 3. 参考其他支持 88w8987 的 i.MX 板的现有实现,例如同时包含 WiFi 和蓝牙节点的 i.MX8MM EVK。 如果你使用的是Toradex板,你可能还需要查看Toradex的文档,了解他们在i.MX95模块上启用WiFi时推荐的任何具体实现细节。
此致问候 Re: imx95 verdin-evk mlan/moal support Hi list、 我在回答自己的问题 ^^。 要在 linux-imx 的标签lf-6.6.3-1.0.0上安装 wifi,请按照说明操作: 根据提交内容修改文件 arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts 483162118e93 8<-- diff --git a/arch/arm64/启动/dts/freescale/imx95-19x19-titan.dts b/arch/arm64/启动/dts/freescale/imx95-19x19-titan.dts index 38f985d5f87c..3c0a2708114e 100644 --- a/arch/arm64/启动/dts/freescale/imx95-19x19-titan.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts @@ -18,6 +18,18 @@ dummy_reg:dummy_reg { Regulator-min-Min-Microvolt = <3300000>; Regulator-max-microvolt = <3300000>; }; + + usdhc3_pwrseq:usdhc3_pwrseq { + 兼容 = " mmc-pwrseq-simple; " + reset-gpio = < & i2c7_pcal6524_23 11 GPIO_ACTIVE_HIGH >; +}; + GEMASKT + /delete-node/ reg_serdes_stby; + /delete-node/ regulator-mac-stby; + /delete-node/ reg_m2_pwr; + /delete-node/ reg_slot_pwr; + /delete-node/ regulator-m2-pwr; + /delete-node/ regulator-slot-pwr; }; & 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 { + reset-gpio = GEMASKAGO = GEMASKT i2c7_pcal < &6524_23 17 GPIO_ACTIVE_LOW >; +}; + + & pcie1 { + /delete-property/ vpicie-supply; + reset-gpio = <& i2c7_pcal6524_23 16 GPIO_ACTIVE_LOW >; +}; + + & pcie1_ep {GEMASKT + /delete-property/ vpcie-supply; +}; + & reg_serdes_en {GEMASKT vin-supply = < & dummy_reg >; gpio = < & gpio4 28 GPIO_ACTIVE_LOW > }; + & usdhc3 { + pinctrl-names = " 默认 "; + pinctrl-0 = < & pinctrl_usdhc3 >; + mmc-pwrseq = < & usdhc3_pwrseq >; + vmmc-supply = < & reg_pcie0 >; + 总线宽度 =<4>; + 保持待机状态; + 不可拆卸; + 状态 = " 好吧; " +}; + & enetc_port1 {GEMASKT pinctrl-names = "默认 "; pinctrl-0 = & pinctrl_enetc1 >; @@ -161,4 +202,15 @@ pinctrl_pwm_3_dsi_HPD_GPIO:dsihpdgrp { imx95_pad_gpio_io_io12__gpio2_io_bit12 0x31E >; }; + + pinctrl_usdhc3: usdhc3grp { + fsl,pins =< + 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 +>; +}; e= “否” >276 -->8 从软件源编译驱动程序https://github.com/nxp-imx/mwifiex/并将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] 注册恩智浦 802.11 适配器 uap0 [ 2690.250018] 注册恩智浦 802.11 适配器 wfd0 [ 2690.254421] wlan: version = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92)-dbg [2690.267643] wlan:注册到总线驱动程序完成 [2690.272323] wlan:驱动程序已 成功 加载 [..] --->8 新的网络接口mlan0、uap0和wfd0 就会出现。 您可以关闭票据。 希望对您有所帮助。 此致问候
記事全体を表示