Home | History | Annotate | Download | only in Library
      1 /** @file
      2 
      3   Copyright (c) 2015 - 2016, 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[in] FsptUpdDataPtr     Address pointer to the FSPT_UPD data structure. 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  VOID    *FsptUpdDataPtr
     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[in] FsptUpdDataPtr     Address pointer to the FSPT_UPD data structure. 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  VOID    *FsptUpdDataPtr
     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