diff options
Diffstat (limited to 'IntelFsp2Pkg')
-rw-r--r-- | IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf | 1 | ||||
-rw-r--r-- | IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c | 30 | ||||
-rw-r--r-- | IntelFsp2Pkg/Library/BaseFspCommonLib/ReturnStatus.c | 42 |
3 files changed, 43 insertions, 30 deletions
diff --git a/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf b/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf index 8badd924dc..52fe0f8ec6 100644 --- a/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf +++ b/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf @@ -16,6 +16,7 @@ [Sources]
FspCommonLib.c
+ ReturnStatus.c
[Packages]
MdePkg/MdePkg.dec
diff --git a/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c b/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c index 3ecc5bd265..663f9b3c0a 100644 --- a/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c +++ b/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c @@ -551,33 +551,3 @@ SetPhaseStatusCode ( FspData = GetFspGlobalDataPointer ();
FspData->StatusCode = StatusCode;
}
-
-/**
- This function updates the return status of the FSP API with requested reset type and returns to Boot Loader.
-
- @param[in] FspResetType Reset type that needs to returned as API return status
-
-**/
-VOID
-EFIAPI
-FspApiReturnStatusReset (
- IN EFI_STATUS FspResetType
- )
-{
- volatile BOOLEAN LoopUntilReset;
-
- LoopUntilReset = TRUE;
- DEBUG ((DEBUG_INFO, "FSP returning control to Bootloader with reset required return status %x\n", FspResetType));
- if (GetFspGlobalDataPointer ()->FspMode == FSP_IN_API_MODE) {
- ///
- /// Below code is not an infinite loop.The control will go back to API calling function in BootLoader each time BootLoader
- /// calls the FSP API without honoring the reset request by FSP
- ///
- do {
- SetFspApiReturnStatus (FspResetType);
- Pei2LoaderSwitchStack ();
- DEBUG ((DEBUG_ERROR, "!!!ERROR: FSP has requested BootLoader for reset. But BootLoader has not honored the reset\n"));
- DEBUG ((DEBUG_ERROR, "!!!ERROR: Please add support in BootLoader to honor the reset request from FSP\n"));
- } while (LoopUntilReset);
- }
-}
diff --git a/IntelFsp2Pkg/Library/BaseFspCommonLib/ReturnStatus.c b/IntelFsp2Pkg/Library/BaseFspCommonLib/ReturnStatus.c new file mode 100644 index 0000000000..1854e8c99c --- /dev/null +++ b/IntelFsp2Pkg/Library/BaseFspCommonLib/ReturnStatus.c @@ -0,0 +1,42 @@ +/** @file
+ Copyright (c) 2014 - 2022, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <PiPei.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/PcdLib.h>
+#include <Library/FspCommonLib.h>
+#include <FspEas.h>
+#include <Library/FspSwitchStackLib.h>
+
+/**
+ This function updates the return status of the FSP API with requested reset type and returns to Boot Loader.
+
+ @param[in] FspResetType Reset type that needs to returned as API return status
+
+**/
+VOID
+EFIAPI
+FspApiReturnStatusReset (
+ IN EFI_STATUS FspResetType
+ )
+{
+ volatile BOOLEAN LoopUntilReset;
+
+ LoopUntilReset = TRUE;
+ DEBUG ((DEBUG_INFO, "FSP returning control to Bootloader with reset required return status %x\n", FspResetType));
+ if (GetFspGlobalDataPointer ()->FspMode == FSP_IN_API_MODE) {
+ ///
+ /// Below code is not an infinite loop.The control will go back to API calling function in BootLoader each time BootLoader
+ /// calls the FSP API without honoring the reset request by FSP
+ ///
+ do {
+ SetFspApiReturnStatus (FspResetType);
+ Pei2LoaderSwitchStack ();
+ DEBUG ((DEBUG_ERROR, "!!!ERROR: FSP has requested BootLoader for reset. But BootLoader has not honored the reset\n"));
+ DEBUG ((DEBUG_ERROR, "!!!ERROR: Please add support in BootLoader to honor the reset request from FSP\n"));
+ } while (LoopUntilReset);
+ }
+}
|