]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/VpdInfoFile.py
BaseTools: PcdDataBase Optimization for multiple SkuIds
[mirror_edk2.git] / BaseTools / Source / Python / Common / VpdInfoFile.py
index cc79ee275fd429fdcfb9ae9d9a5dd90682417f20..56161efe6ae0bd5846074ea63f1b72db8ff17837 100644 (file)
@@ -102,8 +102,9 @@ class VpdInfoFile:
             if Vpd.MaxDatumSize == None or Vpd.MaxDatumSize == "":\r
                 Vpd.MaxDatumSize = VpdInfoFile._MAX_SIZE_TYPE[Vpd.DatumType]\r
         else:\r
-            EdkLogger.error("VpdInfoFile", BuildToolError.PARAMETER_INVALID,  \r
-                            "Invalid DatumType %s for VPD PCD %s.%s" % (Vpd.DatumType, Vpd.TokenSpaceGuidCName, Vpd.TokenCName))\r
+            if Vpd.MaxDatumSize <= 0:\r
+                EdkLogger.error("VpdInfoFile", BuildToolError.PARAMETER_INVALID,\r
+                                "Invalid max datum size for VPD PCD %s.%s" % (Vpd.TokenSpaceGuidCName, Vpd.TokenCName))\r
             \r
         if Vpd not in self._VpdArray.keys():\r
             #\r
@@ -233,14 +234,15 @@ def CallExtenalBPDGTool(ToolPath, VpdFileName):
     OutputBinFileName = os.path.join(OutputDir, "%s.bin" % BaseName)\r
           \r
     try:\r
-        PopenObject = subprocess.Popen([ToolPath,\r
+        PopenObject = subprocess.Popen(' '.join([ToolPath,\r
                                         '-o', OutputBinFileName, \r
                                         '-m', OutputMapFileName,\r
                                         '-q',\r
                                         '-f',\r
-                                        VpdFileName],\r
+                                        VpdFileName]),\r
                                         stdout=subprocess.PIPE, \r
-                                        stderr= subprocess.PIPE)\r
+                                        stderr= subprocess.PIPE,\r
+                                        shell=True)\r
     except Exception, X:\r
         EdkLogger.error("BPDG", BuildToolError.COMMAND_FAILURE, ExtraData="%s" % (str(X)))\r
     (out, error) = PopenObject.communicate()\r