Hi Laurent, +Paolo / Thomas
On 3/15/21 9:42 PM, Laurent Vivier wrote: > The machine is based on Goldfish interfaces defined by Google > for Android simulator. It uses Goldfish-rtc (timer and RTC), > Goldfish-pic (PIC) and Goldfish-tty (for serial port and early tty). > > The machine is created with 128 virtio-mmio bus, and they can > be used to use serial console, GPU, disk, NIC, HID, ... > > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Tested-by: Philippe Mathieu-Daudé <f4...@amsat.org> > Message-Id: <20210312214145.2936082-6-laur...@vivier.eu> > --- > default-configs/devices/m68k-softmmu.mak | 1 + > .../standard-headers/asm-m68k/bootinfo-virt.h | 18 + > hw/m68k/virt.c | 313 ++++++++++++++++++ > MAINTAINERS | 13 + > hw/m68k/Kconfig | 9 + > hw/m68k/meson.build | 1 + > 6 files changed, 355 insertions(+) > create mode 100644 include/standard-headers/asm-m68k/bootinfo-virt.h > create mode 100644 hw/m68k/virt.c > diff --git a/hw/m68k/Kconfig b/hw/m68k/Kconfig > index 60d7bcfb8f2b..f839f8a03064 100644 > --- a/hw/m68k/Kconfig > +++ b/hw/m68k/Kconfig > @@ -23,3 +23,12 @@ config Q800 > select ESP > select DP8393X > select OR_IRQ > + > +config M68K_VIRT > + bool > + select M68K_IRQC > + select VIRT_CTRL > + select GOLDFISH_PIC > + select GOLDFISH_TTY > + select GOLDFISH_RTC > + select VIRTIO_MMIO I had this error on gitlab: (qemu) QEMU_PROG: -drive driver=IMGFMT,file=TEST_DIR/t.IMGFMT,if=virtio: 'virtio-blk-pci' is not a valid device model name job: check-system-fedora https://gitlab.com/philmd/qemu/-/jobs/1106469724 I bisected locally to this commit. check-system-fedora uses build-system-fedora: build-system-fedora: CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs --enable-fdt=system --enable-slirp=system --enable-capstone=system I'm confused because the machine provides a VIRTIO bus via MMIO: config VIRTIO_MMIO bool select VIRTIO I remember I tested your machine with virtio-blk-device. config VIRTIO_BLK bool default y depends on VIRTIO Ah, this is virtio-blk-pci, which has: virtio_pci_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-blk-pci.c')) virtio_ss.add_all(when: 'CONFIG_VIRTIO_PCI', if_true: virtio_pci_ss) And VIRTIO_PCI isn't selected... Are the tests incorrect then? libqos isn't restricted to PCI: tests/qtest/libqos/virtio-blk.c:24:#include "virtio-blk.h" tests/qtest/libqos/virtio-blk.c:29:/* virtio-blk-device */ tests/qtest/libqos/virtio-blk.c:33: if (!g_strcmp0(interface, "virtio-blk")) { tests/qtest/libqos/virtio-blk.c:40: fprintf(stderr, "%s not present in virtio-blk-device\n", interface); tests/qtest/libqos/virtio-blk.c:109: /* virtio-blk-device */ tests/qtest/libqos/virtio-blk.c:111: qos_node_create_driver("virtio-blk-device", virtio_blk_device_create); tests/qtest/libqos/virtio-blk.c:112: qos_node_consumes("virtio-blk-device", "virtio-bus", &opts); tests/qtest/libqos/virtio-blk.c:113: qos_node_produces("virtio-blk-device", "virtio-blk"); But qemu-iotests / qtests do use virtio-blk-pci. Maybe they should use a generic virtio-blk-device instead, hoping it get plugged correctly to the virtio bus...