# \r
_DynaPcdList_ = []\r
_NonDynaPcdList_ = []\r
+ _PlatformPcds = {}\r
\r
#\r
# The priority list while override build option \r
OtherPcdArray = []\r
VpdPcdDict = {}\r
VpdFile = VpdInfoFile.VpdInfoFile()\r
- NeedProcessVpdMapFile = False \r
- \r
+ NeedProcessVpdMapFile = False\r
+\r
+ for pcd in self.Platform.Pcds.keys():\r
+ if pcd not in self._PlatformPcds.keys():\r
+ self._PlatformPcds[pcd] = self.Platform.Pcds[pcd]\r
+\r
if (self.Workspace.ArchList[-1] == self.Arch): \r
for Pcd in self._DynamicPcdList:\r
# just pick the a value to determine whether is unicode string type\r
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
VpdPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd\r
\r
- PlatformPcds = self.Platform.Pcds.keys()\r
+ PlatformPcds = self._PlatformPcds.keys()\r
PlatformPcds.sort()\r
#\r
# Add VPD type PCD into VpdFile and determine whether the VPD PCD need to be fixed up.\r
#\r
for PcdKey in PlatformPcds:\r
- Pcd = self.Platform.Pcds[PcdKey]\r
+ Pcd = self._PlatformPcds[PcdKey]\r
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD] and \\r
PcdKey in VpdPcdDict:\r
Pcd = VpdPcdDict[PcdKey]\r
# An example is PCD for signature usage.\r
# \r
for DscPcd in PlatformPcds:\r
- DscPcdEntry = self.Platform.Pcds[DscPcd]\r
+ DscPcdEntry = self._PlatformPcds[DscPcd]\r
if DscPcdEntry.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):\r
FoundFlag = False\r