From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robin Murphy Subject: Re: [PATCH v2 1/5] dt-bindings: virtio: Specify #iommu-cells value for a virtio-iommu Date: Wed, 4 Jul 2018 12:45:20 +0100 Message-ID: <0d701fb2-aea5-12a2-e07e-ba128e2e36e7@arm.com> References: <20180621190655.56391-1-jean-philippe.brucker@arm.com> <20180621190655.56391-2-jean-philippe.brucker@arm.com> <20180625192753.GA22351@rob-hp-laptop> <89d31865-ee35-ef8c-f7b3-f3acf2bbd30e@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Cc: Mark Rutland , devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, jayachandran.nair-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org, tnowicki-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, virtio-dev-sDuHXQ4OtrM4h7I2RyI4rWD2FQJk+8+b@public.gmane.org, Marc Zyngier , jasowang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, Will Deacon , virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Linux IOMMU , kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg@public.gmane.org To: Rob Herring , Jean-Philippe Brucker Return-path: In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org List-Id: kvm.vger.kernel.org On 27/06/18 18:46, Rob Herring wrote: > On Tue, Jun 26, 2018 at 11:59 AM Jean-Philippe Brucker > wrote: >> >> On 25/06/18 20:27, Rob Herring wrote: >>> On Thu, Jun 21, 2018 at 08:06:51PM +0100, Jean-Philippe Brucker wrote: >>>> A virtio-mmio node may represent a virtio-iommu device. This is discovered >>>> by the virtio driver at probe time, but the DMA topology isn't >>>> discoverable and must be described by firmware. For DT the standard IOMMU >>>> description is used, as specified in bindings/iommu/iommu.txt and >>>> bindings/pci/pci-iommu.txt. Like many other IOMMUs, virtio-iommu >>>> distinguishes masters by their endpoint IDs, which requires one IOMMU cell >>>> in the "iommus" property. >>>> >>>> Signed-off-by: Jean-Philippe Brucker >>>> --- >>>> Documentation/devicetree/bindings/virtio/mmio.txt | 8 ++++++++ >>>> 1 file changed, 8 insertions(+) >>>> >>>> diff --git a/Documentation/devicetree/bindings/virtio/mmio.txt b/Documentation/devicetree/bindings/virtio/mmio.txt >>>> index 5069c1b8e193..337da0e3a87f 100644 >>>> --- a/Documentation/devicetree/bindings/virtio/mmio.txt >>>> +++ b/Documentation/devicetree/bindings/virtio/mmio.txt >>>> @@ -8,6 +8,14 @@ Required properties: >>>> - reg: control registers base address and size including configuration space >>>> - interrupts: interrupt generated by the device >>>> >>>> +Required properties for virtio-iommu: >>>> + >>>> +- #iommu-cells: When the node describes a virtio-iommu device, it is >>>> + linked to DMA masters using the "iommus" property as >>>> + described in devicetree/bindings/iommu/iommu.txt. For >>>> + virtio-iommu #iommu-cells must be 1, each cell describing >>>> + a single endpoint ID. >>> >>> The iommus property should also be documented for the client side. >> >> Isn't section "IOMMU master node" of iommu.txt sufficient? Since the >> iommus property applies to any DMA master, not only virtio-mmio devices, >> the canonical description in iommu.txt seems the best place for it, and >> I'm not sure what to add in this file. Maybe a short example below the >> virtio_block one? > > No, because somewhere we have to capture if 'iommus' is valid for > 'virtio-mmio' or not. Hopefully soon we'll actually be able to > validate that. Indeed, it's rather unusual to have a single compatible which may either be an IOMMU or an IOMMU client (but not both at once, I hope!), so nailing down the exact semantics as clearly as possible would definitely be desirable. Robin.