Qualcomm Atheros Ath10k and Ath11k CE Buffer DMA alignment issues on Raspberry PI CM4 - Aarch64 architecture

Kalle Valo kvalo at codeaurora.org
Thu Sep 30 23:38:11 PDT 2021


Maurice Smulders <Maurice.Smulders at windtalker.com> writes:

> I am trying to use the QCA6174A and the QCA6390 on a custom board using a PCIe switch - but that doesn't matter - It still fails w/o the switch:
>
> lspci
> 00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2711 PCIe Bridge (rev 20)
> 01:00.0 PCI bridge: Pericom Semiconductor PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
> 02:01.0 PCI bridge: Pericom Semiconductor PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
> 02:02.0 PCI bridge: Pericom Semiconductor PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
> 02:03.0 PCI bridge: Pericom Semiconductor PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
> 02:04.0 PCI bridge: Pericom Semiconductor PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
> 02:05.0 PCI bridge: Pericom Semiconductor PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch
> 05:00.0 Unassigned class [ff00]: Qualcomm QCA6390 Wireless Network Adapter [AX500-DBS (2x2)]
> 06:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
>
> Both device drivers do not work. I changed the CE code to use the GFP_DMA32 flag as an attempt to allocate the memory correctly, but DMESG shows
>
> [pi at node6745 ~]$ dmesg | grep ath
> [    5.801896] ath10k_pci 0000:06:00.0: ath10k_ce_alloc_src_ring: Not unaligned <--- User message exit from this function
> [    5.804284] ath10k_pci 0000:06:00.0: failed to alloc CE src ring 0: -12
> [    5.813138] ath10k_pci 0000:06:00.0: failed to allocate copy engine pipe 0: -12
> [    5.815414] ath10k_pci 0000:06:00.0: failed to allocate copy engine pipes: -12
> [    5.818002] ath10k_pci 0000:06:00.0: failed to setup resource: -12
> [    5.826953] ath10k_pci: probe of 0000:06:00.0 failed with error -12
> [    5.855993] ath11k_pci 0000:05:00.0: WARNING: ath11k PCI support is experimental!
> [    5.896148] ath11k_pci 0000:05:00.0: BAR 0: assigned [mem 0x600000000-0x600ffffff 64bit]
> [    5.900236] ath11k_pci 0000:05:00.0: enabling device (0000 -> 0002)
> [    5.914050] ath11k_pci: probe of 0000:05:00.0 failed with error -12
>
> Error -12 (ENOMEM) gets returned and the driver doesn't work...
>
> 05:00.0 Unassigned class [ff00]: Qualcomm QCA6390 Wireless Network Adapter [AX500-DBS (2x2)]
> Subsystem: Qualcomm Device 0108
> Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Region 0: Memory at 600000000 (64-bit, non-prefetchable) [size=16M]
> Capabilities: <access denied>
> Kernel modules: ath11k_pci
>
> 06:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
> Subsystem: ASUSTeK Computer Inc. Device 86e0
> Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Interrupt: pin A routed to IRQ 48
> Region 0: Memory at 601000000 (64-bit, non-prefetchable) [disabled] [size=2M]
> Capabilities: <access denied>
> Kernel modules: ath10k_pci
>
> I am at a loss what to do here. The ath11k driver has the SINGLE MSI fix built in. 
>
> Any ideas' what I can try to fix this problem on the raspberry Pi CM4?

Sorry, no ideas. But adding ath10k and ath11k lists, maybe people there
can propose something.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches



More information about the ath10k mailing list