/** @file\r
\r
- Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2016 - 2022, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
//\r
// NotifyPhase check\r
//\r
- if ((FspData == NULL) || ((UINT32)FspData == 0xFFFFFFFF)) {\r
+ if ((FspData == NULL) || ((UINTN)FspData == MAX_ADDRESS) || ((UINTN)FspData == MAX_UINT32)) {\r
Status = EFI_UNSUPPORTED;\r
} else {\r
if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
//\r
// FspMemoryInit check\r
//\r
- if ((UINT32)FspData != 0xFFFFFFFF) {\r
+ if (((UINTN)FspData != MAX_ADDRESS) && ((UINTN)FspData != MAX_UINT32)) {\r
Status = EFI_UNSUPPORTED;\r
+ } else if (ApiParam == NULL) {\r
+ Status = EFI_SUCCESS;\r
} else if (EFI_ERROR (FspUpdSignatureCheck (ApiIdx, ApiParam))) {\r
Status = EFI_INVALID_PARAMETER;\r
}\r
//\r
// TempRamExit check\r
//\r
- if ((FspData == NULL) || ((UINT32)FspData == 0xFFFFFFFF)) {\r
+ if ((FspData == NULL) || ((UINTN)FspData == MAX_ADDRESS) || ((UINTN)FspData == MAX_UINT32)) {\r
Status = EFI_UNSUPPORTED;\r
} else {\r
if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
//\r
// FspSiliconInit check\r
//\r
- if ((FspData == NULL) || ((UINT32)FspData == 0xFFFFFFFF)) {\r
+ if ((FspData == NULL) || ((UINTN)FspData == MAX_ADDRESS) || ((UINTN)FspData == MAX_UINT32)) {\r
Status = EFI_UNSUPPORTED;\r
} else {\r
if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
Status = EFI_UNSUPPORTED;\r
- } else if (EFI_ERROR (FspUpdSignatureCheck (FspSiliconInitApiIndex, ApiParam))) {\r
+ } else if (ApiIdx == FspSiliconInitApiIndex) {\r
+ if (ApiParam == NULL) {\r
+ Status = EFI_SUCCESS;\r
+ } else if (EFI_ERROR (FspUpdSignatureCheck (FspSiliconInitApiIndex, ApiParam))) {\r
+ Status = EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ //\r
+ // Reset MultiPhase NumberOfPhases to zero\r
+ //\r
+ FspData->NumberOfPhases = 0;\r
+ }\r
+ }\r
+ } else if (ApiIdx == FspMultiPhaseMemInitApiIndex) {\r
+ if ((FspData == NULL) || ((UINTN)FspData == MAX_ADDRESS) || ((UINTN)FspData == MAX_UINT32)) {\r
+ Status = EFI_UNSUPPORTED;\r
+ }\r
+ } else if (ApiIdx == FspSmmInitApiIndex) {\r
+ //\r
+ // FspSmmInitApiIndex check\r
+ //\r
+ if ((FspData == NULL) || ((UINTN)FspData == MAX_ADDRESS) || ((UINTN)FspData == MAX_UINT32)) {\r
+ Status = EFI_UNSUPPORTED;\r
+ } else {\r
+ if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
+ Status = EFI_UNSUPPORTED;\r
+ } else if (ApiParam == NULL) {\r
+ Status = EFI_SUCCESS;\r
+ } else if (EFI_ERROR (FspUpdSignatureCheck (FspSmmInitApiIndex, ApiParam))) {\r
Status = EFI_INVALID_PARAMETER;\r
}\r
}\r