BaseTools: Optimize VPD PCD value for the different SKUs
[mirror_edk2.git] / BaseTools / Source / Python / Common / VpdInfoFile.py
index 56161efe6ae0bd5846074ea63f1b72db8ff17837..130d5c7e0cdec42cec504e98b62e834af1b881e1 100644 (file)
@@ -79,6 +79,7 @@ class VpdInfoFile:
         #           @see BuildClassObject.PcdClassObject\r
         #  Value  : offset in different SKU such as [sku1_offset, sku2_offset]\r
         self._VpdArray = {}\r
+        self._VpdInfo = {}\r
     \r
     ## Add a VPD PCD collected from platform's autogen when building.\r
     #\r
@@ -179,6 +180,9 @@ class VpdInfoFile:
             \r
             Found = False\r
             \r
+            if (TokenSpaceName, PcdTokenName) not in self._VpdInfo:\r
+                self._VpdInfo[(TokenSpaceName, PcdTokenName)] = []\r
+            self._VpdInfo[(TokenSpaceName, PcdTokenName)].append((SkuId,Offset, Value))\r
             for VpdObject in self._VpdArray.keys():\r
                 VpdObjectTokenCName = VpdObject.TokenCName\r
                 for PcdItem in GlobalData.MixedPcd:\r
@@ -217,6 +221,8 @@ class VpdInfoFile:
             return None\r
         \r
         return self._VpdArray[vpd]\r
+    def GetVpdInfo(self,(PcdTokenName,TokenSpaceName)):\r
+        return self._VpdInfo.get((TokenSpaceName, PcdTokenName))\r
     \r
 ## Call external BPDG tool to process VPD file\r
 #    \r