## @file # Last PEIM executed in PEI phase to load DXE Core from a Firmware Volume. #****************************************************************************** #* Copyright (c) 2013 - 2020, Insyde Software Corp. All Rights Reserved. #* #* You may not reproduce, distribute, publish, display, perform, modify, adapt, #* transmit, broadcast, present, recite, release, license or otherwise exploit #* any part of this publication in any form, by any means, without the prior #* written permission of Insyde Software Corporation. #* #****************************************************************************** ## ## @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.
# 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. # ## [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 # [Sources] DxeIpl.h DxeLoad.c [Sources.Ia32] X64/VirtualMemory.h ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode X64/VirtualMemory.c ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode Ia32/DxeLoadFunc.c Ia32/IdtVectorAsm.nasm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode [Sources.X64] X64/VirtualMemory.h X64/VirtualMemory.c X64/DxeLoadFunc.c [Sources.IPF] Ipf/DxeLoadFunc.c [Sources.EBC] Ebc/DxeLoadFunc.c [Sources.ARM, Sources.AARCH64] Arm/DxeLoadFunc.c [Sources.RISCV64] RiscV64/DxeLoadFunc.c [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec InsydeModulePkg/InsydeModulePkg.dec InsydeOemServicesPkg/InsydeOemServicesPkg.dec [Packages.ARM, Packages.AARCH64] ArmPkg/ArmPkg.dec [LibraryClasses] PcdLib MemoryAllocationLib BaseMemoryLib ExtractGuidedSectionLib UefiDecompressLib ReportStatusCodeLib PeiServicesLib HobLib BaseLib PeimEntryPoint DebugLib DebugAgentLib PeiServicesTablePointerLib VariableLib PeiOemSvcKernelLibDefault H2OCpLib PerformanceLib [LibraryClasses.ARM, LibraryClasses.AARCH64] ArmMmuLib [Ppis] gEfiDxeIplPpiGuid ## PRODUCES gEfiPeiDecompressPpiGuid ## PRODUCES gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES(Not produced on S3 boot path) gEfiPeiDecompressPpiGuid ## SOMETIMES_PRODUCES gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_CONSUMES gEfiPeiLoadFilePpiGuid ## CONSUMES gEfiPeiS3Resume2PpiGuid ## SOMETIMES_CONSUMES(Consumed on S3 boot path) gEfiPeiRecoveryModulePpiGuid ## SOMETIMES_CONSUMES(Consumed on recovery boot path) gPeiRomCorruptPpiGuid gEfiPeiFirmwareVolumeInfoPpiGuid gEfiVectorHandoffInfoPpiGuid gEfiPeiMemoryDiscoveredPpiGuid ## SOMETIMES_CONSUMES gEdkiiPeiBootInCapsuleOnDiskModePpiGuid ## SOMETIMES_CONSUMES gEdkiiPeiCapsuleOnDiskPpiGuid ## SOMETIMES_CONSUMES # Consumed on firmware update boot path [Guids] gEfiMemoryTypeInformationGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation" gEfiMemoryTypeInformationGuid ## SOMETIMES_PRODUCES ## HOB gH2OPeiCpEndOfPeiAfterGuid gH2OPeiCpEndOfPeiBeforeGuid gH2OPeiCpDxeFvCorruptedGuid [FeaturePcd.IA32] gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode [FeaturePcd.X64] gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables [FeaturePcd] gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress gInsydeTokenSpaceGuid.PcdH2OPeiCpEndOfPeiAfterSupported gInsydeTokenSpaceGuid.PcdH2OPeiCpEndOfPeiBeforeSupported gInsydeTokenSpaceGuid.PcdH2OPeiCpDxeFvCorruptedSupported [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.PcdSetNxForStack ## SOMETIMES_CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy ## SOMETIMES_CONSUMES [Depex] gEfiPeiLoadFilePpiGuid AND gEfiPeiMasterBootModePpiGuid # # [BootMode] # S3_RESUME ## SOMETIMES_CONSUMES # RECOVERY_FULL ## SOMETIMES_CONSUMES # # # [Hob] # ## # # New Stack HoB # MEMORY_ALLOCATION ## PRODUCES # ## # # Old Stack HOB # MEMORY_ALLOCATION ## CONSUMES # # [Hob.IPF] # ## # # BSP Stack HOB for IPF # MEMORY_ALLOCATION ## PRODUCES # [UserExtensions.TianoCore."ExtraFiles"] DxeIplExtra.uni