X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FCore%2FDxeIplPeim%2FDxeIpl.inf;h=d62bd9b59b63fa164ba6da5729ba011926219c64;hb=5997daf7426e8eca4432e82e62f81dda34d261a4;hp=0e7f382a5c129abf007a0bd5bd57020c0136df8a;hpb=b98da1b1f9b726f580d05f8680455122ba924da6;p=mirror_edk2.git
diff --git a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
index 0e7f382a5c..d62bd9b59b 100644
--- a/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
+++ b/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
@@ -1,103 +1,141 @@
-#/** @file
-#
-# Component description file for DxeIpl module
-#
-# The responsibility of this module is to load the DXE Core from a Firmware Volume.
-# This implementation is used to load a 32-bit DXE Core.
-#
-# Copyright (c) 2006 - 2008, Intel Corporation.
-# All rights reserved. This program and the accompanying materials
+## @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 - 2016, Intel Corporation. All rights reserved.
+# Copyright (c) 2017, AMD Incorporated. 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
- EDK_RELEASE_VERSION = 0x00020000
- EFI_SPECIFICATION_VERSION = 0x00020000
ENTRY_POINT = PeimInitializeDxeIpl
#
# The following information is for reference only and not required by the build tools.
#
-# VALID_ARCHITECTURES = IA32 X64 IPF
+# VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only) AARCH64
#
-[Sources.common]
+[Sources]
DxeIpl.h
DxeLoad.c
[Sources.Ia32]
- Ia32/VirtualMemory.h
- Ia32/VirtualMemory.c
+ X64/VirtualMemory.h ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
+ X64/VirtualMemory.c ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
Ia32/DxeLoadFunc.c
- Ia32/ImageRead.c
- Ia32/IdtVectorAsm.asm
- Ia32/IdtVectorAsm.S | GCC
+ Ia32/IdtVectorAsm.nasm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
+ Ia32/IdtVectorAsm.asm||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
+ Ia32/IdtVectorAsm.S ||||gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
[Sources.X64]
- X64/DxeLoadFunc.c
- Ia32/ImageRead.c
+ X64/VirtualMemory.h
+ X64/VirtualMemory.c
+ X64/DxeLoadFunc.c
[Sources.IPF]
Ipf/DxeLoadFunc.c
- Ipf/ImageRead.c
+
+[Sources.EBC]
+ Ebc/DxeLoadFunc.c
+
+[Sources.ARM, Sources.AARCH64]
+ Arm/DxeLoadFunc.c
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
+[Packages.ARM, Packages.AARCH64]
+ ArmPkg/ArmPkg.dec
+
[LibraryClasses]
- PeCoffLib
PcdLib
MemoryAllocationLib
BaseMemoryLib
- PeiServicesTablePointerLib
ExtractGuidedSectionLib
UefiDecompressLib
- CacheMaintenanceLib
ReportStatusCodeLib
PeiServicesLib
HobLib
BaseLib
PeimEntryPoint
DebugLib
- S3Lib
- RecoveryLib
- PerformanceLib
+ DebugAgentLib
+ PeiServicesTablePointerLib
+
+[LibraryClasses.ARM, LibraryClasses.AARCH64]
+ ArmMmuLib
[Ppis]
- gEfiEndOfPeiSignalPpiGuid # PPI SOMETIMES_PRODUCED
- gEfiDxeIplPpiGuid # PPI SOMETIMES_PRODUCED
- gEfiPeiDecompressPpiGuid
- gEfiPeiReadOnlyVariable2PpiGuid
+ 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
[Guids]
+ ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"
+ ## SOMETIMES_PRODUCES ## HOB
gEfiMemoryTypeInformationGuid
-[FeaturePcd.common]
- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportCustomDecompress
- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportTianoDecompress
- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportEfiDecompress
- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildShareCodeHobs
-
[FeaturePcd.IA32]
- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplEnableIdt
- gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES
+
+[FeaturePcd.X64]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables ## CONSUMES
+
+[FeaturePcd]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress ## CONSUMES
-[FixedPcd.common]
- gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiHandoffToDxe
+[Pcd.IA32,Pcd.X64]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
+ gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
+
+[Pcd.IA32,Pcd.X64,Pcd.ARM,Pcd.AARCH64]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack ## SOMETIMES_CONSUMES
[Depex]
- gEfiPeiMemoryDiscoveredPpiGuid
+ 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