[Kernel 7.0.14] Qualcomm WCN785x Wi-Fi 7 (ath12k) PCI Passthrough fails: QMI DMA allocation failed (Works on bare-metal)

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 both dom0 and sys-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:

  1. Increased sys-net initial memory to 800MB (qvm-prefs sys-net memory 800)
  2. 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!

Hi yanlong :slight_smile:

I agree, that it looks depressingly like the issue from the ath11k, where Qubes / Xen doesn’t work. :cry:

I believe we’ll need the technical insight from someone like @marmarek to tell if it is the same issue .. and he would probably know, if something is happening in the Xen development.

:slight_smile:

Looking at the message, I’d say too little memory in sys-net. But since you tried increasing it already, that’s probably something else. It is possible it’s the same MSI issue, but from the above messages it isn’t obvious to me.

is there any way i can be of more help? for now, i will just use my PC with ethernet (a bit of a hassle since i have to manually set up IPV4 every reboot) but I’d love to help any way i can so that the problem is solved in coming versions.