summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/iommu
diff options
context:
space:
mode:
authorSven Peter <sven@svenpeter.dev>2022-05-01 16:55:07 +0200
committerSven Peter <sven@svenpeter.dev>2022-05-01 16:55:07 +0200
commita12d521f4a3d2088f23b75f063de68ea1dc6b5a3 (patch)
tree3d086468fb37777b84f03f32754fc83b9aac23a7 /Documentation/devicetree/bindings/iommu
parent9bd1d9a0d8bb1a549831fd98fcc3105960f7068b (diff)
downloadlinux-stable-a12d521f4a3d2088f23b75f063de68ea1dc6b5a3.tar.gz
linux-stable-a12d521f4a3d2088f23b75f063de68ea1dc6b5a3.tar.bz2
linux-stable-a12d521f4a3d2088f23b75f063de68ea1dc6b5a3.zip
dt-bindings: iommu: Add Apple SART DMA address filter
Apple SoCs such as the M1 come with a simple DMA address filter called SART. Unlike a real IOMMU no pagetables can be configured but instead DMA transactions can be allowed for up to 16 paddr regions. The consumer also needs special support since not all DMA allocations have to be added to this filter. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Sven Peter <sven@svenpeter.dev>
Diffstat (limited to 'Documentation/devicetree/bindings/iommu')
-rw-r--r--Documentation/devicetree/bindings/iommu/apple,sart.yaml52
1 files changed, 52 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/iommu/apple,sart.yaml b/Documentation/devicetree/bindings/iommu/apple,sart.yaml
new file mode 100644
index 000000000000..1524fa3094ef
--- /dev/null
+++ b/Documentation/devicetree/bindings/iommu/apple,sart.yaml
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iommu/apple,sart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SART DMA address filter
+
+maintainers:
+ - Sven Peter <sven@svenpeter.dev>
+
+description:
+ Apple SART is a simple address filter for DMA transactions. Regions of
+ physical memory must be added to the SART's allow list before any
+ DMA can target these. Unlike a proper IOMMU no remapping can be done and
+ special support in the consumer driver is required since not all DMA
+ transactions of a single device are subject to SART filtering.
+
+ SART1 has first been used since at least the A11 (iPhone 8 and iPhone X)
+ and allows 36 bit of physical address space and filter entries with sizes
+ up to 24 bit.
+
+ SART2, first seen in A14 and M1, allows 36 bit of physical address space
+ and filter entry size up to 36 bit.
+
+ SART3, first seen in M1 Pro/Max, extends both the address space and filter
+ entry size to 42 bit.
+
+properties:
+ compatible:
+ enum:
+ - apple,t6000-sart
+ - apple,t8103-sart
+
+ reg:
+ maxItems: 1
+
+ power-domains:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ iommu@7bc50000 {
+ compatible = "apple,t8103-sart";
+ reg = <0x7bc50000 0x4000>;
+ };