diff --git a/IntelFsp2Pkg/Tools/FspDscBsf2Yaml.py b/IntelFsp2Pkg/Tools/FspDscBsf2Yaml.py index cad9b60e73..d2ca7145ae 100644 --- a/IntelFsp2Pkg/Tools/FspDscBsf2Yaml.py +++ b/IntelFsp2Pkg/Tools/FspDscBsf2Yaml.py @@ -46,6 +46,13 @@ def Bytes2Val(Bytes): return reduce(lambda x, y: (x << 8) | y, Bytes[::-1]) +def Str2Bytes(Value, Blen): + Result = bytearray(Value[1:-1], 'utf-8') # Excluding quotes + if len(Result) < Blen: + Result.extend(b'\x00' * (Blen - len(Result))) + return Result + + class CFspBsf2Dsc: def __init__(self, bsf_file): @@ -108,7 +115,8 @@ class CFspBsf2Dsc: cfg_item['find'] = prefix cfg_item['cname'] = 'Signature' cfg_item['length'] = len(finds[0][1]) - cfg_item['value'] = '0x%X' % Bytes2Val(finds[0][1].encode('UTF-8')) + str2byte = Str2Bytes("'" + finds[0][1] + "'", len(finds[0][1])) + cfg_item['value'] = '0x%X' % Bytes2Val(str2byte) cfg_list.append(dict(cfg_item)) cfg_item = dict(cfg_temp) find_list.pop(0) @@ -291,7 +299,6 @@ class CFspDsc2Yaml(): raise Exception('DSC variable creation error !') else: raise Exception('Unsupported file "%s" !' % file_name) - gen_cfg_data.UpdateDefaultValue() self.gen_cfg_data = gen_cfg_data def print_dsc_line(self): diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py b/IntelFsp2Pkg/Tools/GenCfgOpt.py index 660824b740..714b2d8b1a 100644 --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py @@ -708,7 +708,8 @@ EndList for Page in PageList: Page = Page.strip() Match = re.match("(\w+):\"(.+)\"", Page) - self._CfgPageDict[Match.group(1)] = Match.group(2) + if Match != None: + self._CfgPageDict[Match.group(1)] = Match.group(2) Match = re.match("(?:^|.+\s+)BLOCK:{NAME:\"(.+)\"\s*,\s*VER:\"(.+)\"\s*}", Remaining) if Match: