Hello, Here's an updated initial qdev'ification series for PReP, as prerequisite for Anthony's second QOM series.
As stated before, this is NOT a complete conversion of all PReP devices and of all those shared with x86. Please comment on what's there, not on what may be done, too. I'm sitting on these patches for over a year now, so let's start getting some of it merged so that we can move on with QOM and get some of the design issues fixed that kept the pc87312 Super I/O and 40P machine from getting merged in the first place! Regards, Andreas Changes since v2: * Simplify I/O byte swaps. * Convert I/O from old_mmio to MemoryRegion ops. * Drop pci_prep_init() and instantiate the PCI host bridge in the machine, reintroducing PREPPCIState extension. * Connect IRQs via qdev after instantiating. Suggested by Alex. * Add a rebased PCI-to-ISA-bridge from the 40P series on top, to show why some suggestions from v2 and IRC don't work out. * Merge fix-up by Hervé: Add indirection for late-connected out[0] IRQ. * Add VMState for i82374 and i82378. * From i82378 drop the I/O address translation duplicated from the board. * Rebase i82378 onto Memory API. http://patchwork.ozlabs.org/patch/100250/ http://patchwork.ozlabs.org/patch/100272/ * Add new patch from Hervé to wire up the PCI-to-ISA bridge for 'prep'. Changes since v1: * Use the new .vendor_id etc. in PCIDeviceInfo * Rename from PRePPCI to Raven, adopt naming scheme from i440FX * Rebase onto multiple Memory API conversions * Split into PCIDevice and SysBus patches, leave out PREPPCIState changes http://patchwork.ozlabs.org/patch/100268/ Cc: Hervé Poussineau <hpous...@reactos.org> Cc: Anthony Liguori <aligu...@us.ibm.com> Cc: Alexander Graf <ag...@suse.de> Andreas Färber (8): prep: qdev'ify Raven host bridge (PCIDevice) prep_pci: Simplify I/O endianness prep_pci: Update I/O to MemoryRegion ops prep: qdev'ify Raven host bridge (SysBus) MAINTAINERS: Add PCI host bridge files to PReP machine prep: Add i82374 DMA emulation prep: Add i82378 PCI-to-ISA bridge emulation prep: Use i82378 PCI->ISA bridge for 'prep' machine MAINTAINERS | 1 + Makefile.objs | 2 + default-configs/ppc-softmmu.mak | 3 + hw/i82374.c | 154 ++++++++++++++++++++++++ hw/i82378.c | 252 +++++++++++++++++++++++++++++++++++++++ hw/pci_ids.h | 1 + hw/ppc_prep.c | 77 +++++------- hw/prep_pci.c | 181 +++++++++++++++++----------- hw/prep_pci.h | 11 -- 9 files changed, 553 insertions(+), 129 deletions(-) create mode 100644 hw/i82374.c create mode 100644 hw/i82378.c delete mode 100644 hw/prep_pci.h -- 1.7.7