Hi, As suggested by Gerd, I've introduced a set_state() callback at ISA level and implemented it as required for pc87312.
This approach simplifies some things but currently has the drawback that the devices are disabled and potentially re-enabled for each register write. This is because in the previous patch I had tried to keep knowledge about irq / iobase to the respective ISA qdev device, whereas now we always disable it and set via unintelligent qdev property setters. Seems to call for qdev_prop_get_uint32() to check for changes... Andreas Andreas Färber (9): isa: Provide set_state callback isa: Allow to un-assign I/O ports isa: Allow to un-associate an IRQ parallel: Implement set_state callback serial: Implement ISA set_state() callback fdc: Implement ISA set_state() callback ide: Allow to discard I/O ports ide: Implement ISA set_state() callback prep: Add pc87312 Super I/O emulation Hervé Poussineau (1): fdc: Parametrize ISA base, IRQ and DMA Makefile.objs | 1 + default-configs/ppc-softmmu.mak | 2 + hw/fdc.c | 57 ++++-- hw/ide/core.c | 8 + hw/ide/internal.h | 1 + hw/ide/isa.c | 27 ++- hw/isa-bus.c | 37 ++++ hw/isa.h | 5 + hw/parallel.c | 67 ++++-- hw/pc87312.c | 438 +++++++++++++++++++++++++++++++++++++++ hw/serial.c | 25 ++- 11 files changed, 620 insertions(+), 48 deletions(-) create mode 100644 hw/pc87312.c -- 1.7.5.3