Re: [PATCH 0/3] Apple M1 DART IOMMU driver

Sven Peter
2021-03-27T15:35:01Z

Hi Robin,

On Thu, Mar 25, 2021, at 12:50, Robin Murphy wrote:
> On 2021-03-25 07:53, Sven Peter wrote:
> > 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