Hello everyone,
I am trying to get my onboard Wi-Fi 7 card working under Qubes, but the ath12k driver is failing to initialize the wireless interfaces when passed through to sys-net.
I have already verified that this is not a hardware defect. The card works flawlessly on this exact machine when booting bare-metal Windows, Fedora, and Ubuntu. The issue seems strictly isolated to Xen PCI passthrough, DMA memory allocation, and possibly MSI vector translation.
Hardware & Environment:
- Motherboard: ASUS ProArt X870E-Creator
- Network Controller: Qualcomm Technologies, Inc WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800]
- PCI ID:
17cb:1107(rev 01) - Kernel:
7.0.14-1.qubes.fc41.x86_64(Running in bothdom0andsys-net) - sys-net virt_mode:
hvm
Troubleshooting Steps Already Taken:
Following the PCI troubleshooting guide for large DMA buffers, I applied the following configurations to sys-net, but the core still fails to start:
- Increased
sys-netinitial memory to 800MB (qvm-prefs sys-net memory 800) - Expanded the software IO translation buffer (
qvm-prefs sys-net kernelopts "nopat swiotlb=16384")
Symptoms / Logs:
The PCI device successfully attaches to sys-net (bound to pciback in dom0), but no wlan interface is created.
Running sudo dmesg | grep -iE 'ath12k|firmware|qca|wifi|wlan' inside sys-net yields a QMI DMA allocation failure, immediately followed by a fatal HTT connection timeout:
[ 3.564916] ath12k_wifi7_pci 0000:00:06.0: BAR 0 [mem 0xf2400000-0xf25fffff 64bit]: assigned
[ 3.566690] ath12k_wifi7_pci 0000:00:06.0: Wi-Fi 7 Hardware name: wcn7850 hw2.0
[ 3.567752] ath12k_wifi7_pci 0000:00:06.0: MSI vectors: 1
[ 4.295404] ath12k_wifi7_pci 0000:00:06.0: qmi dma allocation failed (7274496 B type 1), will try later with small size
[ 4.303056] ath12k_wifi7_pci 0000:00:06.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[ 4.303083] ath12k_wifi7_pci 0000:00:06.0: fw_version 0x1103006c fw_build_timestamp 2026-03-06 09:10 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c7-00108-QCAHMTSWPI_V1.0_V2.0_SILICONZ_UPSTREAM-3
[ 4.422397] ath12k_wifi7_pci 0000:00:06.0: leaving PCI ASPM disabled to avoid MHI M2 problems
[ 5.476869] ath12k_wifi7_pci 0000:00:06.0: failed to receive control response completion, polling..
[ 6.501374] ath12k_wifi7_pci 0000:00:06.0: Service connect timeout
[ 6.501412] ath12k_wifi7_pci 0000:00:06.0: failed to connect to HTT: -110
[ 6.501566] ath12k_wifi7_pci 0000:00:06.0: failed to start core: -110
I know there was a highly successful community patch for the previous generation ath11k chips that bypassed Xen MSI translation issues by manually passing host_msi_vector_addr and host_msi_vector_data to the kernel.
Looking at my logs (specifically the HTT -110 timeout), it looks like the ath12k driver is suffering from the exact same MSI translation bug under Xen.
Is anyone currently working on porting the host_msi_vector_addr patch to the ath12k driver, or is there an alternative kernel parameter recommended to force Xen to map these interrupts correctly?
Any guidance is greatly appreciated!