Commit 5bda70c6 authored by Laurentiu Tudor's avatar Laurentiu Tudor Committed by Catalin Marinas

dt-bindings: arm: fsl: Add msi-map device-tree binding for fsl-mc bus

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.
In addition, deprecate msi-parent property which no longer makes sense
now that we support translating the MSIs.
Signed-off-by: default avatarLaurentiu Tudor <laurentiu.tudor@nxp.com>
Signed-off-by: default avatarDiana Craciun <diana.craciun@oss.nxp.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Link: https://lore.kernel.org/r/20200619082013.13661-9-lorenzo.pieralisi@arm.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent a081bd4a
...@@ -28,6 +28,16 @@ Documentation/devicetree/bindings/iommu/iommu.txt. ...@@ -28,6 +28,16 @@ Documentation/devicetree/bindings/iommu/iommu.txt.
For arm-smmu binding, see: For arm-smmu binding, see:
Documentation/devicetree/bindings/iommu/arm,smmu.yaml. Documentation/devicetree/bindings/iommu/arm,smmu.yaml.
The MSI writes are accompanied by sideband data which is derived from the ICID.
The msi-map property is used to associate the devices with both the ITS
controller and the sideband data which accompanies the writes.
For generic MSI bindings, see
Documentation/devicetree/bindings/interrupt-controller/msi.txt.
For GICv3 and GIC ITS bindings, see:
Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml.
Required properties: Required properties:
- compatible - compatible
...@@ -49,11 +59,6 @@ Required properties: ...@@ -49,11 +59,6 @@ Required properties:
region may not be present in some scenarios, such region may not be present in some scenarios, such
as in the device tree presented to a virtual machine. as in the device tree presented to a virtual machine.
- msi-parent
Value type: <phandle>
Definition: Must be present and point to the MSI controller node
handling message interrupts for the MC.
- ranges - ranges
Value type: <prop-encoded-array> Value type: <prop-encoded-array>
Definition: A standard property. Defines the mapping between the child Definition: A standard property. Defines the mapping between the child
...@@ -119,6 +124,28 @@ Optional properties: ...@@ -119,6 +124,28 @@ Optional properties:
associated with the listed IOMMU, with the iommu-specifier associated with the listed IOMMU, with the iommu-specifier
(i - icid-base + iommu-base). (i - icid-base + iommu-base).
- msi-map: Maps an ICID to a GIC ITS and associated msi-specifier
data.
The property is an arbitrary number of tuples of
(icid-base,gic-its,msi-base,length).
Any ICID in the interval [icid-base, icid-base + length) is
associated with the listed GIC ITS, with the msi-specifier
(i - icid-base + msi-base).
Deprecated properties:
- msi-parent
Value type: <phandle>
Definition: Describes the MSI controller node handling message
interrupts for the MC. When there is no translation
between the ICID and deviceID this property can be used
to describe the MSI controller used by the devices on the
mc-bus.
The use of this property for mc-bus is deprecated. Please
use msi-map.
Example: Example:
smmu: iommu@5000000 { smmu: iommu@5000000 {
...@@ -128,13 +155,24 @@ Example: ...@@ -128,13 +155,24 @@ Example:
... ...
}; };
gic: interrupt-controller@6000000 {
compatible = "arm,gic-v3";
...
}
its: gic-its@6020000 {
compatible = "arm,gic-v3-its";
msi-controller;
...
};
fsl_mc: fsl-mc@80c000000 { fsl_mc: fsl-mc@80c000000 {
compatible = "fsl,qoriq-mc"; compatible = "fsl,qoriq-mc";
reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */ reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */
<0x00000000 0x08340000 0 0x40000>; /* MC control reg */ <0x00000000 0x08340000 0 0x40000>; /* MC control reg */
msi-parent = <&its>;
/* define map for ICIDs 23-64 */ /* define map for ICIDs 23-64 */
iommu-map = <23 &smmu 23 41>; iommu-map = <23 &smmu 23 41>;
/* define msi map for ICIDs 23-64 */
msi-map = <23 &its 23 41>;
#address-cells = <3>; #address-cells = <3>;
#size-cells = <1>; #size-cells = <1>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment