- for VpdObject in self._VpdArray.keys():\r
- if VpdObject.TokenSpaceGuidCName == TokenSpaceName and VpdObject.TokenCName == PcdTokenName.strip():\r
- if self._VpdArray[VpdObject][0] == "*":\r
- if Offset == "*":\r
- EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID, "The offset of %s has not been fixed up by third-party BPDG tool." % PcdName)\r
- \r
- self._VpdArray[VpdObject][0] = Offset\r
- Found = True\r
- break\r
+ \r
+ if (TokenSpaceName, PcdTokenName) not in self._VpdInfo:\r
+ self._VpdInfo[(TokenSpaceName, PcdTokenName)] = []\r
+ self._VpdInfo[(TokenSpaceName, PcdTokenName)].append((SkuId,Offset, Value))\r
+ for VpdObject in self._VpdArray:\r
+ VpdObjectTokenCName = VpdObject.TokenCName\r
+ for PcdItem in GlobalData.MixedPcd:\r
+ if (VpdObject.TokenCName, VpdObject.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdItem]:\r
+ VpdObjectTokenCName = PcdItem[0]\r
+ for sku in VpdObject.SkuInfoList:\r
+ if VpdObject.TokenSpaceGuidCName == TokenSpaceName and VpdObjectTokenCName == PcdTokenName.strip() and sku == SkuId:\r
+ if self._VpdArray[VpdObject][sku] == "*":\r
+ if Offset == "*":\r
+ EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID, "The offset of %s has not been fixed up by third-party BPDG tool." % PcdName) \r
+ self._VpdArray[VpdObject][sku] = Offset\r
+ Found = True\r