| /** @file | |
| Provide FSP platform information related function. | |
| Copyright (c) 2014, Intel Corporation. All rights reserved.<BR> | |
| This program and the accompanying materials | |
| are licensed and made available under the terms and conditions of the BSD License | |
| which accompanies this distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php. | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #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 |