-#/** @file\r
-# Component description file for DxeIpl module\r
-#\r
-# The responsibility of this module is to load the DXE Core from a Firmware Volume. This implementation i used to load a 32-bit DXE Core.\r
-# Copyright (c) 2006 - 2007, Intel Corporation\r
-#\r
-# All rights reserved. This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-#\r
-#**/\r
-\r
-[Defines]\r
- INF_VERSION = 0x00010005\r
- BASE_NAME = DxeIpl\r
- FILE_GUID = 86D70125-BAA3-4296-A62F-602BEBBB9081\r
- MODULE_TYPE = PEIM\r
- VERSION_STRING = 1.0\r
- EDK_RELEASE_VERSION = 0x00020000\r
- EFI_SPECIFICATION_VERSION = 0x00020000\r
-\r
- ENTRY_POINT = PeimInitializeDxeIpl\r
-\r
-#\r
-# The following information is for reference only and not required by the build tools.\r
-#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
-#\r
-\r
-[Sources.common]\r
- DxeIpl.h\r
- DxeLoad.c\r
-\r
-[Sources.Ia32]\r
- Ia32/VirtualMemory.h\r
- Ia32/VirtualMemory.c\r
- Ia32/DxeLoadFunc.c\r
- Ia32/ImageRead.c\r
-\r
-[Sources.X64]\r
- X64/DxeLoadFunc.c\r
- Ia32/ImageRead.c\r
-\r
-[Sources.IPF]\r
- Ipf/DxeLoadFunc.c\r
- Ipf/ImageRead.c\r
-\r
-[Sources.EBC]\r
- X64/DxeLoadFunc.c\r
- Ia32/ImageRead.c\r
-\r
-\r
-[Packages]\r
- MdePkg/MdePkg.dec \r
- IntelFrameworkPkg/IntelFrameworkPkg.dec\r
- IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec\r
-\r
-\r
-[LibraryClasses]\r
- PeCoffLib\r
- PcdLib\r
- MemoryAllocationLib\r
- BaseMemoryLib\r
- PeiServicesTablePointerLib\r
- CustomDecompressLib\r
- TianoDecompressLib\r
- UefiDecompressLib\r
- PeCoffLoaderLib\r
- CacheMaintenanceLib\r
- ReportStatusCodeLib\r
- PeiServicesLib\r
- HobLib\r
- BaseLib\r
- PeimEntryPoint\r
- DebugLib\r
-\r
-\r
-[Protocols]\r
- gEfiCustomizedDecompressProtocolGuid # PROTOCOL SOMETIMES_PRODUCED\r
- gEfiTianoDecompressProtocolGuid # PROTOCOL SOMETIMES_PRODUCED\r
- gEfiDecompressProtocolGuid # PROTOCOL SOMETIMES_PRODUCED\r
-\r
-\r
-[Ppis]\r
- gEfiPeiSecurityPpiGuid # PPI SOMETIMES_CONSUMED\r
- gEfiPeiSectionExtractionPpiGuid # PPI SOMETIMES_CONSUMED\r
- gEfiPeiS3ResumePpiGuid # PPI SOMETIMES_CONSUMED\r
- gEfiPeiRecoveryModulePpiGuid # PPI SOMETIMES_CONSUMED\r
- gEfiEndOfPeiSignalPpiGuid # PPI SOMETIMES_PRODUCED\r
- gEfiPeiFvFileLoaderPpiGuid # PPI SOMETIMES_PRODUCED\r
- gEfiDxeIplPpiGuid # PPI SOMETIMES_PRODUCED\r
- gEfiPeiPeCoffLoaderGuid \r
-\r
-\r
-[PcdsFeatureFlag.common]\r
- PcdDxeIplSupportCustomDecompress|gEfiMdeModulePkgTokenSpaceGuid\r
- PcdDxeIplSupportTianoDecompress|gEfiMdeModulePkgTokenSpaceGuid\r
- PcdDxeIplSupportEfiDecompress|gEfiMdeModulePkgTokenSpaceGuid\r
- PcdDxeIplBuildShareCodeHobs|gEfiMdeModulePkgTokenSpaceGuid\r
-\r
-[PcdsFeatureFlag.IA32]\r
- PcdDxeIplSwitchToLongMode|gEfiMdeModulePkgTokenSpaceGuid\r
-\r
-\r
-[Depex]\r
- gEfiPeiMemoryDiscoveredPpiGuid\r
-\r
+#/** @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 - 2009, Intel Corporation. <BR>
+# 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
+ 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 IPF EBC (EBC is for build only)
+#
+
+[Sources.common]
+ DxeIpl.h
+ DxeLoad.c
+
+[Sources.Ia32]
+ Ia32/VirtualMemory.h ||||PcdDxeIplSwitchToLongMode
+ Ia32/VirtualMemory.c ||||PcdDxeIplSwitchToLongMode
+ Ia32/DxeLoadFunc.c
+ Ia32/IdtVectorAsm.asm||||PcdDxeIplSwitchToLongMode
+ Ia32/IdtVectorAsm.S ||||PcdDxeIplSwitchToLongMode
+
+[Sources.X64]
+ X64/VirtualMemory.h
+ X64/VirtualMemory.c
+ X64/DxeLoadFunc.c
+
+[Sources.IPF]
+ Ipf/DxeLoadFunc.c
+
+[Sources.EBC]
+ Ebc/DxeLoadFunc.c
+
+[Sources.ARM]
+ Arm/DxeLoadFunc.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+
+[LibraryClasses]
+ PcdLib
+ MemoryAllocationLib
+ BaseMemoryLib
+ ExtractGuidedSectionLib
+ UefiDecompressLib
+ ReportStatusCodeLib
+ PeiServicesLib
+ HobLib
+ BaseLib
+ PeimEntryPoint
+ DebugLib
+
+[Ppis]
+ gEfiDxeIplPpiGuid ## PRODUCES
+ gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES(Not produced on S3 boot path)
+ gEfiPeiDecompressPpiGuid ## SOMETIMES_PRODUCES
+ gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_CONSUMES
+ gEfiPeiLoadFilePpiGuid ## CONSUMES
+ gEfiPeiS3ResumePpiGuid ## SOMETIMES_CONSUMES(Consumed on S3 boot path)
+ gEfiPeiRecoveryModulePpiGuid ## SOMETIMES_CONSUMES(Consumed on recovery boot path)
+
+[Guids]
+ gEfiMemoryTypeInformationGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"
+ gEfiMemoryTypeInformationGuid ## SOMETIMES_PRODUCES ## HOB
+
+[FeaturePcd.IA32]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
+
+[FeaturePcd.common]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress
+
+[FixedPcd.common]
+ gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValuePeiHandoffToDxe
+
+[Depex]
+ gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiLoadFilePpiGuid
+
+#
+# [BootMode]
+# S3_RESUME ## SOMETIMES_CONSUMES
+# RECOVERY ## 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
+#
+#