Hi, Based mostly on earlier work by Hervé Poussineau, this RFC series adds emulation of a real '40p' IBM PReP machine as an addition to the existing 'prep' machine. It does some general cleanups and qdev'ification that will benefit further PReP machines, such as the BeBox.
This series supersedes my preparatory "ISA reconfigurability" series, by adding the i82378 PCI-ISA bridge on which it is to be used. The qdev and ISA device patches up to pc87312 should allow for cherry-picking. The state of -M prep (on Darwin/ppc64 and OSol/amd64) is that my 2.4.36.1 Linux kernel hardly gets to the root prompt ("INIT: Id "n" respawning too fast: disabled for 5 minutes"), both before and after. Firmware for -M 40p can be downloaded here: ftp://ftp.boulder.ibm.com/rs6000/firmware/7020-40p/P12H0456.IMG With some additional patches on top of this series (memory-forced I/O, a PCI BAR issue and a parallel ioport conflict) after about one and a half minutes it gets to the graphical boot screen with keyboard icon, after about seven and a half minutes to the floppy icon and after a really looong time gets to a third, memory(?) icon. TODOs: * improve ISA ioport vs. IORange handling and naming * fix a few -M prep System I/O ports broken by qdev'ification * possibly make -M prep use i82378, too (broke Linux boot) * IBM8514/A cleanup, RAMDAC support for colors * 7020 had max. 6x 32 MB = 192 MB RAM Regards, Andreas Cc: Hervé Poussineau <hpous...@reactos.org> Andreas Färber (21): prep: Refactor CPU initialization prep: qdev'ify PCI prep: Prepare emulation of an IBM RS/6000 6015 / 7020 (40p) 40p: Add PCI host prep: Add i82374 DMA emulation prep: Add i82378 PCI-to-ISA bridge emulation 40p: Add a PCI to ISA bridge (i82378) qdev: Add support for property type bool qdev: Add helpers for reading properties isa: Provide enable and disable callbacks isa: Allow to un-assign I/O ports isa: Allow to un-associate an IRQ parallel: Implement ISA state callbacks serial: Implement ISA state callbacks fdc: Implement ISA state callbacks ide: Allow to discard I/O ports ide: Implement ISA state callbacks prep: Add pc87312 Super I/O emulation 40p: Add the Super I/O chip (pc87312) prep: qdev'ify System I/O (WIP) 40p: Add an 8514/A graphics card Hervé Poussineau (2): fdc: Parametrize ISA base, IRQ and DMA 40p: Add an audio card and a keyboard Makefile.objs | 4 + Makefile.target | 1 + default-configs/ppc-softmmu.mak | 7 + hw/fdc.c | 118 ++++++- hw/hw.h | 15 + hw/i82374.c | 133 ++++++++ hw/i82378.c | 298 +++++++++++++++++ hw/ide/core.c | 8 + hw/ide/internal.h | 1 + hw/ide/isa.c | 98 ++++++- hw/isa-bus.c | 71 ++++ hw/isa.h | 8 + hw/parallel.c | 75 +++-- hw/pc87312.c | 495 ++++++++++++++++++++++++++++ hw/pci_ids.h | 4 + hw/ppc_prep.c | 316 ++++++++++-------- hw/ppc_prep.h | 24 ++ hw/prep_pci.c | 126 ++++++-- hw/prep_systemio.c | 335 +++++++++++++++++++ hw/qdev-properties.c | 96 ++++++- hw/qdev.h | 13 + hw/serial.c | 91 +++++- hw/vga-s3.c | 694 +++++++++++++++++++++++++++++++++++++++ 23 files changed, 2812 insertions(+), 219 deletions(-) create mode 100644 hw/i82374.c create mode 100644 hw/i82378.c create mode 100644 hw/pc87312.c create mode 100644 hw/ppc_prep.h create mode 100644 hw/prep_systemio.c create mode 100644 hw/vga-s3.c -- 1.7.5.3