- for Pcd in PcdDict[Key][Type]:\r
- PcdTokenCName = Pcd.TokenCName\r
- MixedPcdFlag = False\r
- if GlobalData.MixedPcd:\r
- for PcdKey in GlobalData.MixedPcd:\r
- if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdKey]:\r
- PcdTokenCName = PcdKey[0]\r
- MixedPcdFlag = True\r
- if MixedPcdFlag and not ModulePcdSet:\r
- continue\r
- #\r
- # Get PCD default value and their override relationship\r
- #\r
- DecDefaultValue = self.DecPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, DecType))\r
- DscDefaultValue = self.DscPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName))\r
- DscDefaultValBak = DscDefaultValue\r
- DscDefaultValue = self.FdfPcdSet.get((Pcd.TokenCName, Key), DscDefaultValue)\r
- if DscDefaultValue != DscDefaultValBak:\r
- try:\r
- DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)\r
- except BadExpression, DscDefaultValue:\r
- EdkLogger.error('BuildReport', FORMAT_INVALID, "PCD Value: %s, Type: %s" %(DscDefaultValue, Pcd.DatumType))\r
-\r
- InfDefaultValue = None\r
- \r
- PcdValue = DecDefaultValue\r
- if DscDefaultValue:\r
- PcdValue = DscDefaultValue\r
- if ModulePcdSet is not None:\r
- if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Type) not in ModulePcdSet:\r
- continue\r
- InfDefault, PcdValue = ModulePcdSet[Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Type]\r
- if InfDefault == "":\r
- InfDefault = None\r
-\r
- BuildOptionMatch = False\r
- if GlobalData.BuildOptionPcd:\r
- for pcd in GlobalData.BuildOptionPcd:\r
- if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) == (pcd[0], pcd[1]):\r
- if pcd[2]:\r
- continue\r
- PcdValue = pcd[3]\r
- Pcd.DefaultValue = PcdValue\r
- BuildOptionMatch = True\r
- break\r
-\r
- if First:\r
- if ModulePcdSet is None:\r
- FileWrite(File, "")\r
- FileWrite(File, Key)\r
- First = False\r
+ MixedPcdFlag = False\r
+ if GlobalData.MixedPcd:\r
+ for PcdKey in GlobalData.MixedPcd:\r
+ if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdKey]:\r
+ PcdTokenCName = PcdKey[0]\r
+ MixedPcdFlag = True\r
+ if MixedPcdFlag and not ModulePcdSet:\r
+ continue\r
+ #\r
+ # Get PCD default value and their override relationship\r
+ #\r
+ DecDefaultValue = self.DecPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, DecType))\r
+ DscDefaultValue = self.DscPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName))\r
+ DscDefaultValBak = DscDefaultValue\r
+ Field = ''\r
+ for (CName, Guid, Field) in self.FdfPcdSet:\r
+ if CName == PcdTokenCName and Guid == Key:\r
+ DscDefaultValue = self.FdfPcdSet[(CName, Guid, Field)]\r
+ break\r
+ if DscDefaultValue != DscDefaultValBak:\r
+ try:\r
+ DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)\r
+ except BadExpression as DscDefaultValue:\r
+ EdkLogger.error('BuildReport', FORMAT_INVALID, "PCD Value: %s, Type: %s" %(DscDefaultValue, Pcd.DatumType))\r