From: Nathan Chen <[email protected]>

The arm-smmuv3 accel device property, used for HW-accelerated nested
SMMUv3, was added in QEMU 11.0.0 on top of the pluggable device
introduced in 10.2. Probe it alongside smmu_per_bus via
device-list-properties.

Signed-off-by: Nathan Chen <[email protected]>
---
 src/qemu/qemu_capabilities.c                       | 2 ++
 src/qemu/qemu_capabilities.h                       | 1 +
 tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml | 1 +
 4 files changed, 5 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c3ddba2f63..15577ea4a3 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -770,6 +770,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "object-monitor-qmp", /* QEMU_CAPS_OBJECT_MONITOR_QMP */
               "arm-smmuv3", /* QEMU_CAPS_DEVICE_SMMUV3 */
               "arm-smmuv3.smmu_per_bus", /* QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS 
*/
+              "arm-smmuv3.accel", /* QEMU_CAPS_ARM_SMMUV3_ACCEL */
     );
 
 
@@ -1649,6 +1650,7 @@ static struct virQEMUCapsDevicePropsFlags 
virQEMUCapsDevicePropsAMDIOMMU[] = {
 
 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsArmSmmuv3[] = {
     { "smmu_per_bus", QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS, NULL },
+    { "accel", QEMU_CAPS_ARM_SMMUV3_ACCEL, NULL },
 };
 
 /* see documentation for virQEMUQAPISchemaPathGet for the query format */
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 10f7ff67a0..66ff7d9a7a 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -744,6 +744,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for 
syntax-check */
     QEMU_CAPS_OBJECT_MONITOR_QMP, /* 'monitor-qmp' -object */
     QEMU_CAPS_DEVICE_SMMUV3, /* -device arm-smmuv3 */
     QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS, /* arm-smmuv3.smmu_per_bus */
+    QEMU_CAPS_ARM_SMMUV3_ACCEL, /* arm-smmuv3.accel */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml 
b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
index 17775b2ff4..d77884f401 100644
--- a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
@@ -189,6 +189,7 @@
   <flag name='blockdev-mirror.target-is-zero'/>
   <flag name='arm-smmuv3'/>
   <flag name='arm-smmuv3.smmu_per_bus'/>
+  <flag name='arm-smmuv3.accel'/>
   <version>11000000</version>
   <microcodeVersion>61700286</microcodeVersion>
   <package>v11.0.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml 
b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
index 8df736f58a..e53ad1d461 100644
--- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
@@ -190,6 +190,7 @@
   <flag name='object-monitor-qmp'/>
   <flag name='arm-smmuv3'/>
   <flag name='arm-smmuv3.smmu_per_bus'/>
+  <flag name='arm-smmuv3.accel'/>
   <version>11000090</version>
   <microcodeVersion>61700287</microcodeVersion>
   <package>v11.1.0-rc0</package>
-- 
2.43.0

Reply via email to