summaryrefslogtreecommitdiffstats
path: root/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
diff options
context:
space:
mode:
authorDong, Guo <guo.dong@intel.com>2016-10-26 07:53:37 +0800
committerJiewen Yao <jiewen.yao@intel.com>2016-10-28 07:46:42 +0800
commit4d4b81697cdb998067e93ee51b4f26dc8f86afe3 (patch)
tree070d35619784b6172dec8355e66347312e2fabfa /IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
parentd1b757e2cd034e32676c5cc2d542f785e74f8c5d (diff)
downloadedk2-4d4b81697cdb998067e93ee51b4f26dc8f86afe3.tar.gz
edk2-4d4b81697cdb998067e93ee51b4f26dc8f86afe3.tar.bz2
edk2-4d4b81697cdb998067e93ee51b4f26dc8f86afe3.zip
IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete.
PciEnumerationComplete might be signaled to FSP in Coreboot. So FSP wrapper driver don't need send it again. Add a PCD to control if a FSP API could be skipped from FspWrapperNotifyDxe driver. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Dong <guo.dong@intel.com> Reviewed-by: Maurice Ma <maurice.ma@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Diffstat (limited to 'IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c')
-rw-r--r--IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
index a69263278d..a2fe18c2da 100644
--- a/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
+++ b/IntelFsp2WrapperPkg/FspWrapperNotifyDxe/FspWrapperNotifyDxe.c
@@ -27,6 +27,8 @@
#include <Library/HobLib.h>
#include <FspStatusCode.h>
+#define FSP_API_NOTIFY_PHASE_AFTER_PCI_ENUMERATION BIT16
+
typedef
EFI_STATUS
(EFIAPI * ADD_PERFORMANCE_RECORDS)(
@@ -236,6 +238,7 @@ FspWrapperNotifyDxeEntryPoint (
EFI_EVENT ReadyToBootEvent;
VOID *Registration;
EFI_EVENT ProtocolNotifyEvent;
+ UINT32 FspApiMask;
//
// Load this driver's image to memory
@@ -245,14 +248,17 @@ FspWrapperNotifyDxeEntryPoint (
return EFI_SUCCESS;
}
- ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
- &gEfiPciEnumerationCompleteProtocolGuid,
- TPL_CALLBACK,
- OnPciEnumerationComplete,
- NULL,
- &Registration
- );
- ASSERT (ProtocolNotifyEvent != NULL);
+ FspApiMask = PcdGet32 (PcdSkipFspApi);
+ if ((FspApiMask & FSP_API_NOTIFY_PHASE_AFTER_PCI_ENUMERATION) == 0) {
+ ProtocolNotifyEvent = EfiCreateProtocolNotifyEvent (
+ &gEfiPciEnumerationCompleteProtocolGuid,
+ TPL_CALLBACK,
+ OnPciEnumerationComplete,
+ NULL,
+ &Registration
+ );
+ ASSERT (ProtocolNotifyEvent != NULL);
+ }
Status = EfiCreateEventReadyToBootEx (
TPL_CALLBACK,