Re: SATA broken with LPAE

Christoph Hellwig
2019-06-27T09:15:30Z

On Thu, Jun 27, 2019 at 10:07:53AM +0100, Russell King - ARM Linux admin wrote:
> dmabounce has only ever been used with specific devices that have weird
> setups. Otherwise, we've never expected what you describe on ARM. I
> also don't recognise your assertion about the way the DMA API should
> behave as ever having been documented as a requirement for architectures
> to implement.

That requirement has basically always been there since at least the
2.6.x days. The history here is that when 64-bit architectures showed
up they all had iommus, so this wasn't an issue. Next was x86 with
highmem, which added special bounce buffering for block I/O and networking
only. Then ia64 showed up that didn't always have an iommu and swiotlb
was added as a "software IOMMU". At this point we had to bounce buffering
schemes for block and networking, while everything else potentially
DMAing to higher memory relied on swiotlb, which was picked up by
basically every architecture that could have memory not covered by a
32-bit mask and didn't have an iommu. Except it seems arm never did
that and has been lucky as people didn't try anything that is not
block or networking on their extended physical address space.