MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=313 Add PcdPcieResizableBarSupport to enable/disable PCIe Resizable BAR Capability fearture. Program the Resizable BAR Register if the device suports PCIe Resizable BAR Capability and PcdPcieResizableBarSupport is TRUE. Cc: Ray Ni <ray.ni@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Signed-off-by: Heng Luo <heng.luo@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
Internal library declaration for PCI Bus module.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
@@ -24,6 +24,10 @@ typedef struct {
|
||||
UINT8 *AllocRes;
|
||||
} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA_PAYLOAD;
|
||||
|
||||
typedef enum {
|
||||
PciResizableBarMin = 0x00,
|
||||
PciResizableBarMax = 0xFF
|
||||
} PCI_RESIZABLE_BAR_OPERATION;
|
||||
|
||||
/**
|
||||
Retrieve the PCI Card device BAR information via PciIo interface.
|
||||
@@ -156,4 +160,20 @@ PciHostBridgeEnumerator (
|
||||
IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc
|
||||
);
|
||||
|
||||
/**
|
||||
This function is used to program the Resizable BAR Register.
|
||||
|
||||
@param PciIoDevice A pointer to the PCI_IO_DEVICE.
|
||||
@param ResizableBarOp PciResizableBarMax: Set BAR to max size
|
||||
PciResizableBarMin: set BAR to min size.
|
||||
|
||||
@retval EFI_SUCCESS Successfully enumerated the host bridge.
|
||||
@retval other Some error occurred when enumerating the host bridge.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
PciProgramResizableBar (
|
||||
IN PCI_IO_DEVICE *PciIoDevice,
|
||||
IN PCI_RESIZABLE_BAR_OPERATION ResizableBarOp
|
||||
);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user