[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