[edk2-devel] [PATCH v3] IntelFsp2Pkg: PatchFv parseInfFile function modification

Chiu, Chasel chasel.chiu at intel.com
Wed Jul 7 00:14:18 UTC 2021


Reviewed-by: Chasel Chiu <chasel.chiu at intel.com>


> -----Original Message-----
> From: S, Ashraf Ali <ashraf.ali.s at intel.com>
> Sent: Wednesday, July 7, 2021 2:42 AM
> To: devel at edk2.groups.io
> Cc: S, Ashraf Ali <ashraf.ali.s at intel.com>; Ni, Ray <ray.ni at intel.com>; Chiu,
> Chasel <chasel.chiu at intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone at intel.com>; Zeng, Star <star.zeng at intel.com>
> Subject: [PATCH v3] IntelFsp2Pkg: PatchFv parseInfFile function modification
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3476
> 
> parseInfFile currently reading the EFI_BASE_ADDRESS from INF, once the
> address found still it's continues to read the complete inf file which is not
> required. once the EFI_BASE_ADDRESS read from the INF no need to read the
> INF further.
> MSFT compiler can generate the map file address 8 or 16 based on which
> architecture the INF is compiler. currently it's support for IA32, modified the
> patchfv to support for all.
> modification of few typo errors in parseModMapFile, getCurr function required
> 
> verification : Working Fine
> 
> Signed-off-by: Ashraf Ali S <ashraf.ali.s at intel.com>
> Cc: Ray Ni <ray.ni 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>
> ---
>  IntelFsp2Pkg/Tools/PatchFv.py | 18 +++++++++++++-----
>  1 file changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/IntelFsp2Pkg/Tools/PatchFv.py b/IntelFsp2Pkg/Tools/PatchFv.py
> index 112de4077a..eb130049b5 100644
> --- a/IntelFsp2Pkg/Tools/PatchFv.py
> +++ b/IntelFsp2Pkg/Tools/PatchFv.py
> @@ -1,6 +1,6 @@
>  ## @ PatchFv.py
>  #
> -# Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2014 - 2021, Intel Corporation. All rights
> +reserved.<BR>
>  # SPDX-License-Identifier: BSD-2-Clause-Patent  #  ## @@ -304,10 +304,11 @@
> class Symbols:
>              match = re.match("^EFI_BASE_ADDRESS\s*=\s*(0x[a-fA-F0-9]+)", rptLine)
>              if match is not None:
>                  self.fdBase = int(match.group(1), 16) - fvOffset
> +                break
>              rptLine  = fdIn.readline()
>          fdIn.close()
>          if self.fdBase == 0xFFFFFFFF:
> -            raise Exception("Could not find EFI_BASE_ADDRESS in INF file!" % fvFile)
> +            raise Exception("Could not find EFI_BASE_ADDRESS in INF
> + file!" % infFile)
>          return 0
> 
>      #
> @@ -402,6 +403,7 @@ class Symbols:
>      #
>      #  retval      0           Parsed MOD MAP file successfully
>      #  retval      1           There is no moduleEntryPoint in modSymbols
> +    #  retval      2           There is no offset for moduleEntryPoint in modSymbols
>      #
>      def parseModMapFile(self, moduleName, mapFile):
>          #
> @@ -426,7 +428,7 @@ class Symbols:
>          else:
>              #MSFT
>              #0003:00000190       _gComBase                  00007a50     SerialPo
> -            patchMapFileMatchString =  "^\s[0-9a-fA-F]{4}:[0-9a-fA-
> F]{8}\s+(\w+)\s+([0-9a-fA-F]{8}\s+)"
> +            patchMapFileMatchString =  "^\s[0-9a-fA-F]{4}:[0-9a-fA-
> F]{8}\s+(\w+)\s+([0-9a-fA-F]{8,16}\s+)"
>              matchKeyGroupIndex = 1
>              matchSymbolGroupIndex  = 2
>              prefix = ''
> @@ -455,7 +457,13 @@ class Symbols:
>                          continue
> 
>          if not moduleEntryPoint in modSymbols:
> -            return 1
> +            if matchSymbolGroupIndex == 2:
> +                if not '_ModuleEntryPoint' in modSymbols:
> +                    return 1
> +                else:
> +                    moduleEntryPoint = "_ModuleEntryPoint"
> +            else:
> +                return 1
> 
>          modEntry = '%s:%s' % (moduleName,moduleEntryPoint)
>          if not modEntry in self.dictSymbolAddress:
> @@ -498,7 +506,7 @@ class Symbols:
>      #
>      #  Get current character
>      #
> -    #  retval      elf.string[self.index]
> +    #  retval      self.string[self.index]
>      #  retval      ''                       Exception
>      #
>      def getCurr(self):
> --
> 2.30.2.windows.1



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