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

Bob Feng bob.c.feng at intel.com
Wed Nov 18 02:41:14 UTC 2020


Star, 

Thanks for review. This patch try to match the new .map file format, if not match, it will try to match the old format and then do the original logic. I think it would be better not changing the original logic in this patch.

Thanks,
Bob

-----Original Message-----
From: Zeng, Star <star.zeng at intel.com> 
Sent: Wednesday, November 18, 2020 10:24 AM
To: devel at edk2.groups.io; Feng, Bob C <bob.c.feng at intel.com>
Cc: Chiu, Chasel <chasel.chiu at intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone at intel.com>; Yunhua Feng <fengyunhua at byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu at intel.com>; Zeng, Star <star.zeng at intel.com>
Subject: RE: [edk2-devel] [Patch V2] IntelFsp2Pkg/Tools: Fixed PatchFv.py to parse new Fv map file format

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 (#67665): https://edk2.groups.io/g/devel/message/67665
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