From 098af8b4088ce1d478a4c0fbf38c17301f61cc9b Mon Sep 17 00:00:00 2001 From: Bob Feng Date: Fri, 13 Nov 2020 18:32:08 +0800 Subject: 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 Cc: Chasel Chiu Cc: Nate DeSimone Cc: Star Zeng Cc: Yunhua Feng Cc: Zhiguang Liu Reviewed-by: Chasel Chiu Reviewed-by: Star Zeng Reviewed-by: Liming Gao --- IntelFsp2Pkg/Tools/PatchFv.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'IntelFsp2Pkg/Tools') 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 @@ -361,9 +361,11 @@ class Symbols: foundModHdr = False while (rptLine != "" ): if rptLine[0] != ' ': - #DxeIpl (Fixed Flash Address, BaseAddress=0x00fffb4310, EntryPoint=0x00fffb4958) - #(GUID=86D70125-BAA3-4296-A62F-602BEBBB9081 .textbaseaddress=0x00fffb4398 .databaseaddress=0x00fffb4178) - 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: foundModHdr = True modName = match.group(1) @@ -371,6 +373,7 @@ class Symbols: 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=0x00fffb4178) 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: -- cgit v1.2.3