]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/EdkModulePkg.spd
Fix PeiLoadImage() for compressed peim to print the correct image address and entrypoint.
[mirror_edk2.git] / EdkModulePkg / EdkModulePkg.spd
index e61fb2c45b9ab448d6533b134a0c5f5129e3132b..6359d649e8775bd9dcca8c57eda06d44e246a11e 100644 (file)
@@ -1,15 +1,5 @@
-<?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
-<PackageSurfaceArea  xmlns="http://www.TianoCore.org/2006/Edk2.0">\r
+<?xml version="1.0" encoding="UTF-8"?>\r
+<PackageSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
   <SpdHeader>\r
     <PackageName>EdkModulePkg</PackageName>\r
     <GuidValue>B6EC423C-21D2-490D-85C6-DD5864EAA674</GuidValue>\r
@@ -34,10 +24,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/CustomDecompressLib.h</IncludeHeader>\r
       <HelpText/>\r
     </LibraryClass>\r
-    <LibraryClass Name="EdkBsDataHubStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkBsDataHubStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </LibraryClass>\r
     <LibraryClass Name="EdkDxeSalLib">\r
       <IncludeHeader>Include/Library/EdkDxeSalLib.h</IncludeHeader>\r
       <HelpText/>\r
@@ -54,10 +40,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/EdkIfrSupportLib.h</IncludeHeader>\r
       <HelpText/>\r
     </LibraryClass>\r
-    <LibraryClass Name="EdkMemoryStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkMemoryStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </LibraryClass>\r
     <LibraryClass Name="EdkPeCoffLoaderLib">\r
       <IncludeHeader>Include/Library/EdkPeCoffLoaderLib.h</IncludeHeader>\r
       <HelpText/>\r
@@ -66,14 +48,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/EdkPeCoffLoaderX64Lib.h</IncludeHeader>\r
       <HelpText/>\r
     </LibraryClass>\r
-    <LibraryClass Name="EdkRtMemoryStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkRtMemoryStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </LibraryClass>\r
-    <LibraryClass Name="EdkRtPlatformStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkRtPlatformStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </LibraryClass>\r
     <LibraryClass Name="EdkScsiLib">\r
       <IncludeHeader>Include/Library/EdkScsiLib.h</IncludeHeader>\r
       <HelpText/>\r
@@ -86,6 +60,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/TianoDecompressLib.h</IncludeHeader>\r
       <HelpText/>\r
     </LibraryClass>\r
+    <LibraryClass Name="SerialPortLib">\r
+      <IncludeHeader>Include/Library/SerialPortLib.h</IncludeHeader>\r
+      <HelpText/>\r
+    </LibraryClass>\r
+    <LibraryClass Name="OemHookStatusCodeLib">\r
+      <IncludeHeader>Include/Library/OemHookStatusCodeLib.h</IncludeHeader>\r
+      <HelpText/>\r
+    </LibraryClass>\r
   </LibraryClassDeclarations>\r
   <IndustryStdIncludes>\r
     <IndustryStdHeader Name="CapsuleName">\r
@@ -208,10 +190,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/CustomDecompressLib.h</IncludeHeader>\r
       <HelpText/>\r
     </IndustryStdHeader>\r
-    <IndustryStdHeader Name="EdkBsDataHubStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkBsDataHubStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </IndustryStdHeader>\r
     <IndustryStdHeader Name="EdkDxeSalLib">\r
       <IncludeHeader>Include/Library/EdkDxeSalLib.h</IncludeHeader>\r
       <HelpText/>\r
@@ -228,10 +206,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/EdkIfrSupportLib.h</IncludeHeader>\r
       <HelpText/>\r
     </IndustryStdHeader>\r
-    <IndustryStdHeader Name="EdkMemoryStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkMemoryStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </IndustryStdHeader>\r
     <IndustryStdHeader Name="EdkPeCoffLoaderLib">\r
       <IncludeHeader>Include/Library/EdkPeCoffLoaderLib.h</IncludeHeader>\r
       <HelpText/>\r
@@ -240,14 +214,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Library/EdkPeCoffLoaderX64Lib.h</IncludeHeader>\r
       <HelpText/>\r
     </IndustryStdHeader>\r
-    <IndustryStdHeader Name="EdkRtMemoryStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkRtMemoryStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </IndustryStdHeader>\r
-    <IndustryStdHeader Name="EdkRtPlatformStatusCodeLib">\r
-      <IncludeHeader>Include/Library/EdkRtPlatformStatusCodeLib.h</IncludeHeader>\r
-      <HelpText/>\r
-    </IndustryStdHeader>\r
     <IndustryStdHeader Name="EdkScsiLib">\r
       <IncludeHeader>Include/Library/EdkScsiLib.h</IncludeHeader>\r
       <HelpText/>\r
@@ -364,10 +330,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <IncludeHeader>Include/Protocol/ScsiIo.h</IncludeHeader>\r
       <HelpText/>\r
     </IndustryStdHeader>\r
-    <IndustryStdHeader Name="SecurityPolicy">\r
-      <IncludeHeader>Include/Protocol/SecurityPolicy.h</IncludeHeader>\r
-      <HelpText/>\r
-    </IndustryStdHeader>\r
     <IndustryStdHeader Name="UgaIo">\r
       <IncludeHeader>Include/Protocol/UgaIo.h</IncludeHeader>\r
       <HelpText/>\r
@@ -404,6 +366,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>Bus/Pci/IdeBus/Dxe/idebus.msa</Filename>\r
     <Filename>Bus/Pci/PciBus/Dxe/PciBus.msa</Filename>\r
     <Filename>Bus/Pci/Uhci/Dxe/Uhci.msa</Filename>\r
+    <Filename>Bus/Pci/Ehci/Dxe/Ehci.msa</Filename>\r
     <Filename>Bus/Pci/Undi/RuntimeDxe/Undi.msa</Filename>\r
     <Filename>Bus/Scsi/ScsiBus/Dxe/ScsiBus.msa</Filename>\r
     <Filename>Bus/Scsi/ScsiDisk/Dxe/ScsiDisk.msa</Filename>\r
@@ -428,28 +391,27 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>Library/EdkDxePeCoffLoaderFromHobLib/EdkDxePeCoffLoaderFromHobLib.msa</Filename>\r
     <Filename>Library/DxePerformanceLib/DxePerformanceLib.msa</Filename>\r
     <Filename>Library/EdkDxePrintLib/EdkDxePrintLib.msa</Filename>\r
-    <Filename>Library/EdkDxeRuntimeDriverLib/EdkDxeRuntimeDriverLib.msa</Filename>\r
+    <Filename>Library/EdkUefiRuntimeLib/EdkUefiRuntimeLib.msa</Filename>\r
     <Filename>Library/EdkDxeSalLib/EdkDxeSalLib.msa</Filename>\r
     <Filename>Library/EdkFvbServiceLib/EdkFvbServiceLib.msa</Filename>\r
     <Filename>Library/EdkGraphicsLib/EdkGraphicsLib.msa</Filename>\r
     <Filename>Library/EdkIfrSupportLib/EdkIfrSupportLib.msa</Filename>\r
-    <Filename>Library/EdkMemoryStatusCodeLib/EdkMemoryStatusCodeLib.msa</Filename>\r
     <Filename>Library/EdkNullCustomizedDecompressLib/EdkNullCustomizedDecompressLib.msa</Filename>\r
     <Filename>Library/EdkPeCoffLoaderLib/EdkPeCoffLoaderLib.msa</Filename>\r
     <Filename>Library/EdkPeCoffLoaderX64Lib/EdkPeCoffLoaderX64Lib.msa</Filename>\r
     <Filename>Library/PeiPerformanceLib/PeiPerformanceLib.msa</Filename>\r
-    <Filename>Library/EdkRuntimeStatusCodeLib/BsDataHubStatusCode/BsDataHubStatusCode.msa</Filename>\r
-    <Filename>Library/EdkRuntimeStatusCodeLib/RtMemoryStatusCode/RtMemoryStatusCode.msa</Filename>\r
-    <Filename>Library/EdkRuntimeStatusCodeLib/RtPlatformStatusCode/RtPlatformStatusCode.msa</Filename>\r
     <Filename>Library/EdkScsiLib/EdkScsiLib.msa</Filename>\r
     <Filename>Library/EdkUefiDebugLibConOut/EdkUefiDebugLibConOut.msa</Filename>\r
     <Filename>Library/EdkUefiDebugLibStdErr/EdkUefiDebugLibStdErr.msa</Filename>\r
     <Filename>Library/EdkUsbLib/EdkUsbLib.msa</Filename>\r
+    <Filename>Library/EdkSerialPortLibNull/EdkSerialPortLibNull.msa</Filename>\r
+    <Filename>Library/EdkOemHookStatusCodeLibNull/EdkOemHookStatusCodeLibNull.msa</Filename>\r
     <Filename>Universal/Console/ConSplitter/Dxe/ConSplitter.msa</Filename>\r
     <Filename>Universal/Console/GraphicsConsole/Dxe/GraphicsConsole.msa</Filename>\r
     <Filename>Universal/Console/Terminal/Dxe/Terminal.msa</Filename>\r
     <Filename>Universal/DataHub/DataHub/Dxe/DataHub.msa</Filename>\r
     <Filename>Universal/DataHub/DataHubStdErr/Dxe/DataHubStdErr.msa</Filename>\r
+    <Filename>Universal/DevicePath/Dxe/DevicePath.msa</Filename>\r
     <Filename>Universal/Debugger/Debugport/Dxe/DebugPort.msa</Filename>\r
     <Filename>Universal/DebugSupport/Dxe/DebugSupport.msa</Filename>\r
     <Filename>Universal/Disk/DiskIo/Dxe/DiskIo.msa</Filename>\r
@@ -468,7 +430,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>Universal/PCD/Dxe/Pcd.msa</Filename>\r
     <Filename>Universal/Runtime/RuntimeDxe/Runtime.msa</Filename>\r
     <Filename>Universal/Security/SecurityStub/Dxe/SecurityStub.msa</Filename>\r
-    <Filename>Universal/StatusCode/RuntimeDxe/StatusCode.msa</Filename>\r
     <Filename>Universal/UserInterface/HiiDataBase/Dxe/HiiDatabase.msa</Filename>\r
     <Filename>Universal/UserInterface/DriverSample/DriverSample.msa</Filename>\r
     <Filename>Universal/UserInterface/SetupBrowser/Dxe/SetupBrowser.msa</Filename>\r
@@ -477,6 +438,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>Universal/Variable/RuntimeDxe/Variable.msa</Filename>\r
     <Filename>Universal/Capsule/RuntimeDxe/CapsuleRuntime.msa</Filename>\r
     <Filename>Universal/WatchdogTimer/Dxe/WatchDogTimer.msa</Filename>\r
+    <Filename>Universal/StatusCode/Pei/PeiStatusCode.msa</Filename>\r
+    <Filename>Universal/StatusCode/Dxe/DxeStatusCode.msa</Filename>\r
   </MsaFiles>\r
   <PackageHeaders>\r
     <IncludePkgHeader ModuleType="SEC">Include/EdkPeim.h</IncludePkgHeader>\r
@@ -491,11 +454,17 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <IncludePkgHeader ModuleType="USER_DEFINED">Include/EdkPeim.h</IncludePkgHeader>\r
   </PackageHeaders>\r
   <GuidDeclarations>\r
+    <Entry Name="GenericPlatformTokenSpace">\r
+      <C_Name>gEfiGenericPlatformTokenSpaceGuid</C_Name>\r
+      <GuidValue>18D15EA6-9E14-40a1-B39C-59C44DA9D891</GuidValue>\r
+      <HelpText>This is the token space GUID for platform generic PCD definitions.
+        Now FlashLayout and Platform CPU belong to this space.</HelpText>\r
+    </Entry>\r
     <Entry Name="EdkModulePkgTokenSpace">\r
       <C_Name>gEfiEdkModulePkgTokenSpaceGuid</C_Name>\r
       <GuidValue>8CC4092F-F60E-46d1-B41C-1E761DF50582</GuidValue>\r
       <HelpText>All PCD define in EdkModulePkg is in this token space scope</HelpText>\r
-    </Entry>  \r
+    </Entry>\r
     <Entry Name="PcdDataBaseHob">\r
       <C_Name>gPcdDataBaseHobGuid</C_Name>\r
       <GuidValue>EA296D92-0B69-423C-8C28-33B4E0A91268</GuidValue>\r
@@ -671,6 +640,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <GuidValue>EC4DF5AF-4395-4CC9-94DE-77506D12C7B8</GuidValue>\r
       <HelpText/>\r
     </Entry>\r
+    <Entry Name="MemoryStatusCodeRecord">\r
+      <C_Name>gMemoryStatusCodeRecordGuid</C_Name>\r
+      <GuidValue>060CC026-4C0D-4DDA-8F41-595FEF00A502</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
   </GuidDeclarations>\r
   <ProtocolDeclarations>\r
     <Entry Name="Capsule">\r
@@ -832,107 +806,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     </Entry>\r
   </PpiDeclarations>\r
   <PcdDeclarations>\r
-    <PcdEntry>\r
-      <C_Name>PcdMaximumUnicodeStringLength</C_Name>\r
-      <Token>0x00000001</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT32</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>1000000</DefaultValue>\r
-      <HelpText>If PcdMaximumUnicodeStringLength is not zero, the maximum\r
-                number of characters (not counting the NULL-terminator) in a\r
-                Unicode string cannot exceed it.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdMaximumAsciiStringLength</C_Name>\r
-      <Token>0x00000002</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT32</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>1000000</DefaultValue>\r
-      <HelpText>If PcdMaximumAsciiStringLength is not zero, the maximum number\r
-                of characters (not counting the NULL-terminator) in an ASCII\r
-                string cannot exceed it.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdMaximumLinkedListLength</C_Name>\r
-      <Token>0x00000003</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT32</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>1000000</DefaultValue>\r
-      <HelpText>If PcdMaximumLinkedListLength is not zero, the maximum number\r
-                of nodes (not counting the list header) in a linked list\r
-                cannot exceed it.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdSpinLockTimeout</C_Name>\r
-      <Token>0x00000004</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT32</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>10000000</DefaultValue>\r
-      <HelpText>If PcdSpinLockTimeout is not zero, it stands for the timeout\r
-                value (unit: millisecond) for spin lock.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdDebugPropertyMask</C_Name>\r
-      <Token>0x00000005</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT8</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>0x0f</DefaultValue>\r
-      <HelpText>The bitmask of flags that specify the enable/disable of Debug\r
-                Assert, Debug Print, Debug Code, Clear Memory, Assert\r
-                Breakpoint and Assert Deadloop.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdDebugPrintErrorLevel</C_Name>\r
-      <Token>0x00000006</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT32</DatumType>\r
-      <ValidUsage>PATCHABLE_IN_MODULE</ValidUsage>\r
-      <DefaultValue>0x80000000</DefaultValue>\r
-      <HelpText>The bitmask of flags that specify the kind of debug message\r
-                output when Debug Print is enabled.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdReportStatusCodePropertyMask</C_Name>\r
-      <Token>0x00000007</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT8</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>0x07</DefaultValue>\r
-      <HelpText>The bitmask of flags that specify the enable/disable of\r
-                Progress Code, Error Code and Debug Code.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdDebugClearMemoryValue</C_Name>\r
-      <Token>0x00000008</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT8</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>0xAF</DefaultValue>\r
-      <HelpText>The value used by DebugClearMemory () to fill a certain range\r
-                of memory.</HelpText>\r
-    </PcdEntry>\r
-    <PcdEntry>\r
-      <C_Name>PcdPerformanceLibraryPropertyMask</C_Name>\r
-      <Token>0x00000009</Token>\r
-      <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
-      <DatumType>UINT8</DatumType>\r
-      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <DefaultValue>0</DefaultValue>\r
-      <HelpText>The bitmask of flags that specify the enable/disable of\r
-                Performance Measurement.</HelpText>\r
-    </PcdEntry>\r
     <PcdEntry>\r
       <C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>\r
       <Token>0x0001000f</Token>\r
       <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
       <DatumType>UINT32</DatumType>\r
       <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <HelpText>The maximum number of callback function, which will be triggered when \r
+      <HelpText>The maximum number of callback function, which will be triggered when 
         a PCD entry is been set, can be registered for a single PCD entry in PEI phase.</HelpText>\r
     </PcdEntry>\r
     <PcdEntry>\r
@@ -941,7 +821,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
       <DatumType>UINT32</DatumType>\r
       <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
-      <HelpText>The base address of the VPD (Vital Product Data) region. It is \r
+      <HelpText>The base address of the VPD (Vital Product Data) region. It is 
         normally a region reserved on flash.</HelpText>\r
     </PcdEntry>\r
     <PcdEntry>\r
@@ -967,7 +847,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <DatumType>UINT32</DatumType>\r
       <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
       <HelpText>Indicate the max size the platform can support in case of non-populated capsules</HelpText>\r
-    </PcdEntry>  \r
+    </PcdEntry>\r
     <PcdEntry>\r
       <C_Name>PcdPeiPcdDatabaseTraverseEnabled</C_Name>\r
       <Token>0x00010020</Token>\r
@@ -975,7 +855,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <DatumType>BOOLEAN</DatumType>\r
       <ValidUsage>FEATURE_FLAG</ValidUsage>\r
       <DefaultValue>TRUE</DefaultValue>\r
-      <HelpText>This feature flag can be used to enable or disable the Pcd PEIM database \r
+      <HelpText>This feature flag can be used to enable or disable the Pcd PEIM database 
         traverse capability. Disable it can reduce the size of final image generated.</HelpText>\r
     </PcdEntry>\r
     <PcdEntry>\r
@@ -985,8 +865,224 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
       <DatumType>BOOLEAN</DatumType>\r
       <ValidUsage>FEATURE_FLAG</ValidUsage>\r
       <DefaultValue>TRUE</DefaultValue>\r
-      <HelpText>This feature flag can be used to enable or disable the Pcd DXE database \r
+      <HelpText>This feature flag can be used to enable or disable the Pcd DXE database 
         traverse capability. Disable it can reduce the size of final image generated.</HelpText>\r
     </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseSerial</C_Name>\r
+      <Token>0x00010022</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable report staus code to serial I/O. Disable it can reduce the size of final image generated.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseMemory</C_Name>\r
+      <Token>0x00010023</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable save statuc code in GUID'ed HOB. Disable it can reduce the size of final image generated.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseOEM</C_Name>\r
+      <Token>0x00010024</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable send status code to OEM device. Disable it can reduce the size of final image generated.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeMemorySize</C_Name>\r
+      <Token>0x00010025</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT16</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>4</DefaultValue>\r
+      <HelpText>kbytes size of GUID'ed HOB, if the GUID'ed HOB is full, create new GUID'ed HOB with this size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseEfiSerial</C_Name>\r
+      <Token>0x00010026</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to switch on/off report status code through serial DXE.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseHardSerial</C_Name>\r
+      <Token>0x00010027</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to switch on/off report status code to serial device.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseRuntimeMemory</C_Name>\r
+      <Token>0x00010028</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to switch on/off save status code in runtime memory.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeUseDataHub</C_Name>\r
+      <Token>0x00010029</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to switch on/off log status code in data hub.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeReplayInSerial</C_Name>\r
+      <Token>0x0001002a</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeReplayInRuntimeMemory</C_Name>\r
+      <Token>0x0001002b</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeReplayInDataHub</C_Name>\r
+      <Token>0x0001002c</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeReplayInOEM</C_Name>\r
+      <Token>0x0001002d</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Use to enable/dsable replay status code which saved in GUID'ed HOB in PEI phase to EFI serial.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdStatusCodeRuntimeMemorySize</C_Name>\r
+      <Token>0x0001002e</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT16</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>4</DefaultValue>\r
+      <HelpText>kbytes size of runtime memory.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdMaxPeiPerformanceLogEntries</C_Name>\r
+      <Token>0x0001002f</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT8</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE</ValidUsage>\r
+      <DefaultValue>28</DefaultValue>\r
+      <HelpText>Maximun number of performance log entries during PEI phase.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+      <Token>0x00010030</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the SET capability of PCD service PEIM. If a platform does not do PCD SET operation in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+      <Token>0x00010031</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the GET size capability of PCD service PEIM. If a platform does not do PCD get size operation in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+      <Token>0x00010032</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the Callback On SET capability of PCD service PEIM. If a platform does not register any callback on set  in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+      <Token>0x00010033</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the PCD service PEIM to handle DynamicEX PCD. If a platform has no module to use DynamicEX  in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageVariableBase</C_Name>\r
+      <Token>0x30000001</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0xFFFB0000</DefaultValue>\r
+      <HelpText>Base address of the variable section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageVariableSize</C_Name>\r
+      <Token>0x30000002</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0000A000</DefaultValue>\r
+      <HelpText>Size of the variable section in NV firmware volume..</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwSpareBase</C_Name>\r
+      <Token>0x30000013</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0xFFFC0000</DefaultValue>\r
+      <HelpText>Base address of the FTW spare block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwSpareSize</C_Name>\r
+      <Token>0x30000014</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x00010000</DefaultValue>\r
+      <HelpText>Size of the FTW spare block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwWorkingBase</C_Name>\r
+      <Token>0x30000010</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0xFFFBE000</DefaultValue>\r
+      <HelpText>Base address of the FTW working block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwWorkingSize</C_Name>\r
+      <Token>0x30000011</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x00002000</DefaultValue>\r
+      <HelpText>Size of the FTW working block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
   </PcdDeclarations>\r
 </PackageSurfaceArea>
\ No newline at end of file