Message ID | 3d449bc6030904ead784a4e4644c9640c2152796.1691770630.git.mst@redhat.com |
---|---|
State | New |
Headers | show |
Series | [PULL,1/2] hw/pci-host: Allow extended config space access for Designware PCIe host | expand |
On 11/8/23 18:18, Michael S. Tsirkin wrote: > From: Jason Chien <jason.chien@sifive.com> > > In pcie_bus_realize(), a root bus is realized as a PCIe bus and a non-root > bus is realized as a PCIe bus if its parent bus is a PCIe bus. However, > the child bus "dw-pcie" is realized before the parent bus "pcie" which is > the root PCIe bus. Thus, the extended configuration space is not accessible > on "dw-pcie". The issue can be resolved by adding the > PCI_BUS_EXTENDED_CONFIG_SPACE flag to "pcie" before "dw-pcie" is realized. > > Signed-off-by: Jason Chien <jason.chien@sifive.com> > Message-Id: <20230809102257.25121-1-jason.chien@sifive.com> > Reviewed-by: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > Reviewed-by: Frank Chang <frank.chang@sifive.com> > Signed-off-by: Jason Chien <<a href="mailto:jason.chien@sifive.com" target="_blank">jason.chien@sifive.com</a>><br> <8^) > --- > hw/pci-host/designware.c | 1 + > 1 file changed, 1 insertion(+)
diff --git a/hw/pci-host/designware.c b/hw/pci-host/designware.c index 9e183caa48..388d252ee2 100644 --- a/hw/pci-host/designware.c +++ b/hw/pci-host/designware.c @@ -694,6 +694,7 @@ static void designware_pcie_host_realize(DeviceState *dev, Error **errp) &s->pci.io, 0, 4, TYPE_PCIE_BUS); + pci->bus->flags |= PCI_BUS_EXTENDED_CONFIG_SPACE; memory_region_init(&s->pci.address_space_root, OBJECT(s),