docs/system/arm/virt: Document accelerated SMMUv3 and Tegra241 CMDQV

Add subsections for accel=on (nested Stage-1/Stage-2 translation) and
cmdqv (Tegra241 CMDQV hardware command queues) under "User-creatable
SMMUv3 devices".

Signed-off-by: Shameer Kolothum <skolothumtho@nvidia.com>
Message-id: 20260623104003.36590-1-skolothumtho@nvidia.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Shameer Kolothum
2026-06-23 11:40:03 +01:00
committed by Peter Maydell
parent c3da6e9f75
commit 94e3ad7800

View File

@@ -288,6 +288,32 @@ User-creatable SMMUv3 devices
-device pxb-pcie,id=pcie.1,numa_node=1
-device arm-smmuv3,primary-bus=pcie.1,id=smmuv3.1
*Accelerated SMMUv3 (nested translation)*
The ``accel=on`` option enables hardware-accelerated nested translation
for vfio-pci passthrough devices. In this mode the guest SMMU driver
programs its own Stage-1 page tables, with the host SMMUv3 handling both
Stage-1 (guest) and Stage-2 (host) translations in hardware. The host
SMMUv3 must support nested translation. This mode requires the iommufd
backend and is only supported when booting with ACPI (not device tree).
When ``accel=on``, QEMU automatically derives the values for the
``ril``, ``ats``, ``oas``, ``ssidsize`` and ``cmdqv`` sub-options
from the host SMMUv3 capabilities unless they are set explicitly.
Example::
-device arm-smmuv3,primary-bus=pcie.0,id=smmuv3.0,accel=on
*Accelerated SMMUv3 command queues (Tegra241 CMDQV)*
The ``cmdqv`` sub-option enables NVIDIA Tegra241 Command Queue
Virtualization (CMDQV) on supported hosts. With CMDQV, each accelerated
``arm-smmuv3`` device gets dedicated hardware command queues and the
guest issues SMMU invalidation commands directly to real hardware,
bypassing QEMU and improving throughput for workloads that issue many
invalidations. Without it, every invalidation command traps into QEMU.
Linux guest kernel configuration
""""""""""""""""""""""""""""""""