]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Fixed some small issues
authorFeng, Bob C <bob.c.feng@intel.com>
Tue, 23 Jan 2018 03:34:45 +0000 (11:34 +0800)
committerLiming Gao <liming.gao@intel.com>
Thu, 25 Jan 2018 10:08:07 +0000 (18:08 +0800)
1. The structure pcd default value should use the default value under sku.
2. Incorrect VpdOffset value for those un-used in module Vpd
3. Add a checkpoint for Structure Pcd Name

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools/Source/Python/Workspace/MetaFileParser.py

index 053c2bbcc4d5b52b1d1edb603f1bca5a27c5656b..2800820b72ed61442adc43302879b789a3ae975f 100644 (file)
@@ -1751,8 +1751,8 @@ class PlatformAutoGen(AutoGen):
                                 PcdValue = DefaultSku.DefaultValue\r
                                 if PcdValue not in SkuValueMap:\r
                                     SkuValueMap[PcdValue] = []\r
-                                    VpdFile.Add(DscPcdEntry, 'DEFAULT',Sku.VpdOffset)\r
-                                SkuValueMap[PcdValue].append(Sku)\r
+                                    VpdFile.Add(DscPcdEntry, 'DEFAULT',DefaultSku.VpdOffset)\r
+                                SkuValueMap[PcdValue].append(DefaultSku)\r
                             for (SkuName,Sku) in DscPcdEntry.SkuInfoList.items():\r
                                 Sku.VpdOffset = Sku.VpdOffset.strip() \r
                                 \r
index c8dba63015c0ce7ac876a1d20b26a2db7abe3e66..f30d3f7e732eb9607cd28d25e44c60b4631515e0 100644 (file)
@@ -1298,8 +1298,11 @@ class DscBuildData(PlatformBuildClassObject):
             CApp = CApp + '  %s      *Pcd;  // From %s Line %d \n' % (Pcd.DatumType, Pcd.PkgPath, Pcd.PcdDefineLineNo)\r
             CApp = CApp + '\n'\r
 \r
-            Pcd.DefaultValue = Pcd.DefaultValue.strip()\r
-            PcdDefaultValue = StringToArray(Pcd.DefaultValue)\r
+            if SkuName in Pcd.SkuInfoList:\r
+                DefaultValue = Pcd.SkuInfoList[SkuName].DefaultStoreDict.get(DefaultStoreName,Pcd.SkuInfoList[SkuName].HiiDefaultValue) if Pcd.SkuInfoList[SkuName].HiiDefaultValue  else Pcd.SkuInfoList[SkuName].DefaultValue\r
+            else:\r
+                DefaultValue = Pcd.DefaultValue\r
+            PcdDefaultValue = StringToArray(DefaultValue.strip())\r
 \r
             InitByteValue += '%s.%s.%s.%s|%s|%s\n' % (SkuName, DefaultStoreName, Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DatumType, PcdDefaultValue)\r
 \r
index d70480935460a3ef3dc4a2df9816153d923a8eb6..8f4b5e5cc1ca6c6292e808c7e40251be80dffa2e 100644 (file)
@@ -1915,6 +1915,9 @@ class DecParser(MetaFileParser):
                 if len(PcdNames) == 2:\r
                     self._CurrentStructurePcdName = ""\r
                 else:\r
+                    if self._CurrentStructurePcdName != TAB_SPLIT.join(PcdNames[:2]):\r
+                        EdkLogger.error('Parser', FORMAT_INVALID, "Pcd Name does not match: %s and %s " % (self._CurrentStructurePcdName , TAB_SPLIT.join(PcdNames[:2])),\r
+                                File=self.MetaFile, Line=self._LineIndex + 1)\r
                     self._ValueList[1] = TAB_SPLIT.join(PcdNames[2:])\r
                     self._ValueList[2] = PcdTockens[1]\r
         if not self._CurrentStructurePcdName:\r