public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Chiu, Chasel" <chasel.chiu@intel.com>
To: "S, Ashraf Ali" <ashraf.ali.s@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Ni, Ray" <ray.ni@intel.com>,
	"Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
	"Zeng, Star" <star.zeng@intel.com>
Subject: Re: [PATCH v2] IntelFsp2Pkg: PatchFv parseInfFile function modification
Date: Tue, 6 Jul 2021 05:59:02 +0000	[thread overview]
Message-ID: <BN9PR11MB5483F19C546D4F840BE3522DE61B9@BN9PR11MB5483.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210705081117.3502-1-ashraf.ali.s@intel.com>


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

> -----Original Message-----
> From: S, Ashraf Ali <ashraf.ali.s@intel.com>
> Sent: Monday, July 5, 2021 4:11 PM
> To: devel@edk2.groups.io
> Cc: S, Ashraf Ali <ashraf.ali.s@intel.com>; Ni, Ray <ray.ni@intel.com>; Chiu,
> Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: [PATCH v2] 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
> 
> Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Star Zeng <star.zeng@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..64b4e927a0 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 == 1:
> +                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


      reply	other threads:[~2021-07-06  5:59 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-05  8:11 [PATCH v2] IntelFsp2Pkg: PatchFv parseInfFile function modification Ashraf Ali S
2021-07-06  5:59 ` Chiu, Chasel [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BN9PR11MB5483F19C546D4F840BE3522DE61B9@BN9PR11MB5483.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox