From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58597) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTcZl-0002bs-Cz for qemu-devel@nongnu.org; Mon, 06 Jun 2011 12:22:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QTcZg-000372-9M for qemu-devel@nongnu.org; Mon, 06 Jun 2011 12:22:48 -0400 Received: from fmmailgate03.web.de ([217.72.192.234]:41077) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTcZe-00036M-MA for qemu-devel@nongnu.org; Mon, 06 Jun 2011 12:22:43 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 6 Jun 2011 18:20:49 +0200 Message-Id: <1307377259-41434-1-git-send-email-andreas.faerber@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: andreas.faerber@web.de Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [RFC 00/10] ISA reconfigurability List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Andreas=20F=C3=A4rber?= , hpoussin@reactos.org, kraxel@redhat.com Hello, The current qdev model seems to assume that a PC is equipped with the con= trollers and devices (part of the default config or) explicitly passed as paramete= rs 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 aggreg= ates 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 bo= ot. The original patch by Herv=C3=A9 unplugged and added new isa-parallel, et= c. devices for each reconfiguration. That failed because the devices are not meant t= o be hot-pluggable. This series proposes a new solution: helpers that reconfigure existing IS= ADevices. 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]() failur= es but would crowd the qtree and thus be a user-visible change. Further, some qdev devices like isa-parallel and isa-serial seem to depen= d on a valid char device. The runtime choice of whether to enable the parallel p= ort is obviously independent of whether the user supplied us with a valid chr pr= operty. Do we have a nop char driver to use in such a case? Thanks, Andreas Andreas F=C3=A4rber (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=C3=A9 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 --=20 1.7.5.3