Hi, This series adds a RISC-V 'virt' libqos machine. It's copied from the existing ARM machine in arm-virt-machine.c.
Due to the increase of test coverage I found out 2 bugs in the virtio layer of libqos. Patch 1 is a bug related to unintialized guest pages from guest_alloc() being used, patch 2 is an error in an offset of a struct. My educated guess on why other boards don't fail these tests is that either their guest pages happens to be zeroed or happens to have a certain value that doesn't affect the tests. Patches 3, 4 and 5 are changes in the RISC-V 'virt' machine required to make all tests pass. Patch 6 adds the RISC-V virt machine nodes. As I said, it's a declared copy of arm-virt-machine.c with extra steps. One of them is to edit the attributes of the generic-pcihost liqos driver to fit RISC-V needs, since some of its attributes (ecam, pio_base and so on) are hardcoded to the values that the ARM 'virt' machine uses. If desired, we can change generic-pcihost to be more flexible and not hardcode any machine/arch specific value. Alex: I'm CCing you because I noticed that you reviewed bug fixes in libqos/virtio in the past, figured you have some expertise to share here. Patches based on master. Daniel Henrique Barboza (6): libqos/virtio.c: init all elems in qvring_indirect_desc_setup() libqos/virtio.c: fix 'avail_event' offset in qvring_init() hw/riscv/virt.c: create '/soc/pci@...' fdt node earlier hw/riscv/virt.c: add virtio-iommu-pci hotplug support hw/riscv/virt.c: make aclint compatible with 'qtest' accel tests/libqos: add riscv/virt machine nodes hw/riscv/virt.c | 97 ++++++++++++----- tests/qtest/libqos/meson.build | 1 + tests/qtest/libqos/riscv-virt-machine.c | 137 ++++++++++++++++++++++++ tests/qtest/libqos/virtio.c | 27 +++-- 4 files changed, 228 insertions(+), 34 deletions(-) create mode 100644 tests/qtest/libqos/riscv-virt-machine.c -- 2.43.0