xref: /linux/Documentation/devicetree/bindings/iommu/apple,sart.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1a12d521fSSven Peter# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2a12d521fSSven Peter%YAML 1.2
3a12d521fSSven Peter---
4a12d521fSSven Peter$id: http://devicetree.org/schemas/iommu/apple,sart.yaml#
5a12d521fSSven Peter$schema: http://devicetree.org/meta-schemas/core.yaml#
6a12d521fSSven Peter
7a12d521fSSven Petertitle: Apple SART DMA address filter
8a12d521fSSven Peter
9a12d521fSSven Petermaintainers:
10a12d521fSSven Peter  - Sven Peter <sven@svenpeter.dev>
11a12d521fSSven Peter
12a12d521fSSven Peterdescription:
13a12d521fSSven Peter  Apple SART is a simple address filter for DMA transactions. Regions of
14a12d521fSSven Peter  physical memory must be added to the SART's allow list before any
15a12d521fSSven Peter  DMA can target these. Unlike a proper IOMMU no remapping can be done and
16a12d521fSSven Peter  special support in the consumer driver is required since not all DMA
17a12d521fSSven Peter  transactions of a single device are subject to SART filtering.
18a12d521fSSven Peter
19a12d521fSSven Peter  SART1 has first been used since at least the A11 (iPhone 8 and iPhone X)
20a12d521fSSven Peter  and allows 36 bit of physical address space and filter entries with sizes
21a12d521fSSven Peter  up to 24 bit.
22a12d521fSSven Peter
23a12d521fSSven Peter  SART2, first seen in A14 and M1, allows 36 bit of physical address space
24a12d521fSSven Peter  and filter entry size up to 36 bit.
25a12d521fSSven Peter
26a12d521fSSven Peter  SART3, first seen in M1 Pro/Max, extends both the address space and filter
27a12d521fSSven Peter  entry size to 42 bit.
28a12d521fSSven Peter
29a12d521fSSven Peterproperties:
30a12d521fSSven Peter  compatible:
31*667b44eeSJanne Grunau    oneOf:
32*667b44eeSJanne Grunau      - items:
33*667b44eeSJanne Grunau          - const: apple,t8112-sart
34*667b44eeSJanne Grunau          - const: apple,t6000-sart
35*667b44eeSJanne Grunau      - enum:
36a12d521fSSven Peter          - apple,t6000-sart
37a12d521fSSven Peter          - apple,t8103-sart
38a12d521fSSven Peter
39a12d521fSSven Peter  reg:
40a12d521fSSven Peter    maxItems: 1
41a12d521fSSven Peter
42a12d521fSSven Peter  power-domains:
43a12d521fSSven Peter    maxItems: 1
44a12d521fSSven Peter
45a12d521fSSven Peterrequired:
46a12d521fSSven Peter  - compatible
47a12d521fSSven Peter  - reg
48a12d521fSSven Peter
49a12d521fSSven PeteradditionalProperties: false
50a12d521fSSven Peter
51a12d521fSSven Peterexamples:
52a12d521fSSven Peter  - |
53a12d521fSSven Peter    iommu@7bc50000 {
54a12d521fSSven Peter      compatible = "apple,t8103-sart";
55a12d521fSSven Peter      reg = <0x7bc50000 0x4000>;
56a12d521fSSven Peter    };
57