qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v8 00/10] hw/m68k: add Apple Machintosh Quadra 8


From: Mark Cave-Ayland
Subject: Re: [Qemu-devel] [PATCH v8 00/10] hw/m68k: add Apple Machintosh Quadra 800 machine
Date: Sat, 22 Jun 2019 15:22:54 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1

On 19/06/2019 23:19, Laurent Vivier wrote:

> 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
> 
> NOTE: DHCP doesn't work but you can assign a static IP address.
>       We need some patches for dp8393x that are not ready to be merged.
>       See http://patchwork.ozlabs.org/patch/927020/
>           http://patchwork.ozlabs.org/patch/927030/
>           http://patchwork.ozlabs.org/patch/927026/
> 
> v8: rebase (new blk_new(), add "qemu-common.h")
>     update bootinfo information and license
>     add some braces
>     Rename Q800IRQState to GLUEState:
>     it's more like a Logic Unit than an IRQ controller,
>     and Apple calls it "GLUE" (Mark: I prefer to keep it
>     like this for the moment, in the future this part
>     need to be reworked, we have to review the IRQ levels
>     and to wire NUBUS IRQ. The implementation is really trivial
>     for the moment and we will move it to QOM in the future)

Okay fine with me - as you say once the wiring part has been worked out the 
switch to
QOM is reasonably trivial.

> 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                  | 114 ++++
>  hw/m68k/q800.c                      | 377 ++++++++++++
>  hw/misc/Kconfig                     |   4 +
>  hw/misc/Makefile.objs               |   1 +
>  hw/misc/mac_via.c                   | 857 ++++++++++++++++++++++++++++
>  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                       | 296 +++++++++-
>  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, 3403 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


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]