From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:48965) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rl6FF-0003mg-9U for qemu-devel@nongnu.org; Wed, 11 Jan 2012 17:02:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rl6F8-0008G5-N9 for qemu-devel@nongnu.org; Wed, 11 Jan 2012 17:02:09 -0500 Message-ID: <4F0E06D5.4050005@codemonkey.ws> Date: Wed, 11 Jan 2012 16:01:57 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1325894809-17322-1-git-send-email-andreas.faerber@web.de> <1325894809-17322-3-git-send-email-andreas.faerber@web.de> In-Reply-To: <1325894809-17322-3-git-send-email-andreas.faerber@web.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 2/3] prep: Add Raven PCI host SysBus device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= Cc: qemu-ppc@nongnu.org, Anthony Liguori , =?UTF-8?B?SGVydsOpIFBvdXNzaW5lYXU=?= , qemu-devel@nongnu.org, "Michael S. Tsirkin" On 01/06/2012 06:06 PM, Andreas Färber wrote: > For now, focus on qdev'ification and leave PIC IRQs unchanged. > > Signed-off-by: Andreas Färber > Cc: Hervé Poussineau > Cc: Michael S. Tsirkin > Cc: Anthony Liguori > --- > hw/prep_pci.c | 41 +++++++++++++++++++++++++++++++---------- > 1 files changed, 31 insertions(+), 10 deletions(-) > > diff --git a/hw/prep_pci.c b/hw/prep_pci.c > index 741b273..2ff6b8c 100644 > --- a/hw/prep_pci.c > +++ b/hw/prep_pci.c > @@ -114,31 +114,43 @@ PCIBus *pci_prep_init(qemu_irq *pic, > MemoryRegion *address_space_mem, > MemoryRegion *address_space_io) > { > + DeviceState *dev; > PREPPCIState *s; > > - s = g_malloc0(sizeof(PREPPCIState)); > - s->bus = pci_register_bus(NULL, "pci", > + dev = qdev_create(NULL, "raven-pcihost"); > + s = FROM_SYSBUS(PREPPCIState, sysbus_from_qdev(dev)); > + s->address_space = address_space_mem; > + s->bus = pci_register_bus(&s->busdev.qdev, "pci", > prep_set_irq, prep_map_irq, pic, > address_space_mem, > address_space_io, > 0, 4); > + qdev_init_nofail(dev); > + qdev_property_add_child(qdev_get_root(), "raven", dev, NULL); > + > + memory_region_init_io(&s->mmcfg,&PPC_PCIIO_ops, s, "pciio", 0x00400000); > + memory_region_add_subregion(address_space_mem, 0x80800000,&s->mmcfg); > + > + pci_create_simple(s->bus, 0, "raven"); > + > + return s->bus; > +} > + > +static int raven_pcihost_init(SysBusDevice *dev) > +{ > + PREPPCIState *s = FROM_SYSBUS(PREPPCIState, dev); > > memory_region_init_io(&s->conf_mem,&pci_host_conf_be_ops, s, > "pci-conf-idx", 1); > - memory_region_add_subregion(address_space_io, 0xcf8,&s->conf_mem); > + sysbus_add_io(dev, 0xcf8,&s->conf_mem); > sysbus_init_ioports(&s->busdev, 0xcf8, 1); > > memory_region_init_io(&s->data_mem,&pci_host_data_be_ops, s, > "pci-conf-data", 1); > - memory_region_add_subregion(address_space_io, 0xcfc,&s->data_mem); > + sysbus_add_io(dev, 0xcfc,&s->data_mem); > sysbus_init_ioports(&s->busdev, 0xcfc, 1); > > - memory_region_init_io(&s->mmcfg,&PPC_PCIIO_ops, s, "pciio", 0x00400000); > - memory_region_add_subregion(address_space_mem, 0x80800000,&s->mmcfg); > - > - pci_create_simple(s->bus, 0, "raven"); > - > - return s->bus; > + return 0; > } > > static int raven_init(PCIDevice *d) > @@ -177,8 +189,17 @@ static PCIDeviceInfo raven_info = { > }, > }; > > +static SysBusDeviceInfo raven_pcihost_info = { > + .qdev.name = "raven-pcihost", > + .qdev.fw_name = "pci", > + .qdev.size = sizeof(PREPPCIState), > + .qdev.no_user = 1, > + .init = raven_pcihost_init, > +}; > + > static void raven_register_devices(void) > { > + sysbus_register_withprop(&raven_pcihost_info); > pci_qdev_register(&raven_info); I see now :-) Ignore previous message. Regards, Anthony Liguori > } >