Hello, Here's an improved initial qdev'ification series for PReP, as prerequisite for Anthony's second QOM series.
On Jan's suggestion, the i8259 IRQs are exposed through qdev GPIO-in IRQs on the i82378 PCI->ISA bridge Regards, Andreas Changes since v3: * i82378: Add i8259 IRQs as state and provide qdev GPIO-in access to them. * prep: Update wiring of IRQs. Both suggested by Jan. 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> Cc: Jan Kiszka <jan.kis...@siemens.com> 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 | 264 +++++++++++++++++++++++++++++++++++++++ hw/pci_ids.h | 1 + hw/ppc_prep.c | 76 +++++------- hw/prep_pci.c | 181 ++++++++++++++++----------- hw/prep_pci.h | 11 -- 9 files changed, 563 insertions(+), 130 deletions(-) create mode 100644 hw/i82374.c create mode 100644 hw/i82378.c delete mode 100644 hw/prep_pci.h -- 1.7.7