i.MX 6 and PCIe DMA issues

michael.moese at men.de michael.moese at men.de
Fri Jul 14 04:07:37 PDT 2017


On Thu, Jul 13, 2017 at 03:57:19PM +0100, Robin Murphy wrote:
> >> I don't much like the sound of that "and" there - coherent DMA
> >> allocations are, as the name implies, already coherent for CPU and DMA
> >> accesses, and require no maintenance; the streaming DMA API
> >> (dma_{map,unmap,sync}_*) on the other hand is *only* for use on
> >> kmalloced memory.
I removed all the calls to dma_{map,unmap,sync}_* and took special care
on the handling of the dma_attr_t's. I now dma_alloc_coherent my memory,
and do nothing else with the dma_attr_t's. It seems to work, at least
partly, now. I had to grab a newer board, because we killed it while
soldering wires to trace PCI Express traffic.

Maybe I had some weird old CPU or some strange U-Boot or I simply missed
removing all dma_sync_* calls or similar before.

Now I got other issues, but at least the DMA seems to be working now.
Thanks to you, I think I understood this topic now, thank you.

Now I can try to figure out why a read to the PCI Express may stop all
traffic - that's a different story.


Thanks,
Michael



More information about the linux-arm-kernel mailing list