X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FBPDG%2FGenVpd.py;h=4ff464756f20dca1a9dff95ca6af7034356db632;hp=003011b709b16d6a0622f7621d4280c372109cd6;hb=53c1329529e47a7da3a0bb5169b5fe0b44f4307e;hpb=195c94360f726702b4a9a2290f02db2cd547d903 diff --git a/BaseTools/Source/Python/BPDG/GenVpd.py b/BaseTools/Source/Python/BPDG/GenVpd.py index 003011b709..4ff464756f 100644 --- a/BaseTools/Source/Python/BPDG/GenVpd.py +++ b/BaseTools/Source/Python/BPDG/GenVpd.py @@ -2,7 +2,7 @@ # This file include GenVpd class for fix the Vpd type PCD offset, and PcdEntry for describe # and process each entry of vpd type PCD. # -# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.
+# Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -409,11 +409,24 @@ class GenVPD : # PCD.PcdUnpackValue = str(PCD.PcdValue) + # + # Translate PCD size string to an integer value. + PackSize = None + try: + PackSize = int(PCD.PcdSize, 10) + PCD.PcdBinSize = PackSize + except: + try: + PackSize = int(PCD.PcdSize, 16) + PCD.PcdBinSize = PackSize + except: + EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID, "Invalid PCD size value %s at file: %s line: %s" % (PCD.PcdSize, self.InputFileName, PCD.Lineno)) + # # If value is Unicode string (e.g. L""), then use 2-byte alignment # If value is byte array (e.g. {}), then use 8-byte alignment # - PCD.PcdOccupySize = int(PCD.PcdSize) + PCD.PcdOccupySize = PCD.PcdBinSize if PCD.PcdUnpackValue.startswith("{"): Alignment = 8 elif PCD.PcdUnpackValue.startswith("L"): @@ -431,19 +444,6 @@ class GenVPD : if PCD.PcdOccupySize % Alignment != 0: PCD.PcdOccupySize = (PCD.PcdOccupySize / Alignment + 1) * Alignment - # - # Translate PCD size string to an integer value. - PackSize = None - try: - PackSize = int(PCD.PcdSize, 10) - PCD.PcdBinSize = PackSize - except: - try: - PackSize = int(PCD.PcdSize, 16) - PCD.PcdBinSize = PackSize - except: - EdkLogger.error("BPDG", BuildToolError.FORMAT_INVALID, "Invalid PCD size value %s at file: %s line: %s" % (PCD.PcdSize, self.InputFileName, PCD.Lineno)) - if PCD._IsBoolean(PCD.PcdValue, PCD.PcdSize): PCD._PackBooleanValue(PCD.PcdValue) self.FileLinesList[count] = PCD