self.FixVpdOffset(VpdFile)\r
\r
self.FixVpdOffset(self.UpdateNVStoreMaxSize(VpdFile))\r
+ PcdNvStoreDfBuffer = [item for item in self._DynamicPcdList if item.TokenCName == "PcdNvStoreDefaultValueBuffer" and item.TokenSpaceGuidCName == "gEfiMdeModulePkgTokenSpaceGuid"]\r
+ if PcdNvStoreDfBuffer:\r
+ PcdName,PcdGuid = PcdNvStoreDfBuffer[0].TokenCName, PcdNvStoreDfBuffer[0].TokenSpaceGuidCName\r
+ if (PcdName,PcdGuid) in VpdSkuMap:\r
+ DefaultSku = PcdNvStoreDfBuffer[0].SkuInfoList.get(TAB_DEFAULT)\r
+ VpdSkuMap[(PcdName,PcdGuid)] = {DefaultSku.DefaultValue:[DefaultSku]}\r
\r
# Process VPD map file generated by third party BPDG tool\r
if NeedProcessVpdMapFile:\r
return {(Pcd.TokenCName, Pcd.TokenSpaceGuidCName):Pcd for Pcd in self.NonDynamicPcdList}\r
\r
## Get list of non-dynamic PCDs\r
- @cached_property\r
+ @property\r
def NonDynamicPcdList(self):\r
- self.CollectPlatformDynamicPcds()\r
+ if not self._NonDynamicPcdList:\r
+ self.CollectPlatformDynamicPcds()\r
return self._NonDynamicPcdList\r
\r
## Get list of dynamic PCDs\r
- @cached_property\r
+ @property\r
def DynamicPcdList(self):\r
- self.CollectPlatformDynamicPcds()\r
+ if not self._DynamicPcdList:\r
+ self.CollectPlatformDynamicPcds()\r
return self._DynamicPcdList\r
\r
## Generate Token Number for all PCD\r
Found = False\r
\r
if (TokenSpaceName, PcdTokenName) not in self._VpdInfo:\r
- self._VpdInfo[(TokenSpaceName, PcdTokenName)] = []\r
- self._VpdInfo[(TokenSpaceName, PcdTokenName)].append((SkuId, Offset, Value))\r
+ self._VpdInfo[(TokenSpaceName, PcdTokenName)] = {}\r
+ self._VpdInfo[(TokenSpaceName, PcdTokenName)][(SkuId, Offset)] = Value\r
for VpdObject in self._VpdArray:\r
VpdObjectTokenCName = VpdObject.TokenCName\r
for PcdItem in GlobalData.MixedPcd:\r
return self._VpdArray[vpd]\r
def GetVpdInfo(self, arg):\r
(PcdTokenName, TokenSpaceName) = arg\r
- return self._VpdInfo.get((TokenSpaceName, PcdTokenName))\r
+ return [(sku,offset,value) for (sku,offset),value in self._VpdInfo.get((TokenSpaceName, PcdTokenName)).items()]\r
\r
## Call external BPDG tool to process VPD file\r
#\r