On Wed, Aug 05, 2026 at 03:12:58PM -0700, Nathan Chen via Devel wrote:
From: Nathan Chen <nathanc@nvidia.com>
The arm-smmuv3 QOM type appears in qom-list-types on ARM QEMU as far back as 8.2 because the type is used for machine-integrated IOMMU (-machine virt,iommu=smmuv3). That reply does not indicate support for a user-pluggable -device arm-smmuv3.
User-pluggable SMMUv3 with the smmu_per_bus property was added in QEMU 10.2.0. Probe that property via device-list-properties, gated on QEMU_CAPS_DEVICE_SMMUV3, so the capability tracks pluggable device support rather than mere QOM visibility.
In qemu_validate.c, an IOMMU with pci_bus set requires QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS; machine-integrated SMMUv3 without pci_bus keeps using QEMU_CAPS_MACHINE_VIRT_IOMMU.
Update caps_8.2.0_aarch64, caps_9.2.0_aarch64, caps_10.0.0_aarch64, caps_10.2.0_aarch64, caps_11.0.0_aarch64, caps_8.2.0_armv7l, and caps_11.1.0_aarch64 .replies with the arm-smmuv3 device-list-properties exchange.
Signed-off-by: Nathan Chen <nathanc@nvidia.com> --- src/qemu/qemu_capabilities.c | 8 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_validate.c | 8 + .../caps_10.0.0_aarch64.replies | 79 ++++++---- .../caps_10.2.0_aarch64.replies | 89 +++++++---- .../caps_10.2.0_aarch64.xml | 1 + .../caps_11.0.0_aarch64.replies | 132 ++++++++++++---- .../caps_11.0.0_aarch64.xml | 1 + .../caps_11.1.0_aarch64.replies | 143 ++++++++++++++---- .../caps_11.1.0_aarch64.xml | 1 + .../caps_8.2.0_aarch64.replies | 79 ++++++---- .../caps_8.2.0_armv7l.replies | 79 ++++++---- .../caps_9.2.0_aarch64+hvf.replies | 75 ++++++--- 13 files changed, 510 insertions(+), 186 deletions(-)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>