From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: "Fam Zheng" <fam@euphon.net>, "Kevin Wolf" <kwolf@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
qemu-block@nongnu.org, "Thomas Huth" <huth@tuxfamily.org>,
"Jason Wang" <jasowang@redhat.com>,
"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
"Laurent Vivier" <laurent@vivier.eu>,
"Max Reitz" <mreitz@redhat.com>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [Qemu-devel] [PATCH v7 00/10] hw/m68k: add Apple Machintosh Quadra 800 machine
Date: Sun, 26 May 2019 00:50:03 +0200 [thread overview]
Message-ID: <20190525225013.13916-1-laurent@vivier.eu> (raw)
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 \
-net nic,model=dp83932,addr=09:00:07:12:34:57 \
-append "console=ttyS0 vga=off" \
-kernel vmlinux-4.16.0-1-m68k \
-initrd initrd.gz \
-drive file=debian-10.0-m68k-NETINST-1.iso,media=cdrom \
-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/cdimage/ports/10.0/m68k/iso-cd/debian-10.0-m68k-NETINST-1.iso
and extract the kernel and initrd.gz:
guestfish --add debian-10.0-m68k-NETINST-1.iso --ro \
--mount /dev/sda:/ <<_EOF_
copy-out /install/cdrom/initrd.gz .
copy-out /install/kernels/vmlinux-4.16.0-1-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.16.0-1-m68k .
copy-out /boot/initrd.img-4.16.0-1-m68k .
_EOF_
and boot with:
...
-append "root=/dev/sda2 rw console=ttyS0 console=tty \
-kernel vmlinux-4.16.0-1-m68k \
-initrd initrd.img-4.16.0-1-m68k
v7: rebase and port to Kconfig
move IRQ controller back to q800.c (we don't need an object for this)
update log message for ESP changes and add some g_assert()
re-order patches: put esp, escc and dp8393x first
v6: Rebase onto git master (this now includes the m68k EXCP_ILLEGAL fix required
for this patchset to boot)
Add Hervé's R-B tags
Drop ASC (Apple Sound Chip) device since the Linux driver is broken and
it is not required for a successful boot
Remove extra esp_raise_irq() from ESP pseudo-DMA patch (Hervé)
Remove "return" from unimplemented write functions and instead add a
"read only" comment (Hervé)
Rename MAX_FD to SWIM_MAX_FD in SWIM floppy controller patch to prevent
potential conflicts with other files (Hervé)
v5: Rebase onto git master
Add Philippe's R-B to patch 10
Include the command line to boot a Linux kernel under the q800 machine in the
commit message for patch 11 (Philippe)
Fix up comments in hw/misc/mac_via.c (Thomas)
Add asserts to VIA ADB support to prevent potential buffer overflows (Thomas)
Move macfb surface/resolution checks to realise and remove hw_error (Thomas)
Move macfb draw_line functions inline and remove macfb-template.h (Mark)
Use guest address rather than source pointer in draw_line functions - this brings
macfb in line with the VGA device and can prevent a potential buffer overflow
Use g_strdup_printf() for memory region names in NuBus devices instead of
hardcoded length char arrays (Thomas)
Move NuBus QOM types from patch 7 to patch 8 (spotted by Thomas)
Move CONFIG_COLDFIRE sections together in hw/m68k/Makefile.objs (Thomas)
Remove obsolete comment from q800.c in patch 11 (Thomas)
v4: Drop RFC from subject prefix as this is getting close to final
Rebased onto master (fixing ESP, rom_ptr() conflicts)
Reworked q800.c based upon Thomas' comments about cpu_init() and
qemu_check_nic_model()
Address Thomas' comments on using error_report() instead of hw_error()
Change the NuBus memory regions from DEVICE_NATIVE_ENDIAN to
DEVICE_BIG_ENDIAN
Split macfb Nubus support into separate commit
Change VMSTATE_BUFFER_UNSAFE() to VMSTATE_UINT8_ARRAY() in macfb.c as
suggested by David
Remove dummy Apple Sound Chip migration state as pointed out by David
Keep VIA ADB state and buffers in the mac_via device rather than adding
to existing ADBState (this matches the pattern used in the PPC CUDA/PMU
VIAs)
Remove blacklisting for q800 machine from "make check" as requested by
Thomas with the following fixes:
- Fix incorrect MemoryRegion owner in ASC device
- Add qtest_enabled() check in q800_init() to allow testing when no
kernel is specified
- Move some Mac VIA initialisation from init to realize
Remove legacy drive properties from SWIM floppy controller and instead
expose separate floppy bus and drive devices as requested by Kevin
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 (9):
escc: introduce a selector for the register bit
esp: add pseudo-DMA as used by Macintosh
dp8393x: manage big endian bus
hw/m68k: add via support
hw/m68k: implement ADB bus support for via
hw/m68k: add macfb video card
hw/m68k: add Nubus support
hw/m68k: add a dummy SWIM floppy controller
hw/m68k: define Macintosh Quadra 800
Mark Cave-Ayland (1):
hw/m68k: add Nubus support for macfb video card
MAINTAINERS | 14 +
arch_init.c | 4 +
default-configs/m68k-softmmu.mak | 1 +
hw/Kconfig | 1 +
hw/Makefile.objs | 1 +
hw/block/Kconfig | 3 +
hw/block/Makefile.objs | 1 +
hw/block/swim.c | 415 ++++++++++++++
hw/char/escc.c | 30 +-
hw/display/Kconfig | 4 +
hw/display/Makefile.objs | 1 +
hw/display/macfb.c | 475 +++++++++++++++
hw/m68k/Kconfig | 12 +
hw/m68k/Makefile.objs | 1 +
hw/m68k/bootinfo.h | 100 ++++
hw/m68k/q800.c | 369 ++++++++++++
hw/misc/Kconfig | 4 +
hw/misc/Makefile.objs | 1 +
hw/misc/mac_via.c | 856 ++++++++++++++++++++++++++++
hw/net/dp8393x.c | 88 ++-
hw/nubus/Kconfig | 2 +
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 | 215 +++++++
hw/scsi/esp.c | 293 +++++++++-
include/hw/block/swim.h | 76 +++
include/hw/char/escc.h | 1 +
include/hw/display/macfb.h | 64 +++
include/hw/misc/mac_via.h | 114 ++++
include/hw/nubus/mac-nubus-bridge.h | 24 +
include/hw/nubus/nubus.h | 69 +++
include/hw/scsi/esp.h | 7 +
qemu-options.hx | 2 +-
vl.c | 3 +-
36 files changed, 3377 insertions(+), 68 deletions(-)
create mode 100644 hw/block/swim.c
create mode 100644 hw/display/macfb.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/Kconfig
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/block/swim.h
create mode 100644 include/hw/display/macfb.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
--
2.20.1
next reply other threads:[~2019-05-25 23:10 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-25 22:50 Laurent Vivier [this message]
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 01/10] escc: introduce a selector for the register bit Laurent Vivier
2019-05-26 16:05 ` Thomas Huth
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 02/10] esp: add pseudo-DMA as used by Macintosh Laurent Vivier
2019-05-26 16:20 ` Thomas Huth
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 03/10] dp8393x: manage big endian bus Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 04/10] hw/m68k: add via support Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 05/10] hw/m68k: implement ADB bus support for via Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 06/10] hw/m68k: add macfb video card Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 07/10] hw/m68k: add Nubus support Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 08/10] hw/m68k: add Nubus support for macfb video card Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 09/10] hw/m68k: add a dummy SWIM floppy controller Laurent Vivier
2019-05-25 22:50 ` [Qemu-devel] [PATCH v7 10/10] hw/m68k: define Macintosh Quadra 800 Laurent Vivier
2019-05-26 17:00 ` Thomas Huth
2019-05-27 12:17 ` Mark Cave-Ayland
2019-05-27 13:32 ` Aleksandar Markovic
2019-05-27 13:36 ` Laurent Vivier
2019-05-27 14:18 ` Aleksandar Markovic
2019-05-25 23:21 ` [Qemu-devel] [PATCH v7 00/10] hw/m68k: add Apple Machintosh Quadra 800 machine no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190525225013.13916-1-laurent@vivier.eu \
--to=laurent@vivier.eu \
--cc=aurelien@aurel32.net \
--cc=dgilbert@redhat.com \
--cc=fam@euphon.net \
--cc=hpoussin@reactos.org \
--cc=huth@tuxfamily.org \
--cc=jasowang@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.