REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the IntelFsp2Pkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
		
			
				
	
	
		
			150 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Source file for FSP notify phase PEI module
 | |
| 
 | |
|   Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| **/
 | |
| 
 | |
| #include "FspNotifyPhasePeim.h"
 | |
| 
 | |
| /**
 | |
| 
 | |
|    This function waits for FSP notify.
 | |
| 
 | |
|    @param This          Entry point for DXE IPL PPI.
 | |
|    @param PeiServices   General purpose services available to every PEIM.
 | |
|    @param HobList       Address to the Pei HOB list.
 | |
| 
 | |
|    @return EFI_SUCCESS              This function never returns.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WaitForNotify (
 | |
|   IN CONST EFI_DXE_IPL_PPI  *This,
 | |
|   IN EFI_PEI_SERVICES       **PeiServices,
 | |
|   IN EFI_PEI_HOB_POINTERS   HobList
 | |
|   );
 | |
| 
 | |
| CONST EFI_DXE_IPL_PPI  mDxeIplPpi = {
 | |
|   WaitForNotify
 | |
| };
 | |
| 
 | |
| CONST EFI_PEI_PPI_DESCRIPTOR  mInstallDxeIplPpi = {
 | |
|   EFI_PEI_PPI_DESCRIPTOR_PPI,
 | |
|   &gEfiDxeIplPpiGuid,
 | |
|   (VOID *)&mDxeIplPpi
 | |
| };
 | |
| 
 | |
| CONST EFI_PEI_PPI_DESCRIPTOR  gEndOfPeiSignalPpi = {
 | |
|   (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
 | |
|   &gEfiEndOfPeiSignalPpiGuid,
 | |
|   NULL
 | |
| };
 | |
| 
 | |
| CONST EFI_PEI_PPI_DESCRIPTOR  gFspReadyForNotifyPhasePpi = {
 | |
|   (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
 | |
|   &gFspReadyForNotifyPhasePpiGuid,
 | |
|   NULL
 | |
| };
 | |
| 
 | |
| /**
 | |
| 
 | |
|    This function waits for FSP notify.
 | |
| 
 | |
|    @param This          Entry point for DXE IPL PPI.
 | |
|    @param PeiServices   General purpose services available to every PEIM.
 | |
|    @param HobList       Address to the Pei HOB list.
 | |
| 
 | |
|    @return EFI_SUCCESS              This function never returns.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WaitForNotify (
 | |
|   IN CONST EFI_DXE_IPL_PPI  *This,
 | |
|   IN EFI_PEI_SERVICES       **PeiServices,
 | |
|   IN EFI_PEI_HOB_POINTERS   HobList
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS  Status;
 | |
| 
 | |
|   DEBUG ((DEBUG_INFO | DEBUG_INIT, "FSP HOB is located at 0x%08X\n", HobList));
 | |
| 
 | |
|   //
 | |
|   // End of PEI phase signal
 | |
|   //
 | |
|   Status = PeiServicesInstallPpi (&gEndOfPeiSignalPpi);
 | |
|   ASSERT_EFI_ERROR (Status);
 | |
| 
 | |
|   //
 | |
|   // Give control back to BootLoader after FspSiliconInit
 | |
|   //
 | |
|   DEBUG ((DEBUG_INFO | DEBUG_INIT, "FSP is waiting for NOTIFY\n"));
 | |
|   FspSiliconInitDone2 (EFI_SUCCESS);
 | |
| 
 | |
|   //
 | |
|   // BootLoader called FSP again through NotifyPhase
 | |
|   //
 | |
|   FspWaitForNotify ();
 | |
| 
 | |
|   if (GetFspGlobalDataPointer ()->FspMode == FSP_IN_API_MODE) {
 | |
|     //
 | |
|     // Should not come here
 | |
|     //
 | |
|     while (TRUE) {
 | |
|       DEBUG ((DEBUG_ERROR, "No FSP API should be called after FSP is DONE!\n"));
 | |
|       SetFspApiReturnStatus (EFI_UNSUPPORTED);
 | |
|       Pei2LoaderSwitchStack ();
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   FSP notify phase PEI module entry point
 | |
| 
 | |
|   @param[in]  FileHandle           Not used.
 | |
|   @param[in]  PeiServices          General purpose services available to every PEIM.
 | |
| 
 | |
|   @retval     EFI_SUCCESS          The function completes successfully
 | |
|   @retval     EFI_OUT_OF_RESOURCES Insufficient resources to create database
 | |
| **/
 | |
| EFI_STATUS
 | |
| FspNotifyPhasePeimEntryPoint (
 | |
|   IN       EFI_PEI_FILE_HANDLE  FileHandle,
 | |
|   IN CONST EFI_PEI_SERVICES     **PeiServices
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS              Status;
 | |
|   VOID                    *OldDxeIplPpi;
 | |
|   EFI_PEI_PPI_DESCRIPTOR  *OldDescriptor;
 | |
| 
 | |
|   DEBUG ((DEBUG_INFO | DEBUG_INIT, "The entry of FspNotificationPeim\n"));
 | |
| 
 | |
|   if (GetFspGlobalDataPointer ()->FspMode == FSP_IN_API_MODE) {
 | |
|     //
 | |
|     // Locate old DXE IPL PPI
 | |
|     //
 | |
|     Status = PeiServicesLocatePpi (
 | |
|                &gEfiDxeIplPpiGuid,
 | |
|                0,
 | |
|                &OldDescriptor,
 | |
|                &OldDxeIplPpi
 | |
|                );
 | |
|     ASSERT_EFI_ERROR (Status);
 | |
| 
 | |
|     //
 | |
|     // Re-install the DXE IPL PPI to wait for notify
 | |
|     //
 | |
|     Status = PeiServicesReInstallPpi (OldDescriptor, &mInstallDxeIplPpi);
 | |
|     ASSERT_EFI_ERROR (Status);
 | |
|   } else {
 | |
|     Status = PeiServicesInstallPpi (&gFspReadyForNotifyPhasePpi);
 | |
|     ASSERT_EFI_ERROR (Status);
 | |
|   }
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 |