--- /dev/null
+/** @file\r
+\r
+ Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php.\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _FSP_SEC_PLATFORM_LIB_H_\r
+#define _FSP_SEC_PLATFORM_LIB_H_\r
+\r
+/**\r
+ This function performs platform level initialization.\r
+\r
+ This function must be in ASM file, because stack is not established yet.\r
+ This function is optional. If a library instance does not provide this function, the default empty one will be used.\r
+\r
+ The callee should not use XMM6/XMM7.\r
+ The return address is saved in MM7.\r
+\r
+ @retval in saved in EAX - 0 means platform initialization success.\r
+ other means platform initialization fail.\r
+**/\r
+UINT32\r
+EFIAPI\r
+SecPlatformInit (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ This function loads Microcode.\r
+\r
+ This function must be in ASM file, because stack is not established yet.\r
+ This function is optional. If a library instance does not provide this function, the default one will be used.\r
+\r
+ The callee should not use XMM6/XMM7.\r
+ The return address is saved in MM7.\r
+\r
+ @param[in] FsptUpdDataPtr Address pointer to the FSPT_UPD data structure. It is saved in ESP.\r
+\r
+ @retval in saved in EAX - 0 means Microcode is loaded successfully.\r
+ other means Microcode is not loaded successfully.\r
+**/\r
+UINT32\r
+EFIAPI\r
+LoadMicrocode (\r
+ IN VOID *FsptUpdDataPtr\r
+ );\r
+\r
+/**\r
+ This function initializes the CAR.\r
+\r
+ This function must be in ASM file, because stack is not established yet.\r
+\r
+ The callee should not use XMM6/XMM7.\r
+ The return address is saved in MM7.\r
+\r
+ @param[in] FsptUpdDataPtr Address pointer to the FSPT_UPD data structure. It is saved in ESP.\r
+\r
+ @retval in saved in EAX - 0 means CAR initialization success.\r
+ other means CAR initialization fail.\r
+**/\r
+UINT32\r
+EFIAPI\r
+SecCarInit (\r
+ IN VOID *FsptUpdDataPtr\r
+ );\r
+\r
+/**\r
+ This function check the signture of UPD.\r
+\r
+ @param[in] ApiIdx Internal index of the FSP API.\r
+ @param[in] ApiParam Parameter of the FSP API.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+FspUpdSignatureCheck (\r
+ IN UINT32 ApiIdx,\r
+ IN VOID *ApiParam\r
+ );\r
+\r
+#endif\r