From: "Gao, Liming" <liming.gao@intel.com>
To: "Zhu, Yonghong" <yonghong.zhu@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [Patch] BaseTools: Fix a bug for different FV use same FILE statement Guid
Date: Fri, 29 Dec 2017 02:30:57 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E19AF65@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1514482854-3892-1-git-send-email-yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>Yonghong Zhu
>Sent: Friday, December 29, 2017 1:41 AM
>To: edk2-devel@lists.01.org
>Subject: [edk2] [Patch] BaseTools: Fix a bug for different FV use same FILE
>statement Guid
>
>We meet a case that different FV use same FILE statement Guid, but the
>FILE content is different. current we use the Guid value as Ffs file
>dir which cause the ffs file will be override. This patch use Guid
>value and Fv name as ffs dir for FILE statement.
>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
>---
> BaseTools/Source/Python/GenFds/FfsFileStatement.py | 7 +++++--
> BaseTools/Source/Python/GenFds/FfsInfStatement.py | 2 +-
> BaseTools/Source/Python/GenFds/Fv.py | 2 +-
> 3 files changed, 7 insertions(+), 4 deletions(-)
>
>diff --git a/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>b/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>index edb1312..12ec95b 100644
>--- a/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>+++ b/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>@@ -55,11 +55,11 @@ class FileStatement (FileStatementClassObject) :
> # @param Dict dictionary contains macro and value pair
> # @param FvChildAddr Array of the inside FvImage base address
> # @param FvParentAddr Parent Fv base address
> # @retval string Generated FFS file name
> #
>- def GenFfs(self, Dict = {}, FvChildAddr=[], FvParentAddr=None,
>IsMakefile=False):
>+ def GenFfs(self, Dict = {}, FvChildAddr=[], FvParentAddr=None,
>IsMakefile=False, FvName=None):
>
> if self.NameGuid != None and self.NameGuid.startswith('PCD('):
> PcdValue = GenFdsGlobalVariable.GetPcdValue(self.NameGuid)
> if len(PcdValue) == 0:
> EdkLogger.error("GenFds", GENFDS_ERROR, '%s NOT defined.' \
>@@ -70,11 +70,14 @@ class FileStatement (FileStatementClassObject) :
> if len(RegistryGuidStr) == 0:
> EdkLogger.error("GenFds", GENFDS_ERROR, 'GUID value for %s in
>wrong format.' \
> % (self.NameGuid))
> self.NameGuid = RegistryGuidStr
>
>- OutputDir = os.path.join(GenFdsGlobalVariable.FfsDir, self.NameGuid)
>+ Str = self.NameGuid
>+ if FvName:
>+ Str += FvName
>+ OutputDir = os.path.join(GenFdsGlobalVariable.FfsDir, Str)
> if not os.path.exists(OutputDir):
> os.makedirs(OutputDir)
>
> Dict.update(self.DefineVarDict)
> SectionAlignments = None
>diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>index 4b47817..baee543 100644
>--- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>+++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>@@ -420,11 +420,11 @@ class FfsInfStatement(FfsInfStatementClassObject):
> # @param Dict dictionary contains macro and value pair
> # @param FvChildAddr Array of the inside FvImage base address
> # @param FvParentAddr Parent Fv base address
> # @retval string Generated FFS file name
> #
>- def GenFfs(self, Dict = {}, FvChildAddr = [], FvParentAddr=None,
>IsMakefile=False):
>+ def GenFfs(self, Dict = {}, FvChildAddr = [], FvParentAddr=None,
>IsMakefile=False, FvName=None):
> #
> # Parse Inf file get Module related information
> #
>
> self.__InfParse__(Dict)
>diff --git a/BaseTools/Source/Python/GenFds/Fv.py
>b/BaseTools/Source/Python/GenFds/Fv.py
>index d5922c0..a69abb3 100644
>--- a/BaseTools/Source/Python/GenFds/Fv.py
>+++ b/BaseTools/Source/Python/GenFds/Fv.py
>@@ -119,11 +119,11 @@ class FV (FvClassObject):
> if Flag:
> if isinstance(FfsFile, FfsFileStatement.FileStatement):
> continue
> if GenFdsGlobalVariable.EnableGenfdsMultiThread and
>GenFdsGlobalVariable.ModuleFile and
>GenFdsGlobalVariable.ModuleFile.Path.find(os.path.normpath(FfsFile.InfFile
>Name)) == -1:
> continue
>- FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress,
>IsMakefile=Flag)
>+ FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress,
>IsMakefile=Flag, FvName=self.UiFvName)
> FfsFileList.append(FileName)
> if not Flag:
> self.FvInfFile.writelines("EFI_FILE_NAME = " + \
> FileName + \
> T_CHAR_LF)
>--
>2.6.1.windows.1
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel
prev parent reply other threads:[~2017-12-29 2:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-28 17:40 [Patch] BaseTools: Fix a bug for different FV use same FILE statement Guid Yonghong Zhu
2017-12-29 2:30 ` Gao, Liming [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=4A89E2EF3DFEDB4C8BFDE51014F606A14E19AF65@SHSMSX104.ccr.corp.intel.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