[PATCH 09/12] dt-bindings: arm: fsl: Add msi-map device-tree binding for fsl-mc bus
Rob Herring
robh+dt at kernel.org
Thu May 21 23:10:49 UTC 2020
On Thu, May 21, 2020 at 7:00 AM Lorenzo Pieralisi
<lorenzo.pieralisi at arm.com> wrote:
>
> From: Laurentiu Tudor <laurentiu.tudor at nxp.com>
>
> The existing bindings cannot be used to specify the relationship
> between fsl-mc devices and GIC ITSes.
>
> Add a generic binding for mapping fsl-mc devices to GIC ITSes, using
> msi-map property.
>
> Signed-off-by: Laurentiu Tudor <laurentiu.tudor at nxp.com>
> Cc: Rob Herring <robh+dt at kernel.org>
> ---
> .../devicetree/bindings/misc/fsl,qoriq-mc.txt | 30 +++++++++++++++++--
> 1 file changed, 27 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt b/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
> index 9134e9bcca56..b0813b2d0493 100644
> --- a/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
> +++ b/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
> @@ -18,9 +18,9 @@ same hardware "isolation context" and a 10-bit value called an ICID
> the requester.
>
> The generic 'iommus' property is insufficient to describe the relationship
> -between ICIDs and IOMMUs, so an iommu-map property is used to define
> -the set of possible ICIDs under a root DPRC and how they map to
> -an IOMMU.
> +between ICIDs and IOMMUs, so the iommu-map and msi-map properties are used
> +to define the set of possible ICIDs under a root DPRC and how they map to
> +an IOMMU and a GIC ITS respectively.
>
> For generic IOMMU bindings, see
> Documentation/devicetree/bindings/iommu/iommu.txt.
> @@ -28,6 +28,9 @@ Documentation/devicetree/bindings/iommu/iommu.txt.
> For arm-smmu binding, see:
> Documentation/devicetree/bindings/iommu/arm,smmu.yaml.
>
> +For GICv3 and GIC ITS bindings, see:
> +Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml.
> +
> Required properties:
>
> - compatible
> @@ -119,6 +122,15 @@ Optional properties:
> associated with the listed IOMMU, with the iommu-specifier
> (i - icid-base + iommu-base).
>
> +- msi-map: Maps an ICID to a GIC ITS and associated iommu-specifier
> + data.
> +
> + The property is an arbitrary number of tuples of
> + (icid-base,iommu,iommu-base,length).
I'm confused because the example has GIC ITS phandle, not an IOMMU.
What is an iommu-base?
> +
> + Any ICID in the interval [icid-base, icid-base + length) is
> + associated with the listed GIC ITS, with the iommu-specifier
> + (i - icid-base + iommu-base).
> Example:
>
> smmu: iommu at 5000000 {
> @@ -128,6 +140,16 @@ Example:
> ...
> };
>
> + gic: interrupt-controller at 6000000 {
> + compatible = "arm,gic-v3";
> + ...
> + its: gic-its at 6020000 {
> + compatible = "arm,gic-v3-its";
> + msi-controller;
> + ...
> + };
> + };
> +
> fsl_mc: fsl-mc at 80c000000 {
> compatible = "fsl,qoriq-mc";
> reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */
> @@ -135,6 +157,8 @@ Example:
> msi-parent = <&its>;
> /* define map for ICIDs 23-64 */
> iommu-map = <23 &smmu 23 41>;
> + /* define msi map for ICIDs 23-64 */
> + msi-map = <23 &its 23 41>;
Seeing 23 twice is odd. The numbers to the right of 'its' should be an
ITS number space.
> #address-cells = <3>;
> #size-cells = <1>;
>
> --
> 2.26.1
>
More information about the iommu
mailing list