i.MX95 19x19 EVK 搭配 JODY-W263-00B:在 Android 15 / Linux 6.12.23 系统上 WiFi 固件激活超时 标题:i.MX95 19x19 EVK with JODY-W263-00B:Android 15 / Linux 6.12.23 上的 WiFi 固件激活超时 您好,NXP团队, 我正在调试以下配置下的 WiFi 初始化: 板:NXP i.MX95 19x19 EVK WiFi模块:u-blox JODY-W263-00B Android 版本:AOSP 15(Android 属性验证待定) 运行内核:6.12.23-android16-5-maybe-dirty-4k NXP Android 电路板支持包的具体版本/标签:尚未确认 WiFi 驱动程序:mlan/moal (MWLAN) 选定的固件:sduart8987_combo.bin SDIO 设备:mmc2:0001:1 运行内核信息: 检测到 SDIO 设备,驱动程序报告“固件下载完成”。但是,固件在超时时间内没有激活,WiFi SDIO 探测失败。 相关命令:adb shell uname -a Linux 本地主机 6.12.23-android16-5-maybe-dirty-4k #1 SMP PREEMPT Thu Jan 1 00:00:00 UTC 1970 aarch64 Toybox t 日志: [ 10.845985] mlan: loading out-of-tree module taints kernel.
[ 10.961712] wlan: Loading MWLAN driver
[ 10.973277] wlan: Register to Bus Driver...
[ 11.016613] Attach moal handle ops, card interface type: 0x105
[ 11.070275] sta_name=wlan
[ 11.086277] uap_name=wlan
[ 11.086294] fw_name=sduart8987_combo.bin
[ 11.168031] Enable moal_recv_amsdu_packet
[ 11.168086] Attach mlan adapter operations.card_type is 0x105.
[ 11.257673] wlan: Enable TX SG mode
[ 11.257679] wlan: mpa_tx.buf_size=65280
[ 11.257682] wlan: Enable RX SG mode
[ 12.226020] Wlan: FW download over, firmwarelen=628200 downloaded 619156
[ 17.279039] FW failed to be active in time!
[ 17.286246] wlan_dnld_fw fail ret=0xffffffff
[ 17.296825] WLAN: Fail download FW with nowwait: 0
[ 17.502477] woal_request_fw failed
[ 17.537460] wlan_sdio mmc2:0001:1: probe with driver wlan_sdio failed with error -1
[ 17.547534] wlan: Register to Bus Driver Done
[ 17.553159] wlan: Driver loaded successfully 卸载并重新加载驱动程序后,我还观察到: [ 4051.080660] fw_name=sduart8987_combo.bin
[ 4051.159940] Wlan: FW download over, firmwarelen=628200 downloaded 0
[ 4056.079262] FW failed to be active in time!
[ 4056.084697] wlan_dnld_fw fail ret=0xffffffff
[ 4056.089909] WLAN: Fail download FW with nowwait: 0
[ 4056.250548] woal_request_fw failed
[ 4056.273119] wlan_sdio mmc2:0001:1: probe with driver wlan_sdio failed with error -1 我找到了这个相关的社区讨论: https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/88W8801-LILY-W131-WiFI-SDIO-chip-not-responding-after-FW/m-p/1986943 讨论的是基于 Nvidia AGX Orin 的 88W8801 芯片,因此它属于不同的模块/平台。作者报告称,移除no-sd配置并将总线宽度从 4 改为 1 后,性能有所提升,之后恢复到原始配置后运行正常。我尚未在我的主板上测试这些更改。 请问您能否帮忙澄清一下: sduart8987_combo.bin是JODY-W263-00B 的正确固件吗?对于这种 Android/内核组合,推荐使用哪个固件版本和 mlan/moal 驱动程序版本? 对于 i.MX95 19x19 EVK 上的此模块,推荐的 SDIO 设备树设置是什么?特别是总线宽度、最大频率、引脚控制、电源、RESET GPIO 和电源时序延迟? 测试 总线宽度是否等于 1<1> 或降低 SDIO 时钟频率有助于诊断此超时问题吗?移除 no-sd 参数 对于此平台是否相关或推荐? 驱动程序报告固件下载完成后,固件激活超时可能是什么原因造成的?下载次数为0是否意味着在重试之前需要对模块进行完全断电重启或硬件RESET? 针对这种板/模块/内核组合,是否存在已知问题或需要打补丁? 为了区分固件/驱动程序兼容性问题与 SDIO 通信或电源/RESET时序问题,我应该收集哪些额外的调试设置、SDIO 寄存器转储或日志? 确认后,我可以提供完整的启动日志、相关的设备树节点、 wifi_mod_para.conf以及确切的 电路板支持包/驱动程序版本。 谢谢! Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 您好,NXP团队, 我们已经收集了关于 i.MX95 19x19 EVK(JODY-W263-00B)固件激活超时的进一步诊断证据。 硬件模式验证 两次寄存器读取均成功: WIFI_DIAG: magic_reg=0xf0 magic_raw=0x24 read_ret=0
WIFI_DIAG: strap_reg=0xf4 strap_raw=0xd2 read_ret=0
WIFI_DIAG: magic=0x24 strap=0x0
WIFI_DIAG: explicit fw_name=sduart8987_combo.bin; skipping automatic selection 根据我们的驱动程序来源,带掩码的表带表示 SD-UART 模式,这与配置的固件名称一致。 下载循环退出已确认 WIFI_DL_DIAG: exit=zero_request offset=619156 firmwarelen=628200 tries=100 max_tries=100
WIFI_DL_DIAG: base0_reg=0xf8 base0=0x0 base1_reg=0xf9 base1=0x0 last_txlen=16
Wlan: FW download over, firmwarelen=628200 downloaded 619156
Fail to poll firmware status: firmwarestat=0xf005
FW failed to be active in time! 在 100 次轮询尝试中,请求长度寄存器始终为零,导致下载循环退出。 固件二进制检查 利用源文件的 16 字节FWHeader布局和命令长度规则,离线解析在偏移量 619140 处识别出一条 CMD4 记录,该记录在 619156 处结束——与下载计数器完全匹配。源文件将 CMD4 定义为FW_HAS_LAST_BLOCK 。 此记录之后还有 9044 个字节。我们尚未确定其用途,也未确认这些解析规则是否完全描述了 SDIO 引导加载程序格式。因此,我们并不认为仅凭反差就能证明下载不完整。 其他详情: MOAL/MLAN 版本: 537.p9 嵌入式固件字符串: w8987o-V0、RF878X、FP92、16.92.21.p151.4 固件大小:628200 字节 安全散列算法(SHA)-256: db9e2ef58aba5778cddd7b7fbc84a34884bebef076052186e8b0d036e68d9f34 之前已验证过 50 MHz 下的实际 1 位 SDIO 操作,超时时间相同。 最新的诊断测试以 4 位、50 MHz 的频率运行。 预期固件 READY 状态为0xfedc ;观察到的状态仍为0xf005 。 未创建 Wi-Fi 网络接口。 NXP 电路板支持包的具体版本/标签仍在确认中。 请问您能否澄清一下: 对于这张特定的图像,在 CMD4 边界(偏移量 619156)处停止是否符合预期?剩余的 9044 字节有什么用途? SD8987固件激活过程中, 0xf005表示什么? 固件版本号为16.92.21.p151.4的固件是否支持 JODY-W263-00B 的驱动程序537.p9 ?我们应该使用哪个 电路板支持包 和固件/驱动程序软件包? 针对此故障,建议检查哪些模块的电源/RESET时序、供电和参考时钟? 哪些额外的寄存器或诊断信息可以区分固件启动失败与通信或硬件初始化问题? 固件二进制文件保持不变。我们的源代码修改增加了诊断日志记录,并且提供了完整的启动日志和源代码差异。 谢谢! Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 关于失败阶段,有一点需要特别说明: 处理器通过 SDIO 检测到 SD8987 Wi-Fi 设备,固件下载例程报告“固件下载完成”。但是,在随后的激活检查期间,驱动程序期望SDIO_FIRMWARE_READY = 0xfedc ,而报告的状态为0xf005 。 因此,固件初始化和 SDIO 探测失败,并且没有创建 Wi-Fi 网络接口。在验证了 50 MHz 下实际的 1 位 SDIO 操作后,结果仍然不变。 请问在此阶段, 0xf005对于 SD8987 代表什么?还有哪些寄存器值或日志可以帮助确定固件为何无法达到 READY 状态? Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 您好,NXP团队, 继我最初的报告之后,我们完成了额外的检查和受控 SDIO 总线宽度实验。Wi-Fi 初始化在固件激活阶段仍然失败。 1. 已确认的设备和软件详情 板/模块:i.MX95 19x19 EVK,带 JODY-W263-00B Android 指纹: Android/evk_95_car/evk_95:15/BP1A.250505.005/eng.nisar:userdebug/dev-keys 内核: 6.12.23-android16-5-maybe-dirty-4k NXP 电路板支持包的具体发布版本/标签:仍在确认中 SDIO 设备: mmc2:0001:1 SDIO ID: 02DF:9149 ,在驱动程序源中映射到 SD8987 主机控制器:USDHC3, mmc@428b0000 moal和mlan都报告了版本537.p9 MOAL 源版本: 358C14898F4DDF4EB40AB03 源代码库修订: nxp-mwifiex: 9630752ea1d9e28d9956adf27c652f40399e85ad IMX 固件: 34faa4b3008bf9c6f814b5767cacbc3857cdc49b 这两个提交的主题都是“MA-23689-1 [Android-15]WCS Q2 版本补丁集成”。目前仍在验证这些源代码版本与已安装模块构建的映射关系。 2. 固件身份验证已验证 选定的固件为/vendor/firmware/sduart8987_combo.bin ,大小为628200 字节。 源拷贝和已安装板拷贝具有相同的 SHA-256 值: db9e2ef58aba5778cddd7b7fbc84a34884bebef076052186e8b0d036e68d9f34 这证实了副本匹配;固件与模块的兼容性仍需确认。 3. 实际 1 位 SDIO 测试完成 最初,实时设备树报告总线宽度 = <1> ,但/sys/kernel/debug/mmc2/ios仍然显示 4 位操作。 在我们的源代码中, mmc_of_parse()不会清除总线宽度 = <1>的现有 4 位功能,而通用的 SDHCI 设置会添加MMC_CAP_4_BIT_DATA,除非设置了SDHCI_QUIRK_FORCE_1_BIT_DATA 。 因此,我们在sdhci-esdhc-imx.c中,紧接在mmc_of_parse()错误检查之后,添加了一个诊断块: {
u32 bus_width;
if (!of_property_read_u32(np, "bus-width", &bus_width) &&
bus_width == 1) {
host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA;
host->mmc->caps &=
~(MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA);
}
} 在重新构建并部署修改后的内核和 DT 配置后,我们验证了以下几点: Live DT bus-width: 00 00 00 01
clock: 50000000 Hz
bus width: 0 (1 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V) 然而,同样的问题依然存在: Request firmware: sduart8987_combo.bin
Wlan: FW download over, firmwarelen=628200 downloaded 619156
Fail to poll firmware status: firmwarestat=0xf005
FW failed to be active in time!
Firmware Init Failed
wlan_sdio mmc2:0001:1: probe with driver wlan_sdio failed with error -1 未显示Wi-Fi网络接口。 配置的最大频率为 100 MHz,但实际运行频率保持在 50 MHz。因此,我们没有进行低频测试。此外,所审查的 USDHC3 配置中缺少no-sd 选项,因此未执行移除操作。 4. 仅支持 WLAN 的固件重载测试 我们临时将sd8987_wlan.bin挂载到配置的固件路径,并重新加载了 MOAL。驱动程序读取了备用文件大小,但报告如下: firmwarelen=416836 downloaded 0
firmwarestat=0xf005
FW failed to be active in time! 由于这是在之前初始化失败后重新加载,因此我们认为结果不确定。它无法确定仅 WLAN 固件的兼容性或传输是否成功。 重启后,临时绑定挂载被移除,原始的 628200 字节组合固件再次得到验证。 5. 当前调查 我们正在moal_sdio_mmc.c中准备诊断日志记录,以捕获: 原始芯片信息和主机链路寄存器值。 两次寄存器读取的返回状态。 面具魔法和表带价值。 源文件定义了CHIP_MAGIC_VALUE = 0x24和CARD_TYPE_SD_UART = 0。现有的启动日志并未记录这些值。此日志记录更改尚未部署。 firmwarestat=0xf005的确切含义以及固件大小与下载计数器之间反复出现的9044 字节差异仍然未得到解决。我们不将完成消息视为固件已激活的证据。 请问您能否就以下问题提供建议? 此固件/驱动程序代码包,软件包是否适用于此 BSP/内核上的 JODY-W263-00B?如何从二进制或软件包中确定具体的固件版本? 对于这种固件格式,下载 619156个文件(对应 628200 字节的组合映像)是否正常,还是表示下载提前终止? SD8987 在初始化期间固件状态0xf005代表什么含义? 上述诊断主机驱动程序更改是否适合强制执行 1 位测试,或者是否有更推荐的 电路板支持包 机制? 我们应该收集哪些寄存器/日志来验证基于表带的固件选择,显式fw_name是否会覆盖该选择? 此次故障后,重试前需要执行怎样的电源/RESET顺序?您建议接下来进行低时钟频率测试还是进行其他针对性实验? 我们可以提供完整的启动日志、DT/overlay 更改、主机驱动程序差异和wifi_mod_para.conf 。 谢谢! Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
感谢您的咨询。
我看到你的 WiFi 模块使用的是uSDHC3接口,i.MX95-EVK 支持 M.2 KEY E 连接器上的 uSDHC3,所以我假设你使用的是基于 88W8987 的 M.2 WiFi 模块 JODY-W263-00B。
在 M.2 KEY E 连接器上启用 SDIO WiFi 时,我们需要明确以下步骤。
-- uSDHC3 IO 级别由 NVCC_WAKEUP 决定
NVCC_WAKEUP 为 1.8V(来自 VDD_1V8_S)。
--M.2 电源,VCC_KE_3V3 默认禁用
电源由 NX5P2924DUK 产生,M2_KE_PWREN 控制其启用。
3. 什么软件可以做到
(1)向 imx95-19x19-evk.dts 添加 uSDHC3 节点
默认情况下没有uSDHC3节点,需要手动添加。
[注意]
您可以参考 imx95-15x15-evk.dts 的添加它的 usdhc3 代码。
请注意不同的GPIO。
--启用电源GPIO
--将 M.2 接口的 W_DISABLE1# 和 W_DISABLE2 引脚上拉。
--SDIO_WAKE# 和 SDIO_RST# 引脚
(3)Android 15 SDIO WiFi 电源启用
请检查 i.MX95 的 hardBoardConfig.mk 文件,确认是否已支持 pwrseq_simple.ko,如果未支持,请添加。或许像下面这样:
......
$(KERNEL_OUT)/net/wireless/cfg80211.ko \
$(KERNEL_OUT)/drivers/mmc/core/pwrseq_simple.ko \
......
(3)启用 imx95-19x19_gki.fragment(名称可能不同,请确认。)
......
CONFIG_PWRSEQ_SIMPLE=m
......
(4)禁用 pcie1 节点(在imx95-19x19-evk.dts 中)
...... &pcie1 { pinctrl-0 = <&pinctrl_pcie1>; pinctrl-names = "default"; reset-gpio = <&i2c7_pcal6524 16 GPIO_ACTIVE_LOW>; vpcie-supply = <®_slot_pwr>; 状态 = "已禁用"; };
......
(5)BoardConfig.mk 可以直接支持 8987。
您可以将默认 WiFi 固件文件的名称更改为 88W8987 的名称。
好的,请试试。
谢谢!
此致,
卫东
Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 感谢您的指导。 我测试了以下配置更新,但固件初始化仍然失败: 已在imx95-19x19-evk.dts中禁用pcie1 。保留了现有的 uSDHC3 配置。 更新了BoardConfig.mk和SharedBoardConfig.mk中的 Wi-Fi 配置标签和模块参数文件名。 更新了evk_95.mk中的固件配置目标名称。 内核片段中已存在 CONFIG_PWRSEQ_SIMPLE=m。pwrseq_simple.ko 的运行时加载以及DTS电源序列连接仍需验证。 最新启动版本使用: moal.mod_para=wifi_mod_para_sd8987.conf 报告显示该模块为JODY-W263-00B,基于 NXP 88W8987 ,Wi-Fi 驱动程序版本为537.p9 。 当前固件版本: Path: /vendor/firmware/sduart8987_combo.bin
Size: 628200 bytes
SHA-256: db9e2ef58aba5778cddd7b7fbc84a34884bebef076052186e8b0d036e68d9f34 启动日志: SD8987: init module param from usr cfg
card_type: SD8987, config block: 0
fw_name=sduart8987_combo.bin
Request firmware: sduart8987_combo.bin
Wlan: FW download over, firmwarelen=628200 downloaded 619156
Fail to poll firmware status: firmwarestat=0xf005
FW failed to be active in time!
Firmware Init Failed
wlan_sdio mmc2:0001:1: probe with driver wlan_sdio failed with error -1 之前,我还测试过来自lf-6.18.20_2.0.0分支的替换固件: Size: 644352 bytes
SHA-256: ccaff1bc0a0232fb59111bb01f27cd28ba985d9a0bcb79beca61cde5e67ca823 其部署的哈希值已验证,但仍然出现相同的firmwarestat=0xf005激活失败。 能否提供或推荐一个适用于 JODY-W263-00B / 88W8987 且与驱动程序 537.p9 兼容的已验证的sduart8987_combo.bin 文件?请提供固件版本、仓库提交/标签、安全散列算法(SHA)-256 值以及推荐的模块参数。如果需要其他驱动程序版本,请指定匹配的驱动程序-固件组合。 作为参考,我们的源文件修订如下: Driver: 9630752ea1d9e28d9956adf27c652f40399e85ad
Original firmware repository: 34faa4b3008bf9c6f814b5767cacbc3857cdc49b 请告知0xf005代表什么,以及需要进行哪些额外的状态寄存器捕获或电源/RESET检查才能帮助确定问题原因。电气测量和完整的RESET序列验证仍在进行中。 问候, 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
谢谢你的更新。
>>>关于 0xf005
代码 0xf005 表示驱动程序在轮询超时时间内未检测到固件达到就绪/活动状态。这是一个固件激活状态,而不是具体的硬件故障代码。但是,SDIO 通信、电源、RESET 或时钟等硬件问题仍然可能导致这种状态。
>>关于切换到 lf-6.18.20_2.0.0 分支:
正确的做法是使用该分支中完整且匹配的 Wi-Fi 驱动程序和固件。我们不应该只更换固件,因为驱动程序和固件版本必须兼容并保持同步。
所以您可以尝试将 Wi-Fi 驱动程序和固件更新到最新版本。
我有一个问题和一个建议:
一定要用Android 15吗?由于i.MX95比较新,最好使用最新的电路板支持包版本。你可以将 Android 16.0.0_2.0.0 与 L6.18.20_2.0.0 电路板支持包。一起使用。
我建议首先验证 Linux 电路板支持包。 上的 Wi-Fi 硬件、驱动程序和固件。一旦 Wi-Fi 模块在 Linux 上正常工作,就可以将该解决方案迁移到 Android 16。这种方法可以降低 Android 特定配置的复杂性,并使调试更加高效。
谢谢!
此致,
卫东
Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 谢谢你的解释。我们必须保留内核版本为 6.12.23 的 AOSP 15;升级到 Android 16 是不可行的。 请问能否推荐一款适用于 JODY-W263-00B / 88W8987 的 Wi-Fi 驱动程序-固件组合?据报告,我们当前的驱动程序为 537.p9。 如果您推荐lf-6.18.20_2.0.0中的驱动程序对,请确认该驱动程序是否支持内核 6.12.23,以及是否需要任何集成补丁。 请提供确切的驱动程序和固件提交/标签、匹配的sduart8987_combo.bin版本/校验和以及推荐的模块参数。 问候, 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 在查阅2025 年 10 月 14 日发布的 Android Automotive 版本说明 (RN00227),版本号为 automotive-15.0.0_2.1.0 时,我注意到第 4 节表 2 — 连接 Wi-Fi 部分列出了适用于 i.MX95 的PCIe9098 / u-blox JODY-W3 。我已附上该条目的屏幕截图。 我们的设备使用: 板: i.MX95 19×19 EVK 模块: u-blox JODY-W263-00B / 88W8987 over uSDHC3 SDIO 电路板支持包。: Android Automotive 15.0.0_2.1.0 内核版本: 6.12.23 检测到 SDIO 设备并报告固件传输完成,但固件激活失败,固件状态为0xf005 。 请问您能否澄清一下: 是否已JODY-W263-00B / SDIO8987在此 电路板支持包。 上得到验证,或者除了之前建议的更改之外,是否还需要额外的集成? 如果支持,能否提供匹配的驱动程序-固件版本以及所需的 DTS、电源/RESET和模块参数配置? JODY-W3 / PCIe9098 是否是 此版本推荐的模块?如果建议更换,请提供模块/载板的准确部件号和所需的电路板配置。 我们必须保留 Android 15 和内核 6.12.23。请告知此配置支持的路径。 问候, 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
i.mx95 专为汽车应用而设计。
车载安卓系统支持Wi-Fi模块AW693和PCIe 88Q9098,我已经测试过AW693模块,没有问题。
我正在构建 L6.12.49 linux 电路板支持包,我想在 i.mx95 上测试 88W8987。
最佳阅读,
卫东 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 感谢您的详细解释。 我们了解到0xf005表示驱动程序在轮询超时时间内未观察到固件达到就绪/活动状态,并且它不是特定的硬件故障代码。 在我们的 i.MX95 19x19 EVK 上,使用 u-blox JODY-W263-00B (88W8987),SDIO 检测和固件下载完成,但激活仍然超时,状态为0xf005 。 我们目前的平台是 Android 15,内核版本为 6.12.23,MOAL/MLAN 驱动程序版本为 537.p9。软件电源/RESET 检查和启动时 RESET 序列更改已完成,但问题仍然存在。物理电压、RESET 和时钟测量仍在进行中。 根据您的建议,我们计划首先使用完整的、匹配的驱动程序和固件对在 Linux 上验证 Wi-Fi。我们正在内部调查是否可以迁移到 Android 16。如果 Android 15 仍然是强制性的,我们将评估在保留内核 6.12.23 的情况下向后移植匹配的内核对。 请您确认以下事项? 之前的测试结果:您在 i.MX95 上使用 JODY-W263-00B 进行 L6.12.49 测试的结果如何? 已验证版本:此模块是否已在搭载 L6.18.20_2.0.0 和 Android 16.0.0_2.0.0 的 i.MX95 19x19 EVK 上进行过验证? Linux 设置:请提供清单分支和 XML 文件名、机器、发行版。、镜像名称以及官方版本/刷写说明。 匹配的 Wi-Fi 对:请提供驱动程序仓库和版本号、固件包名和版本号、正确的固件文件名以及所需的模块配置。sduart8987_combo.bin 是否适用于此模块的 SD-UART 配置? Android 设置:请确认相应的 Android 版本和清单文件,包括汽车版本(如果适用)。 其他诊断:是否需要任何特定的设备树设置、电源/复位时序、补丁或寄存器转储来调查此激活超时问题? Linux 验证完成后,我们将分享启动日志、驱动程序/固件版本、固件 安全散列算法\(SHA\)-256 和可用的硬件测量数据。 此致, 拉凯什·塔库尔 Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 卫东您好, 根据您的建议,我们集成了来自lf-6.18.20_2.0.0的匹配 Wi-Fi 驱动程序和固件对。但是,固件激活失败的问题仍然存在。 在进行进一步更改之前,我们需要确认我们已安装的 Wi-Fi 模块所支持的驱动程序-固件包,以及其下载来源和支持所有者。 1. 硬件和软件设置 元器件详情 电路板 NXP i.MX95 19×19 EVK 已安装Wi-Fi模块 u-blox JODY-W263-00B Wi-Fi芯片组 NXP 88W8987 Wi-Fi接口 SDIO 预期的蓝牙接口 UART Android BSP 汽车版 Android 15.0.0_2.1.0 内核基 2023年6月12日 检测到 SDIO 设备 mmc2:0001:1 我们安装的模块使用 SDIO 接口连接 Wi-Fi,而不是默认 EVK 设置中使用的 PCIe Wi-Fi 配置。请您根据JODY-W263-00B / 88W8987 在 SD-UART 模式下的配置提出建议。 2. 原始驱动程序和更新的驱动程序-固件对 元器件原始设置 更新设置 驱动程序版本 537.p9 543.p18 固件嵌入式版本 16.92.21.p151.4 16.92.21.p156.2 固件文件名 sduart8987_combo.bin sduart8987_combo.bin 固件大小 628200 字节 644352 字节 结果 激活超时,错误代码0xf005 相同的激活超时错误, 0xf005 更新后的组件对选自lf-6.18.20_2.0.0 ,并已移植到我们现有的Android 15 / 内核 6.12.23环境中。我们尚未执行完整的 Android 16 / Linux 6.18 电路板支持包。迁移。 选定的参考,引用文献修订: Driver:
2e481212d262758cbd4d0fc7ea95a2ad5f704bc3
Firmware:
cc78ca8b1ee28ff741bcc160246f61b008f6c89f 3. 整合与部署证据 更新后的驱动程序编译和 MODPOST 测试通过。 图片打包和本地AVB验证均已通过。 刷机后,已验证加载的驱动程序版本为543.p18 。 板模块和固件哈希值与包装件相符。 SDIO枚举成功。 首次刷写固件后启动以及冷启动测试期间均出现相同的激活失败情况。 我们还直接检查了集成源中的更新固件: Filename: sduart8987_combo.bin
Size: 644352 bytes
Embedded identification:
$Id: w8987o-V0, RF878X, FP92, 16.92.21.p156.2 $
SHA-256:
ccaff1bc0a0232fb59111bb01f27cd28ba985d9a0bcb79beca61cde5e67ca823 4. 失败证据 原装一对: SD8987: init module param from usr cfg
card_type: SD8987, config block: 0
fw_name=sduart8987_combo.bin
Request firmware: sduart8987_combo.bin
Wlan: FW download over, firmwarelen=628200 downloaded 619156
Fail to poll firmware status: firmwarestat=0xf005
FW failed to be active in time!
Firmware Init Failed
wlan_sdio mmc2:0001:1: probe with driver wlan_sdio failed with error -1 更新后的配对: Wlan: FW download over, firmwarelen=644352 downloaded 635356
Fail to poll firmware status: firmwarestat=0xf005
Firmware Init Failed
probe with driver wlan_sdio failed with error -1 驱动程序检测到模块并报告固件传输完成,但固件激活失败。目前来看,这并未指向明显的检测故障或固件文件加载故障。但是,我们并不声称该驱动程序已完全验证,也不声称固件不兼容是已确认的根本原因。 5. 具体确认和代码包,软件包要求 请回答以下关于JODY-W263-00B / 88W8987的问题: 上述两对驱动固件是否都支持此模块的 SD-UART 模式?请分别确认每对驱动固件。 现有驱动程序是否适用,只需更换固件即可?还是必须使用另一套匹配的驱动程序-固件组合?请明确指出支持的具体组合。 我们可以在哪里获取该软件包?请提供官方下载链接、代码仓库/分支和提交记录,或者申请访问权限的流程。 负责提供和确认相关信息的是恩智浦半导体(NXP)还是优布洛克(u-blox)?如果需要优布洛克(u-blox)的支持,请说明相应的支持途径以及我们需要索取的软件包信息。 NXP 88W8987 通用固件是否适用于 JODY-W263-00B,还是该模块需要 u-blox 认证的软件包或额外的模块特定文件/配置? 确认该模块对能否在 Android 15 / 内核 6.12.23 上运行?如果需要其他补丁,请注明。如果该平台不受支持,请指定一个受支持的电路板支持包。以及该模块已知的可用配置。 推荐此次驱动程序更新的具体依据是什么?是537.p9和固件16.92.21.p151.4存在已知问题,还是此建议旨在建立一个一致的版本基线? 我们何时可以收到兼容性确认信息以及推荐软件包的获取途径?如果需要工程审核,请提供预计的响应时间。 如果更新后的配对对于此模块来说已经是正确的,请明确说明,并确定针对0xf005激活失败的下一个目标诊断检查。 本地还纠正了另一个 Binder 模块封装不匹配的问题;这些已纠正的图像仍需重新测试电路板。尚未确定其与 Wi-Fi 故障的关系。 我们目前的请求是确认特定模块的正确驱动程序和固件、其官方来源、负责的供应商以及预期时间表,以便从已验证的基线开始进行进一步的测试。 谢谢! Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
请暂时不要担心。Yocto 电路板支持包。仍在版本中,服务器速度有点慢。我预计下周会拿到一些检测结果。
谢谢!
顺祝商祺!
卫东 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 请确认驱动程序537.p9 + 固件 16.92.21.p151.4和驱动程序543.p18 + 固件 16.92.21.p156.2是否支持JODY-W263-00B / 88W8987 在 SD-UART 模式下的固件组合。对于后一种组合,请同时确认其在Android 15 / 内核 6.12.23上的兼容性,包括所需的补丁或配置。 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 根据您的建议,我们现在已经将lf-6.18.20_2.0.0中的完整匹配 Wi-Fi 驱动程序和固件对集成到我们的 i.MX95 19×19 EVK 上,并测试了JODY-W263-00B / 88W8987 。 必须保留 Android 15 和内核 6.12.23。 综合修订: 驱动程序: 2e481212d262758cbd4d0fc7ea95a2ad5f704bc3 固件: cc78ca8b1ee28ff741bcc160246f61b008f6c89f 已加载 MLAN/MOAL 版本: 543.p18 固件: sduart8987_combo.bin ,644352 字节 编译和图像打包均已完成。在板上,我们根据软件包中的工件验证了预期的内核、加载的驱动程序版本以及模块/固件哈希值。Android启动和SDIO枚举成功。 然而,无论是首次刷写固件后的启动还是冷启动测试,都出现了相同的激活失败情况: Wlan: FW download over, firmwarelen=644352 downloaded 635356
Fail to poll firmware status: firmwarestat=0xf005
Firmware Init Failed
probe with driver wlan_sdio failed with error -1 未创建 WLAN 接口。因此,将匹配对从537.p9更新到543.p18并未解决此故障。 软件电源/RESET顺序更改已生效。实物供应、RESET和时钟测量仍待进行。之前在 50 MHz 下进行的 1 位 SDIO 测试也出现了同样的超时现象。 此外,我们发现rust_binder存在内核/系统模块不匹配的问题,并使用匹配的模块重新构建了镜像。对修正后的镜像集进行板级重新测试正在进行中;其与 Wi-Fi 故障的关系尚未确定。 您能否帮助我们确定下一步工作的优先顺序? 您的Linux测试:您计划在i.MX95上使用88W8987芯片进行L6.12.49测试,结果如何?请确认所使用的具体模块/载板、驱动固件版本以及DTS配置。 Android 15 支持: 543.p18这个固件对是否适用于 6.12.23 内核?是否需要任何兼容性补丁,或者您是否推荐其他经过验证的固件对? 针对性诊断:我们了解到0xf005表示未能达到 READY 状态。您的 Wi-Fi 团队能否解读此特定的 SD8987 状态,并提供调查启动失败所需的确切寄存器、地址和捕获步骤? 下一个受控实验:鉴于配对积分和 1 位测试已经完成,我们接下来应该执行哪个单软件实验,采用什么设置,预期结果是什么? 硬件验证:请提供此板/模块组合所需的供电水平、RESET时序、时钟要求和已确认的测量点。 如果 JODY-W263-00B 尚未在此 Android 版本上进行验证,请明确说明,并推荐受支持的集成或替换路径。 提供完整的启动日志、源代码差异、哈希值和镜像验证记录。 问候, 拉凯什·塔库尔 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 谢谢你的更新。我们将在下周等待您的检测结果。 请确认您的测试装置是否使用了带有SDIO Wi-Fi功能的u-blox JODY-W263-00B / NXP 88W8987模块? 分享结果时,请提供确切的 电路板支持包。 版本、驱动程序版本、固件版本/文件和所需的电路板配置。如果测试成功,请告知我们可以在哪里获得相同的驱动程序-固件对。 这将有助于我们重现您的工作设置,并将其与我们的 Android 15 / 内核 6.12.23 集成进行比较。 谢谢,并致以最诚挚的问候! 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 我们现在已经完成了对配备 JODY-W263-00B / 88W8987 的 i.MX95 19×19 EVK 的以下三项测试: 原始配置:车载安卓系统版本15.0.0_2.1.0 ,内核版本6.12.23 ,驱动版本537.p9 ,固件版本16.92.21.p151.4 。应用您建议的 DTS 和电源/RESET配置更改后,激活失败的问题仍然存在。 向后移植的设置:集成了来自 Linux 版本lf-6.18.20_2.0.0的匹配驱动程序543.p18和固件16.92.21.p156.2 ,保留了 Android 15 和内核 6.12.23。同样的故障仍然存在。 Linux 验证:已构建、刷写并测试 Linux 电路板支持包。L6.18.20_2.0.0,运行内核 6.18.20-2.0.0-g88cb92741827。出现同样的故障。 在所有三种配置中,固件激活均超时,并显示firmwarestat=0xf005 错误,且未创建任何 WLAN 接口。附件截图显示了 Linux 系统下的结果。 因此,我们已尝试了您推荐的驱动程序-固件匹配更新和 Linux 电路板支持包。 验证。能否请您建议下一步的针对性调试方法,并分享您计划进行的 L6.12.49 测试?物理电源/复位/时钟测量仍待完成。 问候, 拉凯什 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 嗨卫东, 感谢您分享成功的 W603C 测试和 DTS。 我们 在 i.MX95 19×19 EVK 上 使用 u-blox JODY-W263-00B (88W8987) 。固件下载完成,但激活失败,错误代码为 0xf005 。我们的最终目标是 Android 15.0.0_2.1.0 / 内核 6.12.23。 在测试您的更改之前,请您澄清以下几点: 此配置是否也适用于 JODY-W263-00B?W603C 是必须更换的模块,还是只是用于测试的模块? 描述中提到了 P0_5,而 DTS 使用的是偏移量 4 (P0_4),GPIO_ACTIVE_HIGH。请确认RESET和正常运行期间正确的 GPIO 和所需的物理电平,特别是对于 W_DISABLE2#。 请分享驱动程序版本、固件二进制文件/哈希值、wifi_mod_para.conf 文件以及所使用的确切 电路板支持包。 清单/构建配置。 我们计划将您的 DTS 与我们的设置进行比较,并在我们现有的 JODY 模块上测试适用的更改。 此致, 拉凯什 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 尊敬的@Rakesh_Kumar-Thakur ,
我在Linux平台上启用了88W8987 M.2模块。
--L6.12.49_2.2.0
--模块:Amphenol W603C(基于 88W8987)
0. i.MX95-EVK 硬件上的控制流。
===================================================
1. Linux 平台上的 Wi-Fi 加载机制。
因此,Wi-Fi驱动程序将在Linux启动期间加载。
2. 调整设备树 - 添加 usdhc3 节点和相关的 GPIO 控制。
(1)PCAL6524HEAZ.P2_4 -- 输出高 -- 启用 VCC_KE_3V3,默认情况下由 imx95-19x19-evk.dts 支持。
reg_m2_pwr:regulator-m2-pwr { 兼容 = "稳压器固定"; 稳压器名称 = "M.2-power"; 调节器最小微伏 = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&i2c7_pcal6524 20 GPIO_ACTIVE_HIGH>; 启用高电平有效; /* * 只有在所有电源操作完成后,才能启用 M.2 设备(W_DISABLE1#)。 * 电源轨达到其最低工作电压(PCI Express M.2) * 规范 r5.1 3.1.4启动时机)。 * 在此处设置一个等于 Tsettle 最大值的延迟。 */ 启动延迟-us = <5000>; };
(2) 上拉 SDIO_RST# 引脚
PCAL6524HEAZ.P2_3 & P0_5 - 输出高电平 - 启用 Wi-Fi/蓝牙模块。
由 usdch3 节点的 'mmc-pwrseq' 直接加载。
usdhc3_pwrseq: usdhc3_pwrseq { 兼容 = "mmc-pwrseq-simple"; pinctrl-names = "default"; reset-gpios = <&i2c7_pcal6524 19 GPIO_ACTIVE_LOW>, <&i2c7_pcal6524 4 GPIO_ACTIVE_HIGH>; /* W_DISABLE2# */ };
(3)将 W_DISABLE1# 引脚上拉以启用 WiFi
PCAL6524HEAZ.P0_6 - 输出高电平 - 启用 Wi-Fi。
由 usdch3 节点的 ‘vmmc-supply’ 直接加载。
reg_usdhc3_vmmc:regulator-usdhc3 { 兼容 = "稳压器固定"; 调节器名称 = "WLAN_EN"; 调节器最小微伏 = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <®_m2_pwr>; gpio = <&i2c7_pcal6524 6 GPIO_ACTIVE_HIGH>; /* * IW612 WiFi芯片比其他WiFi芯片需要更长的延迟才能完成加载 * 上电后进行主机接口初始化,否则 * IW612的内部状态可能不稳定,导致故障 * SDIO3.0 开关电压。 */ 启动延迟-us = <20000>; 启用高电平有效; };
(4)usdhc3 引脚控制
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 >; };
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { 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 >; };
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { fsl,pins = < IMX95_PAD_SD3_CLK__USDHC3_CLK 0x15fe IMX95_PAD_SD3_CMD__USDHC3_CMD 0x13fe IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x13fe IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x13fe IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x13fe IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x13fe >; };
(5)禁用 M.2 上的 PCIe0(可选的,由于未使用,因此禁用它)
&pcie0 { pinctrl-0 = <&pinctrl_pcie0>; pinctrl-names = "default"; reset-gpio = <&i2c7_pcal6524 5 GPIO_ACTIVE_LOW>; vpcie-supply = <®_pcie0>; 支持-clkreq; 状态 = "已禁用"; };
(6)添加usdhc3节点
&usdhc3 { pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; pinctrl-0 = <&pinctrl_usdhc3>; pinctrl-1 = <&pinctrl_usdhc3_100mhz>; pinctrl-2 = <&pinctrl_usdhc3_200mhz>; pinctrl-3 = <&pinctrl_usdhc3>; mmc-pwrseq = <& usdhc3_pwrseq >; vmmc-supply = <& reg_usdhc3_vmmc >; 总线宽度 = <4>; 保持电源处于挂起状态; 不可拆卸; 唤醒源; 状态 = "正常"; };
3. 运行 Linux 电路板支持包。并收到 Wi-Fi 消息
这表明,从硬件平台的角度来看,i.MX95-EVK 上的 M.2 SDIO 接口完全支持 SDIO Wi-Fi 设备,没有任何问题。
附件是我使用的dts文件。在这里和大家分享一下。
请测试一下。
谢谢!
顺祝商祺!
卫东
Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 尊敬的@Rakesh_Kumar-Thakur ,
谢谢你的更新。
>>此配置是否也适用于 JODY-W263-00B?W603C 是必需的替换件,还是仅仅是您测试时使用的模块?
--此配置是否也适用于 JODY-W263-00B?
是的,完全一样。因为 M.2 Key E 是 Wi-Fi 卡的标准规格。
--W603C 是必需的替换模块,还是仅仅是您测试时使用的模块?
不需要。
因为目前的测试结果只能表明 i.mx95-evk M.2 对于 SDIO Wi-Fi 没有问题。
这并不意味着 JODY-W263-00B 有问题。
>>说明中提到的是 P0_5,而 DTS 使用的是偏移量 4 (P0_4),GPIO 为 ACTIVE_HIGH。请确认 RESET 和正常运行期间的正确 GPIO 和所需的物理电平,特别是 W_DISABLE2#。
是的,应该是 P0_4,我的错。
>>请分享驱动程序版本、固件二进制文件/哈希值、wifi_mod_para.conf 文件以及所使用的确切电路板支持包。清单/版本配置。
这是司机分支的链接。
https://github.com/nxp-imx/mwifiex/tree/lf-6.12.49_2.2.0
但请记住,您遇到的问题并非由驱动程序引起。不要尝试更改WiFi驱动程序。没用。
下周,我将准备 Android 15 的源代码并尝试启用它。
您使用的安卓电路板支持包。是汽车版还是标准安卓电路板支持包。?
谢谢!
顺祝商祺!
卫东 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 嗨卫东, 感谢您确认该配置适用于 JODY-W263-00B,无需更换 W603C,并且正确的 GPIO 为 P0_4。 我们使用的是汽车级 Android 电路板支持包。 ,其基线如下: 板: i.MX95 19×19 EVK 模块: u-blox JODY-W263-00B / 88W8987,SDIO 电路板支持包。:汽车 Android 15.0.0_2.1.0 清单文件: imx-automotive-15.0.0_2.1.0.xml 版本目标: evk_95_car-nxp_stable-userdebug 内核版本: 6.12.23 我们最终的要求是在上述 Android 15 / 内核 6.12.23 基线上启用此模块。 我们已完成计划中的万用表和示波器检查,检查范围包括模块电源、RESET、W_DISABLE1#/PDn 和 SDIO CLK/CMD/DATA0–3。测量结果和波形捕获已记录在案。固件下载仍然完成,但随后出现相同的激活超时,固件状态码为 0xf005。 根据您的建议,我们将停止进一步的驱动程序版本更改,并将重点放在剩余的配置和排序检查上。 我们也查看了您分享的驱动程序分支。该分支将驱动程序版本标识为540.p33 ,当前分支 HEAD 地址为84ca65c9ff935d7f2999af100a82531c22c65234 。该仓库包含固件文件名引用,但不包含固件二进制文件、实际的模块参数配置或板级 DTS。 请问您能否帮忙解决以下问题? P0_4 / W_DISABLE2# 时序:请确认上电、RESET 置位、RESET 释放和正常运行期间所需的物理高/低电平。您的 DTS 将 P0_4 列为RESET GPIO的GPIO_ACTIVE_HIGH,并将 P2_3 / 偏移量 19 列为GPIO_ACTIVE_LOW。这种组合对于 JODY-W263-00B 是否是预期的?上电序列完成后,每个引脚的物理电平应该是什么? 测试固件及参数:请提供您在成功测试 W603C 时使用的确切固件二进制文件,包括文件名、版本和 安全散列算法\(SHA\)-256 哈希值,或者提供下载链接和确切的仓库提交信息。请确认是否应将相同的固件用于 JODY-W263-00B。此外,请提供实际使用的 wifi_mod_para.conf文件,或者如果没有使用配置文件,请提供确切的模块加载命令和参数。 Linux 参考测试成功:请确认您的测试是否使用了上述驱动程序提交,以及是否应用了任何其他驱动程序补丁。为了使用我们现有的 JODY 模块复现您的 L6.12.49_2.2.0 测试,请提供最终的板级 DTS/补丁以及完整的电路板支持包。清单、MACHINE、发行版。和镜像配置。您是否建议在进行 Android 测试之前进行此对比?如有合适的预构建镜像,也请提供。 计划进行 Android 15 测试:请您使用与我们的基准版本一致的 Automotive Android 15.0.0_2.1.0 / 内核 6.12.23 版本。同时,请确认您将使用 W603C 还是 JODY-W263-00B 进行测试。测试完成后,请提供启用补丁、固件详细信息和初始化日志,以便我们重现测试结果。 我们可以提供硬件验证报告、波形捕获、当前 DTS 和完整的启动/驱动程序日志以供比较。如果您需要任何其他针对性测量或寄存器转储,请与我们联系。 我目前正在全力以赴地进行此次启动工作,您对剩余要点的澄清将有助于我继续进行接下来的测试。如果可以的话,我希望您能尽早回复,特别是关于 GPIO 时序和测试固件/配置方面的回复,以便我可以在您准备 Android 15 设置的同时继续进行验证。 感谢您一直以来的支持。 此致, 拉凯什 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 尊敬的@Rakesh_Kumar-Thakur ,
实际上,只要它是基于 NXP 88Q9098、AW693 M.2 Key E 模块的,它就能工作。所以,你选择 u-blox 模块是没问题的。
我修改了适用于 Auto Android 15_2.1.0 的代码。针对88W8987,本周将有测试结果。如果您的应用是为汽车用途而设计的,那么您确实需要使用专为汽车功能域设计的 NXP 88Q9098、AW693 Wi-Fi 芯片。
谢谢!
顺祝商祺!
卫东 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 嗨卫东, 在购买支持的 Wi-Fi 网卡之前,请您确认在搭载汽车 Android 15.0.0_2.1.0 系统的 i.MX95 19×19 EVK 上测试的网卡的确切制造商和完整的 M.2 订购部件号。/ 内核 6.12.23? 我们正在考虑: M2-JODY-W377-00C — 基于 NXP 9098 的 PCIe Wi-Fi / UART 蓝牙模块 M2-JODY-W683-00C — 基于 NXP AW693 的 请确认您推荐的具体显卡型号、芯片组编号,以及它是否与已发布的 电路板支持包。兼容,还是需要额外的补丁/配置。如果可以,请分享购买链接。 此致, 拉凯什 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 嗨卫东, 感谢您确认默认支持 88Q9098 和 AW693。 我们已在 DigiKey 和 Mouser 上查询过这些 M.2 卡,但目前两家都无库存: M2-JODY-W377-00C — 基于 9098 M2-JODY-W683-00C — 基于 AW693 我们需要在短短一周内演示 i.MX95 19×19 EVK(搭载 Automotive Android 15.0.0_2.1.0 系统)的 Wi-Fi 功能。/ 内核 6.12.23。您能否推荐其他供应商、购买链接或可用的兼容 M.2 卡?提供评估样本也会有所帮助。 是否有其他 Wi-Fi 模块在搭载 Android Automotive 15、Android 16 或其他电路板支持包。版本的 i.MX95 上成功测试过?如果属实,请提供 M.2 卡的确切部件号、芯片组、已测试的 电路板支持包。/内核版本以及购买来源。我们的最终目标仍然是 Android 15 / 内核 6.12.23,因此请说明这些替代方案是否需要为我们的目标进行额外的集成。 同时,我们现有的 JODY-W263-00B / 88W8987 固件激活仍然失败,错误代码为0xf005 。能否请您优先提供帮助,并分享任何可用的启用补丁、匹配的驱动固件包以及您的 Linux 和 Android 测试结果? 您提到我们可以把我们的模块寄给您进行测试。我们的办公室位于印度马哈拉施特拉邦浦那市。您能否协助安排与诺伊达NXP团队进行联合调试?或者,如果 NXP 在浦那设有办事处或合适的技术支持团队,请与我们联系。 我可以在本周内带着模块和(如有必要)我们的 EVK 进行访问,最好是在 10 月 29 日星期四之前,具体取决于团队的空闲时间。您的协调和持续参与将有助于当地团队在已完成的调查基础上继续开展工作。 请与我们联系,告知此事是否可以安排,以及我们应该联系谁。如果无法进行本地测试,请告知我们如何安排将模块寄送给您。 此致, 拉凯什 Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 尊敬的@Rakesh_Kumar-Thakur ,
感谢您提供如此详细的信息。
>> P0_4 / W_DISABLE2# 时序:该引脚应上拉至高电平,用于启用蓝牙。使用外部上拉电阻将其拉高到高电平没有问题。有些 M.2 模块使用 PIN 码来控制蓝牙软件 RESET,但有些模块不使用 PIN 码。W603C 使用了它。
>>JODY-W263-00B。
我手头没有 M.2 模块,但我有 AW-CM358-SUR(M.2 模块),我明天也会在 Linux 平台上测试一下。
>>>在 Android 15-2.1.0 自动上启用。
是的,我计划在 电路板支持包版本下启用 8987 模块。你知道安卓源代码的仓库同步需要很长时间。所以我需要一些时间。
默认情况下,汽车安卓电路板支持包仅支持 88Q9098 和 AW693,它们是汽车 Wi-Fi 产品。对于其他 Wi-Fi 芯片,我们需要做一些额外的工作才能启用它。
[注意]
如果 W603C 或 AW-CM358-SUR M.2 模块在我这边可以正常工作,而JODY-W263-00B 仍然无法工作,您可以考虑寄一个 JODY-W263-00B 给我,让我在我的平台上测试一下。
谢谢!
顺祝商祺!
卫东
Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ 嗨卫东, 固件大小差异是否与我们的初始化失败有关? 固件文件大小为 628,200 字节,但驱动程序报告只下载了 619,156 字节——相差 9,044 字节。我们的诊断日志显示,该设备在偏移量 619,156 处停止请求进一步数据。离线解析发现最后一个块记录以相同的偏移量结束,但剩余字节的用途仍未确定。 这是该固件映像的预期行为吗?还是说这表示传输不完整,导致后续出现0xf005激活超时? 我们使用 JODY-W263-00B / 88W8987,驱动程序版本为 537.p9,固件版本为 16.92.21.p151.4,运行在车载 Android 15.0.0_2.1.0 系统上。/ 内核 6.12.23。 此致, 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
当我尝试启用基于 88W8987 的 AW-CM358MA 模块时,我遇到了和你一样的问题。
=================================
固件状态轮询失败:firmwarestat=0xf005
SDIO 功能0: 43 03 02 02 03 00 00 02 03 00
SDIO 功能1: (0x5c) 0d (0x60) 01 (0x64) 10
SDIO 功能1: 05 f0 00 00 00 00 00 00 24 14 70 ...
=================================
让我们按照以下步骤解决问题:
1. 88W8987 GPIO[8]引脚。(参见数据手册)
该引脚有 2 个功能:时钟配置和 UART_SOUT。
启动 88W8987 时,引脚应为低电平以选择 38.4MHz 时钟。
但是,如果主机 UART_RXD 引脚配置为上拉,则 88W8987 UART_SOUT 也将上拉。
这意味着选择的是 26MHz 时钟,而不是 38.4MHz 时钟。实际上大多数模块使用38.4MHz时钟。
所以我们应该将 LPUART5_RXD PAD 配置更改为下拉。
2. 更改LPUART5_RXD 焊盘配置
......
IMX95_PAD_DAP_TDI__LPUART5_RX 0x51e
......
3. 向您分享我的完整设备树。
请查看附件。
请试一试。
顺祝商祺!
卫东
Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
我已在 i.mx95-evk 和 auto android 15_2.1.0 上启用了 AW-CM358MA 模块bsp。让我来告诉你具体步骤。
==========================================
1. android_build/设备/nxp/imx9/evk_95/evk_95.mk
# nxp 9098 WiFi 和蓝牙组合固件 PRODUCT_COPY_FILES += \ 供应商/nxp/imx-firmware/nxp/FwImage_IW416_SD/sduartiw416_combo.bin:供应商/固件/sduartiw416_combo.bin \ 供应商/nxp/imx-firmware/nxp/FwImage_9098_PCIE/pcieuart9098_combo_v1.bin:供应商/固件/pcieuart9098_combo_v1.bin \ vendor/nxp/imx-firmware/nxp/FwImage_IW612_SD/sduart_nw61x_v1.bin.se:vendor/firmware/sduart_nw61x_v1.bin.se \ 供应商/nxp/imx-firmware/nxp/FwImage_AW693_PCIE/pcieuartaw693_combo_v1.bin.se:供应商/固件/pcieuartaw693_combo_v1.bin.se \ 供应商/nxp/imx-firmware/nxp/FwImage_8987/sduart8987_combo.bin:供应商/固件/sduart8987_combo.bin \ 供应商/nxp/imx-firmware/nxp/android_wifi_mod_para.conf:供应商/固件/wifi_mod_para.conf \ hardware/nxp/libbt/conf/nxp/evk_95/bt_vendor.conf:/vendor/etc/bluetooth/bt_vendor.conf
2. android_build/hardware/nxp/libbt/conf/nxp/evk_95/bt_vendor.conf
# 禁用默认设置 #mchar_port = /dev/ttyLP4 #baudrate_fw_init = 3000000 # # 将设置更改为 88W8987 蓝牙 mchar_port = /dev/ttyLP4 baudrate_dl_image = 115200 iSecondBaudrate = 3000000 baudrate_fw_init = 115200 baudrate_bt = 3000000
3. android_build/vendor/nxp-opensource/kernel_imx/arch/arm64/启动/dts/freescale/imx95-19x19-evk.dts
LPUART5_RX 引脚
/*将其设置为下拉(连接到 88W8987 的 GPIO[8]/UART_SOUT)。GPIO[8] 用于选择主时钟,0--38.4MHz,1--26MHz,大多数模块使用 38.4MHz 晶体。*/
pinctrl_uart5:uart5grp { fsl,pins = < IMX95_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e IMX95_PAD_DAP_TDI__LPUART5_RX 0x51e IMX95_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x31e IMX95_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x31e >; };
在 M.2 连接器上添加 GPIO 控制
/* M.2 模块电源使能 */ reg_m2_pwr:regulator-m2-pwr { 兼容 = "稳压器固定"; 稳压器名称 = "M.2-power"; 调节器最小微伏 = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&i2c7_pcal6524 20 GPIO_ACTIVE_HIGH>; 启用高电平有效; 启动延迟-us = <5000>; }; /* M.2 接口上的 SD3 使能引脚、SDIO RESET# 引脚、PCAL6524HEAZ.P2_3 和 PCAL6524HEAZ.P0_4 - 输出高电平,由 usdch3 节点的 'mmc-pwrseq' 消耗 */ usdhc3_pwrseq: usdhc3_pwrseq { 兼容 = "mmc-pwrseq-simple"; pinctrl-names = "default"; reset-gpios = <&i2c7_pcal6524 19 GPIO_ACTIVE_LOW>, <&i2c7_pcal6524 4 GPIO_ACTIVE_HIGH>; /* W_DISABLE2# */ }; /* 将 W_DISABLE1# 引脚上拉以启用 WiFi,PCAL6524HEAZ.P0_6 - 输出高电平 */ reg_usdhc3_vmmc:regulator-usdhc3 { 兼容 = "稳压器固定"; 调节器名称 = "WLAN_EN"; 调节器最小微伏 = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <®_m2_pwr>; gpio = <&i2c7_pcal6524 6 GPIO_ACTIVE_HIGH>; /* * IW612 WiFi芯片比其他WiFi芯片需要更长的延迟才能完成加载 * 上电后进行主机接口初始化,否则 * IW612的内部状态可能不稳定,导致故障 * SDIO3.0开关电压。 */ 启动延迟-us = <20000>; 启用高电平有效; };
添加 usdhc3 节点和引脚控制
/* 添加 uSDHC3 引脚控制 */ 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 >; };
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { 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 >; };
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { fsl,pins = < IMX95_PAD_SD3_CLK__USDHC3_CLK 0x15fe IMX95_PAD_SD3_CMD__USDHC3_CMD 0x13fe IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x13fe IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x13fe IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x13fe IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x13fe >; };
/* 添加 usdhc3 节点 */ &usdhc3 { pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; pinctrl-0 = <&pinctrl_usdhc3>; pinctrl-1 = <&pinctrl_usdhc3_100mhz>; pinctrl-2 = <&pinctrl_usdhc3_200mhz>; pinctrl-3 = <&pinctrl_usdhc3>; mmc-pwrseq = <&usdhc3_pwrseq>; vmmc-supply = <®_usdhc3_vmmc>; 总线宽度 = <4>; 保持电源处于挂起状态; 不可拆卸; 唤醒源; 状态 = "正常"; };
禁用 PCIe 0 节点
/* 禁用 M.2 接口的 PCIe 0 插槽 - 仅使用 SDIO Wi-Fi */ &pcie0 { pinctrl-0 = <&pinctrl_pcie0>; pinctrl-names = "default"; reset-gpio = <&i2c7_pcal6524 5 GPIO_ACTIVE_LOW>; vpcie-supply = <®_pcie0>; 状态 = "已禁用"; };
4. 测试结果
=============================================
谢谢!
顺祝商祺!
卫东
Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 感谢您分享 AW-CM358MA 测试成功和 Android 启用步骤。为了重现您的设置并明确我们的模块选择,请您确认以下四点: 已测试的模块和 电路板支持包。版本 您之前的 Linux 测试使用了 Amphenol W603C 芯片,内核版本为 L6.12.49_2.2.0;而您最新的 Automotive Android 15.0.0_2.1.0 测试使用了 AW-CM358MA 芯片。请确认每次测试所用 M.2 卡的制造商、完整型号、芯片组以及实际内核版本。您之前还提到过 AW-CM358-SUR,请问这是同一款卡还是不同的型号? 匹配软件包 为了确保 Android 测试成功,请提供完整的电路板支持包。 清单/标签、驱动程序版本、固件版本/哈希值以及 wifi_mod_para.conf 文件。是否使用了 6.12.23 内核?除了您最新回复中提到的内容之外,是否还有其他更改? 将解决方案应用于 JODY-W263-00B 我们能否使用版本电路板支持包。驱动程序和固件为我们的 JODY-W263-00B 应用这些更改?请确认将 LPUART5_RX 下拉电阻更改为 0x51e 是否足以满足时钟同步的要求,或者是否需要修改外部电阻。此外,上电后 P0_4/W_DISABLE2# 是否应保持物理高电平? 备选卡 对于 M2-JODY-W377-00C 和 M2-JODY-W683-00C,请区分一般兼容性和实际验证。NXP 或其模块合作伙伴在哪些 Linux 和 Automotive Android 电路板支持包。/内核版本上测试过这些卡?请提供任何可用的参考资料,并确认是否需要针对我们的目标平台打额外的补丁。 我们所需的基准版本仍然是 i.MX95 19×19 EVK B0,汽车 Android 15.0.0_2.1.0内核版本为 6.12.23。 此致, 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 嗨卫东, 感谢您分享 AW-CM358MA 的启用步骤。 我们将相应的更改应用到了搭载 u-blox JODY-W263-00B (88W8987) 的 i.MX95 19×19 EVK 上,该芯片运行的是 Automotive Android 15.0.0_2.1.0 系统。/ 内核 6.12.23。 我们在实时设备树中验证了以下内容: LPUART5_RX 焊盘配置:0x51e。 RESET GPIO:19 个 ACTIVE_LOW 和 4 个 ACTIVE_HIGH。 M.2/WLAN 启用延迟:5 毫秒和 20 毫秒。 SDIO引脚控制状态和唤醒源。 PCIe0 和 PCIe1 已禁用。 蓝牙设置也已更新。重新刷写修正后的图像集后,mlan 和 moal 会自动加载。SDIO 在 SDR104 模式下枚举正常,但固件激活仍然失败: WLAN:固件下载完成,固件长度=628200,已下载619156 固件状态轮询失败:firmwarestat=0xf005 FW未能及时激活! 固件初始化失败 请问接下来的步骤可以详细说明一下吗? 您的成功设置是否需要任何硬件更改、电阻器的安装/移除、跳线更改或 UART/JTAG DIP 开关设置?请提供具体的设置和元器件参考信息。 JODY-W263-00B 与您测试过的 AW-CM358MA 相比,是否需要任何不同的设置,特别是对于 W_DISABLE1#、W_DISABLE2#、电源/RESET 序列或时钟选择? 对于 GPIO[8]/UART_SOUT 时钟带,何时进行电平采样?Linux DTS 下拉是否足够,还是需要更早的 U-Boot/上电配置? 请确认此腕带的预期启动电压以及方便测量的测量点。我们已经验证了 DTS 配置,但尚未确认采样时的物理带级。 请提供您测试过的驱动程序版本、固件版本/安全散列算法\(SHA\)-256 以及 wifi_mod_para.conf 文件。以及任何参考启动波形。 请告知您建议首先进行哪项测量或对照测试。我们可以提供完整的 dmesg 日志和实时设备树。 问候, 拉凯什 Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 尊敬的@Rakesh_Kumar-Thakur ,
请看下方内容。
> > 1.已测试的模块和电路板支持包版本
--Android 15.0.0_2.1.0电路板支持包。,跟你的一样。
--电路板支持包。版本中的默认 Wi-Fi 驱动程序。我没有使用其他WiFi驱动程序。
https://www.nxp.com/design/design-center/software/embedded-software/i-mx-software/android-automotive-os-for-i-mx-applications-processors:ANDROID-AUTO
2.匹配软件包
从上面的截图中可以看出,Android 电路板支持包。 版本使用的是LF_v6.12.20 电路板支持包。,而我们版本的 Android 15.0.0_2.1.0 电路板支持包。 没有使用L6.12.23 。
3.将解决方案应用于 JODY-W263-00B
是的,我也这么认为。因为我在使用 AW-CM358MA 时也能重现您遇到的同样问题。
我认为可以使用 JODY-W263-00B。i.MX95 LPUART5_RXD 引脚只需在 DTS 中配置一个下拉电阻即可。
> > 4.备选卡
M2-JODY-W377-00C 和 M2-JODY-W683-00C 分别基于 9098 和 AW693,是的,您可以选择它们用于您的应用。
[注意]
我建议按照我的步骤来启动并运行 JODY-W263-00B。
谢谢!
此致,
卫东
View full article