1 /** @file 2 3 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php. 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 **/ 13 14 #ifndef _FSP_SEC_PLATFORM_LIB_H_ 15 #define _FSP_SEC_PLATFORM_LIB_H_ 16 17 /** 18 This function performs platform level initialization. 19 20 This function must be in ASM file, because stack is not established yet. 21 This function is optional. If a library instance does not provide this function, the default empty one will be used. 22 23 The callee should not use XMM6/XMM7. 24 The return address is saved in MM7. 25 26 @retval in saved in EAX - 0 means platform initialization success. 27 other means platform initialization fail. 28 **/ 29 UINT32 30 EFIAPI 31 SecPlatformInit ( 32 VOID 33 ); 34 35 /** 36 This function loads Microcode. 37 38 This function must be in ASM file, because stack is not established yet. 39 This function is optional. If a library instance does not provide this function, the default one will be used. 40 41 The callee should not use XMM6/XMM7. 42 The return address is saved in MM7. 43 44 @param TempRamInitParamPtr A data structure to hold microcode parameter. It is saved in ESP. 45 46 @retval in saved in EAX - 0 means Microcode is loaded successfully. 47 other means Microcode is not loaded successfully. 48 **/ 49 UINT32 50 EFIAPI 51 LoadMicrocode ( 52 IN FSP_TEMP_RAM_INIT_PARAMS *TempRamInitParamPtr 53 ); 54 55 /** 56 This function initializes the CAR. 57 58 This function must be in ASM file, because stack is not established yet. 59 60 The callee should not use XMM6/XMM7. 61 The return address is saved in MM7. 62 63 @param TempRamInitParamPtr A data structure to hold microcode parameter. It is saved in ESP. 64 65 @retval in saved in EAX - 0 means CAR initialization success. 66 other means CAR initialization fail. 67 **/ 68 UINT32 69 EFIAPI 70 SecCarInit ( 71 IN FSP_TEMP_RAM_INIT_PARAMS *TempRamInitParamPtr 72 ); 73 74 /** 75 This function check the signture of UPD. 76 77 @param[in] ApiIdx Internal index of the FSP API. 78 @param[in] ApiParam Parameter of the FSP API. 79 80 **/ 81 EFI_STATUS 82 EFIAPI 83 FspUpdSignatureCheck ( 84 IN UINT32 ApiIdx, 85 IN VOID *ApiParam 86 ); 87 88 #endif 89