/** @file Provide FSP platform information related function. Copyright (c) 2014, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __FSP_PLATFORM_INFO_LIB_H__ #define __FSP_PLATFORM_INFO_LIB_H__ /** Get current boot mode. @note At this point, memory is ready, PeiServices are NOT available to use. Platform can get some data from chipset register. @return BootMode current boot mode. **/ UINT32 EFIAPI GetBootMode ( VOID ); /** Get NVS buffer parameter. @note At this point, memory is NOT ready, PeiServices are available to use. @return NvsBuffer NVS buffer parameter. **/ VOID * EFIAPI GetNvsBuffer ( VOID ); /** Get UPD region size. @note At this point, memory is NOT ready, PeiServices are available to use. @return UPD region size. **/ UINT32 EFIAPI GetUpdRegionSize ( VOID ); /** This function overrides the default configurations in the UPD data region. @param[in,out] FspUpdRgnPtr A pointer to the UPD data region data strcture. @return FspUpdRgnPtr A pointer to the UPD data region data strcture. **/ VOID * EFIAPI UpdateFspUpdConfigs ( IN OUT VOID *FspUpdRgnPtr ); /** Get BootLoader Tolum size. @note At this point, memory is NOT ready, PeiServices are available to use. @return BootLoader Tolum size. **/ UINT32 EFIAPI GetBootLoaderTolumSize ( VOID ); /** Get TempRamExit parameter. @note At this point, memory is ready, PeiServices are available to use. @return TempRamExit parameter. **/ VOID * EFIAPI GetTempRamExitParam ( VOID ); /** Get FspSiliconInit parameter. @note At this point, memory is ready, PeiServices are available to use. @return FspSiliconInit parameter. **/ VOID * EFIAPI GetFspSiliconInitParam ( VOID ); /** Get S3 PEI memory information. @note At this point, memory is ready, and PeiServices are available to use. Platform can get some data from SMRAM directly. @param[out] S3PeiMemSize PEI memory size to be installed in S3 phase. @param[out] S3PeiMemBase PEI memory base to be installed in S3 phase. @return If S3 PEI memory information is got successfully. **/ EFI_STATUS EFIAPI GetS3MemoryInfo ( OUT UINT64 *S3PeiMemSize, OUT EFI_PHYSICAL_ADDRESS *S3PeiMemBase ); /** Get stack information according to boot mode. @note If BootMode is BOOT_ON_S3_RESUME or BOOT_ON_FLASH_UPDATE, this stack should be in some reserved memory space. @note If FspInitDone is TRUE, memory is ready, but no PeiServices there. Platform can get some data from SMRAM directly. @note If FspInitDone is FALSE, memory is NOT ready, but PeiServices are available to use. Platform can get some data from variable via VariablePpi. @param[in] BootMode Current boot mode. @param[in] FspInitDone If FspInit is called. @param[out] StackSize Stack size to be used in PEI phase. @param[out] StackBase Stack base to be used in PEI phase. @return If Stack information is got successfully. **/ EFI_STATUS EFIAPI GetStackInfo ( IN UINT32 BootMode, IN BOOLEAN FspInitDone, OUT UINT64 *StackSize, OUT EFI_PHYSICAL_ADDRESS *StackBase ); #endif