summaryrefslogtreecommitdiffstats
path: root/IntelFsp2Pkg
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFsp2Pkg')
-rw-r--r--IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf1
-rw-r--r--IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c30
-rw-r--r--IntelFsp2Pkg/Library/BaseFspCommonLib/ReturnStatus.c42
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);
+ }
+}