From patchwork Wed Aug 10 22:28:11 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 109467 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id C078BB6F90 for ; Thu, 11 Aug 2011 08:29:35 +1000 (EST) Received: from localhost ([::1]:47387 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QrHHI-0003wG-Vn for incoming@patchwork.ozlabs.org; Wed, 10 Aug 2011 18:29:32 -0400 Received: from eggs.gnu.org ([140.186.70.92]:49665) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QrHH8-0003iY-67 for qemu-devel@nongnu.org; Wed, 10 Aug 2011 18:29:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QrHH6-0006Lk-Kh for qemu-devel@nongnu.org; Wed, 10 Aug 2011 18:29:21 -0400 Received: from mail-ww0-f53.google.com ([74.125.82.53]:54887) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QrHH6-0006La-9u for qemu-devel@nongnu.org; Wed, 10 Aug 2011 18:29:20 -0400 Received: by wwf25 with SMTP id 25so1339901wwf.10 for ; Wed, 10 Aug 2011 15:29:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; bh=i6jWhCh1AH14YRCKSHLvO5YDdqVgH95j2aAv1KEd86Q=; b=eqhZ1mBfDvzYb/nyv5lQTvpBL0MH1s00ogDUep1WVucu1IJpaE0IzWQZ2DZb0KZKFv 8pJg7G20gu5vGa9rCSqoaGezGgKd3RdkK5nQrwOseyRTL2cXFx3zs81KFb+YZ3I52RCJ XSWke7YkDKmjVs36Bx9YSJ6BcKi/vkxb+bkOI= Received: by 10.216.141.137 with SMTP id g9mr1946087wej.74.1313015359414; Wed, 10 Aug 2011 15:29:19 -0700 (PDT) Received: from localhost.localdomain (c-71-227-161-214.hsd1.wa.comcast.net [71.227.161.214]) by mx.google.com with ESMTPS id m38sm880619weq.21.2011.08.10.15.29.17 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 10 Aug 2011 15:29:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 10 Aug 2011 15:28:11 -0700 Message-Id: <1313015300-23920-3-git-send-email-rth@twiddle.net> X-Mailer: git-send-email 1.7.6 In-Reply-To: <1313015300-23920-1-git-send-email-rth@twiddle.net> References: <1313015300-23920-1-git-send-email-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 74.125.82.53 Cc: avi@redhat.com Subject: [Qemu-devel] [PATCH 02/11] isa: Pass i/o address space to isa_bus_new. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Not used yet, but at least we're provided with the correct region. Signed-off-by: Richard Henderson --- hw/isa-bus.c | 4 +++- hw/isa.h | 2 +- hw/mips_jazz.c | 17 ++++++++++------- hw/mips_r4k.c | 2 +- hw/pc_piix.c | 2 +- hw/piix4.c | 2 +- hw/piix_pci.c | 2 +- hw/ppc_prep.c | 2 +- hw/sun4u.c | 2 +- hw/vt82c686.c | 2 +- 10 files changed, 21 insertions(+), 16 deletions(-) diff --git a/hw/isa-bus.c b/hw/isa-bus.c index 1cb497f..d067505 100644 --- a/hw/isa-bus.c +++ b/hw/isa-bus.c @@ -24,6 +24,7 @@ struct ISABus { BusState qbus; + MemoryRegion *address_space_io; qemu_irq *irqs; }; static ISABus *isabus; @@ -39,7 +40,7 @@ static struct BusInfo isa_bus_info = { .get_fw_dev_path = isabus_get_fw_dev_path, }; -ISABus *isa_bus_new(DeviceState *dev) +ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space_io) { if (isabus) { fprintf(stderr, "Can't create a second ISA bus\n"); @@ -51,6 +52,7 @@ ISABus *isa_bus_new(DeviceState *dev) } isabus = FROM_QBUS(ISABus, qbus_create(&isa_bus_info, dev, NULL)); + isabus->address_space_io = address_space_io; return isabus; } diff --git a/hw/isa.h b/hw/isa.h index f344699..390e2d4 100644 --- a/hw/isa.h +++ b/hw/isa.h @@ -25,7 +25,7 @@ struct ISADeviceInfo { isa_qdev_initfn init; }; -ISABus *isa_bus_new(DeviceState *dev); +ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space_io); void isa_bus_irqs(qemu_irq *irqs); qemu_irq isa_get_irq(int isairq); void isa_init_irq(ISADevice *dev, qemu_irq *p, int isairq); diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c index f7a6579..0faba41 100644 --- a/hw/mips_jazz.c +++ b/hw/mips_jazz.c @@ -103,10 +103,11 @@ static void cpu_request_exit(void *opaque, int irq, int level) } } -static -void mips_jazz_init (MemoryRegion *address_space, ram_addr_t ram_size, - const char *cpu_model, - enum jazz_model_e jazz_model) +static void mips_jazz_init(MemoryRegion *address_space, + MemoryRegion *address_space_io, + ram_addr_t ram_size, + const char *cpu_model, + enum jazz_model_e jazz_model) { char *filename; int bios_size, n; @@ -182,7 +183,7 @@ void mips_jazz_init (MemoryRegion *address_space, ram_addr_t ram_size, /* ISA devices */ i8259 = i8259_init(env->irq[4]); - isa_bus_new(NULL); + isa_bus_new(NULL, address_space_io); isa_bus_irqs(i8259); cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1); DMA_init(0, cpu_exit_irq); @@ -289,7 +290,8 @@ void mips_magnum_init (MemoryRegion *address_space_mem, const char *kernel_filename, const char *kernel_cmdline, const char *initrd_filename, const char *cpu_model) { - mips_jazz_init(address_space_mem, ram_size, cpu_model, JAZZ_MAGNUM); + mips_jazz_init(address_space_mem, address_space_io, + ram_size, cpu_model, JAZZ_MAGNUM); } static @@ -300,7 +302,8 @@ void mips_pica61_init (MemoryRegion *address_space_mem, const char *kernel_filename, const char *kernel_cmdline, const char *initrd_filename, const char *cpu_model) { - mips_jazz_init(address_space_mem, ram_size, cpu_model, JAZZ_PICA61); + mips_jazz_init(address_space_mem, address_space_io, + ram_size, cpu_model, JAZZ_PICA61); } static QEMUMachine mips_magnum_machine = { diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c index 499a06e..d858807 100644 --- a/hw/mips_r4k.c +++ b/hw/mips_r4k.c @@ -260,7 +260,7 @@ void mips_r4k_init (MemoryRegion *address_space_mem, /* The PIC is attached to the MIPS CPU INT0 pin */ i8259 = i8259_init(env->irq[2]); - isa_bus_new(NULL); + isa_bus_new(NULL, address_space_io); isa_bus_irqs(i8259); rtc_init(2000, NULL); diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 675fad3..709a1c3 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -149,7 +149,7 @@ static void pc_init1(MemoryRegion *system_memory, } else { pci_bus = NULL; i440fx_state = NULL; - isa_bus_new(NULL); + isa_bus_new(NULL, system_io); } isa_bus_irqs(isa_irq); diff --git a/hw/piix4.c b/hw/piix4.c index 9590e7b..2fd1171 100644 --- a/hw/piix4.c +++ b/hw/piix4.c @@ -87,7 +87,7 @@ static int piix4_initfn(PCIDevice *dev) { PIIX4State *d = DO_UPCAST(PIIX4State, dev, dev); - isa_bus_new(&d->dev.qdev); + isa_bus_new(&d->dev.qdev, pci_address_space_io(dev)); piix4_dev = &d->dev; qemu_register_reset(piix4_reset, d); return 0; diff --git a/hw/piix_pci.c b/hw/piix_pci.c index 8f6ea42..d183443 100644 --- a/hw/piix_pci.c +++ b/hw/piix_pci.c @@ -504,7 +504,7 @@ static int piix3_initfn(PCIDevice *dev) { PIIX3State *d = DO_UPCAST(PIIX3State, dev, dev); - isa_bus_new(&d->dev.qdev); + isa_bus_new(&d->dev.qdev, pci_address_space_io(dev)); qemu_register_reset(piix3_reset, d); return 0; } diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c index d8f9fb9..07de957 100644 --- a/hw/ppc_prep.c +++ b/hw/ppc_prep.c @@ -653,7 +653,7 @@ static void ppc_prep_init (MemoryRegion *address_space_mem, i8259 = i8259_init(first_cpu->irq_inputs[PPC6xx_INPUT_INT]); pci_bus = pci_prep_init(i8259, get_system_memory(), get_system_io()); /* Hmm, prep has no pci-isa bridge ??? */ - isa_bus_new(NULL); + isa_bus_new(NULL, address_space_io); isa_bus_irqs(i8259); // pci_bus = i440fx_init(); /* Register 8 MB of ISA IO space (needed for non-contiguous map) */ diff --git a/hw/sun4u.c b/hw/sun4u.c index 1150a15..b6421cb 100644 --- a/hw/sun4u.c +++ b/hw/sun4u.c @@ -544,7 +544,7 @@ pci_ebus_init1(PCIDevice *pci_dev) { EbusState *s = DO_UPCAST(EbusState, pci_dev, pci_dev); - isa_bus_new(&pci_dev->qdev); + isa_bus_new(&pci_dev->qdev, pci_address_space_io(pci_dev)); pci_dev->config[0x04] = 0x06; // command = bus master, pci mem pci_dev->config[0x05] = 0x00; diff --git a/hw/vt82c686.c b/hw/vt82c686.c index 5c973ed..e2b179e 100644 --- a/hw/vt82c686.c +++ b/hw/vt82c686.c @@ -490,7 +490,7 @@ static int vt82c686b_initfn(PCIDevice *d) uint8_t *wmask; int i; - isa_bus_new(&d->qdev); + isa_bus_new(&d->qdev, pci_address_space_io(d)); pci_conf = d->config; pci_config_set_prog_interface(pci_conf, 0x0);