I'm rebasing some of these patches for seven years now,
too many years...
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
v3: fix subject prefix "C" -> "RFC"
v2: remove the dp8393x fixes, because one of the patch breaks something
Update "dp8393x: manage big endian bus" with idea from Thomas
Mark has reworked most of the patches:
- use mos6522
- some code move, renamings and cleanup
Laurent Vivier (10):
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
dp8393x: manage big endian bus
hw/m68k: define Macintosh Quadra 800
MAINTAINERS | 19 +
arch_init.c | 4 +
default-configs/m68k-softmmu.mak | 14 +
hw/Makefile.objs | 1 +
hw/audio/Makefile.objs | 1 +
hw/audio/asc.c | 463 +++++++++++++++++++++++
hw/block/Makefile.objs | 1 +
hw/block/swim.c | 284 ++++++++++++++
hw/char/escc.c | 30 +-
hw/display/Makefile.objs | 1 +
hw/display/macfb-template.h | 158 ++++++++
hw/display/macfb.c | 308 +++++++++++++++
hw/input/adb-kbd.c | 4 +
hw/input/adb-mouse.c | 4 +
hw/input/adb.c | 115 ++++++
hw/intc/Makefile.objs | 1 +
hw/intc/q800_irq.c | 73 ++++
hw/m68k/Makefile.objs | 6 +-
hw/m68k/bootinfo.h | 100 +++++
hw/m68k/q800.c | 385 +++++++++++++++++++
hw/mips/mips_jazz.c | 2 +-
hw/misc/Makefile.objs | 1 +
hw/misc/mac_via.c | 731 ++++++++++++++++++++++++++++++++++++
hw/net/dp8393x.c | 88 +++--
hw/nubus/Makefile.objs | 4 +
hw/nubus/mac-nubus-bridge.c | 45 +++
hw/nubus/nubus-bridge.c | 34 ++
hw/nubus/nubus-bus.c | 111 ++++++
hw/nubus/nubus-device.c | 210 +++++++++++
hw/scsi/esp.c | 297 +++++++++++++--
include/hw/audio/asc.h | 48 +++
include/hw/block/swim.h | 53 +++
include/hw/char/escc.h | 1 +
include/hw/display/macfb.h | 63 ++++
include/hw/input/adb.h | 10 +
include/hw/intc/q800_irq.h | 39 ++
include/hw/misc/mac_via.h | 107 ++++++
include/hw/nubus/mac-nubus-bridge.h | 24 ++
include/hw/nubus/nubus.h | 69 ++++
include/hw/scsi/esp.h | 11 +-
qemu-options.hx | 2 +-
tests/qom-test.c | 5 +
tests/test-hmp.c | 3 +-
vl.c | 3 +-
44 files changed, 3857 insertions(+), 76 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/intc/q800_irq.c
create mode 100644 hw/m68k/bootinfo.h
create mode 100644 hw/m68k/q800.c
create mode 100644 hw/misc/mac_via.c
create mode 100644 hw/nubus/Makefile.objs
create mode 100644 hw/nubus/mac-nubus-bridge.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/block/swim.h
create mode 100644 include/hw/display/macfb.h
create mode 100644 include/hw/intc/q800_irq.h
create mode 100644 include/hw/misc/mac_via.h
create mode 100644 include/hw/nubus/mac-nubus-bridge.h
create mode 100644 include/hw/nubus/nubus.h