summaryrefslogtreecommitdiff
path: root/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c
diff options
context:
space:
mode:
Diffstat (limited to 'IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c')
-rw-r--r--IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c b/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c
index a6f3892..9c1b5b3 100644
--- a/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c
+++ b/IntelFsp2Pkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c
@@ -28,6 +28,7 @@ FspUpdSignatureCheck (
/**
This function handles FspMultiPhaseSiInitApi.
+ Starting from FSP 2.4 this function is obsolete and FspMultiPhaseSiInitApiHandlerV2 is the replacement.
@param[in] ApiIdx Internal index of the FSP API.
@param[in] ApiParam Parameter of the FSP API.
@@ -42,3 +43,36 @@ FspMultiPhaseSiInitApiHandler (
{
return EFI_SUCCESS;
}
+
+/**
+ FSP MultiPhase Platform Get Number Of Phases Function.
+
+ Allows an FSP binary to dynamically update the number of phases at runtime.
+ For example, UPD settings could negate the need to enter the multi-phase flow
+ in certain scenarios. If this function returns FALSE, the default number of phases
+ provided by PcdMultiPhaseNumberOfPhases will be returned to the bootloader instead.
+
+ @param[in] ApiIdx - Internal index of the FSP API.
+ @param[in] NumberOfPhasesSupported - How many phases are supported by current FSP Component.
+
+ @retval TRUE - NumberOfPhases are modified by Platform during runtime.
+ @retval FALSE - The Default build time NumberOfPhases should be used.
+
+**/
+BOOLEAN
+EFIAPI
+FspMultiPhasePlatformGetNumberOfPhases (
+ IN UINT8 ApiIdx,
+ IN OUT UINT32 *NumberOfPhasesSupported
+ )
+{
+ /* Example for platform runtime controlling
+ if ((ApiIdx == FspMultiPhaseSiInitApiIndex) && (Feature1Enable == FALSE)) {
+ *NumberOfPhasesSupported = 0;
+ return TRUE;
+ }
+ return FALSE
+ */
+
+ return FALSE;
+}