summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/GenFds/FfsInfStatement.py
diff options
context:
space:
mode:
authorFan, ZhijuX <zhijux.fan@intel.com>2019-05-29 13:29:34 +0800
committerFeng, Bob C <bob.c.feng@intel.com>2019-06-10 19:48:50 +0800
commit04797875d1d53e53e31eca4fa01bc3cf6929f39c (patch)
tree4bdf17a9e6204e220b006499002f53587bd8bfc8 /BaseTools/Source/Python/GenFds/FfsInfStatement.py
parent6cbed0e36fe734f3fc11d30d652122d7714627c4 (diff)
downloadedk2-04797875d1d53e53e31eca4fa01bc3cf6929f39c.tar.gz
edk2-04797875d1d53e53e31eca4fa01bc3cf6929f39c.tar.bz2
edk2-04797875d1d53e53e31eca4fa01bc3cf6929f39c.zip
BaseTools:Make BaseTools support new rules to generate RAW FFS FILE
BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1765 If RAW FFS File Rule has no section for its data.For RAW FFS File, directly call GenFfs tool to generate FFS file. Ffs Rule: [Rule.Common.USER_DEFINED.MicroCode] FILE RAW = $(NAMED_GUID) { $(INF_OUTPUT)/$(MODULE_NAME).bin } [Rule.Common.USER_DEFINED.LOGO] FILE RAW = $(NAMED_GUID) { |.bmp } As shown in the rule above,if SectionType and FileType not defined, FFS files are generated directly, and no other type of file is generated. The patch is to make the BaseTools support these two rules Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/GenFds/FfsInfStatement.py')
-rw-r--r--BaseTools/Source/Python/GenFds/FfsInfStatement.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
index 78dd7cd51a..cd3b0f6477 100644
--- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
+++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
@@ -147,7 +147,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
# @param self The object pointer
# @param Dict dictionary contains macro and value pair
#
- def __InfParse__(self, Dict = {}):
+ def __InfParse__(self, Dict = None, IsGenFfs=False):
GenFdsGlobalVariable.VerboseLogger( " Begine parsing INf file : %s" %self.InfFileName)
@@ -348,7 +348,10 @@ class FfsInfStatement(FfsInfStatementClassObject):
#
# Set OutputPath = ${WorkSpace}\Build\Fv\Ffs\${ModuleGuid}+ ${ModuleName}\
#
-
+ if IsGenFfs:
+ Rule = self.__GetRule__()
+ if GlobalData.gGuidPatternEnd.match(Rule.NameGuid):
+ self.ModuleGuid = Rule.NameGuid
self.OutputPath = os.path.join(GenFdsGlobalVariable.FfsDir, \
self.ModuleGuid + self.BaseName)
if not os.path.exists(self.OutputPath) :
@@ -438,7 +441,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
# Parse Inf file get Module related information
#
- self.__InfParse__(Dict)
+ self.__InfParse__(Dict, IsGenFfs=True)
Arch = self.GetCurrentArch()
SrcFile = mws.join( GenFdsGlobalVariable.WorkSpaceDir, self.InfFileName);
DestFile = os.path.join( self.OutputPath, self.ModuleGuid + '.ffs')