/** @file Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _FSP_COMMON_LIB_H_ #define _FSP_COMMON_LIB_H_ #include #include /** This function sets the FSP global data pointer. @param[in] FspData Fsp global data pointer. **/ VOID EFIAPI SetFspGlobalDataPointer ( IN FSP_GLOBAL_DATA *FspData ); /** This function gets the FSP global data pointer. **/ FSP_GLOBAL_DATA * EFIAPI GetFspGlobalDataPointer ( VOID ); /** This function gets back the FSP API first parameter passed by the bootloader. @retval ApiParameter FSP API first parameter passed by the bootloader. **/ UINTN EFIAPI GetFspApiParameter ( VOID ); /** This function gets back the FSP API second parameter passed by the bootloader. @retval ApiParameter FSP API second parameter passed by the bootloader. **/ UINTN EFIAPI GetFspApiParameter2 ( VOID ); /** This function returns the FSP entry stack pointer from address of the first API parameter. @retval FSP entry stack pointer. **/ VOID * EFIAPI GetFspEntryStack ( VOID ); /** This function sets the FSP API parameter in the stack. @param[in] Value New parameter value. **/ VOID EFIAPI SetFspApiParameter ( IN UINT32 Value ); /** This function set the API status code returned to the BootLoader. @param[in] ReturnStatus Status code to return. **/ VOID EFIAPI SetFspApiReturnStatus ( IN UINTN ReturnStatus ); /** This function sets the context switching stack to a new stack frame. @param[in] NewStackTop New core stack to be set. **/ VOID EFIAPI SetFspCoreStackPointer ( IN VOID *NewStackTop ); /** This function sets the platform specific data pointer. @param[in] PlatformData Fsp platform specific data pointer. **/ VOID EFIAPI SetFspPlatformDataPointer ( IN VOID *PlatformData ); /** This function gets the platform specific data pointer. @param[in] PlatformData Fsp platform specific data pointer. **/ VOID * EFIAPI GetFspPlatformDataPointer ( VOID ); /** This function sets the UPD data pointer. @param[in] UpdDataPtr UPD data pointer. **/ VOID EFIAPI SetFspUpdDataPointer ( IN VOID *UpdDataPtr ); /** This function gets the UPD data pointer. @return UpdDataPtr UPD data pointer. **/ VOID * EFIAPI GetFspUpdDataPointer ( VOID ); /** This function sets the memory init UPD data pointer. @param[in] MemoryInitUpdPtr memory init UPD data pointer. **/ VOID EFIAPI SetFspMemoryInitUpdDataPointer ( IN VOID *MemoryInitUpdPtr ); /** This function gets the memory init UPD data pointer. @return memory init UPD data pointer. **/ VOID * EFIAPI GetFspMemoryInitUpdDataPointer ( VOID ); /** This function sets the silicon init UPD data pointer. @param[in] SiliconInitUpdPtr silicon init UPD data pointer. **/ VOID EFIAPI SetFspSiliconInitUpdDataPointer ( IN VOID *SiliconInitUpdPtr ); /** This function gets the silicon init UPD data pointer. @return silicon init UPD data pointer. **/ VOID * EFIAPI GetFspSiliconInitUpdDataPointer ( VOID ); /** This function sets the smm init UPD data pointer. @param[in] SmmInitUpdPtr smm init UPD data pointer. **/ VOID EFIAPI SetFspSmmInitUpdDataPointer ( IN VOID *SmmInitUpdPtr ); /** This function gets the smm init UPD data pointer. @return smm init UPD data pointer. **/ VOID * EFIAPI GetFspSmmInitUpdDataPointer ( VOID ); /** Set FSP measurement point timestamp. @param[in] Id Measurement point ID. @return performance timestamp. **/ UINT64 EFIAPI SetFspMeasurePoint ( IN UINT8 Id ); /** This function gets the FSP info header pointer. @retval FspInfoHeader FSP info header pointer **/ FSP_INFO_HEADER * EFIAPI GetFspInfoHeader ( VOID ); /** This function sets the FSP info header pointer. @param[in] FspInfoHeader FSP info header pointer **/ VOID EFIAPI SetFspInfoHeader ( FSP_INFO_HEADER *FspInfoHeader ); /** This function gets the FSP info header pointer from the API context. @retval FspInfoHeader FSP info header pointer **/ FSP_INFO_HEADER * EFIAPI GetFspInfoHeaderFromApiContext ( VOID ); /** This function gets the CfgRegion data pointer. @return CfgRegion data pointer. **/ VOID * EFIAPI GetFspCfgRegionDataPointer ( VOID ); /** This function gets FSP API calling mode. @retval API calling mode **/ UINT8 EFIAPI GetFspApiCallingIndex ( VOID ); /** This function sets FSP API calling mode. @param[in] Index API calling index **/ VOID EFIAPI SetFspApiCallingIndex ( UINT8 Index ); /** This function gets FSP Phase StatusCode. @retval StatusCode **/ UINT32 EFIAPI GetPhaseStatusCode ( VOID ); /** This function sets FSP Phase StatusCode. @param[in] Mode Phase StatusCode **/ VOID EFIAPI SetPhaseStatusCode ( UINT32 StatusCode ); /** This function updates the return status of the FSP API with requested reset type and returns to Boot Loader. @param[in] FspResetType Reset type that needs to returned as API return status **/ VOID EFIAPI FspApiReturnStatusReset ( IN EFI_STATUS FspResetType ); #endif