[ath10k] not working in 64 bit with >2GB Ram

Adrian Chadd adrian at freebsd.org
Wed Mar 21 13:15:49 PDT 2018


hi,

Ok. I'd go ask your platform people whether fbff7000 is a correct
temporary mapped IOTLB buffer.



-adrian


On 21 March 2018 at 12:26, paresh chaudhary
<chaudharyparesh1986 at gmail.com> wrote:
> 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