Skip to content

Commit

Permalink
Documentation: fsl-mc: add iommu-map device-tree binding for fsl-mc bus
Browse files Browse the repository at this point in the history
The existing IOMMU bindings cannot be used to specify the relationship
between fsl-mc devices and IOMMUs. This patch adds a generic binding for
mapping fsl-mc devices to IOMMUs, using iommu-map property.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
  • Loading branch information
Nipun Gupta authored and Joerg Roedel committed Sep 25, 2018
1 parent 6bf4ca7 commit c9d8d66
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,25 @@ blocks that can be used to create functional hardware objects/devices
such as network interfaces, crypto accelerator instances, L2 switches,
etc.

For an overview of the DPAA2 architecture and fsl-mc bus see:
Documentation/networking/dpaa2/overview.rst

As described in the above overview, all DPAA2 objects in a DPRC share the
same hardware "isolation context" and a 10-bit value called an ICID
(isolation context id) is expressed by the hardware to identify
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.

For generic IOMMU bindings, see
Documentation/devicetree/bindings/iommu/iommu.txt.

For arm-smmu binding, see:
Documentation/devicetree/bindings/iommu/arm,smmu.txt.

Required properties:

- compatible
Expand Down Expand Up @@ -88,14 +107,34 @@ Sub-nodes:
Value type: <phandle>
Definition: Specifies the phandle to the PHY device node associated
with the this dpmac.
Optional properties:

- iommu-map: Maps an ICID to an IOMMU and associated iommu-specifier
data.

The property is an arbitrary number of tuples of
(icid-base,iommu,iommu-base,length).

Any ICID i in the interval [icid-base, icid-base + length) is
associated with the listed IOMMU, with the iommu-specifier
(i - icid-base + iommu-base).

Example:

smmu: iommu@5000000 {
compatible = "arm,mmu-500";
#iommu-cells = <1>;
stream-match-mask = <0x7C00>;
...
};

fsl_mc: fsl-mc@80c000000 {
compatible = "fsl,qoriq-mc";
reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */
<0x00000000 0x08340000 0 0x40000>; /* MC control reg */
msi-parent = <&its>;
/* define map for ICIDs 23-64 */
iommu-map = <23 &smmu 23 41>;
#address-cells = <3>;
#size-cells = <1>;

Expand Down

0 comments on commit c9d8d66

Please sign in to comment.