Now that we have a generic method to manage memory permissions using a PPI, we can switch to the generic version of the DXE handoff code in DxeIpl, and drop the ARM specific version. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Oliver Smith-Denny <osde@linux.microsoft.com> Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			138 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| ## @file
 | |
| #  Last PEIM executed in PEI phase to load DXE Core from a Firmware Volume.
 | |
| #
 | |
| #  This module produces a special PPI named the DXE Initial Program Load (IPL)
 | |
| #  PPI to discover and dispatch the DXE Foundation and components that are
 | |
| #  needed to run the DXE Foundation.
 | |
| #
 | |
| #  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 | |
| #  Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
 | |
| #  Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
 | |
| #  Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
 | |
| #
 | |
| #  SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| #
 | |
| ##
 | |
| 
 | |
| [Defines]
 | |
|   INF_VERSION                    = 0x00010005
 | |
|   BASE_NAME                      = DxeIpl
 | |
|   MODULE_UNI_FILE                = DxeIpl.uni
 | |
|   FILE_GUID                      = 86D70125-BAA3-4296-A62F-602BEBBB9081
 | |
|   MODULE_TYPE                    = PEIM
 | |
|   VERSION_STRING                 = 1.0
 | |
| 
 | |
|   ENTRY_POINT                    = PeimInitializeDxeIpl
 | |
| 
 | |
| #
 | |
| # The following information is for reference only and not required by the build tools.
 | |
| #
 | |
| #  VALID_ARCHITECTURES           = IA32 X64 EBC (EBC is for build only) AARCH64 RISCV64 LOONGARCH64
 | |
| #
 | |
| 
 | |
| [Sources]
 | |
|   DxeIpl.h
 | |
|   DxeLoad.c
 | |
| 
 | |
| [Sources.Ia32]
 | |
|   X64/VirtualMemory.h
 | |
|   X64/VirtualMemory.c
 | |
|   Ia32/DxeLoadFunc.c
 | |
|   Ia32/IdtVectorAsm.nasm
 | |
| 
 | |
| [Sources.X64]
 | |
|   X64/VirtualMemory.h
 | |
|   X64/VirtualMemory.c
 | |
|   X64/DxeLoadFunc.c
 | |
| 
 | |
| [Sources.LOONGARCH64,Sources.RISCV64,Sources.EBC,Sources.ARM,Sources.AARCH64]
 | |
|   DxeHandoff.c
 | |
| 
 | |
| [Packages]
 | |
|   MdePkg/MdePkg.dec
 | |
|   MdeModulePkg/MdeModulePkg.dec
 | |
| 
 | |
| [LibraryClasses]
 | |
|   PcdLib
 | |
|   MemoryAllocationLib
 | |
|   BaseMemoryLib
 | |
|   ExtractGuidedSectionLib
 | |
|   UefiDecompressLib
 | |
|   ReportStatusCodeLib
 | |
|   PeiServicesLib
 | |
|   HobLib
 | |
|   BaseLib
 | |
|   PeimEntryPoint
 | |
|   DebugLib
 | |
|   DebugAgentLib
 | |
|   PeiServicesTablePointerLib
 | |
|   PerformanceLib
 | |
| 
 | |
| [Ppis]
 | |
|   gEfiDxeIplPpiGuid                      ## PRODUCES
 | |
|   gEfiPeiDecompressPpiGuid               ## PRODUCES
 | |
|   gEfiEndOfPeiSignalPpiGuid              ## SOMETIMES_PRODUCES # Not produced on S3 boot path
 | |
|   gEfiPeiReadOnlyVariable2PpiGuid        ## SOMETIMES_CONSUMES
 | |
|   gEfiPeiLoadFilePpiGuid                 ## SOMETIMES_CONSUMES
 | |
|   gEfiPeiS3Resume2PpiGuid                ## SOMETIMES_CONSUMES # Consumed on S3 boot path
 | |
|   gEfiPeiRecoveryModulePpiGuid           ## SOMETIMES_CONSUMES # Consumed on recovery boot path
 | |
|   ## SOMETIMES_CONSUMES
 | |
|   ## UNDEFINED # HOB
 | |
|   gEfiVectorHandoffInfoPpiGuid
 | |
|   gEfiPeiMemoryDiscoveredPpiGuid         ## SOMETIMES_CONSUMES
 | |
|   gEdkiiPeiBootInCapsuleOnDiskModePpiGuid  ## SOMETIMES_CONSUMES
 | |
|   gEdkiiPeiCapsuleOnDiskPpiGuid            ## SOMETIMES_CONSUMES # Consumed on firmware update boot path
 | |
|   gEdkiiMemoryAttributePpiGuid             ## SOMETIMES_CONSUMES
 | |
| 
 | |
| [Guids]
 | |
|   ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"
 | |
|   ## SOMETIMES_PRODUCES ## HOB
 | |
|   gEfiMemoryTypeInformationGuid
 | |
| 
 | |
| [FeaturePcd.IA32]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES
 | |
| 
 | |
| [FeaturePcd.X64]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables       ## CONSUMES
 | |
| 
 | |
| [FeaturePcd]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress ## CONSUMES
 | |
| 
 | |
| [Pcd.IA32,Pcd.X64]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable                      ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask    ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask    ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask               ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard                       ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdUse5LevelPageTable                  ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase                            ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbSize                            ## CONSUMES
 | |
| 
 | |
| [Pcd.IA32,Pcd.X64,Pcd.ARM,Pcd.AARCH64]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy       ## SOMETIMES_CONSUMES
 | |
| 
 | |
| [Pcd]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack               ## SOMETIMES_CONSUMES
 | |
| 
 | |
| [Depex]
 | |
|   gEfiPeiLoadFilePpiGuid AND gEfiPeiMasterBootModePpiGuid
 | |
| 
 | |
| #
 | |
| # [BootMode]
 | |
| #  S3_RESUME                        ## SOMETIMES_CONSUMES
 | |
| #  RECOVERY_FULL                    ## SOMETIMES_CONSUMES
 | |
| #
 | |
| #
 | |
| # [Hob]
 | |
| # MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # MEMORY_ALLOCATION_MODULE for DxeCore
 | |
| # MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # New Stack HoB
 | |
| # MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # Old Stack HOB
 | |
| #
 | |
| # [Hob.IPF]
 | |
| # MEMORY_ALLOCATION                 ## SOMETIMES_PRODUCES # MEMORY_ALLOCATION_BSP_STORE
 | |
| #
 | |
| 
 | |
| [UserExtensions.TianoCore."ExtraFiles"]
 | |
|   DxeIplExtra.uni
 |