[libvirt PATCH 01/10] qemu: new capabilities flag pcie-root-port.hotplug

Laine Stump laine at redhat.com
Mon Apr 6 13:51:21 UTC 2020


This caps flag is set when the qemu binary supports the option
"hotplug" for pcie-root-port, ioh3420 (Intel pcie-root-port) and
xio3130-downstream (Intel pcie-downstream-port). If it's available,
it's possible to disable hotplugging/unplugging devices on a
particular port by adding ",hotplug=off" to the qemu device
commandline. This option first appears in qemu-5.0.0.

Signed-off-by: Laine Stump <laine at redhat.com>
---

Hi Pavel!

These replies files were hand edited, but a proper regeneration from
the actual qemu binaries would probably be better. If you still have a
setup to easily generate those (or advice on how to do it in the
simplest way possible) that would be appreciated!


 src/qemu/qemu_capabilities.c                  |   8 +
 src/qemu/qemu_capabilities.h                  |   1 +
 .../caps_2.10.0.aarch64.replies               | 142 ++++++++++++--
 .../caps_2.10.0.x86_64.replies                | 154 ++++++++++++---
 .../caps_2.11.0.x86_64.replies                | 154 ++++++++++++---
 .../caps_2.12.0.aarch64.replies               | 158 ++++++++++++---
 .../caps_2.12.0.x86_64.replies                | 170 +++++++++++++---
 .../caps_2.9.0.x86_64.replies                 | 154 ++++++++++++---
 .../caps_3.0.0.x86_64.replies                 | 170 +++++++++++++---
 .../caps_3.1.0.x86_64.replies                 | 170 +++++++++++++---
 .../caps_4.0.0.aarch64.replies                | 158 ++++++++++++---
 .../caps_4.0.0.ppc64.replies                  | 150 +++++++++++++--
 .../caps_4.0.0.riscv32.replies                | 150 +++++++++++++--
 .../caps_4.0.0.riscv64.replies                | 150 +++++++++++++--
 .../caps_4.0.0.x86_64.replies                 | 170 +++++++++++++---
 .../caps_4.1.0.x86_64.replies                 | 162 +++++++++++++---
 .../caps_4.2.0.aarch64.replies                | 166 +++++++++++++---
 .../caps_4.2.0.ppc64.replies                  | 150 +++++++++++++--
 .../caps_4.2.0.x86_64.replies                 | 162 +++++++++++++---
 .../caps_5.0.0.aarch64.replies                | 166 +++++++++++++---
 .../caps_5.0.0.ppc64.replies                  | 150 +++++++++++++--
 .../caps_5.0.0.x86_64.replies                 | 181 +++++++++++++++---
 .../caps_5.0.0.x86_64.xml                     |   1 +
 23 files changed, 2713 insertions(+), 484 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 994f1fd179..211b3c0ee6 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -571,6 +571,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
 
               /* 360 */
               "fsdev.multidevs",
+              "pcie-root-port.hotplug",
     );
 
 
@@ -1323,6 +1324,10 @@ static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsVirtioNet[] = {
     { "failover", QEMU_CAPS_VIRTIO_NET_FAILOVER },
 };
 
+static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsPCIeRootPort[] = {
+    { "hotplug", QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG },
+};
+
 static struct virQEMUCapsStringFlags virQEMUCapsDevicePropsSpaprPCIHostBridge[] = {
     { "numa_node", QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE },
 };
@@ -1564,6 +1569,9 @@ static virQEMUCapsObjectTypeProps virQEMUCapsDeviceProps[] = {
     { "nvdimm", virQEMUCapsDevicePropsNVDIMM,
       G_N_ELEMENTS(virQEMUCapsDevicePropsNVDIMM),
       QEMU_CAPS_DEVICE_NVDIMM },
+    { "pcie-root-port", virQEMUCapsDevicePropsPCIeRootPort,
+      G_N_ELEMENTS(virQEMUCapsDevicePropsPCIeRootPort),
+      QEMU_CAPS_DEVICE_PCIE_ROOT_PORT },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFile[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index d247e19710..7b957d6185 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -552,6 +552,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
 
     /* 360 */
     QEMU_CAPS_FSDEV_MULTIDEVS, /* fsdev.multidevs */
+    QEMU_CAPS_PCIE_ROOT_PORT_HOTPLUG, /* pcie-root-port.hotplug */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
index 73a99a36ea..c75d4ab8a7 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
@@ -4895,10 +4895,120 @@
 }
 
 {
-  "execute": "query-machines",
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
   "id": "libvirt-29"
 }
 
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-29"
+}
+
+{
+  "execute": "query-machines",
+  "id": "libvirt-30"
+}
+
 {
   "return": [
     {
@@ -5163,12 +5273,12 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -5334,34 +5444,34 @@
       "static": false
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6506,12 +6616,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6561,12 +6671,12 @@
       "capability": "return-path"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -16289,12 +16399,12 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -16310,7 +16420,7 @@
       "kernel": true
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
index 8f96b4c567..d5deea9b3c 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
@@ -4448,10 +4448,120 @@
 }
 
 {
-  "execute": "query-machines",
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
   "id": "libvirt-35"
 }
 
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
+{
+  "execute": "query-machines",
+  "id": "libvirt-36"
+}
+
 {
   "return": [
     {
@@ -4638,12 +4748,12 @@
       "alias": "q35"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4978,36 +5088,36 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -6286,12 +6396,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6341,12 +6451,12 @@
       "capability": "return-path"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -16069,7 +16179,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -16080,7 +16190,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -16259,7 +16369,7 @@
       }
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -16440,7 +16550,7 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -16683,7 +16793,7 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -16697,7 +16807,7 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -16876,7 +16986,7 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -17057,7 +17167,7 @@
       }
     }
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -17300,7 +17410,7 @@
       }
     }
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies
index d91f01b55d..75ca78f75e 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies
@@ -4475,10 +4475,120 @@
 }
 
 {
-  "execute": "query-machines",
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
   "id": "libvirt-35"
 }
 
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
+{
+  "execute": "query-machines",
+  "id": "libvirt-36"
+}
+
 {
   "return": [
     {
@@ -4665,12 +4775,12 @@
       "cpu-max": 288
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4984,24 +5094,24 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -5009,12 +5119,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -6309,12 +6419,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6372,12 +6482,12 @@
       "capability": "x-multifd"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -16245,7 +16355,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -16256,7 +16366,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -16436,7 +16546,7 @@
       }
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -16618,7 +16728,7 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -16863,7 +16973,7 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -16877,7 +16987,7 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -17057,7 +17167,7 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -17239,7 +17349,7 @@
       }
     }
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -17484,7 +17594,7 @@
       }
     }
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
index 87414a9bca..b99913ed37 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
@@ -5251,12 +5251,122 @@
   "id": "libvirt-28"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-29"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-29"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -5310,7 +5420,7 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -5318,7 +5428,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -5372,7 +5482,7 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -5380,7 +5490,7 @@
   "arguments": {
     "typename": "max-arm-cpu"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5495,12 +5605,12 @@
       "type": "child<irq>"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -5797,7 +5907,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -5805,7 +5915,7 @@
   "arguments": {
     "typename": "virt-2.12-machine"
   },
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -5935,12 +6045,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6116,35 +6226,35 @@
       "static": false
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
     "emulator"
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -7309,12 +7419,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -7376,12 +7486,12 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -18749,12 +18859,12 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -18770,7 +18880,7 @@
       "kernel": false
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
index b4c243096b..1e3ba0885a 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
@@ -4641,12 +4641,122 @@
   "id": "libvirt-34"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4700,7 +4810,7 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4708,7 +4818,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4758,7 +4868,7 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4766,7 +4876,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -5788,12 +5898,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -5992,12 +6102,12 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -6511,12 +6621,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6524,12 +6634,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -6537,12 +6647,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -7829,12 +7939,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -7896,12 +8006,12 @@
       "capability": "dirty-bitmaps"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -19269,12 +19379,12 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -19284,7 +19394,7 @@
     "cert-chain": "AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA",
     "pdh": "AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA"
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -19295,7 +19405,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -19485,7 +19595,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -19677,7 +19787,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -19932,7 +20042,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -19946,7 +20056,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -20136,7 +20246,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -20328,7 +20438,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -20583,7 +20693,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
index 8f32313b46..5cff9c485b 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
@@ -3992,10 +3992,120 @@
 }
 
 {
-  "execute": "query-machines",
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
   "id": "libvirt-35"
 }
 
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
+{
+  "execute": "query-machines",
+  "id": "libvirt-36"
+}
+
 {
   "return": [
     {
@@ -4172,12 +4282,12 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4459,36 +4569,36 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
     "tpm-tis"
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "return": [
     "passthrough"
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -5737,12 +5847,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -5784,12 +5894,12 @@
       "capability": "release-ram"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -15075,7 +15185,7 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -15086,7 +15196,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -15265,7 +15375,7 @@
       }
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -15446,7 +15556,7 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -15687,7 +15797,7 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -15701,7 +15811,7 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -15880,7 +15990,7 @@
       }
     }
   },
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -16061,7 +16171,7 @@
       }
     }
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
@@ -16302,7 +16412,7 @@
       }
     }
   },
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies
index f25e5deb94..c683f672f7 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies
@@ -4776,12 +4776,122 @@
 }
 
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4831,7 +4941,7 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4839,7 +4949,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4889,7 +4999,7 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4897,7 +5007,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -5951,12 +6061,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -6165,12 +6275,12 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -6607,12 +6717,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6620,12 +6730,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -6633,12 +6743,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -7937,12 +8047,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -8012,12 +8122,12 @@
       "capability": "late-block-activate"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -19897,16 +20007,16 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
-  "id": "libvirt-45",
+  "id": "libvirt-46",
   "error": {
     "class": "GenericError",
     "desc": "SEV feature is not available"
@@ -19921,7 +20031,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -20114,7 +20224,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -20309,7 +20419,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -20572,7 +20682,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -20586,7 +20696,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -20779,7 +20889,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -20974,7 +21084,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -21237,7 +21347,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.replies
index 256fa92af9..e0e1edddf1 100644
--- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.replies
@@ -4818,12 +4818,122 @@
   "id": "libvirt-34"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4884,7 +4994,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -4892,7 +5002,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4952,7 +5062,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -4960,7 +5070,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -6062,12 +6172,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -6286,12 +6396,12 @@
       "cpu-max": 255
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -6810,12 +6920,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -6823,12 +6933,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -6836,12 +6946,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -8115,12 +8225,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -8190,12 +8300,12 @@
       "capability": "late-block-activate"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -20380,16 +20490,16 @@
       "meta-type": "object"
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
-  "id": "libvirt-45",
+  "id": "libvirt-46",
   "error": {
     "class": "GenericError",
     "desc": "SEV feature is not available"
@@ -20404,7 +20514,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -20606,7 +20716,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -20810,7 +20920,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -21085,7 +21195,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -21099,7 +21209,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -21301,7 +21411,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -21505,7 +21615,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -21780,7 +21890,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.replies
index 0eca77acca..ddd77ba48a 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.replies
@@ -5718,12 +5718,122 @@
   "id": "libvirt-29"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-30"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-30"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -5788,7 +5898,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -5796,7 +5906,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5860,7 +5970,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5868,7 +5978,7 @@
   "arguments": {
     "typename": "max-arm-cpu"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -5983,12 +6093,12 @@
       "type": "child<irq>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6330,7 +6440,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6338,7 +6448,7 @@
   "arguments": {
     "typename": "virt-4.0-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6473,12 +6583,12 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -6669,34 +6779,34 @@
       "static": false
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -7844,12 +7954,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -7923,12 +8033,12 @@
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -20015,12 +20125,12 @@
       ]
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -20036,7 +20146,7 @@
       "kernel": false
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.replies
index 84b5f06c5d..356e12aa01 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.replies
@@ -5773,12 +5773,122 @@
   "id": "libvirt-30"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-31"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-31"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5843,7 +5953,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5851,7 +5961,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -5915,12 +6025,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6073,7 +6183,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6081,7 +6191,7 @@
   "arguments": {
     "typename": "pseries-4.0-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6280,12 +6390,12 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -8481,34 +8591,34 @@
       "static": false
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -9651,12 +9761,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -9730,12 +9840,12 @@
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -21793,7 +21903,7 @@
       ]
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.replies b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.replies
index 2b1d832c6b..2d63851d3a 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.replies
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.replies
@@ -3892,12 +3892,122 @@
   "id": "libvirt-30"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-31"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-31"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -3962,7 +4072,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -3970,7 +4080,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -4034,12 +4144,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -4076,7 +4186,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -4084,7 +4194,7 @@
   "arguments": {
     "typename": "virt-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -4189,34 +4299,34 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -5488,12 +5598,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -5567,12 +5677,12 @@
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -17851,12 +17961,12 @@
       ]
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -17893,5 +18003,5 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.replies b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.replies
index 8fd9646f53..4df475d7c0 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.replies
@@ -3892,12 +3892,122 @@
   "id": "libvirt-30"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-31"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-31a"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -3962,7 +4072,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -3970,7 +4080,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -4034,12 +4144,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -4076,7 +4186,7 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -4084,7 +4194,7 @@
   "arguments": {
     "typename": "virt-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -4189,34 +4299,34 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -5488,12 +5598,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -5567,12 +5677,12 @@
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -17851,12 +17961,12 @@
       ]
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -17893,5 +18003,5 @@
       "cpu-max": 1
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
index 09112a207f..8ac67e0b75 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
@@ -5043,12 +5043,122 @@
   "id": "libvirt-34"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -5113,7 +5223,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -5121,7 +5231,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5185,7 +5295,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5193,7 +5303,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -6311,12 +6421,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -6535,12 +6645,12 @@
       "alias": "q35"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -7057,12 +7167,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -7070,12 +7180,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -7083,12 +7193,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -8370,12 +8480,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -8449,12 +8559,12 @@
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -20919,16 +21029,16 @@
       ]
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
-  "id": "libvirt-45",
+  "id": "libvirt-46",
   "error": {
     "class": "GenericError",
     "desc": "SEV feature is not available"
@@ -20943,7 +21053,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -21147,7 +21257,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -21353,7 +21463,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -21632,7 +21742,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -21646,7 +21756,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -21850,7 +21960,7 @@
       }
     }
   },
-  "id": "libvirt-48"
+  "id": "libvirt-49"
 }
 
 {
@@ -22056,7 +22166,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
@@ -22335,7 +22445,7 @@
       }
     }
   },
-  "id": "libvirt-49"
+  "id": "libvirt-50"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.replies
index c143866dcc..5c3c706651 100644
--- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.replies
@@ -5336,12 +5336,122 @@
   "id": "libvirt-34"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -5406,7 +5516,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -5414,7 +5524,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5478,7 +5588,7 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5486,7 +5596,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -6651,12 +6761,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -6980,12 +7090,12 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -8130,12 +8240,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -8143,12 +8253,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -8156,12 +8266,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -9435,12 +9545,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -9514,12 +9624,12 @@
       "capability": "x-ignore-shared"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -22104,16 +22214,16 @@
       ]
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
-  "id": "libvirt-45",
+  "id": "libvirt-46",
   "error": {
     "class": "GenericError",
     "desc": "SEV feature is not available"
@@ -22128,7 +22238,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -22336,7 +22446,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -22350,7 +22460,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -22558,7 +22668,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.replies
index e5d5b53667..4d28047ebe 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.replies
@@ -6090,12 +6090,122 @@
   "id": "libvirt-29"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-30"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-30"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -6160,7 +6270,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -6168,7 +6278,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -6232,7 +6342,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -6240,7 +6350,7 @@
   "arguments": {
     "typename": "max-arm-cpu"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -6427,12 +6537,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6990,7 +7100,7 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6998,7 +7108,7 @@
   "arguments": {
     "typename": "virt-4.2-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -7151,12 +7261,12 @@
       "type": "child<cfi.pflash01>"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -7347,34 +7457,34 @@
       "static": false
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -8542,12 +8652,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -8625,12 +8735,12 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -21201,12 +21311,12 @@
       ]
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -21222,7 +21332,7 @@
       "kernel": false
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -21233,7 +21343,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -21263,7 +21373,7 @@
       }
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -21277,11 +21387,11 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
-  "id": "libvirt-43",
+  "id": "libvirt-44",
   "error": {
     "class": "GenericError",
     "desc": "Parameter 'migratable' is unexpected"
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.replies
index 2414105e25..95ec00a651 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.replies
@@ -5895,12 +5895,122 @@
   "id": "libvirt-30"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-31"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-31"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5965,7 +6075,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -5973,7 +6083,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -6037,12 +6147,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6304,7 +6414,7 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6312,7 +6422,7 @@
   "arguments": {
     "typename": "pseries-4.2-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6511,12 +6621,12 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -8712,34 +8822,34 @@
       "static": false
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -9878,12 +9988,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -9961,12 +10071,12 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -22195,7 +22305,7 @@
       ]
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.replies
index b9481b6f85..c09ebb5460 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.replies
@@ -5576,12 +5576,122 @@
   "id": "libvirt-34"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -5646,7 +5756,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -5654,7 +5764,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5718,7 +5828,7 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -5726,7 +5836,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -7280,12 +7390,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -7677,12 +7787,12 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -9065,12 +9175,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -9078,12 +9188,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -9091,12 +9201,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -10382,12 +10492,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -10465,12 +10575,12 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -23389,16 +23499,16 @@
       ]
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
-  "id": "libvirt-45",
+  "id": "libvirt-46",
   "error": {
     "class": "GenericError",
     "desc": "SEV feature is not available"
@@ -23413,7 +23523,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -23715,7 +23825,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -23729,7 +23839,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -24031,7 +24141,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.replies
index a3136a0966..067cbb7e31 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.replies
@@ -6476,12 +6476,122 @@
   "id": "libvirt-29"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-30"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-30"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -6546,7 +6656,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -6554,7 +6664,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -6618,7 +6728,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -6626,7 +6736,7 @@
   "arguments": {
     "typename": "max-arm-cpu"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -6826,12 +6936,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -7411,7 +7521,7 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -7419,7 +7529,7 @@
   "arguments": {
     "typename": "virt-5.0-machine"
   },
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -7557,12 +7667,12 @@
       "type": "child<cfi.pflash01>"
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -7758,34 +7868,34 @@
       "static": false
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -8943,12 +9053,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -9026,12 +9136,12 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -21768,12 +21878,12 @@
       ]
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-gic-capabilities",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -21789,7 +21899,7 @@
       "kernel": false
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -21800,7 +21910,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -21831,7 +21941,7 @@
       }
     }
   },
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -21845,11 +21955,11 @@
       }
     }
   },
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
-  "id": "libvirt-43",
+  "id": "libvirt-44",
   "error": {
     "class": "GenericError",
     "desc": "Parameter 'migratable' is unexpected"
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.replies
index 9e54e1f9f6..8e754bfb80 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.replies
@@ -6525,12 +6525,122 @@
   "id": "libvirt-31"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-32"
+}
+
+{
+  "return": [
+    {
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "name": "command_serr_enable",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "name": "pref32-reserve",
+      "type": "size"
+    },
+    {
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "name": "io-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-32"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -6600,7 +6710,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -6608,7 +6718,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -6677,12 +6787,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6952,7 +7062,7 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -6960,7 +7070,7 @@
   "arguments": {
     "typename": "pseries-5.0-machine"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -7169,12 +7279,12 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -9380,24 +9490,24 @@
       "static": false
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "return": [
     "tpm-spapr"
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -9405,12 +9515,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -10487,12 +10597,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -10570,12 +10680,12 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -23336,7 +23446,7 @@
       ]
     }
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.replies
index 95a7d62f5a..af2299a41e 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.replies
@@ -6041,12 +6041,141 @@
   "id": "libvirt-34"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "pcie-root-port"
+  },
+  "id": "libvirt-35"
+}
+
+{
+  "return": [
+    {
+      "name": "romfile",
+      "type": "str"
+    },
+    {
+      "default-value": -1,
+      "name": "addr",
+      "description": "Slot and optional function number, example: 06.0 or 06",
+      "type": "int32"
+    },
+    {
+      "name": "failover_pair_id",
+      "type": "str"
+    },
+    {
+      "default-value": true,
+      "name": "x-pcie-lnksta-dllla",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 1,
+      "name": "rombar",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "x-pcie-extcap-init",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "multifunction",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "port",
+      "type": "uint8"
+    },
+    {
+      "default-value": 8,
+      "name": "aer_log_max",
+      "type": "uint16"
+    },
+    {
+      "default-value": true,
+      "name": "hotplug",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "slot",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "chassis",
+      "type": "uint8"
+    },
+    {
+      "default-value": true,
+      "name": "power_controller_present",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "disable-acs",
+      "type": "bool"
+    },
+    {
+      "default-value": 18446744073709551615,
+      "name": "mem-reserve",
+      "type": "size"
+    },
+    {
+      "default-value": 18446744073709551615,
+      "name": "pref64-reserve",
+      "type": "size"
+    },
+    {
+      "default-value": 4294967295,
+      "name": "bus-reserve",
+      "type": "uint32"
+    },
+    {
+      "default-value": "32",
+      "name": "x-width",
+      "description": "1/2/4/8/12/16/32",
+      "type": "PCIELinkWidth"
+    },
+    {
+      "default-value": true,
+      "name": "x-migrate-msix",
+      "type": "bool"
+    },
+    {
+      "default-value": 18446744073709551615,
+      "name": "io-reserve",
+      "type": "size"
+    },
+    {
+      "default-value": "16",
+      "name": "x-speed",
+      "description": "2_5/5/8/16",
+      "type": "PCIELinkSpeed"
+    },
+    {
+      "default-value": 18446744073709551615,
+      "name": "pref32-reserve",
+      "type": "size"
+    }
+  ],
+  "id": "libvirt-35"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -6116,7 +6245,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
@@ -6124,7 +6253,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -6193,7 +6322,7 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -6201,7 +6330,7 @@
   "arguments": {
     "typename": "max-x86_64-cpu"
   },
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -7767,12 +7896,12 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -8148,12 +8277,12 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -9665,12 +9794,12 @@
       "migration-safe": true
     }
   ],
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
@@ -9678,12 +9807,12 @@
     "tpm-crb",
     "tpm-tis"
   ],
-  "id": "libvirt-40"
+  "id": "libvirt-41"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
@@ -9691,12 +9820,12 @@
     "passthrough",
     "emulator"
   ],
-  "id": "libvirt-41"
+  "id": "libvirt-42"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
@@ -10972,12 +11101,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-42"
+  "id": "libvirt-43"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
@@ -11055,12 +11184,12 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-43"
+  "id": "libvirt-44"
 }
 
 {
   "execute": "query-qmp-schema",
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
@@ -24788,16 +24917,16 @@
       ]
     }
   ],
-  "id": "libvirt-44"
+  "id": "libvirt-45"
 }
 
 {
   "execute": "query-sev-capabilities",
-  "id": "libvirt-45"
+  "id": "libvirt-46"
 }
 
 {
-  "id": "libvirt-45",
+  "id": "libvirt-46",
   "error": {
     "class": "GenericError",
     "desc": "SEV feature is not available"
@@ -24812,7 +24941,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -25115,7 +25244,7 @@
       }
     }
   },
-  "id": "libvirt-46"
+  "id": "libvirt-47"
 }
 
 {
@@ -25129,7 +25258,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
@@ -25432,7 +25561,7 @@
       }
     }
   },
-  "id": "libvirt-47"
+  "id": "libvirt-48"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
index df3557d1ad..2f89f22c2b 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
@@ -228,6 +228,7 @@
   <flag name='blockdev-snapshot.allow-write-only-overlay'/>
   <flag name='storage.werror'/>
   <flag name='fsdev.multidevs'/>
+  <flag name='pcie-root-port.hotplug'/>
   <version>4002091</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
-- 
2.25.2




More information about the libvir-list mailing list