[ath10k] not working in 64 bit with >2GB Ram
paresh chaudhary
chaudharyparesh1986 at gmail.com
Wed Mar 21 12:26:43 PDT 2018
Hi Adrian,
The answer regarding fbff7000 : This address is returned by dma_map_single api but it's failed to validate in dma_map_error api.
skb_cb->paddr = dma_map_single(dev, msdu->data, msdu->len,
DMA_TO_DEVICE);
res = dma_mapping_error(dev, skb_cb->paddr);
if (res) {
res = -EIO;
goto err_free_txdesc;
}
For bounce buffer, we have compiled kernel with SWIOTLB support.
config SWIOTLB
bool "SWIOTLB support"
default n
select IOMMU_HELPER
---help---
Support for IO bounce buffering for systems without an IOMMU.
This allows us to DMA to the full physical address space on
platforms where the size of a physical address is larger
than the bus address. Not all platforms support this.
> On Mar 21, 2018, at 12:12 PM, Adrian Chadd <adrian at freebsd.org> wrote:
>
> Sorry, a quick follow-up:
>
> I bring it up because I know there's some oddness with the PPC IOMMU
> and where they put their devices in the physical address map, so you
> have to do a lot of gymnastics to be able to even access devices.
> Anything above 32 bit boundary requires that they do a temporary IOMMU
> mapping OR they have to use a bounce buffer in memory < 4G. So that
> whole side of things needs to be setup correctly on the Linux BSP side
> of things for the dma map/unmap calls to do the right thing.
>
>
>
> -adrian
More information about the ath10k
mailing list