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