All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 00/13] hw/m68k: add Apple Machintosh Quadra 800 machine
@ 2018-06-08 20:05 Laurent Vivier
  2018-06-08 20:05 ` [Qemu-devel] [RFC 01/13] hw/m68k: add via support Laurent Vivier
                   ` (15 more replies)
  0 siblings, 16 replies; 33+ messages in thread
From: Laurent Vivier @ 2018-06-08 20:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aurelien Jarno, qemu-block, Gerd Hoffmann,
	Dr. David Alan Gilbert, Andreas Färber, Jason Wang,
	Paolo Bonzini, Yongbok Kim, Fam Zheng, Max Reitz, Kevin Wolf,
	Hervé Poussineau, Laurent Vivier

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

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2018-06-10  8:22 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-08 20:05 [Qemu-devel] [RFC 00/13] hw/m68k: add Apple Machintosh Quadra 800 machine Laurent Vivier
2018-06-08 20:05 ` [Qemu-devel] [RFC 01/13] hw/m68k: add via support Laurent Vivier
2018-06-09 10:01   ` Mark Cave-Ayland
2018-06-09 15:48     ` Mark Cave-Ayland
2018-06-10  8:22       ` Laurent Vivier
2018-06-08 20:05 ` [Qemu-devel] [RFC 02/13] ADB: VIA probes ADB bus when it is idle Laurent Vivier
2018-06-08 20:05 ` [Qemu-devel] [RFC 03/13] escc: introduce a selector for the register bit Laurent Vivier
2018-06-09 10:05   ` Mark Cave-Ayland
2018-06-08 20:05 ` [Qemu-devel] [RFC 04/13] hw/m68k: add video card Laurent Vivier
2018-06-09 10:14   ` Mark Cave-Ayland
2018-06-08 20:05 ` [Qemu-devel] [RFC 05/13] hw/m68k: Apple Sound Chip (ASC) emulation Laurent Vivier
2018-06-08 20:05 ` [Qemu-devel] [RFC 06/13] ESP: add pseudo-DMA as used by Macintosh Laurent Vivier
2018-06-09  8:57   ` Hervé Poussineau
2018-06-09 10:19   ` Mark Cave-Ayland
2018-06-08 20:05 ` [Qemu-devel] [RFC 07/13] hw/m68k: add Nubus support Laurent Vivier
2018-06-08 20:05 ` [Qemu-devel] [RFC 08/13] hw/m68k: add a dummy SWIM floppy controller Laurent Vivier
2018-06-08 20:05 ` [Qemu-devel] [RFC 09/13] hw/m68k: define Macintosh Quadra 800 Laurent Vivier
2018-06-09 10:24   ` Mark Cave-Ayland
2018-06-08 20:05 ` [Qemu-devel] [RFC 10/13] dp8393x: fix dp8393x_receive Laurent Vivier
2018-06-09  8:47   ` Hervé Poussineau
2018-06-08 20:05 ` [Qemu-devel] [RFC 11/13] dp8393x: manage big endian bus Laurent Vivier
2018-06-09  8:55   ` Hervé Poussineau
2018-06-09 18:25   ` Thomas Huth
2018-06-08 20:05 ` [Qemu-devel] [RFC 12/13] dp8393x: put DMA temp buffer in the state, not in the stack Laurent Vivier
2018-06-09  8:55   ` Hervé Poussineau
2018-06-09 18:36   ` Thomas Huth
2018-06-08 20:05 ` [Qemu-devel] [RFC 13/13] dp8393x: fix receiving buffer exhaustion Laurent Vivier
2018-06-09  8:55   ` Hervé Poussineau
2018-06-08 20:34 ` [Qemu-devel] [RFC 00/13] hw/m68k: add Apple Machintosh Quadra 800 machine no-reply
2018-06-09  3:26 ` Philippe Mathieu-Daudé
2018-06-09  8:34   ` Laurent Vivier
2018-06-09 14:25 ` Philippe Mathieu-Daudé
2018-06-09 18:14   ` Thomas Huth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.