• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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