您好名单、
我正在使用 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
你有什么线索吗?
谢谢。此致问候
你好@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_DATA3 */
+ };
+ + pinctrl_usdhc3_200mhz:usdhc3-200mhzgrp {
+ fsl,pins =
+
+
+
+
+
;/* 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 更好。
谢谢。此致问候
你好
对于使用 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时推荐的任何具体实现细节。
此致问候
Hi list、
我在回答自己的问题 ^^。
要在 linux-imx 的标签lf-6.6.3-1.0.0上安装 wifi,请按照说明操作:
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
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 就会出现。
您可以关闭票据。
希望对您有所帮助。
此致问候