<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
-Copyright (c) 2006, Intel Corporation\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
-\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
-<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
<MsaHeader>\r
- <BaseName>DxeIpl</BaseName>\r
+ <ModuleName>DxeIpl</ModuleName>\r
<ModuleType>PEIM</ModuleType>\r
- <ComponentType>PE32_PEIM</ComponentType>\r
- <Guid>86D70125-BAA3-4296-A62F-602BEBBB9081</Guid>\r
- <Version>EDK_RELEASE_VERSION 0x00020000</Version>\r
+ <GuidValue>86D70125-BAA3-4296-A62F-602BEBBB9081</GuidValue>\r
+ <Version>1.0</Version>\r
<Abstract>Component description file for DxeIpl module</Abstract>\r
- <Description>FIX ME!</Description>\r
- <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>\r
- <License>\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
- </License>\r
- <Specification>EFI_SPECIFICATION_VERSION 0x00000000</Specification>\r
- <Created>2006-03-12 17:09</Created>\r
- <Updated>2006-03-22 18:54</Updated>\r
+ <Description>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.</Description>\r
+ <Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>\r
+ <License>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.</License>\r
+ <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>\r
</MsaHeader>\r
+ <ModuleDefinitions>\r
+ <SupportedArchitectures>IA32 X64 IPF EBC</SupportedArchitectures>\r
+ <BinaryModule>false</BinaryModule>\r
+ <OutputFileBasename>DxeIpl</OutputFileBasename>\r
+ </ModuleDefinitions>\r
<LibraryClassDefinitions>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">DebugLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PeimEntryPoint</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">BaseLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">HobLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PerformanceLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PeiCoreLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">ReportStatusCodeLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">CacheMaintenanceLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">EdkPeCoffLoaderLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">UefiDecompressLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">TianoDecompressLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">CustomDecompressLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PeiServicesTablePointerLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">BaseMemoryLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">MemoryAllocationLib</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>DebugLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>PeimEntryPoint</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>HobLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>PeiServicesLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>ReportStatusCodeLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>CacheMaintenanceLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>EdkPeCoffLoaderLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>UefiDecompressLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>TianoDecompressLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>CustomDecompressLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>PeiServicesTablePointerLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseMemoryLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>MemoryAllocationLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>PcdLib</Keyword>\r
+ </LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>PeCoffLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>DxeLoad.c</Filename>\r
+ <Filename>DxeIpl.h</Filename>\r
<Filename>DxeIpl.dxs</Filename>\r
- <Arch ArchType="IA32">\r
- <Filename>Ia32/ImageRead.c</Filename>\r
- <Filename>Ia32/DxeLoadFunc.c</Filename>\r
- </Arch>\r
- <Arch ArchType="X64">\r
- <Filename>Ia32/ImageRead.c</Filename>\r
- <Filename>Ia32/DxeLoadFunc.c</Filename>\r
- </Arch>\r
- <Arch ArchType="IPF">\r
- <Filename>ipf/ImageRead.c</Filename>\r
- <Filename>ipf/DxeLoadFunc.c</Filename>\r
- </Arch>\r
- <Arch ArchType="EBC">\r
- <Filename>Ia32/ImageRead.c</Filename>\r
- <Filename>Ia32/DxeLoadFunc.c</Filename>\r
- </Arch>\r
+ <Filename SupArchList="IA32 X64 EBC">Ia32/ImageRead.c</Filename>\r
+ <Filename SupArchList="IA32">Ia32/DxeLoadFunc.c</Filename>\r
+ <Filename SupArchList="IA32">Ia32/VirtualMemory.c</Filename>\r
+ <Filename SupArchList="IA32">Ia32/VirtualMemory.h</Filename>\r
+ <Filename SupArchList="X64 EBC">X64/DxeLoadFunc.c</Filename>\r
+ <Filename SupArchList="IPF">Ipf/ImageRead.c</Filename>\r
+ <Filename SupArchList="IPF">Ipf/DxeLoadFunc.c</Filename>\r
</SourceFiles>\r
- <Includes>\r
- <PackageName>MdePkg</PackageName>\r
- <PackageName>EdkModulePkg</PackageName>\r
- </Includes>\r
+ <PackageDependencies>\r
+ <Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>\r
+ <Package PackageGuid="68169ab0-d41b-4009-9060-292c253ac43d"/>\r
+ </PackageDependencies>\r
<Protocols>\r
- <Protocol Usage="SOMETIMES_PRODUCED">Decompress</Protocol>\r
- <Protocol Usage="SOMETIMES_PRODUCED">TianoDecompress</Protocol>\r
- <Protocol Usage="SOMETIMES_PRODUCED">CustomizedDecompress</Protocol>\r
+ <Protocol Usage="SOMETIMES_PRODUCED">\r
+ <ProtocolCName>gEfiDecompressProtocolGuid</ProtocolCName>\r
+ </Protocol>\r
+ <Protocol Usage="SOMETIMES_PRODUCED">\r
+ <ProtocolCName>gEfiTianoDecompressProtocolGuid</ProtocolCName>\r
+ </Protocol>\r
+ <Protocol Usage="SOMETIMES_PRODUCED">\r
+ <ProtocolCName>gEfiCustomizedDecompressProtocolGuid</ProtocolCName>\r
+ </Protocol>\r
</Protocols>\r
- <Hobs>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="MEMORY_ALLOCATION">\r
- <C_Name>gEfiHobMemoryAllocBspStoreGuid</C_Name>\r
- <Guid>0x564b33cd, 0xc92a, 0x4593, 0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22</Guid>\r
- </Hob>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">\r
- <C_Name>gEfiDecompressProtocolGuid</C_Name>\r
- <Guid>0xd8117cfe, 0x94a6, 0x11d4, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d</Guid>\r
- </Hob>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">\r
- <C_Name>gEfiTianoDecompressProtocolGuid</C_Name>\r
- <Guid>0xe84cf29c, 0x191f, 0x4eae, 0x96, 0xe1, 0xf4, 0x6a, 0xec, 0xea, 0xea, 0x0b</Guid>\r
- </Hob>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">\r
- <C_Name>gEfiCustomizedDecompressProtocolGuid</C_Name>\r
- <Guid>0x9a44198e, 0xa4a2, 0x44e6, 0x8a, 0x1f, 0x39, 0xbe, 0xfd, 0xac, 0x89, 0x6f</Guid>\r
- </Hob>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">\r
- <C_Name>gEfiPeiPeCoffLoaderGuid</C_Name>\r
- <Guid>0xd8117cff, 0x94a6, 0x11d4, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d</Guid>\r
- </Hob>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="MEMORY_ALLOCATION">\r
- <C_Name>gEfiHobMemoryAllocModuleGuid</C_Name>\r
- <Guid>0xf8e21975, 0x0899, 0x4f58, 0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a</Guid>\r
- </Hob>\r
- <Hob Usage="SOMETIMES_PRODUCED" HobType="FIRMWARE_VOLUME">\r
- <Name>DecompressedFvmain.fv</Name>\r
- </Hob>\r
- </Hobs>\r
<PPIs>\r
- <Ppi Usage="SOMETIMES_PRODUCED">DxeIpl</Ppi>\r
- <Ppi Usage="SOMETIMES_PRODUCED">FvFileLoader</Ppi>\r
- <Ppi Usage="SOMETIMES_PRODUCED">EndOfPeiSignal</Ppi>\r
- <Ppi Usage="SOMETIMES_CONSUMED">RecoveryModule</Ppi>\r
- <Ppi Usage="SOMETIMES_CONSUMED">S3Resume</Ppi>\r
- <Ppi Usage="SOMETIMES_CONSUMED">SectionExtraction</Ppi>\r
- <Ppi Usage="SOMETIMES_CONSUMED">Security</Ppi>\r
- <Ppi Usage="PRIVATE">PeiInMemory</Ppi>\r
+ <Ppi Usage="SOMETIMES_PRODUCED">\r
+ <PpiCName>gEfiDxeIplPpiGuid</PpiCName>\r
+ </Ppi>\r
+ <Ppi Usage="SOMETIMES_PRODUCED">\r
+ <PpiCName>gEfiPeiFvFileLoaderPpiGuid</PpiCName>\r
+ </Ppi>\r
+ <Ppi Usage="SOMETIMES_PRODUCED">\r
+ <PpiCName>gEfiEndOfPeiSignalPpiGuid</PpiCName>\r
+ </Ppi>\r
+ <Ppi Usage="SOMETIMES_CONSUMED">\r
+ <PpiCName>gEfiPeiRecoveryModulePpiGuid</PpiCName>\r
+ </Ppi>\r
+ <Ppi Usage="SOMETIMES_CONSUMED">\r
+ <PpiCName>gEfiPeiS3ResumePpiGuid</PpiCName>\r
+ </Ppi>\r
+ <Ppi Usage="SOMETIMES_CONSUMED">\r
+ <PpiCName>gEfiPeiSectionExtractionPpiGuid</PpiCName>\r
+ </Ppi>\r
+ <Ppi Usage="SOMETIMES_CONSUMED">\r
+ <PpiCName>gEfiPeiSecurityPpiGuid</PpiCName>\r
+ </Ppi>\r
</PPIs>\r
<Guids>\r
- <GuidEntry Usage="SOMETIMES_CONSUMED">\r
- <C_Name>PeiPeCoffLoader</C_Name>\r
- </GuidEntry>\r
+ <GuidCNames Usage="SOMETIMES_CONSUMED">\r
+ <GuidCName>gEfiPeiPeCoffLoaderGuid</GuidCName>\r
+ </GuidCNames>\r
</Guids>\r
<Externs>\r
+ <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>\r
+ <Specification>EDK_RELEASE_VERSION 0x00020000</Specification>\r
<Extern>\r
<ModuleEntryPoint>PeimInitializeDxeIpl</ModuleEntryPoint>\r
</Extern>\r
</Externs>\r
-</ModuleSurfaceArea>\r
+ <PcdCoded>\r
+ <PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED" SupArchList="IA32">\r
+ <C_Name>PcdDxeIplSwitchToLongMode</C_Name>\r
+ <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+ <DefaultValue>TRUE</DefaultValue>\r
+ <HelpText>If this feature is enabled, then the DXE IPL will load a 64-bit DxeCore.</HelpText>\r
+ </PcdEntry>\r
+ <PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+ <C_Name>PcdDxeIplBuildShareCodeHobs</C_Name>\r
+ <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+ <DefaultValue>FALSE</DefaultValue>\r
+ <HelpText>If this feature is enabled, DXE IPL will build a series of HOBs to share code with DXE Core.</HelpText>\r
+ </PcdEntry>\r
+ <PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+ <C_Name>PcdDxeIplSupportEfiDecompress</C_Name>\r
+ <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+ <DefaultValue>TRUE</DefaultValue>\r
+ <HelpText>If this feature is enabled, then the DXE IPL must support decompressing files compressed with the EFI Compression algorithm</HelpText>\r
+ </PcdEntry>\r
+ <PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+ <C_Name>PcdDxeIplSupportTianoDecompress</C_Name>\r
+ <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+ <DefaultValue>TRUE</DefaultValue>\r
+ <HelpText>If this feature is enabled, then the DXE IPL must support decompressing files compressed with the Tiano Compression algorithm</HelpText>\r
+ </PcdEntry>\r
+ <PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+ <C_Name>PcdDxeIplSupportCustomDecompress</C_Name>\r
+ <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+ <DefaultValue>TRUE</DefaultValue>\r
+ <HelpText>If this feature is enabled, then the DXE IPL must support decompressing files compressed with the Custom Compression algorithm</HelpText>\r
+ </PcdEntry>\r
+ </PcdCoded>\r
+</ModuleSurfaceArea>
\ No newline at end of file