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: Laurentiu Tudor <laurentiu.tudor@nxp.com> Signed-off-by: Diana Craciun <diana.craciun@oss.nxp.com> Reviewed-by: Rob Herring <robh@kernel.org> Cc: Rob Herring <robh+dt@kernel.org> Link: https://lore.kernel.org/r/20200619082013.13661-9-lorenzo.pieralisi@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
Родитель
a081bd4af4
Коммит
5bda70c616
|
@ -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:
|
||||||
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:
|
||||||
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:
|
||||||
...
|
...
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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>;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче