From: "Chiu, Chasel" <chasel.chiu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"Chiu, Chasel" <chasel.chiu@intel.com>
Cc: "Ma, Maurice" <maurice.ma@intel.com>,
"Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
"Zeng, Star" <star.zeng@intel.com>
Subject: Re: [edk2-devel] [PATCH] IntelFsp2Pkg/GenCfgOpt: skip unnecessarily header/BSF recreating.
Date: Mon, 12 Oct 2020 02:49:44 +0000 [thread overview]
Message-ID: <SN6PR11MB2814F8ED9438DB0F8BFEEDEDE6070@SN6PR11MB2814.namprd11.prod.outlook.com> (raw)
In-Reply-To: <1639BC6A4CE669DC.21977@groups.io>
Change push: cc942105ede58a300ba46f3df0edfa86b3abd4dd
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chiu, Chasel
> Sent: Thursday, October 1, 2020 10:12 AM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Ma, Maurice
> <maurice.ma@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: [edk2-devel] [PATCH] IntelFsp2Pkg/GenCfgOpt: skip unnecessarily
> header/BSF recreating.
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2967
>
> When no change in FSP UPD DSC files, GenCfgOpt.py should skip recreating UPD
> header and BSF files.
> This patch added a check to handle this case.
>
> Cc: Maurice Ma <maurice.ma@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
> ---
> IntelFsp2Pkg/Tools/GenCfgOpt.py | 60
> ++++++++++++++++++++++++++++++++++++++++++------------------
> 1 file changed, 42 insertions(+), 18 deletions(-)
>
> diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py
> b/IntelFsp2Pkg/Tools/GenCfgOpt.py index bcced590ce..af7e14a10a 100644
> --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py
> +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py
> @@ -810,6 +810,17 @@ EndList
> SubItem['value'] = valuestr return Error + def NoDscFileChange
> (self, OutPutFile):+ NoFileChange = True+ if not
> os.path.exists(OutPutFile):+ NoFileChange = False+ else:+
> DscTime = os.path.getmtime(self._DscFile)+ OutputTime =
> os.path.getmtime(OutPutFile)+ if DscTime > OutputTime:+
> NoFileChange = False+ return NoFileChange+ def CreateSplitUpdTxt (self,
> UpdTxtFile): GuidList =
> ['FSP_T_UPD_TOOL_GUID','FSP_M_UPD_TOOL_GUID','FSP_S_UPD_TOOL_GUID
> '] SignatureList = ['0x545F', '0x4D5F','0x535F'] # _T, _M, and _S
> signature for FSPT, FSPM, FSPS@@ -823,16 +834,7 @@ EndList
> if UpdTxtFile == '': UpdTxtFile = os.path.join(FvDir,
> self._MacroDict[GuidList[Index]] + '.txt') - ReCreate = False- if not
> os.path.exists(UpdTxtFile):- ReCreate = True- else:-
> DscTime = os.path.getmtime(self._DscFile)- TxtTime =
> os.path.getmtime(UpdTxtFile)- if DscTime > TxtTime:-
> ReCreate = True-- if not ReCreate:+ if (self.NoDscFileChange
> (UpdTxtFile)): # DSC has not been modified yet # So don't have
> to re-generate other files self.Error = 'No DSC file change, skip to
> create UPD TXT file'@@ -1056,7 +1058,11 @@ EndList
> HeaderFile = os.path.join(FvDir, HeaderFileName) # Check if header
> needs to be recreated- ReCreate = False+ if (self.NoDscFileChange
> (HeaderFile)):+ # DSC has not been modified yet+ # So don't have to
> re-generate other files+ self.Error = 'No DSC file change, skip to create
> UPD header file'+ return 256 TxtBody = [] for Item in
> self._CfgItemList:@@ -1382,6 +1388,12 @@ EndList
> self.Error = "BSF output file '%s' is invalid" % BsfFile return 1 +
> if (self.NoDscFileChange (BsfFile)):+ # DSC has not been modified yet+
> # So don't have to re-generate other files+ self.Error = 'No DSC file change,
> skip to create UPD BSF file'+ return 256+ Error = 0 OptionDict = {}
> BsfFd = open(BsfFile, "w")@@ -1467,7 +1479,7 @@ EndList
> def Usage():- print ("GenCfgOpt Version 0.55")+ print ("GenCfgOpt Version
> 0.56") print ("Usage:") print (" GenCfgOpt UPDTXT PlatformDscFile
> BuildFvDir [-D Macros]") print (" GenCfgOpt HEADER
> PlatformDscFile BuildFvDir InputHFile [-D Macros]")@@ -1529,13 +1541,25
> @@ def Main():
> print ("ERROR: %s !" % (GenCfgOpt.Error)) return Ret elif
> sys.argv[1] == "HEADER":- if GenCfgOpt.CreateHeaderFile(OutFile) != 0:-
> print ("ERROR: %s !" % GenCfgOpt.Error)- return 8+ Ret =
> GenCfgOpt.CreateHeaderFile(OutFile)+ if Ret != 0:+ # No change is
> detected+ if Ret == 256:+ print ("INFO: %s !" %
> (GenCfgOpt.Error))+ else :+ print ("ERROR: %s !" %
> (GenCfgOpt.Error))+ return 8+ return Ret elif sys.argv[1] ==
> "GENBSF":- if GenCfgOpt.GenerateBsfFile(OutFile) != 0:- print
> ("ERROR: %s !" % GenCfgOpt.Error)- return 9+ Ret =
> GenCfgOpt.GenerateBsfFile(OutFile)+ if Ret != 0:+ # No change is
> detected+ if Ret == 256:+ print ("INFO: %s !" %
> (GenCfgOpt.Error))+ else :+ print ("ERROR: %s !" %
> (GenCfgOpt.Error))+ return 9+ return Ret else: if argc
> < 5: Usage()--
> 2.28.0.windows.1
>
>
>
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#65775): https://edk2.groups.io/g/devel/message/65775
> Mute This Topic: https://groups.io/mt/77232193/1777047
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [chasel.chiu@intel.com] -=-
> =-=-=-=-=
>
parent reply other threads:[~2020-10-12 2:49 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <1639BC6A4CE669DC.21977@groups.io>]
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=SN6PR11MB2814F8ED9438DB0F8BFEEDEDE6070@SN6PR11MB2814.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