MdeModulePkg and Nt32Pkg Pcd: Add the new EFI_GET_PCD_INFO_PROTOCOL and EFI_GET_PCD_I...
authorStar Zeng <star.zeng@intel.com>
Wed, 20 Nov 2013 02:04:23 +0000 (02:04 +0000)
committerlzeng14 <lzeng14@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 20 Nov 2013 02:04:23 +0000 (02:04 +0000)
It has no obviously benefit to reduce size by PcdPcdInfoGeneration, so remove this PCD.
And PCD_INFO_GENERATION flag can be used to enable/disable PCD info feature, a sample is added in Nt32Pkg to show how to use this flag.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14869 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/MdeModulePkg.dec
MdeModulePkg/Universal/PCD/Dxe/Pcd.c
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
MdeModulePkg/Universal/PCD/Dxe/Service.c
MdeModulePkg/Universal/PCD/Pei/Pcd.c
MdeModulePkg/Universal/PCD/Pei/Pcd.inf
MdeModulePkg/Universal/PCD/Pei/Service.c
Nt32Pkg/Nt32Pkg.dsc

index 68377aa..b627eb1 100644 (file)
   gEdkiiFormBrowserEx2ProtocolGuid = { 0xa770c357, 0xb693, 0x4e6d, { 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0xb } }\r
 \r
 [PcdsFeatureFlag]\r
-  ## Indicates if the Pcd Info Ppi and Protocol should be produced.<BR><BR>\r
-  #  It can be disabled to save size.<BR><BR>\r
-  #   TRUE  - Pcd Info Ppi and Protocol will be produced.<BR>\r
-  #   FALSE - Pcd Info Ppi and Protocol will not be produced.<BR>\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdPcdInfoGeneration|FALSE|BOOLEAN|0x0001001C\r
-\r
   ## Indicate whether platform can support update capsule across a system reset\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALSE|BOOLEAN|0x0001001d\r
 \r
index afe925c..8a3e8cd 100644 (file)
@@ -150,7 +150,10 @@ PcdDxeInit (
                   );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  if (FeaturePcdGet (PcdPcdInfoGeneration) && mPcdDatabase.DxeDb->PcdNameTableOffset != 0) {\r
+  //\r
+  // Only install PcdInfo PROTOCOL when PCD info content is present. \r
+  //\r
+  if (mPcdDatabase.DxeDb->PcdNameTableOffset != 0) {\r
     //\r
     // Install GET_PCD_INFO_PROTOCOL to handle dynamic type PCD\r
     // Install EFI_GET_PCD_INFO_PROTOCOL to handle dynamicEx type PCD\r
@@ -228,9 +231,6 @@ DxeGetPcdInfoGetSku (
   VOID\r
   )\r
 {\r
-  if (!FeaturePcdGet (PcdPcdInfoGeneration)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
   return mPcdDatabase.PeiDb->SystemSkuId;\r
 }\r
 \r
index 8565b30..2b8d83c 100644 (file)
 \r
 [Pcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress  ## SOMETIMES_CONSUMES\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdPcdInfoGeneration\r
 \r
 [Depex]\r
   TRUE\r
index 43a3bda..54c814b 100644 (file)
@@ -283,10 +283,6 @@ DxeGetPcdInfo (
   UINT32                LocalTokenNumber;\r
   BOOLEAN               IsPeiDb;\r
 \r
-  if (!FeaturePcdGet (PcdPcdInfoGeneration)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
   ASSERT (PcdInfo != NULL);\r
 \r
   Status = EFI_NOT_FOUND;\r
index a9ee051..91e94e2 100644 (file)
@@ -158,9 +158,9 @@ PcdPeimInit (
   ASSERT_EFI_ERROR (Status);\r
 \r
   //\r
-  // Only install PcdInfo PPI when the feature is enabled and PCD info content is present. \r
+  // Only install PcdInfo PPI when PCD info content is present. \r
   //\r
-  if (FeaturePcdGet (PcdPcdInfoGeneration) && (DataBase->PcdNameTableOffset != 0)) {\r
+  if (DataBase->PcdNameTableOffset != 0) {\r
     //\r
     // Install GET_PCD_INFO_PPI and EFI_GET_PCD_INFO_PPI.\r
     //\r
@@ -232,9 +232,6 @@ PeiGetPcdInfoGetSku (
   VOID\r
   )\r
 {\r
-  if (!FeaturePcdGet (PcdPcdInfoGeneration)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
   return GetPcdDatabase()->SystemSkuId;\r
 }\r
 \r
index fabe63c..357f047 100644 (file)
 [Pcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress ## SOMETIMES_CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry || gEfiMdeModulePkgTokenSpaceGuid.PcdPeiFullPcdDatabaseEnable ## SOMETIMES_CONSUMES\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdPcdInfoGeneration\r
 \r
 [Depex]\r
   TRUE\r
index 04ae874..e42d045 100644 (file)
@@ -247,10 +247,6 @@ PeiGetPcdInfo (
   UINTN                 PeiNexTokenNumber;\r
   UINT32                LocalTokenNumber;\r
 \r
-  if (!FeaturePcdGet (PcdPcdInfoGeneration)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
   ASSERT (PcdInfo != NULL);\r
 \r
   PeiPcdDb          = GetPcdDatabase ();\r
index 59ee487..63e5108 100644 (file)
   BUILD_TARGETS                  = DEBUG|RELEASE\r
   SKUID_IDENTIFIER               = DEFAULT\r
   FLASH_DEFINITION               = Nt32Pkg/Nt32Pkg.fdf\r
+  //\r
+  // This flag is to control tool to generate PCD info for dynamic(ex) PCD,\r
+  // then enable or disable PCD info feature. TRUE is enable, and FLASE is disable.\r
+  // If the flag is absent, it will be same as FALSE.\r
+  //\r
+  PCD_INFO_GENERATION            = TRUE\r
 \r
   #\r
   # Defines for default states.  These can be changed on the command line.\r