mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/PciHostBridgeLib: Add ResourceAssigned field
Some platform doesn't require PciBus driver to assign resource to PCI devices which causes PciRootBridgeIo.Configuration() cannot return correct resource information to caller. When resource assignment by PciBus is not mandatory, only light version of PCI bus enumeration is performed, which only collects the device resource consumption and publishes the PciIo instance. The corresponding logic is in PciEnumeratorLight() in PciBus driver. But PciEnumeratorLight() still depends on PciRootBridgeIo.Configuration() returns the starting bus number in order to search down to find all PCI devices under the root bridge. When ResourceAssigned in PCI_ROOT_BRIDGE returned by PciHostBridgeGetRootBridges() is TRUE, PciHostBridge driver treats the Bus/Io/Mem/MemAbove4G/PMem/PMemAbove4G as the resource that are *actually assigned* to the root bridge, instead of the resource that *can be assigned* to the root bridge. So that PciRootBridgeIo.Configuration() can return the correct information. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
c3933ccbba
commit
c5be19f378
|
@ -38,6 +38,8 @@ typedef struct {
|
|||
///< Extended (4096-byte) Configuration Space.
|
||||
///< When TRUE, the root bridge supports
|
||||
///< 256-byte Configuration Space only.
|
||||
BOOLEAN ResourceAssigned; ///< Resource assignment status of the root bridge.
|
||||
///< Set to TRUE if Bus/IO/MMIO resources for root bridge have been assigned.
|
||||
UINT64 AllocationAttributes; ///< Allocation attributes.
|
||||
///< Refer to EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM and
|
||||
///< EFI_PCI_HOST_BRIDGE_MEM64_DECODE used by GetAllocAttributes()
|
||||
|
|
Loading…
Reference in New Issue