[edk2-devel] [PATCH v3] IntelFsp2Pkg: YAML script bug fix

Chiu, Chasel chasel.chiu at intel.com
Tue May 18 03:17:43 UTC 2021


Pushed: 1fbf5e30ae8eb725f4e10984f7b0a208f78abbd0

Thanks,
Chasel


> -----Original Message-----
> From: Loo, Tung Lun <tung.lun.loo at intel.com>
> Sent: Monday, May 17, 2021 12:04 PM
> To: devel at edk2.groups.io
> Cc: Loo, Tung Lun <tung.lun.loo at intel.com>; Ma, Maurice
> <maurice.ma at intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone at intel.com>; Zeng, Star <star.zeng at intel.com>; Chiu,
> Chasel <chasel.chiu at intel.com>
> Subject: [PATCH v3] IntelFsp2Pkg: YAML script bug fix
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3395
> 
> This patch fixes the issue observed during BSF file to YAML file conversion. It
> also addresses the issue during multibyte array data conversion check, for
> example the data representation of 0xFFFF instead of 0xFF, 0xFF would be
> thrown exception "Array size is not proper" without this patch.
> 
> Cc: Maurice Ma <maurice.ma at intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone at intel.com>
> Cc: Star Zeng <star.zeng at intel.com>
> Cc: Chasel Chiu <chasel.chiu at intel.com>
> Signed-off-by: Loo Tung Lun <tung.lun.loo at intel.com>
> ---
>  IntelFsp2Pkg/Tools/FspDscBsf2Yaml.py | 11 +++++++++--
>  IntelFsp2Pkg/Tools/GenCfgOpt.py      |  3 ++-
>  2 files changed, 11 insertions(+), 3 deletions(-)
> 
> 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:--
> 2.28.0.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75237): https://edk2.groups.io/g/devel/message/75237
Mute This Topic: https://groups.io/mt/82879268/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list