[edk2-devel] [Patch V2] IntelFsp2Pkg/Tools: Fixed PatchFv.py to parse new Fv map file format

Zeng, Star star.zeng at intel.com
Wed Nov 18 02:24:26 UTC 2020


Reviewed-by: Star Zeng <star.zeng at intel.com> with a very minor comment inline.

> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Bob
> Feng
> Sent: Monday, November 16, 2020 10:24 AM
> To: devel at edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu at intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone at intel.com>; Zeng, Star <star.zeng at intel.com>;
> Yunhua Feng <fengyunhua at byosoft.com.cn>; Liu, Zhiguang
> <zhiguang.liu at intel.com>
> Subject: [edk2-devel] [Patch V2] IntelFsp2Pkg/Tools: Fixed PatchFv.py to
> parse new Fv map file format
> 
> The commit 76e8aac158b0717fa27f12e4d008f79161ddb050 changed Fv map
> format.
> It added the image type to better support source level debug. But it broke
> the function of PatchFv.py because PatchFv.py also consume Fv map file.
> 
> This patch is to update PatchFv.py to make it work again.
> 
> Signed-off-by: Bob Feng <bob.c.feng at intel.com>
> Cc: Chasel Chiu <chasel.chiu at intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone at intel.com>
> Cc: Star Zeng <star.zeng at intel.com>
> Cc: Yunhua Feng <fengyunhua at byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu at intel.com>
> ---
> 
> V2: Support both the old Fv map file format and new Fv map file format.
> 
> 
>  IntelFsp2Pkg/Tools/PatchFv.py | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/IntelFsp2Pkg/Tools/PatchFv.py b/IntelFsp2Pkg/Tools/PatchFv.py
> index 0c8d908063..112de4077a 100644
> --- a/IntelFsp2Pkg/Tools/PatchFv.py
> +++ b/IntelFsp2Pkg/Tools/PatchFv.py
> @@ -359,20 +359,23 @@ class Symbols:
>          rptLine  = fdIn.readline()
> 
>          modName  = ""
> 
>          foundModHdr = False
> 
>          while (rptLine != "" ):
> 
>              if rptLine[0] != ' ':
> 
> -                #DxeIpl (Fixed Flash Address, BaseAddress=0x00fffb4310,
> EntryPoint=0x00fffb4958)
> 
> -                #(GUID=86D70125-BAA3-4296-A62F-
> 602BEBBB9081 .textbaseaddress=0x00fffb4398 .databaseaddress=0x00fffb41
> 78)
> 
> -                match = re.match("([_a-zA-Z0-9\-]+)\s\(.+BaseAddress=(0x[0-9a-fA-
> F]+),\s+EntryPoint=(0x[0-9a-fA-F]+)\)", rptLine)
> 
> +                #DxeIpl (Fixed Flash Address, BaseAddress=0x00fffb4310,
> EntryPoint=0x00fffb4958,Type=PE)
> 
> +                match = re.match("([_a-zA-Z0-9\-]+)\s\(.+BaseAddress=(0x[0-9a-
> fA-F]+),\s+EntryPoint=(0x[0-9a-fA-F]+),\s*Type=\w+\)", rptLine)
> 
> +                if match is None:
> 
> +                    #DxeIpl (Fixed Flash Address, BaseAddress=0x00fffb4310,
> EntryPoint=0x00fffb4958)
> 
> +                    match = re.match("([_a-zA-Z0-9\-]+)\s\(.+BaseAddress=(0x[0-9a-
> fA-F]+),\s+EntryPoint=(0x[0-9a-fA-F]+)\)", rptLine)
> 
>                  if match is not None:

Could here use 'else' ?

Thanks,
Star

> 
>                      foundModHdr = True
> 
>                      modName = match.group(1)
> 
>                      if len(modName) == 36:
> 
>                         modName = self.dictGuidNameXref[modName.upper()]
> 
>                      self.dictModBase['%s:BASE'  % modName] = int (match.group(2),
> 16)
> 
>                      self.dictModBase['%s:ENTRY' % modName] = int (match.group(3),
> 16)
> 
> +                #(GUID=86D70125-BAA3-4296-A62F-
> 602BEBBB9081 .textbaseaddress=0x00fffb4398 .databaseaddress=0x00fffb41
> 78)
> 
>                  match = re.match("\(GUID=([A-Z0-9\-
> ]+)\s+\.textbaseaddress=(0x[0-9a-fA-F]+)\s+\.databaseaddress=(0x[0-9a-fA-
> F]+)\)", rptLine)
> 
>                  if match is not None:
> 
>                      if foundModHdr:
> 
>                          foundModHdr = False
> 
>                      else:
> 
> --
> 2.29.1.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#67597): https://edk2.groups.io/g/devel/message/67597
> Mute This Topic: https://groups.io/mt/78284512/1779220
> Group Owner: devel+owner at edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [star.zeng at intel.com]
> -=-=-=-=-=-=
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#67663): https://edk2.groups.io/g/devel/message/67663
Mute This Topic: https://groups.io/mt/78284512/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