]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools: Update SkuId checker to make sure it be valid UINT64 value
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / AutoGen.py
index 67de17320beaecea8051296e1d91b86315759dbd..cacd00922b6fb22e9187806d2833aca7f4340dcc 100644 (file)
@@ -1401,7 +1401,7 @@ class PlatformAutoGen(AutoGen):
                 if os.path.exists(VpdMapFilePath):\r
                     OrgVpdFile.Read(VpdMapFilePath)\r
                     PcdItems = OrgVpdFile.GetOffset(PcdNvStoreDfBuffer[0])\r
-                    NvStoreOffset = PcdItems[0].strip() if PcdItems else '0'\r
+                    NvStoreOffset = PcdItems.values()[0].strip() if PcdItems else '0'\r
                 else:\r
                     EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)\r
 \r
@@ -1665,6 +1665,14 @@ class PlatformAutoGen(AutoGen):
                    PcdKey in VpdPcdDict:\r
                     Pcd = VpdPcdDict[PcdKey]\r
                     SkuValueMap = {}\r
+                    DefaultSku = Pcd.SkuInfoList.get('DEFAULT')\r
+                    if DefaultSku:\r
+                        PcdValue = DefaultSku.DefaultValue\r
+                        if PcdValue not in SkuValueMap:\r
+                            SkuValueMap[PcdValue] = []\r
+                            VpdFile.Add(Pcd, 'DEFAULT',DefaultSku.VpdOffset)\r
+                        SkuValueMap[PcdValue].append(DefaultSku)\r
+\r
                     for (SkuName,Sku) in Pcd.SkuInfoList.items():\r
                         Sku.VpdOffset = Sku.VpdOffset.strip()\r
                         PcdValue = Sku.DefaultValue\r
@@ -1691,7 +1699,7 @@ class PlatformAutoGen(AutoGen):
                                     EdkLogger.error("build", FORMAT_INVALID, 'The offset value of PCD %s.%s should be %s-byte aligned.' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Alignment))\r
                         if PcdValue not in SkuValueMap:\r
                             SkuValueMap[PcdValue] = []\r
-                            VpdFile.Add(Pcd, Sku.VpdOffset)\r
+                            VpdFile.Add(Pcd, SkuName,Sku.VpdOffset)\r
                         SkuValueMap[PcdValue].append(Sku)\r
                         # if the offset of a VPD is *, then it need to be fixed up by third party tool.\r
                         if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":\r
@@ -1720,6 +1728,13 @@ class PlatformAutoGen(AutoGen):
                         if not FoundFlag :\r
                             # just pick the a value to determine whether is unicode string type\r
                             SkuValueMap = {}\r
+                            DefaultSku = DscPcdEntry.SkuInfoList.get('DEFAULT')\r
+                            if DefaultSku:\r
+                                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
                             for (SkuName,Sku) in DscPcdEntry.SkuInfoList.items():\r
                                 Sku.VpdOffset = Sku.VpdOffset.strip() \r
                                 \r
@@ -1770,7 +1785,7 @@ class PlatformAutoGen(AutoGen):
                                             EdkLogger.error("build", FORMAT_INVALID, 'The offset value of PCD %s.%s should be %s-byte aligned.' % (DscPcdEntry.TokenSpaceGuidCName, DscPcdEntry.TokenCName, Alignment))\r
                                 if PcdValue not in SkuValueMap:\r
                                     SkuValueMap[PcdValue] = []\r
-                                    VpdFile.Add(DscPcdEntry, Sku.VpdOffset)\r
+                                    VpdFile.Add(DscPcdEntry, SkuName,Sku.VpdOffset)\r
                                 SkuValueMap[PcdValue].append(Sku)\r
                                 if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":\r
                                     NeedProcessVpdMapFile = True \r