mirror of https://github.com/acidanthera/audk.git
BaseTools: Fix bug in GenFds to handle FV image alignment
Cover the case that .fv file in the [Binaries] section. Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
eafbd7a232
commit
321151fedb
|
@ -60,10 +60,35 @@ class FvImageSection(FvImageSectionClassObject):
|
||||||
|
|
||||||
Num = SecNum
|
Num = SecNum
|
||||||
|
|
||||||
for FileName in FileList:
|
MaxFvAlignment = 0
|
||||||
|
for FvFileName in FileList:
|
||||||
|
FvAlignmentValue = 0
|
||||||
|
if os.path.isfile(FvFileName):
|
||||||
|
FvFileObj = open (FvFileName,'r+b')
|
||||||
|
FvFileObj.seek(0)
|
||||||
|
# PI FvHeader is 0x48 byte
|
||||||
|
FvHeaderBuffer = FvFileObj.read(0x48)
|
||||||
|
# FV alignment position.
|
||||||
|
FvAlignmentValue = 1 << (ord (FvHeaderBuffer[0x2E]) & 0x1F)
|
||||||
|
FvFileObj.close()
|
||||||
|
if FvAlignmentValue > MaxFvAlignment:
|
||||||
|
MaxFvAlignment = FvAlignmentValue
|
||||||
|
|
||||||
OutputFile = os.path.join(OutputPath, ModuleName + 'SEC' + Num + Ffs.SectionSuffix.get("FV_IMAGE"))
|
OutputFile = os.path.join(OutputPath, ModuleName + 'SEC' + Num + Ffs.SectionSuffix.get("FV_IMAGE"))
|
||||||
GenFdsGlobalVariable.GenerateSection(OutputFile, [FvFileName], 'EFI_SECTION_FIRMWARE_VOLUME_IMAGE')
|
GenFdsGlobalVariable.GenerateSection(OutputFile, [FvFileName], 'EFI_SECTION_FIRMWARE_VOLUME_IMAGE')
|
||||||
OutputFileList.append(OutputFile)
|
OutputFileList.append(OutputFile)
|
||||||
|
|
||||||
|
# MaxFvAlignment is larger than or equal to 1K
|
||||||
|
if MaxFvAlignment >= 0x400:
|
||||||
|
if MaxFvAlignment >= 0x10000:
|
||||||
|
#The max alignment supported by FFS is 64K.
|
||||||
|
self.Alignment = "64K"
|
||||||
|
else:
|
||||||
|
self.Alignment = str (MaxFvAlignment / 0x400) + "K"
|
||||||
|
else:
|
||||||
|
# MaxFvAlignment is less than 1K
|
||||||
|
self.Alignment = str (MaxFvAlignment)
|
||||||
|
|
||||||
return OutputFileList, self.Alignment
|
return OutputFileList, self.Alignment
|
||||||
#
|
#
|
||||||
# Generate Fv
|
# Generate Fv
|
||||||
|
|
Loading…
Reference in New Issue