Re: [PATCH v3 2/3] dt-bindings: iommu: add DART iommu bindings
Hi, On Thu, Jun 10, 2021, at 18:52, Rob Herring wrote: > On Thu, Jun 03, 2021 at 10:50:02AM +0200, Sven Peter wrote: > > + > > +examples: > > + - |+ > > +dart1: iommu@82f8 { > > + compatible = "apple,t8103-dart"; > > + reg = <0x82f8 0x4000>; > > + interrupts = <1 781 4>; > > + #iommu-cells = <1>; > > +}; > > + > > +master1 { > > + iommus = <&{/dart1} 0>; > > /dart1 is a path, but 'dart1' is a label. You need '' (or > '&{/iommu@82f8}' but that doesn't really work here because the > examples get prefixed with /example-n/...) > > With that fixed, > > Reviewed-by: Rob Herring Makes sense, thanks for the review! Fixed for the next version. Sven ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v3 2/3] dt-bindings: iommu: add DART iommu bindings
On Thu, Jun 03, 2021 at 10:50:02AM +0200, Sven Peter wrote: > DART (Device Address Resolution Table) is the iommu found on Apple > ARM SoCs such as the M1. > > Signed-off-by: Sven Peter > --- > .../devicetree/bindings/iommu/apple,dart.yaml | 81 +++ > MAINTAINERS | 6 ++ > 2 files changed, 87 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iommu/apple,dart.yaml > > diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml > b/Documentation/devicetree/bindings/iommu/apple,dart.yaml > new file mode 100644 > index ..db21ca07d121 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml > @@ -0,0 +1,81 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iommu/apple,dart.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Apple DART IOMMU > + > +maintainers: > + - Sven Peter > + > +description: |+ > + Apple SoCs may contain an implementation of their Device Address > + Resolution Table which provides a mandatory layer of address > + translations for various masters. > + > + Each DART instance is capable of handling up to 16 different streams > + with individual pagetables and page-level read/write protection flags. > + > + This DART IOMMU also raises interrupts in response to various > + fault conditions. > + > +properties: > + compatible: > +const: apple,t8103-dart > + > + reg: > +maxItems: 1 > + > + interrupts: > +maxItems: 1 > + > + clocks: > +description: > + Reference to the gate clock phandle if required for this IOMMU. > + Optional since not all IOMMUs are attached to a clock gate. > + > + '#iommu-cells': > +const: 1 > +description: > + Has to be one. The single cell describes the stream id emitted by > + a master to the IOMMU. > + > +required: > + - compatible > + - reg > + - '#iommu-cells' > + - interrupts > + > +additionalProperties: false > + > +examples: > + - |+ > +dart1: iommu@82f8 { > + compatible = "apple,t8103-dart"; > + reg = <0x82f8 0x4000>; > + interrupts = <1 781 4>; > + #iommu-cells = <1>; > +}; > + > +master1 { > + iommus = <&{/dart1} 0>; /dart1 is a path, but 'dart1' is a label. You need '' (or '&{/iommu@82f8}' but that doesn't really work here because the examples get prefixed with /example-n/...) With that fixed, Reviewed-by: Rob Herring > +}; > + > + - |+ > +dart2a: iommu@82f0 { > + compatible = "apple,t8103-dart"; > + reg = <0x82f0 0x4000>; > + interrupts = <1 781 4>; > + #iommu-cells = <1>; > +}; > +dart2b: iommu@82f8 { > + compatible = "apple,t8103-dart"; > + reg = <0x82f8 0x4000>; > + interrupts = <1 781 4>; > + #iommu-cells = <1>; > +}; > + > +master2 { > + iommus = <&{/dart2a} 0>, <&{/dart2b} 1>; > +}; > diff --git a/MAINTAINERS b/MAINTAINERS > index 673cadd5107a..4373d63f9ccf 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1240,6 +1240,12 @@ L: linux-in...@vger.kernel.org > S: Odd fixes > F: drivers/input/mouse/bcm5974.c > > +APPLE DART IOMMU DRIVER > +M: Sven Peter > +L: iommu@lists.linux-foundation.org > +S: Maintained > +F: Documentation/devicetree/bindings/iommu/apple,dart.yaml > + > APPLE SMC DRIVER > M: Henrik Rydberg > L: linux-hw...@vger.kernel.org > -- > 2.25.1 ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH v3 2/3] dt-bindings: iommu: add DART iommu bindings
DART (Device Address Resolution Table) is the iommu found on Apple ARM SoCs such as the M1. Signed-off-by: Sven Peter --- .../devicetree/bindings/iommu/apple,dart.yaml | 81 +++ MAINTAINERS | 6 ++ 2 files changed, 87 insertions(+) create mode 100644 Documentation/devicetree/bindings/iommu/apple,dart.yaml diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml new file mode 100644 index ..db21ca07d121 --- /dev/null +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -0,0 +1,81 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iommu/apple,dart.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple DART IOMMU + +maintainers: + - Sven Peter + +description: |+ + Apple SoCs may contain an implementation of their Device Address + Resolution Table which provides a mandatory layer of address + translations for various masters. + + Each DART instance is capable of handling up to 16 different streams + with individual pagetables and page-level read/write protection flags. + + This DART IOMMU also raises interrupts in response to various + fault conditions. + +properties: + compatible: +const: apple,t8103-dart + + reg: +maxItems: 1 + + interrupts: +maxItems: 1 + + clocks: +description: + Reference to the gate clock phandle if required for this IOMMU. + Optional since not all IOMMUs are attached to a clock gate. + + '#iommu-cells': +const: 1 +description: + Has to be one. The single cell describes the stream id emitted by + a master to the IOMMU. + +required: + - compatible + - reg + - '#iommu-cells' + - interrupts + +additionalProperties: false + +examples: + - |+ +dart1: iommu@82f8 { + compatible = "apple,t8103-dart"; + reg = <0x82f8 0x4000>; + interrupts = <1 781 4>; + #iommu-cells = <1>; +}; + +master1 { + iommus = <&{/dart1} 0>; +}; + + - |+ +dart2a: iommu@82f0 { + compatible = "apple,t8103-dart"; + reg = <0x82f0 0x4000>; + interrupts = <1 781 4>; + #iommu-cells = <1>; +}; +dart2b: iommu@82f8 { + compatible = "apple,t8103-dart"; + reg = <0x82f8 0x4000>; + interrupts = <1 781 4>; + #iommu-cells = <1>; +}; + +master2 { + iommus = <&{/dart2a} 0>, <&{/dart2b} 1>; +}; diff --git a/MAINTAINERS b/MAINTAINERS index 673cadd5107a..4373d63f9ccf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1240,6 +1240,12 @@ L: linux-in...@vger.kernel.org S: Odd fixes F: drivers/input/mouse/bcm5974.c +APPLE DART IOMMU DRIVER +M: Sven Peter +L: iommu@lists.linux-foundation.org +S: Maintained +F: Documentation/devicetree/bindings/iommu/apple,dart.yaml + APPLE SMC DRIVER M: Henrik Rydberg L: linux-hw...@vger.kernel.org -- 2.25.1 ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu