I'm rebasing some of these patches for seven years now, too many years... It's an RFC because things have changed in QEMU in seven years, for instance the VIA has a new implementation (mos6522) introduced by Mark Cave-Ayland and I didn't rework my implementation to fit into this new one (any volunteers?), display has some glitches, ADB devices are not identified correctly.
if you want to test the machine, I'm sorry, it doesn't boot a MacROM, but you can boot a linux kernel from the command line. You can install your own disk using debian-installer, with: ... -M q800 \ -serial none -serial mon:stdio \ -m 1000M -drive file=m68k.qcow2,format=qcow2 \ -net nic,model=dp83932,addr=09:00:07:12:34:57 \ -append "console=ttyS0 vga=off" \ -kernel vmlinux-4.15.0-2-m68k \ -initrd initrd.gz \ -drive file=debian-9.0-m68k-NETINST-1.iso \ -drive file=m68k.qcow2,format=qcow2 \ -nographic If you use a graphic adapter instead of "-nographic", you can use "-g" to set the size of the display (I use "-g 1600x800x24"). You can get the ISO from: https://cdimage.debian.org/mirror/cdimage/ports/9.0/m68k/iso-cd/debian-9.0-m68k-NETINST-1.iso and extract the kernel and initrd.gz: guestfish --add debian-9.0-m68k-NETINST-1.iso --ro \ --mount /dev/sda:/ <<_EOF_ copy-out /install/cdrom/initrd.gz . copy-out /install/kernels/vmlinux-4.15.0-2-m68k . _EOF_ The mirror to use is: http://ftp.ports.debian.org/debian-ports/ when it fails, continue without boot loader. In the same way, you can extract the kernel and the initramfs from the qcow2 image to use it with "-kernel" and "-initrd": guestfish --add m68k.qcow2 --mount /dev/sda2:/ <<_EOF_ copy-out /boot/vmlinux-4.15.0-2-m68k . copy-out /boot/initrd.img-4.15.0-2-m68k . _EOF_ and boot with: ... -append "root=/dev/sda2 rw console=ttyS0 console=tty \ -kernel vmlinux-4.15.0-2-m68k \ -initrd initrd.img-4.15.0-2-m68k Laurent Vivier (13): hw/m68k: add via support ADB: VIA probes ADB bus when it is idle escc: introduce a selector for the register bit hw/m68k: add video card hw/m68k: Apple Sound Chip (ASC) emulation ESP: add pseudo-DMA as used by Macintosh hw/m68k: add Nubus support hw/m68k: add a dummy SWIM floppy controller hw/m68k: define Macintosh Quadra 800 dp8393x: fix dp8393x_receive dp8393x: manage big endian bus dp8393x: put DMA temp buffer in the state, not in the stack dp8393x: fix receiving buffer exhaustion arch_init.c | 4 + default-configs/m68k-softmmu.mak | 12 + hw/Makefile.objs | 1 + hw/audio/Makefile.objs | 1 + hw/audio/asc.c | 492 ++++++++++++++++++++ hw/block/Makefile.objs | 1 + hw/block/swim.c | 325 +++++++++++++ hw/char/escc.c | 30 +- hw/display/Makefile.objs | 1 + hw/display/macfb-template.h | 158 +++++++ hw/display/macfb.c | 335 ++++++++++++++ hw/input/adb-kbd.c | 4 + hw/input/adb-mouse.c | 4 + hw/input/adb.c | 116 ++++- hw/m68k/Makefile.objs | 6 +- hw/m68k/bootinfo.h | 99 ++++ hw/m68k/mac.c | 384 ++++++++++++++++ hw/mips/mips_jazz.c | 2 +- hw/misc/Makefile.objs | 1 + hw/misc/mac_via.c | 965 +++++++++++++++++++++++++++++++++++++++ hw/net/dp8393x.c | 169 ++++--- hw/nubus/Makefile.objs | 4 + hw/nubus/mac.c | 112 +++++ hw/nubus/nubus-bridge.c | 34 ++ hw/nubus/nubus-bus.c | 60 +++ hw/nubus/nubus-device.c | 262 +++++++++++ hw/scsi/esp.c | 330 +++++++++++-- include/hw/audio/asc.h | 21 + include/hw/char/escc.h | 1 + include/hw/input/adb.h | 9 + include/hw/misc/mac_via.h | 45 ++ include/hw/nubus/mac.h | 24 + include/hw/nubus/nubus.h | 89 ++++ include/hw/scsi/esp.h | 15 +- include/qemu/typedefs.h | 2 + qemu-options.hx | 2 +- tests/qom-test.c | 5 + tests/test-hmp.c | 3 +- vl.c | 3 +- 39 files changed, 4019 insertions(+), 112 deletions(-) create mode 100644 hw/audio/asc.c create mode 100644 hw/block/swim.c create mode 100644 hw/display/macfb-template.h create mode 100644 hw/display/macfb.c create mode 100644 hw/m68k/bootinfo.h create mode 100644 hw/m68k/mac.c create mode 100644 hw/misc/mac_via.c create mode 100644 hw/nubus/Makefile.objs create mode 100644 hw/nubus/mac.c create mode 100644 hw/nubus/nubus-bridge.c create mode 100644 hw/nubus/nubus-bus.c create mode 100644 hw/nubus/nubus-device.c create mode 100644 include/hw/audio/asc.h create mode 100644 include/hw/misc/mac_via.h create mode 100644 include/hw/nubus/mac.h create mode 100644 include/hw/nubus/nubus.h -- 2.14.4