As per FSP 2.0 spec, FSP shall not trigger system reset and instead it shall return from the FSP API to the BL/Wrapper with the required reset type. The changes are to handle the ResetRequired return code from FSP APIs and provide lib interface for platform to trigger the actual reset. Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com> Cc: Amy Chan <amy.chan@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Satya Yarlagadda <satya.p.yarlagadda@intel.com> Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Sample to provide FSP wrapper related function.
 | 
						|
 | 
						|
  Copyright (c) 2014 - 2016, 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.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <PiPei.h>
 | 
						|
#include <Library/PcdLib.h>
 | 
						|
 | 
						|
/**
 | 
						|
  This function overrides the default configurations in the FSP-M UPD data region.
 | 
						|
 | 
						|
  @note At this point, memory is NOT ready, PeiServices are available to use.
 | 
						|
 | 
						|
  @param[in,out] FspUpdRgnPtr   A pointer to the UPD data region data strcture.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
UpdateFspmUpdData (
 | 
						|
  IN OUT VOID        *FspUpdRgnPtr
 | 
						|
  )
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  This function overrides the default configurations in the FSP-S UPD data region.
 | 
						|
 | 
						|
  @param[in,out] FspUpdRgnPtr   A pointer to the UPD data region data strcture.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
UpdateFspsUpdData (
 | 
						|
  IN OUT VOID        *FspUpdRgnPtr
 | 
						|
  )
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Update TempRamExit parameter.
 | 
						|
 | 
						|
  @note At this point, memory is ready, PeiServices are available to use.
 | 
						|
 | 
						|
  @return TempRamExit parameter.
 | 
						|
**/
 | 
						|
VOID *
 | 
						|
EFIAPI
 | 
						|
UpdateTempRamExitParam (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  return NULL;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  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
 | 
						|
  )
 | 
						|
{
 | 
						|
  return EFI_UNSUPPORTED;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Perform platform related reset in FSP wrapper.
 | 
						|
 | 
						|
  This function will reset the system with requested ResetType.
 | 
						|
 | 
						|
  @param[in] FspStatusResetType  The type of reset the platform has to perform.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
CallFspWrapperResetSystem (
 | 
						|
  IN UINT32    FspStatusResetType
 | 
						|
  )
 | 
						|
{
 | 
						|
  //
 | 
						|
  // Perform reset according to the type.
 | 
						|
  //
 | 
						|
 | 
						|
  CpuDeadLoop();
 | 
						|
}
 |