Reviewed-by: Liming Gao <[email protected]>

>-----Original Message-----
>From: edk2-devel [mailto:[email protected]] On Behalf Of
>Yonghong Zhu
>Sent: Friday, October 19, 2018 3:11 PM
>To: [email protected]
>Subject: [edk2] [Patch] BaseTools: Fix the *B and *F Flag display for Structure
>Pcd
>
>Because of we newly add the PcdFieldValueFromComm and
>PcdFieldValueFromFdf in early parser phase, so in the report we use
>the saved value in this two variables to print it.
>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Yonghong Zhu <[email protected]>
>---
> BaseTools/Source/Python/build/BuildReport.py | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
>diff --git a/BaseTools/Source/Python/build/BuildReport.py
>b/BaseTools/Source/Python/build/BuildReport.py
>index a66adfb..c648086 100644
>--- a/BaseTools/Source/Python/build/BuildReport.py
>+++ b/BaseTools/Source/Python/build/BuildReport.py
>@@ -1072,13 +1072,17 @@ class PcdReport(object):
>                         SkuInfoList = Pcd.SkuInfoList
>                     Pcd = GlobalData.gStructurePcd[self.Arch][(Pcd.TokenCName,
>Pcd.TokenSpaceGuidCName)]
>                     Pcd.DatumType = Pcd.StructName
>                     if TypeName in ('DYNVPD', 'DEXVPD'):
>                         Pcd.SkuInfoList = SkuInfoList
>-                    if Pcd.PcdFieldValueFromComm:
>+                    if Pcd.PcdValueFromComm or Pcd.PcdFieldValueFromComm:
>                         BuildOptionMatch = True
>                         DecMatch = False
>+                    elif Pcd.PcdValueFromFdf or Pcd.PcdFieldValueFromFdf:
>+                        DscDefaultValue = True
>+                        DscMatch = True
>+                        DecMatch = False
>                     elif Pcd.SkuOverrideValues:
>                         DscOverride = False
>                         if Pcd.DefaultFromDSC:
>                             DscOverride = True
>                         else:
>@@ -1264,18 +1268,22 @@ class PcdReport(object):
>                         Value = '{} ({:d})'.format(Value, int(Value, 0))
>                     else:
>                         Value = "0x{:X} ({})".format(int(Value, 0), Value)
>                 FileWrite(File, ' %-*s   : %6s %10s = %s' % (self.MaxLen, 
> Flag + ' ' +
>PcdTokenCName, TypeName, '(' + Pcd.DatumType + ')', Value))
>             if IsStructure:
>+                FiledOverrideFlag = False
>                 OverrideValues = Pcd.SkuOverrideValues
>                 if OverrideValues:
>                     for Data in OverrideValues.values():
>                         Struct = list(Data.values())
>                         if Struct:
>                             OverrideFieldStruct = 
> self.OverrideFieldValue(Pcd, Struct[0])
>                             self.PrintStructureInfo(File, OverrideFieldStruct)
>+                            FiledOverrideFlag = True
>                             break
>+                if not FiledOverrideFlag and (Pcd.PcdFieldValueFromComm or
>Pcd.PcdFieldValueFromFdf):
>+                    OverrideFieldStruct = self.OverrideFieldValue(Pcd, {})
>             self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, 
> DscDefaultValue,
>InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)
>         else:
>             FirstPrint = True
>             SkuList = sorted(Pcd.SkuInfoList.keys())
>             for Sku in SkuList:
>@@ -1391,15 +1399,19 @@ class PcdReport(object):
>                             else:
>                                 FileWrite(File, ' %-*s   : %6s %10s %10s = 
> %s' % (self.MaxLen, '
>', TypeName, '(' + Pcd.DatumType + ')', '(' + SkuIdName + ')', Value))
>                     if TypeName in ('DYNVPD', 'DEXVPD'):
>                         FileWrite(File, '%*s' % (self.MaxLen + 4, 
> SkuInfo.VpdOffset))
>                     if IsStructure:
>+                        FiledOverrideFlag = False
>                         OverrideValues = Pcd.SkuOverrideValues[Sku]
>                         if OverrideValues:
>                             Keys = OverrideValues.keys()
>                             OverrideFieldStruct = self.OverrideFieldValue(Pcd,
>OverrideValues[Keys[0]])
>                             self.PrintStructureInfo(File, OverrideFieldStruct)
>+                            FiledOverrideFlag = True
>+                        if not FiledOverrideFlag and 
>(Pcd.PcdFieldValueFromComm or
>Pcd.PcdFieldValueFromFdf):
>+                            OverrideFieldStruct = 
>self.OverrideFieldValue(Pcd, {})
>                     self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch,
>DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)
>
>     def OverrideFieldValue(self, Pcd, OverrideStruct):
>         OverrideFieldStruct = collections.OrderedDict()
>         if OverrideStruct:
>--
>2.6.1.windows.1
>
>_______________________________________________
>edk2-devel mailing list
>[email protected]
>https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to