Message ID | 1496823627-17609-1-git-send-email-thuth@redhat.com |
---|---|
State | New |
Headers | show |
On Wed, Jun 07, 2017 at 10:20:27AM +0200, Thomas Huth wrote: > SLOF uses "pci" as name for PCI bridges nodes in the device tree instead > of "pci-bridges", so booting via bootindex from a device behind a PCI > bridge currently does not work since QEMU passes the wrong name in the > "qemu,boot-list" property. Fix it by changing the name of the PCI bridge > nodes to "pci" instead. > > Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1459170 > Signed-off-by: Thomas Huth <thuth@redhat.com> Applied to ppc-for-2.10. > --- > hw/ppc/spapr.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 91b4057..27b1f3c 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -2441,6 +2441,12 @@ static char *spapr_get_fw_dev_path(FWPathProvider *p, BusState *bus, > return g_strdup_printf("disk@%"PRIX64, (uint64_t)id << 32); > } > > + if (g_str_equal("pci-bridge", qdev_fw_name(dev))) { > + /* SLOF uses "pci" instead of "pci-bridge" for PCI bridges */ > + PCIDevice *pcidev = CAST(PCIDevice, dev, TYPE_PCI_DEVICE); > + return g_strdup_printf("pci@%x", PCI_SLOT(pcidev->devfn)); > + } > + > return NULL; > } >
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 91b4057..27b1f3c 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2441,6 +2441,12 @@ static char *spapr_get_fw_dev_path(FWPathProvider *p, BusState *bus, return g_strdup_printf("disk@%"PRIX64, (uint64_t)id << 32); } + if (g_str_equal("pci-bridge", qdev_fw_name(dev))) { + /* SLOF uses "pci" instead of "pci-bridge" for PCI bridges */ + PCIDevice *pcidev = CAST(PCIDevice, dev, TYPE_PCI_DEVICE); + return g_strdup_printf("pci@%x", PCI_SLOT(pcidev->devfn)); + } + return NULL; }
SLOF uses "pci" as name for PCI bridges nodes in the device tree instead of "pci-bridges", so booting via bootindex from a device behind a PCI bridge currently does not work since QEMU passes the wrong name in the "qemu,boot-list" property. Fix it by changing the name of the PCI bridge nodes to "pci" instead. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1459170 Signed-off-by: Thomas Huth <thuth@redhat.com> --- hw/ppc/spapr.c | 6 ++++++ 1 file changed, 6 insertions(+)