audk/IntelFspWrapperPkg/Include/Library/FspPlatformInfoLib.h

150 lines
3.3 KiB
C

/** @file
Provide FSP platform information related function.
Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
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