Hello, The current qdev model seems to assume that a PC is equipped with the controllers and devices (part of the default config or) explicitly passed as parameters by the user.
In reality though, a PC is usually equipped with a fixed set of internal devices, which can be enabled/disabled and configured from the BIOS menu. Similarly, the PC87312 Super I/O chipset used in IBM PReP machines aggregates a number of PC-compatible devices and allows to reconfigure them through register writes. This is actually done by the real IBM firmware we're trying to boot. The original patch by Hervé unplugged and added new isa-parallel, etc. devices for each reconfiguration. That failed because the devices are not meant to be hot-pluggable. This series proposes a new solution: helpers that reconfigure existing ISADevices. It also contains a resend of a prerequisite patch with updated summary. As for the remaining issue of enabling/disabling devices I'd like to hear opinions on whether we should allow hot-plugging of these devices or whether we should add an enabled/disabled state to a qdev device. The latter would help avoid guest-triggerable qdev_init[_nofail]() failures but would crowd the qtree and thus be a user-visible change. Further, some qdev devices like isa-parallel and isa-serial seem to depend on a valid char device. The runtime choice of whether to enable the parallel port is obviously independent of whether the user supplied us with a valid chr property. Do we have a nop char driver to use in such a case? Thanks, Andreas Andreas Färber (9): isa: Allow to un-assign I/O ports isa: Allow to un-associate an IRQ parallel: Allow to reconfigure ISA I/O base parallel: Allow to reconfigure ISA IRQ serial: Allow to reconfigure ISA I/O base serial: Allow to reconfigure ISA IRQ fdc: Allow to reconfigure ISA I/O base ide: Allow to reconfigure ISA I/O base 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 | 56 ++++-- hw/fdc.h | 3 + hw/ide.h | 1 + hw/ide/core.c | 8 + hw/ide/internal.h | 1 + hw/ide/isa.c | 28 +++- hw/isa-bus.c | 28 +++ hw/isa.h | 10 + hw/parallel.c | 83 ++++++-- hw/pc87312.c | 435 +++++++++++++++++++++++++++++++++++++++ hw/serial.c | 34 +++- 13 files changed, 647 insertions(+), 43 deletions(-) create mode 100644 hw/pc87312.c -- 1.7.5.3