diff --git a/tests/qemuxml2argvdata/riscv64-virt-pci.args b/tests/qemuxml2argvdata/riscv64-virt-pci.riscv64-latest.args
similarity index 68%
rename from tests/qemuxml2argvdata/riscv64-virt-pci.args
rename to tests/qemuxml2argvdata/riscv64-virt-pci.riscv64-latest.args
index d735b993da..c729959f53 100644
--- a/tests/qemuxml2argvdata/riscv64-virt-pci.args
+++ b/tests/qemuxml2argvdata/riscv64-virt-pci.riscv64-latest.args
@@ -9,10 +9,11 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-riscv64/.config \
/usr/bin/qemu-system-riscv64 \
-name guest=riscv64,debug-threads=on \
-S \
--object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-riscv64/master-key.aes \
--machine virt,usb=off,dump-guest-core=off \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-riscv64/master-key.aes"}' \
+-machine virt,usb=off,dump-guest-core=off,memory-backend=riscv_virt_board.ram \
-accel tcg \
-m 2048 \
+-object '{"qom-type":"memory-backend-ram","id":"riscv_virt_board.ram","size":2147483648}' \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid fd65fc03-8838-4c4d-9d8d-395802488790 \
@@ -28,6 +29,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-riscv64/.config \
-append root=/dev/vda \
-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/riscv64.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage"}' \
--device virtio-blk-pci,bus=pcie.0,addr=0x1,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
+-device '{"driver":"virtio-blk-pci","bus":"pcie.0","addr":"0x1","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1}' \
-audiodev '{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/riscv64-virt.args b/tests/qemuxml2argvdata/riscv64-virt.riscv64-latest.args
similarity index 68%
rename from tests/qemuxml2argvdata/riscv64-virt.args
rename to tests/qemuxml2argvdata/riscv64-virt.riscv64-latest.args
index 26b3baaeb5..4e8011845e 100644
--- a/tests/qemuxml2argvdata/riscv64-virt.args
+++ b/tests/qemuxml2argvdata/riscv64-virt.riscv64-latest.args
@@ -9,10 +9,11 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-riscv64/.config \
/usr/bin/qemu-system-riscv64 \
-name guest=riscv64,debug-threads=on \
-S \
--object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-riscv64/master-key.aes \
--machine virt,usb=off,dump-guest-core=off \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-riscv64/master-key.aes"}' \
+-machine virt,usb=off,dump-guest-core=off,memory-backend=riscv_virt_board.ram \
-accel tcg \
-m 2048 \
+-object '{"qom-type":"memory-backend-ram","id":"riscv_virt_board.ram","size":2147483648}' \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid fd65fc03-8838-4c4d-9d8d-395802488790 \
@@ -28,9 +29,10 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-riscv64/.config \
-append 'console=ttyS0 ro root=/dev/vda' \
-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/stage4-disk.img","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \
--device virtio-blk-device,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 \
+-device '{"driver":"virtio-blk-device","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1}' \
-chardev pty,id=charserial0 \
-serial chardev:charserial0 \
-audiodev '{"id":"audio1","driver":"none"}' \
--device virtio-balloon-device,id=balloon0 \
+-device '{"driver":"virtio-balloon-device","id":"balloon0"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index c7569af872..d13b43df84 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -2868,10 +2868,12 @@ mymain(void)
DO_TEST_CAPS_LATEST("vhost-user-fs-hugepages");
DO_TEST_CAPS_LATEST_PARSE_ERROR("vhost-user-fs-readonly");
- DO_TEST("riscv64-virt",
- QEMU_CAPS_DEVICE_VIRTIO_MMIO);
- DO_TEST("riscv64-virt-pci",
- QEMU_CAPS_OBJECT_GPEX);
+ /* The generic pcie bridge emulation device can be compiled out of qemu. */
+ DO_TEST_CAPS_ARCH_LATEST_FULL("riscv64-virt", "riscv64",
+ ARG_QEMU_CAPS_DEL,
+ QEMU_CAPS_OBJECT_GPEX,
+ QEMU_CAPS_LAST);
+ DO_TEST_CAPS_ARCH_LATEST("riscv64-virt-pci", "riscv64");
DO_TEST_CAPS_LATEST("virtio-transitional");
DO_TEST_CAPS_LATEST("virtio-non-transitional");
diff --git a/tests/qemuxml2xmloutdata/riscv64-virt-pci.xml b/tests/qemuxml2xmloutdata/riscv64-virt-pci.riscv64-latest.xml
similarity index 100%
rename from tests/qemuxml2xmloutdata/riscv64-virt-pci.xml
rename to tests/qemuxml2xmloutdata/riscv64-virt-pci.riscv64-latest.xml
diff --git a/tests/qemuxml2xmloutdata/riscv64-virt.xml b/tests/qemuxml2xmloutdata/riscv64-virt.riscv64-latest.xml
similarity index 53%
rename from tests/qemuxml2xmloutdata/riscv64-virt.xml
rename to tests/qemuxml2xmloutdata/riscv64-virt.riscv64-latest.xml
index 8a5c5dd985..9868f3ae12 100644
--- a/tests/qemuxml2xmloutdata/riscv64-virt.xml
+++ b/tests/qemuxml2xmloutdata/riscv64-virt.riscv64-latest.xml
@@ -20,8 +20,24 @@