summaryrefslogtreecommitdiffstats
path: root/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
diff options
context:
space:
mode:
authorYao, Jiewen <jiewen.yao@intel.com>2015-02-11 02:57:40 +0000
committerjyao1 <jyao1@Edk2>2015-02-11 02:57:40 +0000
commitd5fb1edfb16a2af29486ffbf5aa32a036da9caa4 (patch)
treedf95f16fe546b440017b711973052dff0f253e0b /IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
parent6cffee0cb04e0605126d9436e2acf073aa0679bf (diff)
downloadedk2-d5fb1edfb16a2af29486ffbf5aa32a036da9caa4.tar.gz
edk2-d5fb1edfb16a2af29486ffbf5aa32a036da9caa4.tar.bz2
edk2-d5fb1edfb16a2af29486ffbf5aa32a036da9caa4.zip
Update IntelFspPkg according to FSP1.1.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com> Reviewed-by: "Rangarajan, Ravi P" <ravi.p.rangarajan@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16825 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c')
-rw-r--r--IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c57
1 files changed, 38 insertions, 19 deletions
diff --git a/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c b/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
index d405233e41..33b2ebfe12 100644
--- a/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
+++ b/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
@@ -1,6 +1,6 @@
/** @file
- Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -98,26 +98,43 @@ FspInitDone (
VOID
)
{
- FSP_INIT_PARAMS *FspInitParams;
-
- FspInitParams = (FSP_INIT_PARAMS *)GetFspApiParameter ();
-
- //
- // Modify the parameters for ContinuationFunc
- //
- SetFspContinuationFuncParameter(EFI_SUCCESS, 0);
- SetFspContinuationFuncParameter((UINT32)GetHobList(), 1);
+ FSP_INIT_PARAMS *FspInitParams;
+
+ if (GetFspApiCallingMode() == 0) {
+ //
+ // FspInit API is used, so jump into the ContinuationFunc
+ //
+ FspInitParams = (FSP_INIT_PARAMS *)GetFspApiParameter ();
+
+ //
+ // Modify the parameters for ContinuationFunc
+ //
+ SetFspContinuationFuncParameter(EFI_SUCCESS, 0);
+ SetFspContinuationFuncParameter((UINT32)GetHobList(), 1);
+
+ //
+ // Modify the return address to ContinuationFunc
+ //
+ SetFspApiReturnAddress((UINT32)FspInitParams->ContinuationFunc);
+
+ //
+ // Give control back to the boot loader framework caller after FspInit is done
+ // It is done throught the continuation function
+ //
+ SetFspMeasurePoint (FSP_PERF_ID_API_FSPINIT_EXIT);
+ } else {
+ //
+ // FspMemoryInit API is used, so return directly
+ //
- //
- // Modify the return address to ContinuationFunc
- //
- SetFspApiReturnAddress((UINT32)FspInitParams->ContinuationFunc);
+ //
+ // This is the end of the FspSiliconInit API
+ // Give control back to the boot loader
+ //
+ DEBUG ((DEBUG_INFO | DEBUG_INIT, "FspSiliconInitApi() - End\n"));
+ SetFspApiReturnStatus (EFI_SUCCESS);
+ }
- //
- // Give control back to the boot loader framework caller after FspInit is done
- // It is done throught the continuation function
- //
- SetFspMeasurePoint (FSP_PERF_ID_API_FSPINIT_EXIT);
Pei2LoaderSwitchStack();
}
@@ -151,12 +168,14 @@ FspWaitForNotify (
//
// Notify code does not follow the predefined order
//
+ DEBUG ((DEBUG_INFO, "Unsupported FSP Notification Value\n"));
SetFspApiReturnStatus(EFI_UNSUPPORTED);
} else {
//
// Process Notification and Give control back to the boot loader framework caller
//
Status = FspNotificationHandler (NotificationValue);
+ DEBUG ((DEBUG_INFO, "FSP Notification Handler Returns : 0x%08X\n", Status));
SetFspApiReturnStatus(Status);
if (!EFI_ERROR(Status)) {
NotificationCount++;