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>
Reviewed-by: Liming Gao <liming.gao@intel.com>
# @param FvParentAddr Parent Fv base address\r
# @retval string Generated FFS file name\r
#\r
# @param FvParentAddr Parent Fv base address\r
# @retval string Generated FFS file name\r
#\r
- def GenFfs(self, Dict = {}, FvChildAddr=[], FvParentAddr=None, IsMakefile=False):\r
+ def GenFfs(self, Dict = {}, FvChildAddr=[], FvParentAddr=None, IsMakefile=False, FvName=None):\r
\r
if self.NameGuid != None and self.NameGuid.startswith('PCD('):\r
PcdValue = GenFdsGlobalVariable.GetPcdValue(self.NameGuid)\r
\r
if self.NameGuid != None and self.NameGuid.startswith('PCD('):\r
PcdValue = GenFdsGlobalVariable.GetPcdValue(self.NameGuid)\r
% (self.NameGuid))\r
self.NameGuid = RegistryGuidStr\r
\r
% (self.NameGuid))\r
self.NameGuid = RegistryGuidStr\r
\r
- OutputDir = os.path.join(GenFdsGlobalVariable.FfsDir, self.NameGuid)\r
+ Str = self.NameGuid\r
+ if FvName:\r
+ Str += FvName\r
+ OutputDir = os.path.join(GenFdsGlobalVariable.FfsDir, Str)\r
if not os.path.exists(OutputDir):\r
os.makedirs(OutputDir)\r
\r
if not os.path.exists(OutputDir):\r
os.makedirs(OutputDir)\r
\r
# @param FvParentAddr Parent Fv base address\r
# @retval string Generated FFS file name\r
#\r
# @param FvParentAddr Parent Fv base address\r
# @retval string Generated FFS file name\r
#\r
- def GenFfs(self, Dict = {}, FvChildAddr = [], FvParentAddr=None, IsMakefile=False):\r
+ def GenFfs(self, Dict = {}, FvChildAddr = [], FvParentAddr=None, IsMakefile=False, FvName=None):\r
#\r
# Parse Inf file get Module related information\r
#\r
#\r
# Parse Inf file get Module related information\r
#\r
continue\r
if GenFdsGlobalVariable.EnableGenfdsMultiThread and GenFdsGlobalVariable.ModuleFile and GenFdsGlobalVariable.ModuleFile.Path.find(os.path.normpath(FfsFile.InfFileName)) == -1:\r
continue\r
continue\r
if GenFdsGlobalVariable.EnableGenfdsMultiThread and GenFdsGlobalVariable.ModuleFile and GenFdsGlobalVariable.ModuleFile.Path.find(os.path.normpath(FfsFile.InfFileName)) == -1:\r
continue\r
- FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress, IsMakefile=Flag)\r
+ FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress, IsMakefile=Flag, FvName=self.UiFvName)\r
FfsFileList.append(FileName)\r
if not Flag:\r
self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r
FfsFileList.append(FileName)\r
if not Flag:\r
self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r