@samitouri / QOSamiQemu / commits / af35bc0c14

qemu-options.hx: Document arm-smmuv3 device's accel properties

Document arm-smmuv3 properties for setting HW-acceleration, Range Invalidation, and Address Translation Services support, as well as setting Output Address size and Substream ID size. Reviewed-by: Eric Auger <eric.auger@redhat.com> Tested-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Shameer Kolothum <skolothumtho@nvidia.com> Tested-by: Shameer Kolothum <skolothumtho@nvidia.com> Signed-off-by: Nathan Chen <nathanc@nvidia.com> Message-id: 20260323182454.1416110-9-nathanc@nvidia.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Nathan Chen committed Mar 24, 2026 at 14:02 UTC af35bc0c146ced44f6bfe98587495ae193adcec4
1 file changed +31 -1
qemu-options.hx
+31 -1
@@ -1279,13 +1279,43 @@ SRST
1279 ``aw-bits=val`` (val between 32 and 64, default depends on machine)
1280 This decides the address width of the IOVA address space.
1281
1282 -``-device arm-smmuv3,primary-bus=id``
1282 +``-device arm-smmuv3,primary-bus=id[,option=...]``
1283 This is only supported by ``-machine virt`` (ARM).
1284
1285 ``primary-bus=id``
1286 Accepts either the default root complex (pcie.0) or a
1287 pxb-pcie based root complex.
1288
1289 + ``accel=on|off`` (default: off)
1290 + Enables guest to leverage host SMMUv3 features for acceleration.
1291 + Enabling accel configures the host SMMUv3 in nested mode to support
1292 + vfio-pci passthrough.
1293 +
1294 + The following options are available when accel=on.
1295 + Note: 'auto' mode is not currently supported.
1296 +
1297 + ``ril=on|off`` (default: on)
1298 + Support for Range Invalidation, which allows the SMMUv3 driver to
1299 + invalidate TLB entries for a range of IOVAs at once instead of issuing
1300 + separate commands to invalidate each page. Must match with host SMMUv3
1301 + Range Invalidation support.
1302 +
1303 + ``ats=on|off`` (default: off)
1304 + Support for Address Translation Services, which enables PCIe devices to
1305 + cache address translations in their local TLB and reduce latency. Host
1306 + SMMUv3 must support ATS in order to enable this feature for the vIOMMU.
1307 +
1308 + ``oas=val`` (supported values are 44 and 48. default: 44)
1309 + Sets the Output Address Size in bits. The value set here must be less
1310 + than or equal to the host SMMUv3's supported OAS, so that the
1311 + intermediate physical addresses (IPA) consumed by host SMMU for stage-2
1312 + translation do not exceed the host's max supported IPA size.
1313 +
1314 + ``ssidsize=val`` (val between 0 and 20. default: 0)
1315 + Sets the Substream ID size in bits. When set to a non-zero value,
1316 + PASID capability is advertised to the vIOMMU and accelerated use cases
1317 + such as Shared Virtual Addressing (SVA) are supported.
1318 +
1319 ``-device amd-iommu[,option=...]``
1320 Enables emulation of an AMD-Vi I/O Memory Management Unit (IOMMU).
1321 Only available with ``-machine q35``, it supports the following options: