[libvirt] [PATCH] qemu: add PCI-multibus support for ppc
Hong-Hua.Yin at freescale.com
Hong-Hua.Yin at freescale.com
Fri Feb 28 09:10:47 UTC 2014
Hi Daniel,
Refer to libvirt/src/qemu/qemu_capabilities.c, only x86_64/i686 support PCI_MULTIBUS.
/* Currently only x86_64 and i686 support PCI-multibus. */
if (qemuCaps->arch == VIR_ARCH_X86_64 ||
qemuCaps->arch == VIR_ARCH_I686) {
virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS);
libvirt/src/qemu/qemu_capabilities.h:
QEMU_CAPS_PCI_MULTIBUS = 52, /* bus=pci.0 vs bus=pci */
Exactly there're several PowerPC platforms also use pci.0 as PCI bus name.
$ grep -r "pci\.0" qemu/hw/
qemu/hw/ppc/prep.c: pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
qemu/hw/ppc/e500.c: pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
qemu/hw/ppc/ppc440_bamboo.c: pcibus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
There's no much platform specific code in libvirt.
How can we get the exact PCI bus name and make "pci.0" work on the above PowerPC platforms?
Best Regards,
Olivia
> -----Original Message-----
> From: Daniel P. Berrange [mailto:berrange at redhat.com]
> Sent: Wednesday, March 20, 2013 7:04 PM
> To: Yin Olivia-R63875
> Cc: libvir-list at redhat.com
> Subject: Re: [PATCH] qemu: add PCI-multibus support for ppc
>
> On Wed, Mar 20, 2013 at 02:11:51AM +0000, Yin Olivia-R63875 wrote:
> > Hi Daniel,
> >
> > PPC also supports PCI multibus. Could you please help review this patch?
>
> IIUC, PPC did not support PCI multibus in the past, so when did this
> change ? Libvirt needs to only use this for versions where it is supported,
> so unconditionally enabling it for all PPC is not right.
>
> > > -----Original Message-----
> > > From: Yin Olivia-R63875
> > > Sent: Wednesday, March 13, 2013 12:44 PM
> > > To: libvir-list at redhat.com
> > > Cc: Yin Olivia-R63875
> > > Subject: [PATCH] qemu: add PCI-multibus support for ppc
> > >
> > > Signed-off-by: Olivia Yin <hong-hua.yin at freescale.com>
> > > ---
> > > src/qemu/qemu_capabilities.c | 10 ++++++++++
> > > 1 files changed, 10 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/src/qemu/qemu_capabilities.c
> > > b/src/qemu/qemu_capabilities.c index 7bc1ebc..7d7791d 100644
> > > --- a/src/qemu/qemu_capabilities.c
> > > +++ b/src/qemu/qemu_capabilities.c
> > > @@ -2209,6 +2209,11 @@ virQEMUCapsInitHelp(virQEMUCapsPtr qemuCaps,
> > > uid_t runUid, gid_t runGid)
> > > virQEMUCapsClear(qemuCaps, QEMU_CAPS_NO_ACPI);
> > > }
> > >
> > > + /* ppc support PCI-multibus */
> > > + if (qemuCaps->arch == VIR_ARCH_PPC) {
> > > + virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS);
> > > + }
> > > +
> > > /* virQEMUCapsExtractDeviceStr will only set additional caps if
> qemu
> > > * understands the 0.13.0+ notion of "-device driver,". */
> > > if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE) && @@ -2450,6
> > > +2455,11 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
> > > virQEMUCapsSet(qemuCaps, QEMU_CAPS_NO_ACPI);
> > > }
> > >
> > > + /* ppc support PCI-multibus */
> > > + if (qemuCaps->arch == VIR_ARCH_PPC) {
> > > + virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS);
> > > + }
> > > +
> > > if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
> > > goto cleanup;
> > > if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0)
> > > --
>
>
> Daniel
> --
> |: http://berrange.com -o-
> http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org -o- http://virt-
> manager.org :|
> |: http://autobuild.org -o-
> http://search.cpan.org/~danberr/ :|
> |: http://entangle-photo.org -o- http://live.gnome.org/gtk-
> vnc :|
More information about the libvir-list
mailing list