[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 2/3] prep: Add Raven PCI host SysB
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 2/3] prep: Add Raven PCI host SysBus device |
Date: |
Wed, 11 Jan 2012 23:12:09 +0100 |
On 07.01.2012, at 01:06, Andreas Färber wrote:
> For now, focus on qdev'ification and leave PIC IRQs unchanged.
>
> Signed-off-by: Andreas Färber <address@hidden>
> Cc: Hervé Poussineau <address@hidden>
> Cc: Michael S. Tsirkin <address@hidden>
> Cc: Anthony Liguori <address@hidden>
> ---
> 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)
> {
I'm not sure this is the best way to do this. For e500, we just create the host
bridge explicitly in the board file:
/* PCI */
dev = sysbus_create_varargs("e500-pcihost", MPC8544_PCI_REGS_BASE,
mpic[pci_irq_nrs[0]], mpic[pci_irq_nrs[1]],
mpic[pci_irq_nrs[2]], mpic[pci_irq_nrs[3]],
NULL);
pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
if (!pci_bus)
printf("couldn't create PCI controller!\n");
and that's all the interaction there is between the pci host code and the board
code. No calling into functions. The way you're doing it now, the board still
needs to call into prep_pci.c which doesn't sound too appealing to me :).
> + 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);
This should be happening in the host bridge init code. Take a look at
e500_pcihost_initfn() in hw/ppce500_pci.c.
Alex
- [Qemu-devel] [PATCH v2 0/3] qdev'ify PReP PCI host bridge, Andreas Färber, 2012/01/06
- [Qemu-devel] [PATCH v2 3/3] MAINTAINERS: Add PCI host bridge files to PReP machine, Andreas Färber, 2012/01/06
- [Qemu-devel] [PATCH v2 1/3] prep: qdev'ify Raven host bridge, Andreas Färber, 2012/01/06
- [Qemu-devel] [PATCH v2 2/3] prep: Add Raven PCI host SysBus device, Andreas Färber, 2012/01/06
- [Qemu-devel] [PATCH v3 0/8] qdev'ify PReP PCI host bridge and add PCI-to-ISA bridge, Andreas Färber, 2012/01/12
- [Qemu-devel] [PATCH v3 5/8] MAINTAINERS: Add PCI host bridge files to PReP machine, Andreas Färber, 2012/01/12
- [Qemu-devel] [PATCH v3 4/8] prep: qdev'ify Raven host bridge (SysBus), Andreas Färber, 2012/01/12
- [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine, Andreas Färber, 2012/01/12
- Re: [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine, Jan Kiszka, 2012/01/13
- Re: [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine, Andreas Färber, 2012/01/13
- Re: [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine, Jan Kiszka, 2012/01/13
- Re: [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine, Alexander Graf, 2012/01/13
- Re: [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine, Jan Kiszka, 2012/01/13