Forums » Software Development »
DCSX-PCEAX-M2 (QCA2066) bring-up on BSP 1.2 and the QLI 2.0 prelim: two fixes needed out-of-box
Added by David Cuccia about 14 hours ago
Hi Greg,
Informational writeup: I've got the Silex SX-PCEAX-M2 working on two kits — a rev4 SOM on BSP 1.2 (kernel 6.6.90-qli-1.5) and a rev1 SOM on your QLI 2.0 prelim (6.18.30). The Wifi wiki flow needed the same two fixes on both, which you may want to fold into the BSP since the wiki recommends this specific module.
Out-of-box symptom (both kernels): card enumerates fine — 0000:81:00.0 QCNFA765 [17cb:1103] , subsystem 17cb:3374 , qca2066 hw2.1 — but ath11k_pci fails to probe:
Direct firmware load for ath11k/QCA2066/hw2.1/amss.bin failed with error -2 → probe of 0000:81:00.0 failed with error -110
Fix 1 — firmware alias. The driver requests ath11k/QCA2066/hw2.1/* but both images ship only ath11k/WCN6855/ . Same silicon family, identical blobs; a QCA2066/hw2.1 → WCN6855/hw2.1 symlink (or shipping both dirs as linux-firmware does) fixes the probe.
Fix 2 — board data (the subtle one). After fix 1 the firmware loads ( WLAN.HSP.1.1-04685 ) and the card scans perfectly, but every authentication times out against every AP and band ( send auth ... (try 3/3) ... timed out ) and iw reg set is refused ( Failed to set the requested Country regulatory setting ). Root cause: the module reports board_id 0xff (unprovisioned OTP), while board-2.bin keys this exact card ( subsystem-device=3374, qmi-chip-id=18 ) to qmi-board-id=266 — no calibration match, so RX works but TX is effectively dead. Extracting that entry with ath11k-bdencoder and installing it as board.bin (ath11k's unconditional fallback) fixes TX immediately. Suggestion: ship a board.bin for the SX-PCEAX-M2 in the BSP.
Results after the fixes: 5 GHz VHT 2×2 link (360/243 Mbit/s PHY), iperf3 229/214 Mbit/s with zero retransmits, Bluetooth hci0 working, persistent across reboots. Identical behavior on QLI 2.0 (second unit ran single-antenna at 93 Mbit/s, as expected). Only 2.0-specific note: ~27 correctable PCIe Data-Link-Layer timeouts on the ath11k device during the first ~2 minutes after probe, then quiet, link stable at Gen3 x1 — informational, on a rev1 dev board.
Smaller notes: the default regdomain is country 00 (contributes to the failure; a persisted country code would help)
Since /usr is read-only under OSTree, I did all of the above in /etc via firmware_class.path=/etc/firmware plus a deferred ath11k_pci load unit — happy to share the script.
Thanks,
David