Add in feature flag PcdPeiPcdDatabaseSetEnabled, PcdPeiPcdDatabaseGetSizeEnabled...
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 30 Aug 2006 09:11:34 +0000 (09:11 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 30 Aug 2006 09:11:34 +0000 (09:11 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1408 6f19259b-4bc3-4df7-8a09-765794883524

EdkModulePkg/EdkModulePkg.fpd
EdkModulePkg/EdkModulePkg.spd
EdkModulePkg/Universal/PCD/Pei/Pcd.c
EdkModulePkg/Universal/PCD/Pei/Pcd.msa
EdkModulePkg/Universal/PCD/Pei/Service.c

index 719b135..c3c44a5 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
+<?xml version="1.0" encoding="UTF-8"?>\r
 <PlatformSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
   <PlatformHeader>\r
     <PlatformName>EdkModuleAll</PlatformName>\r
           <MaxDatumSize>1</MaxDatumSize>\r
           <Value>0xAF</Value>\r
         </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+          <Token>0x00010032</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+          <Token>0x00010033</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+          <Token>0x00010031</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+          <Token>0x00010030</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
       </PcdBuildDefinition>\r
       <ModuleSaBuildOptions>\r
         <FvBinding>NULL</FvBinding>\r
           <MaxDatumSize>1</MaxDatumSize>\r
           <Value>0xAF</Value>\r
         </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+          <Token>0x00010032</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+          <Token>0x00010033</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+          <Token>0x00010031</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+          <Token>0x00010030</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
       </PcdBuildDefinition>\r
       <ModuleSaBuildOptions>\r
         <FvBinding>NULL</FvBinding>\r
           <MaxDatumSize>1</MaxDatumSize>\r
           <Value>0xAF</Value>\r
         </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+          <Token>0x00010032</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+          <Token>0x00010033</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+          <Token>0x00010031</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+          <Token>0x00010030</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
       </PcdBuildDefinition>\r
       <ModuleSaBuildOptions>\r
         <FvBinding>NULL</FvBinding>\r
           <MaxDatumSize>1</MaxDatumSize>\r
           <Value>0xAF</Value>\r
         </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+          <Token>0x00010032</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+          <Token>0x00010033</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+          <Token>0x00010031</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FEATURE_FLAG">\r
+          <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+          <Token>0x00010030</Token>\r
+          <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>BOOLEAN</DatumType>\r
+          <MaxDatumSize>1</MaxDatumSize>\r
+          <Value>true</Value>\r
+        </PcdData>\r
       </PcdBuildDefinition>\r
       <ModuleSaBuildOptions>\r
         <FvBinding>NULL</FvBinding>\r
       </ModuleSaBuildOptions>\r
     </ModuleSA>\r
   </FrameworkModules>\r
-  <DynamicPcdBuildDefinitions>
-    <PcdBuildData ItemType="DYNAMIC">
-      <C_Name>PcdFlashNvStorageVariableBase</C_Name>
-      <Token>0x30000001</Token>
-      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
-      <DatumType>UINT32</DatumType>
-      <MaxDatumSize>4</MaxDatumSize>
-      <SkuInfo>
-        <SkuId>0</SkuId>
-        <Value>0x0</Value>
-      </SkuInfo>
-    </PcdBuildData>
-    <PcdBuildData ItemType="DYNAMIC">
-      <C_Name>PcdFlashNvStorageVariableSize</C_Name>
-      <Token>0x30000002</Token>
-      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
-      <DatumType>UINT32</DatumType>
-      <MaxDatumSize>4</MaxDatumSize>
-      <SkuInfo>
-        <SkuId>0</SkuId>
-        <Value>0x0</Value>
-      </SkuInfo>
-    </PcdBuildData>
-    <PcdBuildData ItemType="DYNAMIC">
-      <C_Name>PcdFlashNvStorageFtwWorkingBase</C_Name>
-      <Token>0x30000010</Token>
-      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
-      <DatumType>UINT32</DatumType>
-      <MaxDatumSize>4</MaxDatumSize>
-      <SkuInfo>
-        <SkuId>0</SkuId>
-        <Value>0x0</Value>
-      </SkuInfo>
-    </PcdBuildData>
-    <PcdBuildData ItemType="DYNAMIC">
-      <C_Name>PcdFlashNvStorageFtwWorkingSize</C_Name>
-      <Token>0x30000011</Token>
-      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
-      <DatumType>UINT32</DatumType>
-      <MaxDatumSize>4</MaxDatumSize>
-      <SkuInfo>
-        <SkuId>0</SkuId>
-        <Value>0x0</Value>
-      </SkuInfo>
-    </PcdBuildData>
-    <PcdBuildData ItemType="DYNAMIC">
-      <C_Name>PcdFlashNvStorageFtwSpareBase</C_Name>
-      <Token>0x30000013</Token>
-      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
-      <DatumType>UINT32</DatumType>
-      <MaxDatumSize>4</MaxDatumSize>
-      <SkuInfo>
-        <SkuId>0</SkuId>
-        <Value>0x0</Value>
-      </SkuInfo>
-    </PcdBuildData>
-    <PcdBuildData ItemType="DYNAMIC">
-      <C_Name>PcdFlashNvStorageFtwSpareSize</C_Name>
-      <Token>0x30000014</Token>
-      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>
-      <DatumType>UINT32</DatumType>
-      <MaxDatumSize>4</MaxDatumSize>
-      <SkuInfo>
-        <SkuId>0</SkuId>
-        <Value>0x0</Value>
-      </SkuInfo>
+  <DynamicPcdBuildDefinitions>\r
+    <PcdBuildData ItemType="DYNAMIC">\r
+      <C_Name>PcdFlashNvStorageVariableBase</C_Name>\r
+      <Token>0x30000001</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <MaxDatumSize>4</MaxDatumSize>\r
+      <SkuInfo>\r
+        <SkuId>0</SkuId>\r
+        <Value>0x0</Value>\r
+      </SkuInfo>\r
+    </PcdBuildData>\r
+    <PcdBuildData ItemType="DYNAMIC">\r
+      <C_Name>PcdFlashNvStorageVariableSize</C_Name>\r
+      <Token>0x30000002</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <MaxDatumSize>4</MaxDatumSize>\r
+      <SkuInfo>\r
+        <SkuId>0</SkuId>\r
+        <Value>0x0</Value>\r
+      </SkuInfo>\r
+    </PcdBuildData>\r
+    <PcdBuildData ItemType="DYNAMIC">\r
+      <C_Name>PcdFlashNvStorageFtwWorkingBase</C_Name>\r
+      <Token>0x30000010</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <MaxDatumSize>4</MaxDatumSize>\r
+      <SkuInfo>\r
+        <SkuId>0</SkuId>\r
+        <Value>0x0</Value>\r
+      </SkuInfo>\r
+    </PcdBuildData>\r
+    <PcdBuildData ItemType="DYNAMIC">\r
+      <C_Name>PcdFlashNvStorageFtwWorkingSize</C_Name>\r
+      <Token>0x30000011</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <MaxDatumSize>4</MaxDatumSize>\r
+      <SkuInfo>\r
+        <SkuId>0</SkuId>\r
+        <Value>0x0</Value>\r
+      </SkuInfo>\r
+    </PcdBuildData>\r
+    <PcdBuildData ItemType="DYNAMIC">\r
+      <C_Name>PcdFlashNvStorageFtwSpareBase</C_Name>\r
+      <Token>0x30000013</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <MaxDatumSize>4</MaxDatumSize>\r
+      <SkuInfo>\r
+        <SkuId>0</SkuId>\r
+        <Value>0x0</Value>\r
+      </SkuInfo>\r
+    </PcdBuildData>\r
+    <PcdBuildData ItemType="DYNAMIC">\r
+      <C_Name>PcdFlashNvStorageFtwSpareSize</C_Name>\r
+      <Token>0x30000014</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <MaxDatumSize>4</MaxDatumSize>\r
+      <SkuInfo>\r
+        <SkuId>0</SkuId>\r
+        <Value>0x0</Value>\r
+      </SkuInfo>\r
     </PcdBuildData>\r
-  </DynamicPcdBuildDefinitions>      \r
+  </DynamicPcdBuildDefinitions>\r
   <BuildOptions>\r
     <Options>\r
       <!--MSFT tool chain options definition : IA32-->\r
       <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="SLINK">"/NOLOGO"</Option>\r
       <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="DLINK">"/NOLOGO", "/Machine:AMD64", "/ALIGN:32", "/DLL", "/NODEFAULTLIB", "/OPT:REF", "/ENTRY:${ENTRYPOINT}", "/SUBSYSTEM:${SUBSYSTEM}"</Option>\r
       <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="ASM">"/nologo", "/W3", "/WX", "/c", "/DEFI32"</Option>\r
-      <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="ASMLINK"></Option>\r
+      <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="ASMLINK"/>\r
       <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="PP">"/nologo", "/P", "/TC", "/FI${DEST_DIR_DEBUG}/AutoGen.h"</Option>\r
       <Option ToolChainFamily="MSFT" SupArchList="X64" ToolCode="ASL">"/nologo"</Option>\r
       <!--MSFT tool chain options definition : IPF-->\r
       <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="SLINK">"/NOLOGO"</Option>\r
       <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="DLINK">"/NOLOGO", "/NODEFAULTLIB", "/IGNORE:4086", "/MAP", "/OPT:REF", "/MACHINE:IA64", "/ENTRY:${ENTRYPOINT}", "/SUBSYSTEM:${SUBSYSTEM}"</Option>\r
       <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="ASM">"-N us", "-X explicit", "-M ilp64", "-N so", "-W4"</Option>\r
-      <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="ASMLINK"></Option>\r
+      <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="ASMLINK"/>\r
       <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="PP">"/nologo", "/P", "/TC"</Option>\r
       <Option ToolChainFamily="MSFT" SupArchList="IPF" ToolCode="ASL">"/nologo"</Option>\r
       <!--INTEL tool chain options definition : EBC-->\r
       <!--GCC tool chain options definition : IA32-->\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="CC">"-Os", "-fshort-wchar", "-fno-strict-aliasing", "-Wall", "-Werror", "-c", "-include ${DEST_DIR_DEBUG}/AutoGen.h"</Option>\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="ASM">"-c", "-imacros ${DEST_DIR_DEBUG}/AutoGen.h"</Option>\r
-      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="SLINK"></Option>\r
+      <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="SLINK"/>\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="DLINK">"-nostdlib", "-O2", "--gc-sections", "--dll", "--export-all-symbols", "--entry _${ENTRYPOINT}"</Option>\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="ASMLINK"/>\r
       <Option ToolChainFamily="GCC" SupArchList="IA32" ToolCode="PP">"-E", "-x assembler-with-cpp", "-include ${DEST_DIR_DEBUG}/AutoGen.h"</Option>\r
index 86d33e6..48f4927 100644 (file)
@@ -7,11 +7,11 @@
     <Abstract>Edk Module Package Reference Implementations</Abstract>\r
     <Description>This Module provides standard reference information for EFI/Tiano implementations.</Description>\r
     <Copyright>Copyright (c) 2006, Intel Corporation.</Copyright>\r
-    <License>All rights reserved.\r
-      This program and the accompanying materials are licensed and made available \r
-      under the terms and conditions of the BSD License which accompanies this distribution.\r
-      The full text of the license may be found at http://opensource.org/licenses/bsd-license.php\r
-      THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES\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
   </SpdHeader>\r
     <Entry Name="GenericPlatformTokenSpace">\r
       <C_Name>gEfiGenericPlatformTokenSpaceGuid</C_Name>\r
       <GuidValue>18D15EA6-9E14-40a1-B39C-59C44DA9D891</GuidValue>\r
-      <HelpText>\r
-        This is the token space GUID for platform generic PCD definitions.\r
-        Now FlashLayout and Platform CPU belong to this space.\r
-      </HelpText>      \r
-    </Entry> \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
       <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
       <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
       <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
       <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
       <DatumType>VOID*</DatumType>\r
       <ValidUsage>DYNAMIC</ValidUsage>\r
       <DefaultValue>{}</DefaultValue>\r
-      <HelpText>\r
-      This PCD is a array of EFI_PHYSICAL_ADDERSS of each Firmware Volume on the\r
-      platform. FVB driver will make use of this PCD entry to install EFI_FIRMWARE_BLOCK_PROTOCOL\r
-      on every FV specified.\r
-      </HelpText>\r
+      <HelpText>This PCD is a array of EFI_PHYSICAL_ADDERSS of each Firmware Volume on the
+      platform. FVB driver will make use of this PCD entry to install EFI_FIRMWARE_BLOCK_PROTOCOL
+      on every FV specified.</HelpText>\r
     </PcdEntry>\r
     <PcdEntry>\r
       <C_Name>PcdFlashFvBaseArrayElementNumber</C_Name>\r
       <DatumType>UINT8</DatumType>\r
       <ValidUsage>DYNAMIC</ValidUsage>\r
       <DefaultValue>3</DefaultValue>\r
-      <HelpText>\r
-      This PCD is a number element in the array defined by PcdFlashFvBaseArray in\r
-      gEfiGenericPlatformTokenSpaceGuid. Normally, we have 3 firmware volumes:\r
-      FV_MAIN, FV_RECOVERY, NV_STORAGE.\r
-      </HelpText>\r
+      <HelpText>This PCD is a number element in the array defined by PcdFlashFvBaseArray in
+      gEfiGenericPlatformTokenSpaceGuid. Normally, we have 3 firmware volumes:
+      FV_MAIN, FV_RECOVERY, NV_STORAGE.</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
   </PcdDeclarations>\r
-</PackageSurfaceArea>\r
+</PackageSurfaceArea>
\ No newline at end of file
index 40013cf..33972d3 100644 (file)
@@ -174,6 +174,10 @@ PeiPcdGetSize (
   UINTN               Size;\r
   UINTN               MaxSize;\r
 \r
+  if (!FeaturePcdGet(PcdPeiPcdDatabaseGetSizeEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   PeiPcdDb = GetPcdDatabase ();\r
   //\r
   // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
@@ -281,6 +285,10 @@ PeiPcdGetSizeEx (
   IN UINTN                             ExTokenNumber\r
   )\r
 {\r
+  if ((!FeaturePcdGet (PcdPeiPcdDatabaseGetSizeEnabled)) ||  !FeaturePcdGet (PcdPeiPcdDatabaseExEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   return PeiPcdGetSize (GetExPcdTokenNumber (Guid, ExTokenNumber));\r
 }\r
 \r
@@ -446,6 +454,10 @@ PeiRegisterCallBackOnSet (
   IN  PCD_PPI_CALLBACK            CallBackFunction\r
   )\r
 {\r
+  if (!FeaturePcdGet(PcdPeiPcdDatabaseCallbackOnSetEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   ASSERT (CallBackFunction != NULL);\r
   \r
   return PeiRegisterCallBackWorker (ExTokenNumber, Guid, CallBackFunction, TRUE);\r
@@ -461,6 +473,10 @@ PcdUnRegisterCallBackOnSet (
   IN  PCD_PPI_CALLBACK            CallBackFunction\r
   )\r
 {\r
+  if (!FeaturePcdGet(PcdPeiPcdDatabaseCallbackOnSetEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   ASSERT (CallBackFunction != NULL);\r
   \r
   return PeiRegisterCallBackWorker (ExTokenNumber, Guid, CallBackFunction, FALSE);\r
index 9510738..0ae491a 100644 (file)
@@ -1,13 +1,5 @@
-<?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
+<?xml version="1.0" encoding="UTF-8"?>\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
   <MsaHeader>\r
     <ModuleName>PcdPeim</ModuleName>\r
     <ModuleType>PEIM</ModuleType>\r
@@ -16,11 +8,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
     <Abstract>Component description file for Pcd Database PEIM module</Abstract>\r
     <Description>This DXE driver implement and produce the PCD PPI.</Description>\r
     <Copyright>Copyright (c) 2006, Intel Corporation</Copyright>\r
-    <License>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
+    <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
@@ -93,23 +85,47 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
     </Extern>\r
   </Externs>\r
   <PcdCoded>\r
-    <PcdEntry PcdItemType="FIXED_AT_BUILD">\r
+    <PcdEntry PcdItemType="FIXED_AT_BUILD" Usage="ALWAYS_CONSUMED">\r
       <C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>\r
       <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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 PcdItemType="FIXED_AT_BUILD">\r
+    <PcdEntry PcdItemType="FIXED_AT_BUILD" Usage="ALWAYS_CONSUMED">\r
       <C_Name>PcdVpdBaseAddress</C_Name>\r
       <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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 PcdItemType="FEATURE_FLAG">\r
+    <PcdEntry PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
       <C_Name>PcdPeiPcdDatabaseTraverseEnabled</C_Name>\r
       <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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 PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+      <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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 PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+      <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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 PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+      <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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 PcdItemType="FEATURE_FLAG" Usage="ALWAYS_CONSUMED">\r
+      <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\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
   </PcdCoded>\r
-</ModuleSurfaceArea>\r
+</ModuleSurfaceArea>
\ No newline at end of file
index 255267c..521c88b 100644 (file)
@@ -337,6 +337,10 @@ SetWorker (
   VOID                *InternalData;\r
   UINTN               MaxSize;\r
 \r
+  if (!FeaturePcdGet(PcdPeiPcdDatabaseSetEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+  \r
   //\r
   // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
   // We have to decrement TokenNumber by 1 to make it usable\r
@@ -462,6 +466,10 @@ ExSetWorker (
 {\r
   UINTN                     TokenNumber;\r
 \r
+  if (!FeaturePcdGet(PcdPeiPcdDatabaseSetEnabled)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   TokenNumber = GetExPcdTokenNumber (Guid, ExTokenNumber);\r
 \r
   InvokeCallbackOnSet (ExTokenNumber, Guid, TokenNumber, Data, *Size);\r
@@ -480,6 +488,11 @@ ExGetWorker (
   IN UINTN            GetSize\r
   )\r
 {\r
+  if (!FeaturePcdGet (PcdPeiPcdDatabaseExEnabled)) {\r
+    ASSERT (FALSE);\r
+    return 0;\r
+  }\r
+  \r
   return GetWorker (GetExPcdTokenNumber (Guid, ExTokenNumber), GetSize);\r
 }\r
 \r