On 05/09/16 08:26, Ruiyu Ni wrote:
> 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 <[email protected]>
> Cc: Laszlo Ersek <[email protected]>
> Cc: Jeff Fan <[email protected]>
> ---
>  MdeModulePkg/Include/Library/PciHostBridgeLib.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/MdeModulePkg/Include/Library/PciHostBridgeLib.h 
> b/MdeModulePkg/Include/Library/PciHostBridgeLib.h
> index eb45cfd..7ef5dd1 100644
> --- a/MdeModulePkg/Include/Library/PciHostBridgeLib.h
> +++ b/MdeModulePkg/Include/Library/PciHostBridgeLib.h
> @@ -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 when 
> Bus/IO/MMIO resources for root bridge are assigned.

Instead of

  when Bus/IO/MMIO resources for root bridge are assigned

I propose

  if Bus/IO/MMIO resources for root bridge have been assigned

With that:

Reviewed-by: Laszlo Ersek <[email protected]>

Thanks!
Laszlo

>    UINT64                   AllocationAttributes;  ///< Allocation attributes.
>                                                    ///< Refer to 
> EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM and
>                                                    ///< 
> EFI_PCI_HOST_BRIDGE_MEM64_DECODE used by GetAllocAttributes()
> 


_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to