Generated mechanically with:
find OvmfPkg -type f -exec sed -i -e 's/EFI_D_/DEBUG_/g' {} \;
Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
Cc: Philippe Mathieu-Daude <philmd@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200429215327.606467-1-rebecca@bsdio.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Build FV related hobs for platform.
 | |
| 
 | |
|   Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include "PiPei.h"
 | |
| #include "Platform.h"
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/HobLib.h>
 | |
| #include <Library/PeiServicesLib.h>
 | |
| #include <Library/PcdLib.h>
 | |
| 
 | |
| 
 | |
| /**
 | |
|   Publish PEI & DXE (Decompressed) Memory based FVs to let PEI
 | |
|   and DXE know about them.
 | |
| 
 | |
|   @retval EFI_SUCCESS   Platform PEI FVs were initialized successfully.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| PeiFvInitialization (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   BOOLEAN SecureS3Needed;
 | |
| 
 | |
|   DEBUG ((DEBUG_INFO, "Platform PEI Firmware Volume Initialization\n"));
 | |
| 
 | |
|   //
 | |
|   // Create a memory allocation HOB for the PEI FV.
 | |
|   //
 | |
|   // Allocate as ACPI NVS is S3 is supported
 | |
|   //
 | |
|   BuildMemoryAllocationHob (
 | |
|     PcdGet32 (PcdOvmfPeiMemFvBase),
 | |
|     PcdGet32 (PcdOvmfPeiMemFvSize),
 | |
|     mS3Supported ? EfiACPIMemoryNVS : EfiBootServicesData
 | |
|     );
 | |
| 
 | |
|   //
 | |
|   // Let DXE know about the DXE FV
 | |
|   //
 | |
|   BuildFvHob (PcdGet32 (PcdOvmfDxeMemFvBase), PcdGet32 (PcdOvmfDxeMemFvSize));
 | |
| 
 | |
|   SecureS3Needed = mS3Supported && FeaturePcdGet (PcdSmmSmramRequire);
 | |
| 
 | |
|   //
 | |
|   // Create a memory allocation HOB for the DXE FV.
 | |
|   //
 | |
|   // If "secure" S3 is needed, then SEC will decompress both PEI and DXE
 | |
|   // firmware volumes at S3 resume too, hence we need to keep away the OS from
 | |
|   // DXEFV as well. Otherwise we only need to keep away DXE itself from the
 | |
|   // DXEFV area.
 | |
|   //
 | |
|   BuildMemoryAllocationHob (
 | |
|     PcdGet32 (PcdOvmfDxeMemFvBase),
 | |
|     PcdGet32 (PcdOvmfDxeMemFvSize),
 | |
|     SecureS3Needed ? EfiACPIMemoryNVS : EfiBootServicesData
 | |
|     );
 | |
| 
 | |
|   //
 | |
|   // Additionally, said decompression will use temporary memory above the end
 | |
|   // of DXEFV, so let's keep away the OS from there too.
 | |
|   //
 | |
|   if (SecureS3Needed) {
 | |
|     UINT32 DxeMemFvEnd;
 | |
| 
 | |
|     DxeMemFvEnd = PcdGet32 (PcdOvmfDxeMemFvBase) +
 | |
|                   PcdGet32 (PcdOvmfDxeMemFvSize);
 | |
|     BuildMemoryAllocationHob (
 | |
|       DxeMemFvEnd,
 | |
|       PcdGet32 (PcdOvmfDecompressionScratchEnd) - DxeMemFvEnd,
 | |
|       EfiACPIMemoryNVS
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   // Let PEI know about the DXE FV so it can find the DXE Core
 | |
|   //
 | |
|   PeiServicesInstallFvInfoPpi (
 | |
|     NULL,
 | |
|     (VOID *)(UINTN) PcdGet32 (PcdOvmfDxeMemFvBase),
 | |
|     PcdGet32 (PcdOvmfDxeMemFvSize),
 | |
|     NULL,
 | |
|     NULL
 | |
|     );
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 | |
| 
 |