mirror of https://github.com/acidanthera/audk.git
BaseTools: Fix PcdNvStoreDefaultValueBuffer Value.
https://bugzilla.tianocore.org/show_bug.cgi?id=1385 This patch is going to fix the regression issue that is introduced by commite6eae3b4c7
and commit0b6c5954e1
. PcdNvStoreDefaultValueBuffer value is update to Vpd Info File, but it is not update into a internal cache. This patch will fix this incorrect value in that internal cache. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
a9ff32909b
commit
5695877ec8
|
@ -1570,6 +1570,12 @@ class PlatformAutoGen(AutoGen):
|
|||
self.FixVpdOffset(VpdFile)
|
||||
|
||||
self.FixVpdOffset(self.UpdateNVStoreMaxSize(VpdFile))
|
||||
PcdNvStoreDfBuffer = [item for item in self._DynamicPcdList if item.TokenCName == "PcdNvStoreDefaultValueBuffer" and item.TokenSpaceGuidCName == "gEfiMdeModulePkgTokenSpaceGuid"]
|
||||
if PcdNvStoreDfBuffer:
|
||||
PcdName,PcdGuid = PcdNvStoreDfBuffer[0].TokenCName, PcdNvStoreDfBuffer[0].TokenSpaceGuidCName
|
||||
if (PcdName,PcdGuid) in VpdSkuMap:
|
||||
DefaultSku = PcdNvStoreDfBuffer[0].SkuInfoList.get(TAB_DEFAULT)
|
||||
VpdSkuMap[(PcdName,PcdGuid)] = {DefaultSku.DefaultValue:[DefaultSku]}
|
||||
|
||||
# Process VPD map file generated by third party BPDG tool
|
||||
if NeedProcessVpdMapFile:
|
||||
|
@ -1887,15 +1893,17 @@ class PlatformAutoGen(AutoGen):
|
|||
return {(Pcd.TokenCName, Pcd.TokenSpaceGuidCName):Pcd for Pcd in self.NonDynamicPcdList}
|
||||
|
||||
## Get list of non-dynamic PCDs
|
||||
@cached_property
|
||||
@property
|
||||
def NonDynamicPcdList(self):
|
||||
self.CollectPlatformDynamicPcds()
|
||||
if not self._NonDynamicPcdList:
|
||||
self.CollectPlatformDynamicPcds()
|
||||
return self._NonDynamicPcdList
|
||||
|
||||
## Get list of dynamic PCDs
|
||||
@cached_property
|
||||
@property
|
||||
def DynamicPcdList(self):
|
||||
self.CollectPlatformDynamicPcds()
|
||||
if not self._DynamicPcdList:
|
||||
self.CollectPlatformDynamicPcds()
|
||||
return self._DynamicPcdList
|
||||
|
||||
## Generate Token Number for all PCD
|
||||
|
|
|
@ -177,8 +177,8 @@ class VpdInfoFile:
|
|||
Found = False
|
||||
|
||||
if (TokenSpaceName, PcdTokenName) not in self._VpdInfo:
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)] = []
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)].append((SkuId, Offset, Value))
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)] = {}
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)][(SkuId, Offset)] = Value
|
||||
for VpdObject in self._VpdArray:
|
||||
VpdObjectTokenCName = VpdObject.TokenCName
|
||||
for PcdItem in GlobalData.MixedPcd:
|
||||
|
@ -219,7 +219,7 @@ class VpdInfoFile:
|
|||
return self._VpdArray[vpd]
|
||||
def GetVpdInfo(self, arg):
|
||||
(PcdTokenName, TokenSpaceName) = arg
|
||||
return self._VpdInfo.get((TokenSpaceName, PcdTokenName))
|
||||
return [(sku,offset,value) for (sku,offset),value in self._VpdInfo.get((TokenSpaceName, PcdTokenName)).items()]
|
||||
|
||||
## Call external BPDG tool to process VPD file
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue