i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12.23 Title: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12.23 Hello NXP Team, I am debugging WiFi initialization on the following setup: Board: NXP i.MX95 19x19 EVK WiFi module: u-blox JODY-W263-00B Android build: AOSP 15 (Android property verification pending) Running kernel: 6.12.23-android16-5-maybe-dirty-4k Exact NXP Android BSP release/tag: not yet confirmed WiFi driver: mlan/moal (MWLAN) Selected firmware: sduart8987_combo.bin SDIO device: mmc2:0001:1 Running kernel information: The SDIO device is detected, and the driver reports “FW download over”. However, the firmware does not become active within the timeout, and the WiFi SDIO probe fails. Relevant boo$ adb shell uname -a Linux localhost 6.12.23-android16-5-maybe-dirty-4k #1 SMP PREEMPT Thu Jan 1 00:00:00 UTC 1970 aarch64 Toybox t logs: [ 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 After unloading and reloading the driver, I also observed: [ 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 I found this related community discussion: https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/88W8801-LILY-W131-WiFI-SDIO-chip-not-responding-after-FW/m-p/1986943 The discussion concerns 88W8801 on Nvidia AGX Orin, so it is a different module/platform. The author reported improvement after removing no-sd and changing bus-width from 4 to 1, followed by successful operation with the original configuration. I have not yet tested these changes on my board. Could you please help clarify: Is sduart8987_combo.bin the correct firmware for JODY-W263-00B? Which firmware release and mlan/moal driver revision are recommended for this Android/kernel combination? What are the recommended SDIO device-tree settings for this module on the i.MX95 19x19 EVK, particularly bus width, maximum frequency, pinctrl, power supplies, reset GPIO, and power-sequence delays? Would testing bus-width = <1> or a lower SDIO clock help diagnose this timeout? Is removing no-sd relevant or recommended for this platform? What could cause the firmware activation timeout after the driver reports firmware download completion? Does downloaded 0 after driver reload indicate that a full module power cycle or hardware reset is needed before retrying? Are there known issues or required patches for this board/module/kernel combination? Which additional debug settings, SDIO register dumps, or logs should I collect to distinguish firmware/driver compatibility issues from SDIO communication or power/reset sequencing issues? I can provide the full boot log, relevant device-tree nodes, wifi_mod_para.conf, and exact BSP/driver revisions once confirmed. Thank you. Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hello NXP Team, We have collected further diagnostic evidence for the firmware activation timeout on i.MX95 19x19 EVK with JODY-W263-00B. Hardware mode verification Both register reads succeed: 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 The masked strap indicates SD-UART mode according to our driver source, consistent with the configured firmware name. Download-loop exit confirmed 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! The requested-length registers remain zero throughout 100 polling attempts, causing the download loop to exit. Firmware binary inspection Using the source’s 16-byte FWHeader layout and command-length rules, offline parsing identifies a CMD4 record at offset 619140, ending at 619156—exactly matching the download counter. The source defines CMD4 as FW_HAS_LAST_BLOCK. There are 9044 bytes after this record. We have not established their purpose or confirmed that these parsing rules fully describe the SDIO bootloader format. We therefore do not consider the counter difference alone proof of an incomplete download. Additional details: MOAL/MLAN version: 537.p9 Embedded firmware string: w8987o-V0, RF878X, FP92, 16.92.21.p151.4 Firmware size: 628200 bytes SHA-256: db9e2ef58aba5778cddd7b7fbc84a34884bebef076052186e8b0d036e68d9f34 Actual 1-bit SDIO operation was previously verified at 50 MHz, with the same timeout. The latest diagnostic test runs at 4-bit, 50 MHz. Expected firmware READY status is 0xfedc; observed status remains 0xf005. No Wi-Fi network interface is created. Exact NXP BSP release/tag is still being confirmed. Could you please clarify: Is stopping at the CMD4 boundary, offset 619156, expected for this specific image? What is the purpose of the remaining 9044 bytes? What does 0xf005 indicate during SD8987 firmware activation? Is firmware containing version string 16.92.21.p151.4 supported with driver 537.p9 for JODY-W263-00B? Which BSP and firmware/driver package should we use? Which module power/reset timing, supply and reference-clock checks are recommended for this failure? Which additional registers or diagnostics would distinguish a firmware startup failure from a communication or hardware initialization issue? The firmware binary remains unchanged. Our source modifications add diagnostic logging, and full boot logs and source diffs are available. Thank you. Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 One important clarification about the failure stage: The processor detects the SD8987 Wi-Fi device over SDIO, and the firmware download routine reports “FW download over”. However, during the subsequent activation check, the driver expects SDIO_FIRMWARE_READY = 0xfedc, while the reported status is 0xf005. Firmware initialization and the SDIO probe therefore fail, and no Wi-Fi network interface is created. This remains unchanged after verifying actual 1-bit SDIO operation at 50 MHz. Could you please explain what 0xf005 indicates for SD8987 at this stage and which additional register values or logs would help identify why the firmware does not reach READY status? Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hello NXP Team, Following up on my original report, we have completed additional checks and a controlled SDIO bus-width experiment. Wi-Fi initialization still fails at the firmware activation stage. 1. Confirmed device and software details Board/module: i.MX95 19x19 EVK with JODY-W263-00B Android fingerprint: Android/evk_95_car/evk_95:15/BP1A.250505.005/eng.nisar:userdebug/dev-keys Kernel: 6.12.23-android16-5-maybe-dirty-4k Exact NXP BSP release/tag: still being confirmed SDIO device: mmc2:0001:1 SDIO ID: 02DF:9149, mapped to SD8987 in the driver source Host controller: USDHC3, mmc@428b0000 Both moal and mlan report version 537.p9 MOAL srcversion: 358C14898F4DDF4EB40AB03 Source repository revisions: nxp-mwifiex: 9630752ea1d9e28d9956adf27c652f40399e85ad imx-firmware: 34faa4b3008bf9c6f814b5767cacbc3857cdc49b Both commits have the subject “MA-23689-1 [Android-15]WCS Q2 release patch integrate”. Mapping these source revisions to the installed module build is still being verified. 2. Firmware identity verified The selected firmware is /vendor/firmware/sduart8987_combo.bin, size 628200 bytes. The source copy and installed board copy have the same SHA-256: db9e2ef58aba5778cddd7b7fbc84a34884bebef076052186e8b0d036e68d9f34 This confirms that the copies match; firmware compatibility with the module still needs confirmation. 3. Actual 1-bit SDIO test completed Initially, the live Device Tree reported bus-width = <1>, but /sys/kernel/debug/mmc2/ios still showed 4-bit operation. In our source, mmc_of_parse() does not clear an existing 4-bit capability for bus-width = <1>, while generic SDHCI setup adds MMC_CAP_4_BIT_DATA unless SDHCI_QUIRK_FORCE_1_BIT_DATA is set. We therefore added a diagnostic block in sdhci-esdhc-imx.c, immediately after the mmc_of_parse() error check: {
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);
}
} After rebuilding and deploying the modified kernel and DT configuration, we verified: 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) However, the same failure remained: 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 No Wi-Fi network interface appears. The configured maximum frequency is 100 MHz, but actual operation remained at 50 MHz. We have therefore not completed a lower-clock test. Also, no-sd was absent from the reviewed USDHC3 configuration, so no removal was performed. 4. WLAN-only firmware reload test We temporarily bind-mounted sd8987_wlan.bin over the configured firmware path and reloaded MOAL. The driver read the alternative file size, but reported: firmwarelen=416836 downloaded 0
firmwarestat=0xf005
FW failed to be active in time! Because this was a reload after an earlier failed initialization, we consider the result inconclusive. It does not establish WLAN-only firmware compatibility or successful transfer. A reboot removed the temporary bind mount, and the original 628200-byte combo firmware was verified again. 5. Current investigation We are preparing diagnostic logging in moal_sdio_mmc.c to capture: Raw chip magic and host strap register values. Return status of both register reads. Masked magic and strap values. The source defines CHIP_MAGIC_VALUE = 0x24 and CARD_TYPE_SD_UART = 0. The existing boot log did not expose these values. This logging change has not yet been deployed. The exact meaning of firmwarestat=0xf005 and the repeated 9044-byte difference between firmware size and download counter remain unresolved. We are not treating the completion message as proof that firmware is active. Could you please advise on the following? Is this firmware/driver package appropriate for JODY-W263-00B on this BSP/kernel? How can we identify the exact firmware release from the binary or package? Is downloaded 619156 for a 628200-byte combo image expected for this firmware format, or does it indicate premature termination? What does firmware status 0xf005 mean for SD8987 during initialization? Is the diagnostic host-driver change above appropriate for enforcing a 1-bit test, or is there a preferred BSP mechanism? Which registers/logging should we collect to verify strap-based firmware selection, and does an explicit fw_name override that selection? What power/reset sequence is required before retrying after this failure? Would you recommend a lower-clock test or another targeted experiment next? We can provide the full boot logs, DT/overlay changes, host-driver diff, and wifi_mod_para.conf. Thank you. Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Dear @Rakesh_Kumar-Thakur ,
Thanks for your Inquiry.
I saw you are using uSDHC3 interface for your WiFi module, i.MX95-EVK supports the uSDHC3 on M.2 KEY E connector, so I assume you are using M.2 WiFi module, JODY-W263-00B based on 88W8987.
We need to clarify the following steps when enabling SDIO WiFi on M.2 KEY E connector.
-- uSDHC3 IO level is determined by NVCC_WAKEUP
NVCC_WAKEUP is 1.8V (from VDD_1V8_S).
--M.2 Power,VCC_KE_3V3 is disabled by default
The power is generated by NX5P2924DUK, M2_KE_PWREN is controlling it's enablement.
3. What software will do
(1) Adding uSDHC3 node to imx95-19x19-evk.dts
There is no uSDHC3 node by default, it should be added manually.
[Note]
You can refer to imx95-15x15-evk.dts's usdhc3 code to add it.
please pay attention to different GPIOs.
--Enabling power GPIO
--Pull up W_DISABLE1# and W_DISABLE2 pins of M.2
--SDIO_WAKE# & SDIO_RST# pins
(3)Android 15 SDIO WiFi Power Enablement
Check haredBoardConfig.mk files for i.MX95 and confirm if pwrseq_simple.ko has been supported, if not , add it, please. maybe like below:
......
$(KERNEL_OUT)/net/wireless/cfg80211.ko \
$(KERNEL_OUT)/drivers/mmc/core/pwrseq_simple.ko \
......
(3) Enabling imx95-19x19_gki.fragment (Maybe different name, confirm it , please.)
......
CONFIG_PWRSEQ_SIMPLE=m
......
(4) Disabling pcie1 node (in imx95-19x19-evk.dts)
...... &pcie1 { pinctrl-0 = <&pinctrl_pcie1>; pinctrl-names = "default"; reset-gpio = <&i2c7_pcal6524 16 GPIO_ACTIVE_LOW>; vpcie-supply = <®_slot_pwr>; status = "disabled"; };
......
(5) BoardConfig.mk can support 8987 directly
You can change default WiFi firmware files' name to 88W8987's.
OK, try it, please.
Thanks,
Regards,
Weidong
Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, Thank you for your guidance. I tested the following configuration updates, but firmware initialization still fails: Disabled pcie1 in imx95-19x19-evk.dts. The existing uSDHC3 configuration was retained. Updated the Wi-Fi configuration labels and module-parameter filename in BoardConfig.mk and SharedBoardConfig.mk. Updated the firmware configuration destination name in evk_95.mk. Found CONFIG_PWRSEQ_SIMPLE=m already present in the kernel fragments. Runtime loading of pwrseq_simple.ko and the DTS power-sequence connection still need verification. The latest boot uses: moal.mod_para=wifi_mod_para_sd8987.conf The module is reported as JODY-W263-00B, based on NXP 88W8987, and the Wi-Fi driver version is 537.p9. Current firmware: Path: /vendor/firmware/sduart8987_combo.bin
Size: 628200 bytes
SHA-256: db9e2ef58aba5778cddd7b7fbc84a34884bebef076052186e8b0d036e68d9f34 Boot logs: 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 Previously, I also tested a replacement firmware from branch lf-6.18.20_2.0.0: Size: 644352 bytes
SHA-256: ccaff1bc0a0232fb59111bb01f27cd28ba985d9a0bcb79beca61cde5e67ca823 Its deployed hash was verified, but it produced the same firmwarestat=0xf005 activation failure. Could you please provide or point me to a validated sduart8987_combo.bin for JODY-W263-00B / 88W8987 compatible with driver 537.p9? Please include the firmware version, repository commit/tag, SHA-256 and recommended module parameters. If another driver release is required, please specify the matching driver–firmware pair. For reference, our source revisions are: Driver: 9630752ea1d9e28d9956adf27c652f40399e85ad
Original firmware repository: 34faa4b3008bf9c6f814b5767cacbc3857cdc49b Please also advise what 0xf005 indicates and which additional status-register captures or power/reset checks would help identify the cause. Electrical measurements and complete reset-sequence verification are still pending. Regards, Rakesh Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Dear @Rakesh_Kumar-Thakur ,
Thanks for your update.
>>Regarding 0xf005
code 0xf005 means that the driver did not observe the firmware reaching the Ready/Active state within the polling timeout. It is a firmware activation status, not a specific hardware-fault code. However, hardware issues such as SDIO communication, power, reset, or clock problems may still cause this status.
>>Regarding switching to the lf-6.18.20_2.0.0 branch:
The correct approach is to use the complete, matching Wi-Fi driver and firmware from that branch. We should not replace only the firmware, because the driver and firmware versions must be compatible and kept in sync.
So you can try to update Wi-Fi driver & firmware to the latest branch.
I have one question and one suggestion:
Do you have to use Android 15? Since the i.MX95 is relatively new, it would be better to use the latest BSP version. You could use Android 16.0.0_2.0.0 with the L6.18.20_2.0.0 BSP.
I suggest first verifying the Wi-Fi hardware, driver, and firmware on the Linux BSP. Once the Wi-Fi module works properly on Linux, you can migrate the solution to Android 16. This approach can reduce the complexity of Android-specific configuration and make debugging more efficient.
Thanks,
Regards,
Weidong
Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, Thank you for the clarification. We must retain AOSP 15 with kernel 6.12.23; upgrading to Android 16 is not an option. Could you please recommend a supported Wi-Fi driver–firmware pair for this setup with JODY-W263-00B / 88W8987? Our current driver is reported as 537.p9. If you recommend the pair from lf-6.18.20_2.0.0, please confirm whether that driver supports kernel 6.12.23 and whether any integration patches are required. Please provide the exact driver and firmware commits/tags, the matching sduart8987_combo.bin version/checksum, and recommended module parameters. Regards, Rakesh Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, While reviewing Android Automotive Release Notes (RN00227), Rev. automotive-15.0.0_2.1.0, dated 14 October 2025, I noticed that Section 4, Table 2 — Connectivity Wi-Fi lists PCIe9098 / u-blox JODY-W3 for i.MX95. I have attached a screenshot of this entry. Our setup uses: Board: i.MX95 19×19 EVK Module: u-blox JODY-W263-00B / 88W8987 over uSDHC3 SDIO BSP: Android Automotive 15.0.0_2.1.0 Kernel: 6.12.23 The SDIO device is detected and firmware transfer completion is reported, but firmware activation fails with firmwarestat=0xf005. Could you please clarify: Has JODY-W263-00B / SDIO8987 been validated on this BSP, or does it require additional integration beyond the previously recommended changes? If supported, could you provide the matching driver–firmware revisions and required DTS, power/reset and module-parameter configuration? Is JODY-W3 / PCIe9098 the recommended module for this release? If replacement is recommended, please specify the exact module/carrier part number and required board configuration. We must retain Android 15 and kernel 6.12.23. Please advise the supported path for this setup. Regards, Rakesh Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Dear @Rakesh_Kumar-Thakur ,
i.mx95 is designed for automotive applicaiton.
Wi-Fi module, AW693 & PCIe 88Q9098 is supported by automotive android, I have tested AW693 module, no problem.
I am building L6.12.49 linux bsp , I want to test 88W8987 on i.mx95.
Best Reards,
Weidong Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, Thank you for the detailed explanation. We understand that 0xf005 means the driver did not observe the firmware reaching the Ready/Active state within the polling timeout, and that it is not a specific hardware-fault code. On our i.MX95 19x19 EVK with the u-blox JODY-W263-00B (88W8987), SDIO detection and firmware download complete, but activation still times out with status 0xf005. Our current platform is Android 15 with kernel 6.12.23 and MOAL/MLAN driver 537.p9. The software power/reset checks and boot-time reset sequencing changes are complete, but the issue remains. Physical voltage, reset and clock measurements are pending. Following your recommendation, we plan to validate Wi-Fi on Linux first using a complete, matching driver and firmware pair. We are checking internally whether migration to Android 16 is possible. If Android 15 remains mandatory, we will evaluate backporting the matching pair while retaining kernel 6.12.23. Could you please confirm the following? Earlier test result: What was the outcome of your L6.12.49 test with JODY-W263-00B on i.MX95? Validated release: Has this exact module been validated on the i.MX95 19x19 EVK with L6.18.20_2.0.0 and Android 16.0.0_2.0.0? Linux setup: Please provide the manifest branch and XML filename, MACHINE, DISTRO, image name, and official build/flashing instructions. Matching Wi-Fi pair: Please provide the driver repository and pinned revision, firmware package and revision, correct firmware filename, and required module configuration. Is sduart8987_combo.bin correct for this module’s SD-UART configuration? Android setup: Please confirm the corresponding Android release and manifest, including the Automotive variant if applicable. Additional diagnostics: Are any specific Device Tree settings, power/reset timings, patches or register dumps required to investigate this activation timeout? After Linux validation, we will share the boot logs, driver/firmware versions, firmware SHA-256 and available hardware measurements. Best regards, Rakesh Thakur Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, Thank you for the update. We will wait for your test results next week. Could you please confirm that your test setup uses the u-blox JODY-W263-00B / NXP 88W8987 module with Wi-Fi over SDIO? When sharing the results, please include the exact BSP version, driver revision, firmware version/file and required board configuration. If the test succeeds, please also share where we can obtain the same driver–firmware pair. This will help us reproduce your working setup and compare it with our Android 15 / kernel 6.12.23 integration. Thanks and best regards, Rakesh Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Hello Weidong, Following your recommendation, we integrated a matching Wi-Fi driver and firmware pair from lf-6.18.20_2.0.0. However, the firmware activation failure remains. Before proceeding with further changes, we need confirmation of the supported driver–firmware package for our exact installed Wi-Fi module, along with its download source and support ownership. 1. Hardware and software setup Component Details Board NXP i.MX95 19×19 EVK Installed Wi-Fi module u-blox JODY-W263-00B Wi-Fi chipset NXP 88W8987 Wi-Fi interface SDIO Intended Bluetooth interface UART Android BSP Automotive Android 15.0.0_2.1.0 Kernel base 6.12.23 Detected SDIO device mmc2:0001:1 Our installed module uses SDIO for Wi-Fi, rather than the PCIe Wi-Fi configuration discussed for the default EVK setup. Please base your recommendation specifically on JODY-W263-00B / 88W8987 in SD-UART mode. 2. Original and updated driver–firmware pairs Component Original setup Updated setup Driver version 537.p9 543.p18 Firmware embedded version 16.92.21.p151.4 16.92.21.p156.2 Firmware filename sduart8987_combo.bin sduart8987_combo.bin Firmware size 628200 bytes 644352 bytes Result Activation timeout, 0xf005 Same activation timeout, 0xf005 The updated pair was selected from lf-6.18.20_2.0.0 and backported into our existing Android 15 / kernel 6.12.23 environment. We have not performed a full Android 16 / Linux 6.18 BSP migration. Selected reference revisions: Driver:
2e481212d262758cbd4d0fc7ea95a2ad5f704bc3
Firmware:
cc78ca8b1ee28ff741bcc160246f61b008f6c89f 3. Integration and deployment evidence Updated driver compilation and MODPOST passed. Image packaging and local AVB verification passed. After flashing, the loaded driver version was verified as 543.p18. Board module and firmware hashes matched the packaged artifacts. SDIO enumeration succeeded. The same activation failure occurred on the first post-flash boot and during a cold-power test. The updated firmware in the integrated source was also inspected directly: Filename: sduart8987_combo.bin
Size: 644352 bytes
Embedded identification:
$Id: w8987o-V0, RF878X, FP92, 16.92.21.p156.2 $
SHA-256:
ccaff1bc0a0232fb59111bb01f27cd28ba985d9a0bcb79beca61cde5e67ca823 4. Failure evidence Original pair: 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 Updated pair: 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 The driver detects the module and reports firmware transfer completion, but firmware activation fails. This does not currently point to an obvious detection or firmware-file-loading failure. However, we are not claiming that the driver is fully validated or that firmware incompatibility is the confirmed root cause. 5. Specific confirmation and package request Please answer the following points for JODY-W263-00B / 88W8987: Are both driver–firmware pairs listed above supported for this exact module in SD-UART mode? Please confirm each pair separately. Is either existing driver suitable, with only a different firmware required, or must we obtain a different matching driver–firmware pair? Please identify the exact supported combination. Where can we obtain that package? Please provide the official download link, repository/branch and commits, or the process for requesting access. Who is responsible for supplying and confirming it—NXP or u-blox? If this requires u-blox support, please identify the appropriate support route and the package information we should request. Is the generic NXP 88W8987 firmware suitable for JODY-W263-00B, or does this module require a u-blox-qualified package or additional module-specific files/configuration? Can the confirmed pair operate on Android 15 / kernel 6.12.23? If additional patches are required, please identify them. If this platform is unsupported, please specify a supported BSP and known working configuration for this exact module. What was the specific basis for recommending the driver update? Was there a known issue with 537.p9 and firmware 16.92.21.p151.4, or was the recommendation intended to establish a consistent release baseline? When can we expect compatibility confirmation and access to the recommended package? If engineering review is required, please provide an estimated response timeline. If the updated pair is already correct for this module, please state that explicitly and identify the next targeted diagnostic check for the 0xf005 activation failure. A separate Binder module packaging mismatch has also been corrected locally; those corrected images still require board retesting. Its relationship to the Wi-Fi failure has not been established. Our immediate request is a module-specific confirmation of the correct driver and firmware, their official source, the responsible supplier, and an expected timeline, so that further testing proceeds from a verified baseline. Thank you. Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, Following your recommendation, we have now integrated and tested the complete matching Wi-Fi driver and firmware pair from lf-6.18.20_2.0.0 on our i.MX95 19×19 EVK with JODY-W263-00B / 88W8987. Android 15 and kernel 6.12.23 must be retained. Integrated revisions: Driver: 2e481212d262758cbd4d0fc7ea95a2ad5f704bc3 Firmware: cc78ca8b1ee28ff741bcc160246f61b008f6c89f Loaded MLAN/MOAL version: 543.p18 Firmware: sduart8987_combo.bin, 644352 bytes Compilation and image packaging passed. On the board, we verified the intended kernel, loaded driver version, and module/firmware hashes against the packaged artifacts. Android boot and SDIO enumeration succeeded. However, both the first post-flash boot and a cold-power test produced the same activation failure: 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 No WLAN interface was created. Therefore, updating the matching pair from 537.p9 to 543.p18 has not resolved the failure. Software power/reset sequencing changes are in place. Physical supply, reset and clock measurements remain pending. An earlier verified 1-bit SDIO test at 50 MHz also produced the same timeout. Separately, we identified a kernel/system-module mismatch affecting rust_binder and rebuilt the images with matching modules. Board retesting of that corrected image set is pending; its relationship to the Wi-Fi failure has not been established. Could you please help us prioritize the next steps? Your Linux test: What is the result of your planned L6.12.49 test with 88W8987 on i.MX95? Please confirm the exact module/carrier, driver–firmware revisions and DTS configuration used. Android 15 support: Is this 543.p18 pair suitable for kernel 6.12.23? Are any compatibility patches required, or do you recommend another validated pair? Targeted diagnostics: We understand that 0xf005 indicates failure to reach READY. Can your Wi-Fi team interpret this specific SD8987 status and provide the exact registers, addresses and capture procedure needed to investigate startup failure? Next controlled experiment: Given that matching-pair integration and 1-bit testing have already been completed, which single software experiment should we perform next, with what settings and expected result? Hardware validation: Please provide the required supply levels, reset timing, clock requirements and confirmed measurement points for this board/module combination. If JODY-W263-00B has not been validated on this Android release, please state that explicitly and recommend the supported integration or replacement path. Full boot logs, source diffs, hashes and image verification records are available. Regards, Rakesh Thakur Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Please confirm whether driver 537.p9 + firmware 16.92.21.p151.4, and driver 543.p18 + firmware 16.92.21.p156.2, are supported combinations for JODY-W263-00B / 88W8987 in SD-UART mode. For the second pair, please also confirm support on Android 15 / kernel 6.12.23, including required patches or configuration. Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Dear @Rakesh_Kumar-Thakur ,
Please don't worry about it for now. The Yocto BSP is still being built, and the server is a bit slow. I expect to have some test results next week.
Thanks,
Best Regards,
Weidong Re: i.MX95 19x19 EVK with JODY-W263-00B: WiFi firmware activation timeout on Android 15 / Linux 6.12 Hi Weidong, We have now completed the following three tests on the i.MX95 19×19 EVK with JODY-W263-00B / 88W8987: Original setup: Automotive Android 15.0.0_2.1.0, kernel 6.12.23, driver 537.p9 and firmware 16.92.21.p151.4. The same activation failure remained after applying your suggested DTS and power/reset configuration changes. Backported setup: Integrated the matching driver 543.p18 and firmware 16.92.21.p156.2 from Linux release lf-6.18.20_2.0.0, retaining Android 15 and kernel 6.12.23. The same failure persisted. Linux validation: Built, flashed and tested Linux BSP L6.18.20_2.0.0, running kernel 6.18.20-2.0.0-g88cb92741827. The same failure occurred. In all three setups, firmware activation times out with firmwarestat=0xf005, and no WLAN interface is created. The attached screenshot shows the Linux result. We have therefore tried both the matching driver–firmware update and Linux BSP validation you recommended. Could you please suggest the next targeted debugging approach and share the result of your planned L6.12.49 test? Physical power/reset/clock measurements remain pending. Regards, Rakesh Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Hi Weidong, Thank you for sharing the successful W603C test and the DTS. We use u-blox JODY-W263-00B (88W8987) on the i.MX95 19×19 EVK. Firmware download completes, but activation fails with 0xf005. Our final target is Android 15.0.0_2.1.0 / kernel 6.12.23. Before testing your changes, could you please clarify: Does this configuration also apply to JODY-W263-00B? Is W603C a required replacement, or simply the module used for your test? The description mentions P0_5, whereas the DTS uses offset 4 (P0_4), GPIO_ACTIVE_HIGH. Please confirm the correct GPIO and required physical levels during reset and normal operation, particularly for W_DISABLE2#. Please share the driver revision, firmware binary/hash, wifi_mod_para.conf, and exact BSP manifest/build configuration used. We plan to compare your DTS with our setup and test the applicable changes on our existing JODY module. Best regards, Rakesh Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Dear @Rakesh_Kumar-Thakur ,
I enabled 88W8987 M.2 module on linux platform.
--L6.12.49_2.2.0
--Module: Amphenol W603C (Base on 88W8987)
0. Control flow on i.MX95-EVK hardware.
===================================================
1. Wi‑Fi Loading Mechanism on linux platform.
So Wi-Fi driver will be loaded during Linux boot.
2. Tunning device tree - Adding usdhc3 node and related GPIO Control.
(1) PCAL6524HEAZ.P2_4 -- Output High -- Enable VCC_KE_3V3, supported by imx95-19x19-evk.dts by default.
reg_m2_pwr: regulator-m2-pwr { compatible = "regulator-fixed"; regulator-name = "M.2-power"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&i2c7_pcal6524 20 GPIO_ACTIVE_HIGH>; enable-active-high; /* * M.2 device only can be enabled(W_DISABLE1#) after all Power * Rails reach their minimum operating voltage (PCI Express M.2 * Specification r5.1 3.1.4 Power-up Timing). * Set a delay equal to the max value of Tsettle here. */ startup-delay-us = <5000>; };
(2) Pull up SDIO_RST# pin
PCAL6524HEAZ.P2_3 & P0_5 - Output High - Enable Wi-Fi/Bluetooth Module.
Loaded by 'mmc-pwrseq' of usdch3 node directly.
usdhc3_pwrseq: usdhc3_pwrseq { compatible = "mmc-pwrseq-simple"; pinctrl-names = "default"; reset-gpios = <&i2c7_pcal6524 19 GPIO_ACTIVE_LOW>, <&i2c7_pcal6524 4 GPIO_ACTIVE_HIGH>; /* W_DISABLE2# */ };
(3)Pull-up W_DISABLE1# PIN to Enable WiFi
PCAL6524HEAZ.P0_6 - Output High - Enable Wi-Fi.
Loaded by ‘vmmc-supply’ of usdch3 node directly.
reg_usdhc3_vmmc: regulator-usdhc3 { compatible = "regulator-fixed"; regulator-name = "WLAN_EN"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <®_m2_pwr>; gpio = <&i2c7_pcal6524 6 GPIO_ACTIVE_HIGH>; /* * IW612 wifi chip needs more delay than other wifi chips to complete * the host interface initialization after power up, otherwise the * internal state of IW612 may be unstable, resulting in the failure of * the SDIO3.0 switch voltage. */ startup-delay-us = <20000>; enable-active-high; };
(4) usdhc3 pin control
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)Disable pcie0 on M.2 (Optional, since not using it, disable it)
&pcie0 { pinctrl-0 = <&pinctrl_pcie0>; pinctrl-names = "default"; reset-gpio = <&i2c7_pcal6524 5 GPIO_ACTIVE_LOW>; vpcie-supply = <®_pcie0>; supports-clkreq; status = "disabled"; };
(6) Adding usdhc3 node
&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>; bus-width = <4>; keep-power-in-suspend; non-removable; wakeup-source; status = "okay"; };
3. Running Linux BSP and getting message of Wi-Fi
This indicates that, from a hardware platform perspective, the M.2 SDIO interface on the i.MX95-EVK fully supports SDIO Wi‑Fi devices without any issues.
Attachment is the dts I am using. share it with you here.
Test it, please.
Thanks,
Best Regards,
Weidong
Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Dear @Rakesh_Kumar-Thakur ,
Thanks for your update.
>>Does this configuration also apply to JODY-W263-00B? Is W603C a required replacement, or simply the module used for your test?
--Does this configuration also apply to JODY-W263-00B?
Yes. fully same. Because M.2 Key E is a standard spec for Wi-Fi card.
--Is W603C a required replacement, or simply the module used for your test?
No need.
Because current test result only can indicate i.mx95-evk M.2 is no problem for SDIO Wi-Fi.
It doesn't mean JODY-W263-00B has issues.
>>The description mentions P0_5, whereas the DTS uses offset 4 (P0_4), GPIO_ACTIVE_HIGH. Please confirm the correct GPIO and required physical levels during reset and normal operation, particularly for W_DISABLE2#.
Yes, it should be P0_4, my mistake.
>>Please share the driver revision, firmware binary/hash, wifi_mod_para.conf, and exact BSP manifest/build configuration used.
here is the link for driver branch.
https://github.com/nxp-imx/mwifiex/tree/lf-6.12.49_2.2.0
BUT just remind you, the issue you encountered is not caused by driver. don't try to change wifi driver. no help.
Next week, I will prepare android 15 source code and try to enable it.
the android bsp you are using is automotive version or standard android bsp?
Thanks,
Best Regards,
Weidong Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Hi Weidong, Thank you for confirming that the configuration applies to JODY-W263-00B, that no W603C replacement is required, and that the correct GPIO is P0_4. We are using the Automotive Android BSP, with the following baseline: Board: i.MX95 19×19 EVK Module: u-blox JODY-W263-00B / 88W8987, SDIO BSP: Automotive Android 15.0.0_2.1.0 Manifest: imx-automotive-15.0.0_2.1.0.xml Build target: evk_95_car-nxp_stable-userdebug Kernel: 6.12.23 Our final requirement is to enable this module on the above Android 15 / kernel 6.12.23 baseline. We have completed the planned multimeter and oscilloscope checks covering the module supply, reset, W_DISABLE1#/PDn, and SDIO CLK/CMD/DATA0–3. The measurements and waveform captures have been documented. Firmware download still completes, followed by the same activation timeout, firmwarestat=0xf005. Following your advice, we will stop further driver-version changes and focus on the remaining configuration and sequencing checks. We also reviewed the driver branch you shared. It identifies the driver release as 540.p33, with the current branch HEAD at 84ca65c9ff935d7f2999af100a82531c22c65234. The repository contains firmware filename references, but not the firmware binaries, actual module-parameter configuration or board DTS. Could you please help with the following? P0_4 / W_DISABLE2# sequencing: Please confirm the required physical HIGH/LOW levels during power-up, reset assertion, reset release and normal operation. Your DTS includes P0_4 in reset-gpios as GPIO_ACTIVE_HIGH, alongside P2_3 / offset 19 as GPIO_ACTIVE_LOW. Is this combination intentional for JODY-W263-00B, and what physical level should each pin have after the power sequence completes? Tested firmware and parameters: Please share the exact firmware binary used in your successful W603C test, including its filename, version and SHA-256 hash, or its download link and exact repository commit. Please confirm whether the same firmware should be used with JODY-W263-00B. Please also share the actual wifi_mod_para.conf used, or the exact module-loading command and parameters if no configuration file was used. Successful Linux reference: Please confirm whether your test used the driver commit identified above and whether any additional driver patches were applied. To reproduce your L6.12.49_2.2.0 test with our existing JODY module, please share the final board DTS/patch and exact BSP manifest, MACHINE, DISTRO and image configuration. Would you recommend this comparison before your Android test? A suitable prebuilt image, if available, would also help. Planned Android 15 test: Could you please use Automotive Android 15.0.0_2.1.0 / kernel 6.12.23, matching our baseline? Please also confirm whether you will test with W603C or JODY-W263-00B. Once available, please share the enablement patches, firmware details and initialization logs so we can reproduce the result. We can provide our hardware-validation report, waveform captures, current DTS and complete boot/driver logs for comparison. Please let us know if you need any additional targeted measurement or register dump. I am currently working dedicatedly on this bring-up, and your clarification on the remaining points will help me proceed with the next tests. If possible, I would appreciate an early response, particularly on the GPIO sequencing and tested firmware/configuration, so I can continue validation while you prepare the Android 15 setup. Thank you for your continued support. Best regards, Rakesh Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Dear @Rakesh_Kumar-Thakur ,
Actually, as long as it's based on the NXP 88Q9098, AW693 M.2 Key E module, it will work. So, your choice of the u-blox module is fine.
I have modified the code for Auto Android 15_2.1.0 for 88W8987, and there will be test results this week. If your application is designed for automotive use, you indeed need to use the NXP 88Q9098, AW693 Wi-Fi chips, which are designed specifically for the automotive domain.
Thanks,
Best Regards,
Weidong Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Hi Weidong, Before purchasing a supported Wi-Fi card, could you please confirm the exact manufacturer and complete M.2 ordering part number tested on i.MX95 19×19 EVK with Automotive Android 15.0.0_2.1.0 / kernel 6.12.23? We are considering: M2-JODY-W377-00C — NXP 9098-based, PCIe Wi-Fi / UART Bluetooth M2-JODY-W683-00C — NXP AW693-based Please confirm which exact card you recommend, its chipset number, and whether it works with the released BSP or requires additional patches/configuration. If possible, please share a purchase link. Best regards, Rakesh Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Hi Weidong, Could the firmware size difference be related to our initialization failure? The firmware file size is 628,200 bytes, but the driver reports only 619,156 bytes downloaded—a difference of 9,044 bytes. Our diagnostic logs show that the device stops requesting further data at offset 619,156. Offline parsing identified a last-block record ending at the same offset, but the purpose of the remaining bytes is still unconfirmed. Is this expected for this firmware image, or could it indicate an incomplete transfer related to the subsequent 0xf005 activation timeout? We are using JODY-W263-00B / 88W8987 with driver 537.p9 and firmware 16.92.21.p151.4 on Automotive Android 15.0.0_2.1.0 / kernel 6.12.23. Best regards, Rakesh Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Hi Weidong, Thank you for confirming the default support for 88Q9098 and AW693. We checked DigiKey and Mouser for these M.2 cards, but neither is currently in stock: M2-JODY-W377-00C — 9098-based M2-JODY-W683-00C — AW693-based We have a one-week deadline to demonstrate Wi-Fi operation on our i.MX95 19×19 EVK with Automotive Android 15.0.0_2.1.0 / kernel 6.12.23. Could you suggest another supplier, purchase link, or an available supported M.2 card? An evaluation sample would also help. Have any other Wi-Fi modules been tested successfully on i.MX95 with Android Automotive 15, Android 16, or another BSP release? If so, please share the exact M.2 card part number, chipset, tested BSP/kernel version, and purchase source. Our final target remains Android 15 / kernel 6.12.23, so please clarify whether those alternatives would require additional integration for our target. Meanwhile, our existing JODY-W263-00B / 88W8987 still fails firmware activation with 0xf005. Could you prioritize assistance and share any available enablement patches, matching driver–firmware package, and the results of your Linux and Android tests? You mentioned that we could send you our module for testing. Our office is in Pune, Maharashtra, India. Could you help arrange joint debugging with the NXP team in Noida? Alternatively, if NXP has an office or a suitable technical support team in Pune, please let us know. I can visit with the module and, if required, our EVK this week, preferably by Thursday, 29 October, subject to the team’s availability. Your coordination and continued involvement would help the local team build on the investigation already completed. Please let us know whether this can be arranged and whom we should contact. If local testing is not possible, please advise how we can arrange to send the module to you. Best regards, Rakesh Re: Request for confirmed driver–firmware package for JODY-W263-00B / 88W8987 on i.MX95 — activ Dear @Rakesh_Kumar-Thakur ,
Thanks for you detailed information.
>>P0_4 / W_DISABLE2# sequencing: The pin should be pulled up to HIGH. which is used to enable Bluetooth. No problem to pull it up to HIGH using external pull-up resistor. Some M.2 modules use the PIN to control Bluetooth software reset, But some modules don't use it. W603C uses it.
>>JODY-W263-00B.
I don't have the M.2 module on my hand, but I have AW-CM358-SUR (M.2 module), I will also test it tomorrow on linux platform.
>>Enable it on auto android 15-2.1.0.
Yes, I have planned to enable the 8987 module under the version of bsp. you know it needs long time to repo sync android source code. So I need some time.
By default, auto android bsp only supports 88Q9098 and AW693, which are automotive Wi-Fi products. For other Wi-Fi chips, we should do some extra work to enable it.
[Note]
If W603C or AW-CM358-SUR M.2 module can normally work on my side, and JODY-W263-00B still can not work yet, you can consider send one JODY-W263-00B to me, let me try it on my platform.
Thanks,
Best Regards,
Weidong
記事全体を表示