[PATCH 0/4] iommu: M1 Pro/Max DART support

From: Sven Peter
Date: Wed Nov 17 2021 - 16:15:47 EST


This is a fairly brief series to add support for the DARTs present in the
M1 Pro/Max. They have two differences that make them incompatible with
those in the M1:

- the physical addresses are shifted left by 4 bits and and have 2 more
bits inside the PTE entries
- the subpage protection feature is now mandatory. For Linux we can
just configure it to always allow access to the entire page.

Note that this needs a fix to the core pagetable code. Hector already
sent a first version separately to the mailing list since the problem
is (at least in theory) also present on other SoCs using the LPAE format
with a large physical address space [1].


[1] https://lore.kernel.org/linux-iommu/a2b45243-7e0a-a2ac-4e14-5256a3e7abb4@xxxxxxx/T/#t

Sven Peter (4):
dt-bindings: iommu: dart: add t6000 compatible
iommu/io-pgtable: Add DART subpage protection support
iommu/io-pgtable: Add DART PTE support for t6000
iommu: dart: Support t6000 variant

.../devicetree/bindings/iommu/apple,dart.yaml | 4 +-
drivers/iommu/apple-dart.c | 19 ++++++++-
drivers/iommu/io-pgtable-arm.c | 40 ++++++++++++++++++-
include/linux/io-pgtable.h | 2 +
4 files changed, 61 insertions(+), 4 deletions(-)