Skip to content

Commit a12d521

Browse files
committed
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>
1 parent 9bd1d9a commit a12d521

File tree

2 files changed

+53
-0
lines changed

2 files changed

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

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,6 +1836,7 @@ F: Documentation/devicetree/bindings/arm/apple/*
18361836
F: Documentation/devicetree/bindings/clock/apple,nco.yaml
18371837
F: Documentation/devicetree/bindings/i2c/apple,i2c.yaml
18381838
F: Documentation/devicetree/bindings/interrupt-controller/apple,*
1839+
F: Documentation/devicetree/bindings/iommu/apple,sart.yaml
18391840
F: Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
18401841
F: Documentation/devicetree/bindings/pci/apple,pcie.yaml
18411842
F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml

0 commit comments

Comments
 (0)