The virt machine now supports creating multiple SMMUv3 instances, each
associated with a separate PCIe root complex.

Update the documentation with an example.

Signed-off-by: Shameer Kolothum <[email protected]>
---
 docs/system/arm/virt.rst | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst
index 10cbffc8a7..2e0e8196be 100644
--- a/docs/system/arm/virt.rst
+++ b/docs/system/arm/virt.rst
@@ -37,7 +37,19 @@ The virt board supports:
 - An RTC
 - The fw_cfg device that allows a guest to obtain data from QEMU
 - A PL061 GPIO controller
-- An optional SMMUv3 IOMMU
+- An optional machine-wide SMMUv3 IOMMU
+- User-creatable SMMUv3 devices
+
+  Allows instantiating multiple SMMUv3 devices, each associated with
+  a separate PCIe root complex. This is only allowed if the machine-wide
+  SMMUv3(``iommu=smmuv3``) is not used.
+
+  Example::
+
+      -device arm-smmuv3,primary-bus=pcie.0,id=smmuv3.0
+      ...
+      -device pxb-pcie,id=pcie.1
+      -device arm-smmuv3,primary-bus=pcie.1,id=smmuv3.1
 - hotpluggable DIMMs
 - hotpluggable NVDIMMs
 - An MSI controller (GICv2M or ITS). GICv2M is selected by default along
@@ -176,7 +188,8 @@ iommu
   ``none``
     Don't create an IOMMU (the default)
   ``smmuv3``
-    Create an SMMUv3
+    Create a machine-wide SMMUv3. Alternatively, SMMUv3 devices can be
+    instantiated directly using the ``-device`` option (see example above).
 
 default-bus-bypass-iommu
   Set ``on``/``off`` to enable/disable `bypass_iommu
-- 
2.43.0


Reply via email to