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
