From: "Andreas Färber" <andreas.faerber@web.de>
To: Alexander Graf <agraf@suse.de>
Cc: "Hervé Poussineau" <hpoussin@reactos.org>,
"Anthony Liguori" <aliguori@us.ibm.com>,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 2/3] prep: Add Raven PCI host SysBus device
Date: Wed, 11 Jan 2012 23:24:19 +0100 [thread overview]
Message-ID: <4F0E0C13.60008@web.de> (raw)
In-Reply-To: <4BFAF924-2CB2-45DB-9DB4-1148B5A741E7@suse.de>
Am 11.01.2012 23:12, schrieb Alexander Graf:
>
> 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 <andreas.faerber@web.de>
>> Cc: Hervé Poussineau <hpoussin@reactos.org>
>> Cc: Michael S. Tsirkin <mst@redhat.com>
>> Cc: Anthony Liguori <aliguori@us.ibm.com>
>> ---
>> 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 :).
That's a TODO for a later patch. As you can see, those lines were not
introduced in this series. For the PCI-ISA bridge, we need to get rid of
qemu_irq *pic anyway - that's what the commit message refers to. Should
clarify that, thanks.
>> + 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.
I don't see how that could work for PReP: prep_set_irq and prep_map_irq
need the IRQs allocated by the i8259 on the upcoming i82378 PCI-ISA
bridge, which as a PCIDevice needs the PCI host bridge set up already...
To allow for board-specific setup (prep vs. 40p) v2 uses pci_bus_new()
there and uses pci_bus_irqs() on the board. :)
Andreas
next prev parent reply other threads:[~2012-01-11 22:26 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-07 0:06 [Qemu-devel] [PATCH v2 0/3] qdev'ify PReP PCI host bridge Andreas Färber
2012-01-07 0:06 ` [Qemu-devel] [PATCH v2 1/3] prep: qdev'ify Raven " Andreas Färber
2012-01-11 22:00 ` Anthony Liguori
2012-01-07 0:06 ` [Qemu-devel] [PATCH v2 2/3] prep: Add Raven PCI host SysBus device Andreas Färber
2012-01-11 22:01 ` Anthony Liguori
2012-01-11 22:12 ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2012-01-11 22:24 ` Andreas Färber [this message]
2012-01-07 0:06 ` [Qemu-devel] [PATCH v2 3/3] MAINTAINERS: Add PCI host bridge files to PReP machine Andreas Färber
2012-01-11 21:57 ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 0/8] qdev'ify PReP PCI host bridge and add PCI-to-ISA bridge Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 1/8] prep: qdev'ify Raven host bridge (PCIDevice) Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 2/8] prep_pci: Simplify I/O endianness Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 3/8] prep_pci: Update I/O to MemoryRegion ops Andreas Färber
2012-01-15 9:19 ` Avi Kivity
2012-01-16 15:08 ` Andreas Färber
2012-01-16 15:15 ` Avi Kivity
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 4/8] prep: qdev'ify Raven host bridge (SysBus) Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 5/8] MAINTAINERS: Add PCI host bridge files to PReP machine Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 6/8] prep: Add i82374 DMA emulation Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 7/8] prep: Add i82378 PCI-to-ISA bridge emulation Andreas Färber
2012-01-13 3:09 ` [Qemu-devel] [PATCH v3 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine Andreas Färber
2012-01-13 9:21 ` Jan Kiszka
2012-01-13 15:57 ` Andreas Färber
2012-01-13 16:08 ` Jan Kiszka
2012-01-13 16:23 ` Alexander Graf
2012-01-13 16:45 ` Jan Kiszka
2012-01-13 3:33 ` [Qemu-devel] [PATCH v3 0/8] qdev'ify PReP PCI host bridge and add PCI-to-ISA bridge Andreas Färber
2012-01-13 11:42 ` Alexander Graf
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 " Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 1/8] prep: qdev'ify Raven host bridge (PCIDevice) Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 2/8] prep_pci: Simplify I/O endianness Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 3/8] prep_pci: Update I/O to MemoryRegion ops Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 4/8] prep: qdev'ify Raven host bridge (SysBus) Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 5/8] MAINTAINERS: Add PCI host bridge files to PReP machine Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 6/8] prep: Add i82374 DMA emulation Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 7/8] prep: Add i82378 PCI-to-ISA bridge emulation Andreas Färber
2012-01-13 19:03 ` [Qemu-devel] [PATCH v4 8/8] prep: Use i82378 PCI->ISA bridge for 'prep' machine Andreas Färber
2012-01-16 14:49 ` [Qemu-devel] [PATCH v4 0/8] qdev'ify PReP PCI host bridge and add PCI-to-ISA bridge Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 0/6] " Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 1/6] prep_pci: Update I/O to MemoryRegion ops Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 2/6] prep: qdev'ify Raven host bridge (SysBus) Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 3/6] MAINTAINERS: Add PCI host bridge files to PReP machine Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 4/6] prep: Add i82374 DMA emulation Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 5/6] prep: Add i82378 PCI-to-ISA bridge emulation Andreas Färber
2012-01-16 16:18 ` [Qemu-devel] [PATCH v5 6/6] prep: Use i82378 PCI->ISA bridge for 'prep' machine Andreas Färber
2012-01-19 23:40 ` [Qemu-devel] [PATCH v5 0/6] qdev'ify PReP PCI host bridge and add PCI-to-ISA bridge Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F0E0C13.60008@web.de \
--to=andreas.faerber@web.de \
--cc=agraf@suse.de \
--cc=aliguori@us.ibm.com \
--cc=hpoussin@reactos.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.