From: Sven Peter via iommu <firstname.lastname@example.org> To: "Robin Murphy" <email@example.com>, "Mark Kettenis" <firstname.lastname@example.org>, "Arnd Bergmann" <email@example.com> Cc: Rob Herring <firstname.lastname@example.org>, email@example.com, Marc Zyngier <firstname.lastname@example.org>, Hector Martin <email@example.com>, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, Will Deacon <email@example.com>, firstname.lastname@example.org, email@example.com Subject: Re: [PATCH 0/3] Apple M1 DART IOMMU driver Date: Fri, 26 Mar 2021 18:51:55 +0100 [thread overview] Message-ID: <firstname.lastname@example.org> (raw) In-Reply-To: <email@example.com> On Fri, Mar 26, 2021, at 18:34, Robin Murphy wrote: > On 2021-03-26 17:26, Mark Kettenis wrote: > > > > Anyway, from my viewpoint having the information about the IOVA > > address space sit on the devices makes little sense. This information > > is needed by the DART driver, and there is no direct cnnection from > > the DART to the individual devices in the devicetree. The "iommus" > > property makes a connection in the opposite direction. > > What still seems unclear is whether these addressing limitations are a > property of the DART input interface, the device output interface, or > the interconnect between them. Although the observable end result > appears more or less the same either way, they are conceptually > different things which we have different abstractions to deal with. > > Robin. > I'm not really sure if there is any way for us to figure out where these limitation comes from though. I've done some more experiments and looked at all DART nodes in Apple's Device Tree though. It seems that most (if not all) masters only connect 32 address lines even though the iommu can handle a much larger address space. I'll therefore remove the code to handle the full space for v2 since it's essentially dead code that can't be tested anyway. There are some exceptions though: There are the PCIe DARTs which have a different limitation which could be encoded as 'dma-ranges' in the pci bus node: name base size dart-apcie1: 00100000 3fe00000 dart-apcie2: 00100000 3fe00000 dart-apcie0: 00100000 3fe00000 dart-apciec0: 00004000 7fffc000 dart-apciec1: 80000000 7fffc000 Then there are also these display controller DARTs. If we wanted to use dma-ranges we could just put them in a single sub bus: name base size dart-disp0: 00000000 fc000000 dart-dcp: 00000000 fc000000 dart-dispext0: 00000000 fc000000 dart-dcpext: 00000000 fc000000 And finally we have these strange ones which might eventually each require another awkward sub-bus if we want to stick to the dma-ranges property. name base size dart-aop: 00030000 ffffffff ("always-on processor") dart-pmp: 00000000 bff00000 (no idea yet) dart-sio: 0021c000 fbde4000 (at least their Secure Enclave/TPM co-processor) dart-ane: 00000000 e0000000 ("Neural Engine", their ML accelerator) For all we know these limitations could even arise for different reasons. (the secure enclave one looks like it might be imposed by the code running on there). Not really sure to proceed from here. I'll give the dma-ranges options a try for v2 and see how that one works out but that's not going to help us understand *why* these limitations exist. At least I won't have to change much code if we agree on a different abstraction :) The important ones for now are probably the USB and the PCIe ones. We'll need the display ones after that and can probably ignore the strange ones for quite a while. Best, Sven _______________________________________________ iommu mailing list firstname.lastname@example.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2021-03-26 17:52 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-20 15:19 Sven Peter via iommu 2021-03-20 15:19 ` [PATCH 1/3] iommu: io-pgtable: add DART pagetable format Sven Peter via iommu 2021-03-24 16:37 ` Robin Murphy 2021-03-25 20:47 ` Sven Peter via iommu 2021-03-20 15:20 ` [PATCH 2/3] dt-bindings: iommu: add DART iommu bindings Sven Peter via iommu 2021-03-22 0:15 ` Rob Herring 2021-03-22 18:16 ` Sven Peter via iommu 2021-03-21 16:00 ` [PATCH 0/3] Apple M1 DART IOMMU driver Mark Kettenis 2021-03-21 17:22 ` Sven Peter via iommu 2021-03-21 18:35 ` Mark Kettenis 2021-03-22 22:17 ` Sven Peter via iommu 2021-03-23 20:00 ` Mark Kettenis 2021-03-23 21:03 ` Sven Peter via iommu 2021-03-21 17:28 ` Sven Peter via iommu 2021-03-23 20:53 ` Rob Herring 2021-03-23 22:33 ` Mark Kettenis 2021-03-25 7:53 ` Sven Peter via iommu 2021-03-25 11:50 ` Robin Murphy 2021-03-25 20:49 ` Sven Peter via iommu 2021-03-27 15:33 ` Sven Peter via iommu 2021-03-25 21:41 ` Arnd Bergmann 2021-03-26 15:59 ` Mark Kettenis 2021-03-26 16:09 ` Arnd Bergmann 2021-03-26 16:10 ` Sven Peter via iommu 2021-03-26 16:38 ` Arnd Bergmann 2021-03-26 17:06 ` Sven Peter via iommu 2021-03-26 17:26 ` Mark Kettenis 2021-03-26 17:34 ` Robin Murphy 2021-03-26 17:51 ` Sven Peter via iommu [this message] 2021-03-26 19:59 ` Arnd Bergmann 2021-03-26 21:16 ` Mark Kettenis 2021-03-27 15:30 ` Sven Peter via iommu 2021-03-26 20:03 ` Arnd Bergmann 2021-03-26 21:13 ` Mark Kettenis 2021-03-24 15:29 ` Robin Murphy 2021-03-25 7:58 ` Sven Peter via iommu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH 0/3] Apple M1 DART IOMMU driver' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).