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