> -----Original Message----- > From: Robin Murphy [mailto:robin.murphy@xxxxxxx] > Sent: Tuesday, July 3, 2018 8:10 PM > To: Nipun Gupta <nipun.gupta@xxxxxxx>; will.deacon@xxxxxxx; > robh+dt@xxxxxxxxxx; robh@xxxxxxxxxx; mark.rutland@xxxxxxx; > catalin.marinas@xxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; Laurentiu Tudor > <laurentiu.tudor@xxxxxxx>; bhelgaas@xxxxxxxxxx > Cc: hch@xxxxxx; joro@xxxxxxxxxx; m.szyprowski@xxxxxxxxxxx; > shawnguo@xxxxxxxxxx; frowand.list@xxxxxxxxx; iommu@lists.linux- > foundation.org; linux-kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx; linux- > pci@xxxxxxxxxxxxxxx; Bharat Bhushan <bharat.bhushan@xxxxxxx>; > stuyoder@xxxxxxxxx; Leo Li <leoyang.li@xxxxxxx> > Subject: Re: [PATCH 1/7 v5] Docs: dt: add fsl-mc iommu-map device-tree > binding > > On 20/05/18 14:49, Nipun Gupta wrote: > > 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@xxxxxxx> > > Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > > --- > > .../devicetree/bindings/misc/fsl,qoriq-mc.txt | 39 > ++++++++++++++++++++++ > > 1 file changed, 39 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt > b/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt > > index 6611a7c..8cbed4f 100644 > > --- a/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt > > +++ b/Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt > > @@ -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: > > +drivers/staging/fsl-mc/README.txt > > Nit: Looks like that's Documentation/networking/dpaa2/overview.rst now. > > > + > > +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 > > @@ -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 = <2>; > > This should be 1 if stream-match-mask is present. Bad example is bad :) Agree :). Ill update it. > > Robin. > > > + 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>; > > > >