Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16826 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  In EndOfPei notify, it will call FspNotifyPhase API.
 | 
						|
 | 
						|
  Copyright (c) 2014 - 2015, 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 "FspInitPei.h"
 | 
						|
 | 
						|
/**
 | 
						|
  This function handles S3 resume task at the end of PEI
 | 
						|
 | 
						|
  @param[in] PeiServices    Pointer to PEI Services Table.
 | 
						|
  @param[in] NotifyDesc     Pointer to the descriptor for the Notification event that
 | 
						|
                            caused this function to execute.
 | 
						|
  @param[in] Ppi            Pointer to the PPI data associated with this function.
 | 
						|
 | 
						|
  @retval EFI_STATUS        Always return EFI_SUCCESS
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
S3EndOfPeiNotify (
 | 
						|
  IN EFI_PEI_SERVICES          **PeiServices,
 | 
						|
  IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,
 | 
						|
  IN VOID                      *Ppi
 | 
						|
  );
 | 
						|
 | 
						|
EFI_PEI_NOTIFY_DESCRIPTOR mS3EndOfPeiNotifyDesc = {
 | 
						|
  (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
 | 
						|
  &gEfiEndOfPeiSignalPpiGuid,
 | 
						|
  S3EndOfPeiNotify
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
  This function handles S3 resume task at the end of PEI
 | 
						|
 | 
						|
  @param[in] PeiServices    Pointer to PEI Services Table.
 | 
						|
  @param[in] NotifyDesc     Pointer to the descriptor for the Notification event that
 | 
						|
                            caused this function to execute.
 | 
						|
  @param[in] Ppi            Pointer to the PPI data associated with this function.
 | 
						|
 | 
						|
  @retval EFI_STATUS        Always return EFI_SUCCESS
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
S3EndOfPeiNotify (
 | 
						|
  IN EFI_PEI_SERVICES          **PeiServices,
 | 
						|
  IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,
 | 
						|
  IN VOID                      *Ppi
 | 
						|
  )
 | 
						|
{
 | 
						|
  NOTIFY_PHASE_PARAMS NotifyPhaseParams;
 | 
						|
  EFI_STATUS          Status;
 | 
						|
  FSP_INFO_HEADER     *FspHeader;
 | 
						|
 | 
						|
  FspHeader = FspFindFspHeader (PcdGet32 (PcdFlashFvFspBase));
 | 
						|
  if (FspHeader == NULL) {
 | 
						|
    return EFI_DEVICE_ERROR;
 | 
						|
  }
 | 
						|
  
 | 
						|
  DEBUG ((DEBUG_INFO, "S3EndOfPeiNotify enter\n"));
 | 
						|
  
 | 
						|
  NotifyPhaseParams.Phase = EnumInitPhaseAfterPciEnumeration;
 | 
						|
  Status = CallFspNotifyPhase (FspHeader, &NotifyPhaseParams);
 | 
						|
  DEBUG((DEBUG_INFO, "FSP S3NotifyPhase AfterPciEnumeration status: 0x%x\n", Status));
 | 
						|
 | 
						|
  NotifyPhaseParams.Phase = EnumInitPhaseReadyToBoot;
 | 
						|
  Status = CallFspNotifyPhase (FspHeader, &NotifyPhaseParams);
 | 
						|
  DEBUG((DEBUG_INFO, "FSP S3NotifyPhase ReadyToBoot status: 0x%x\n", Status));
 | 
						|
 | 
						|
  return EFI_SUCCESS;
 | 
						|
}
 |