BaseTools: Fixed bug for single FV generating.
If -i is specified and this FV has no BlockSize defined, tool did not inherit FD's BlockSize. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yingke Liu <yingke.d.liu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18339 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
b390d5a8cf
commit
29d960f901
|
@ -207,6 +207,30 @@ class FV (FvClassObject):
|
||||||
GenFdsGlobalVariable.LargeFileInFvFlags.pop()
|
GenFdsGlobalVariable.LargeFileInFvFlags.pop()
|
||||||
return FvOutputFile
|
return FvOutputFile
|
||||||
|
|
||||||
|
## _GetBlockSize()
|
||||||
|
#
|
||||||
|
# Calculate FV's block size
|
||||||
|
# Inherit block size from FD if no block size specified in FV
|
||||||
|
#
|
||||||
|
def _GetBlockSize(self):
|
||||||
|
if self.BlockSizeList:
|
||||||
|
return True
|
||||||
|
|
||||||
|
for FdName in GenFdsGlobalVariable.FdfParser.Profile.FdDict.keys():
|
||||||
|
FdObj = GenFdsGlobalVariable.FdfParser.Profile.FdDict[FdName]
|
||||||
|
for RegionObj in FdObj.RegionList:
|
||||||
|
if RegionObj.RegionType != 'FV':
|
||||||
|
continue
|
||||||
|
for RegionData in RegionObj.RegionDataList:
|
||||||
|
#
|
||||||
|
# Found the FD and region that contain this FV
|
||||||
|
#
|
||||||
|
if self.UiFvName.upper() == RegionData.upper():
|
||||||
|
RegionObj.BlockInfoOfRegion(FdObj.BlockSizeList, self)
|
||||||
|
if self.BlockSizeList:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
## __InitializeInf__()
|
## __InitializeInf__()
|
||||||
#
|
#
|
||||||
# Initilize the inf file to create FV
|
# Initilize the inf file to create FV
|
||||||
|
@ -245,8 +269,9 @@ class FV (FvClassObject):
|
||||||
T_CHAR_LF)
|
T_CHAR_LF)
|
||||||
else:
|
else:
|
||||||
if self.BlockSizeList == []:
|
if self.BlockSizeList == []:
|
||||||
#set default block size is 1
|
if not self._GetBlockSize():
|
||||||
self.FvInfFile.writelines("EFI_BLOCK_SIZE = 0x1" + T_CHAR_LF)
|
#set default block size is 1
|
||||||
|
self.FvInfFile.writelines("EFI_BLOCK_SIZE = 0x1" + T_CHAR_LF)
|
||||||
|
|
||||||
for BlockSize in self.BlockSizeList :
|
for BlockSize in self.BlockSizeList :
|
||||||
if BlockSize[0] != None:
|
if BlockSize[0] != None:
|
||||||
|
|
Loading…
Reference in New Issue