Commit a12d521f authored by Sven Peter's avatar Sven Peter
Browse files

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: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSven Peter <sven@svenpeter.dev>
parent 9bd1d9a0
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
# 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>;
    };
+1 −0
Original line number Diff line number Diff line
@@ -1836,6 +1836,7 @@ F: Documentation/devicetree/bindings/arm/apple/*
F:	Documentation/devicetree/bindings/clock/apple,nco.yaml
F:	Documentation/devicetree/bindings/i2c/apple,i2c.yaml
F:	Documentation/devicetree/bindings/interrupt-controller/apple,*
F:	Documentation/devicetree/bindings/iommu/apple,sart.yaml
F:	Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
F:	Documentation/devicetree/bindings/pci/apple,pcie.yaml
F:	Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml