mirror of https://github.com/acidanthera/audk.git
Per the UEFI spec, if a PCI controller is a P2P bridge, then the I/O, Memory and Bus Master bits in the Command register of the PCI configuration header should be placed in the enabled state by the PCI Bus driver.
But current PCI bus driver has a bug that if a P2P bridge has no child devices detected during enumeration, the bits won’t be set. This may impact PCI hot plug capable bridges because the OS may re-assign resources for them causing the reserved resource by the firmware will be overwritten. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11013 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
fefefa4cb1
commit
13fd0d50b5
|
@ -694,7 +694,7 @@ StartPciDevicesOnBridge (
|
||||||
//
|
//
|
||||||
// If it is a PPB
|
// If it is a PPB
|
||||||
//
|
//
|
||||||
if (!IsListEmpty (&PciIoDevice->ChildList)) {
|
if (IS_PCI_BRIDGE (&PciIoDevice->Pci)) {
|
||||||
Status = StartPciDevicesOnBridge (
|
Status = StartPciDevicesOnBridge (
|
||||||
Controller,
|
Controller,
|
||||||
PciIoDevice,
|
PciIoDevice,
|
||||||
|
@ -746,7 +746,7 @@ StartPciDevicesOnBridge (
|
||||||
(*NumberOfChildren)++;
|
(*NumberOfChildren)++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!IsListEmpty (&PciIoDevice->ChildList)) {
|
if (IS_PCI_BRIDGE (&PciIoDevice->Pci)) {
|
||||||
Status = StartPciDevicesOnBridge (
|
Status = StartPciDevicesOnBridge (
|
||||||
Controller,
|
Controller,
|
||||||
PciIoDevice,
|
PciIoDevice,
|
||||||
|
|
Loading…
Reference in New Issue