Re: [PATCH 0/3] Apple M1 DART IOMMU driver
From: Sven Peter <hidden>
Date: 2021-03-27 15:35:01
Also in:
linux-arm-kernel, linux-iommu, lkml
Hi Robin, On Thu, Mar 25, 2021, at 12:50, Robin Murphy wrote:
On 2021-03-25 07:53, Sven Peter wrote:quoted
The iommu binding documentation [1] mentions that The device tree node of the IOMMU device's parent bus must contain a valid "dma-ranges" property that describes how the physical address space of the IOMMU maps to memory. An empty "dma-ranges" property means that there is a 1:1 mapping from IOMMU to memory. which, if I understand this correctly, means that the 'dma-ranges' for the parent bus of the iommu should be empty since the DART hardware can see the full physical address space with a 1:1 mapping. The documentation also mentions that When an "iommus" property is specified in a device tree node, the IOMMU will be used for address translation. If a "dma-ranges" property exists in the device's parent node it will be ignored. which means that specifying a 'dma-ranges' in the parent bus of any devices that use the iommu will just be ignored.I think that's just wrong and wants updating (or at least clarifying). The high-level view now is that we use "dma-ranges" to describe limitations imposed by a bridge or interconnect segment, and that can certainly happen upstream of an IOMMU. As it happens, I've just recently sent a patch for precisely that case[1]. I guess what it might have been trying to say is that "dma-ranges" *does* become irrelevant in terms of constraining what physical memory is usable for DMA, but that shouldn't imply that its meaning doesn't just shift to a different purpose.
Should I add a patch to clarify this paragraph for v2 or submit a separate one-off patch? I'm not entirely sure about the process here but I could add a Suggested-by: to the commit if that's fine with you. Best, Sven