mirror of https://github.com/acidanthera/audk.git
BaseTools: fix a bug for PEI VPD Pcd collection
When a PEI phase VPD PCD only list in the DSC IA32 arch, then build X64 arch image, it missed to collect this PEI VPD pcd into VPD Pcd map file. Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
e642ceb8a5
commit
61ee1dff16
|
@ -861,6 +861,7 @@ class PlatformAutoGen(AutoGen):
|
||||||
#
|
#
|
||||||
_DynaPcdList_ = []
|
_DynaPcdList_ = []
|
||||||
_NonDynaPcdList_ = []
|
_NonDynaPcdList_ = []
|
||||||
|
_PlatformPcds = {}
|
||||||
|
|
||||||
#
|
#
|
||||||
# The priority list while override build option
|
# The priority list while override build option
|
||||||
|
@ -1215,6 +1216,10 @@ class PlatformAutoGen(AutoGen):
|
||||||
VpdFile = VpdInfoFile.VpdInfoFile()
|
VpdFile = VpdInfoFile.VpdInfoFile()
|
||||||
NeedProcessVpdMapFile = False
|
NeedProcessVpdMapFile = False
|
||||||
|
|
||||||
|
for pcd in self.Platform.Pcds.keys():
|
||||||
|
if pcd not in self._PlatformPcds.keys():
|
||||||
|
self._PlatformPcds[pcd] = self.Platform.Pcds[pcd]
|
||||||
|
|
||||||
if (self.Workspace.ArchList[-1] == self.Arch):
|
if (self.Workspace.ArchList[-1] == self.Arch):
|
||||||
for Pcd in self._DynamicPcdList:
|
for Pcd in self._DynamicPcdList:
|
||||||
# just pick the a value to determine whether is unicode string type
|
# just pick the a value to determine whether is unicode string type
|
||||||
|
@ -1233,13 +1238,13 @@ class PlatformAutoGen(AutoGen):
|
||||||
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:
|
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:
|
||||||
VpdPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd
|
VpdPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd
|
||||||
|
|
||||||
PlatformPcds = self.Platform.Pcds.keys()
|
PlatformPcds = self._PlatformPcds.keys()
|
||||||
PlatformPcds.sort()
|
PlatformPcds.sort()
|
||||||
#
|
#
|
||||||
# Add VPD type PCD into VpdFile and determine whether the VPD PCD need to be fixed up.
|
# Add VPD type PCD into VpdFile and determine whether the VPD PCD need to be fixed up.
|
||||||
#
|
#
|
||||||
for PcdKey in PlatformPcds:
|
for PcdKey in PlatformPcds:
|
||||||
Pcd = self.Platform.Pcds[PcdKey]
|
Pcd = self._PlatformPcds[PcdKey]
|
||||||
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD] and \
|
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD] and \
|
||||||
PcdKey in VpdPcdDict:
|
PcdKey in VpdPcdDict:
|
||||||
Pcd = VpdPcdDict[PcdKey]
|
Pcd = VpdPcdDict[PcdKey]
|
||||||
|
@ -1281,7 +1286,7 @@ class PlatformAutoGen(AutoGen):
|
||||||
# An example is PCD for signature usage.
|
# An example is PCD for signature usage.
|
||||||
#
|
#
|
||||||
for DscPcd in PlatformPcds:
|
for DscPcd in PlatformPcds:
|
||||||
DscPcdEntry = self.Platform.Pcds[DscPcd]
|
DscPcdEntry = self._PlatformPcds[DscPcd]
|
||||||
if DscPcdEntry.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:
|
if DscPcdEntry.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:
|
||||||
if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):
|
if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):
|
||||||
FoundFlag = False
|
FoundFlag = False
|
||||||
|
|
Loading…
Reference in New Issue