<?xml version="1.0" encoding="UTF-8"?>\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
-<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
<MsaHeader>\r
<ModuleName>DxeIplX64</ModuleName>\r
<ModuleType>PEIM</ModuleType>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>MemoryAllocationLib</Keyword>\r
</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>PcdLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>DxeIpl.dxs</Filename>\r
<ModuleEntryPoint>PeimInitializeDxeIpl</ModuleEntryPoint>\r
</Extern>\r
</Externs>\r
-</ModuleSurfaceArea>
\ No newline at end of file
+ <PcdCoded>\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>\r
NULL\r
};\r
\r
-DECOMPRESS_LIBRARY gEfiDecompress = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED DECOMPRESS_LIBRARY gEfiDecompress = {\r
UefiDecompressGetInfo,\r
UefiDecompress\r
};\r
\r
-DECOMPRESS_LIBRARY gTianoDecompress = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED DECOMPRESS_LIBRARY gTianoDecompress = {\r
TianoDecompressGetInfo,\r
TianoDecompress\r
};\r
\r
-DECOMPRESS_LIBRARY gCustomDecompress = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED DECOMPRESS_LIBRARY gCustomDecompress = {\r
CustomDecompressGetInfo,\r
CustomDecompress\r
};\r
\r
switch (CompressionSection->CompressionType) {\r
case EFI_STANDARD_COMPRESSION:\r
- DecompressLibrary = &gTianoDecompress;\r
+ if (FeaturePcdGet (PcdDxeIplSupportTianoDecompress)) {\r
+ DecompressLibrary = &gTianoDecompress;\r
+ } else {\r
+ ASSERT (FALSE);\r
+ return EFI_NOT_FOUND;\r
+ }\r
break;\r
\r
case EFI_CUSTOMIZED_COMPRESSION:\r
//\r
// Load user customized compression protocol.\r
//\r
- DecompressLibrary = &gCustomDecompress;\r
+ if (FeaturePcdGet (PcdDxeIplSupportCustomDecompress)) {\r
+ DecompressLibrary = &gCustomDecompress;\r
+ } else {\r
+ ASSERT (FALSE);\r
+ return EFI_NOT_FOUND;\r
+ }\r
break;\r
\r
case EFI_NOT_COMPRESSED:\r