+from __future__ import absolute_import\r
## @file\r
# process FV generation\r
#\r
#\r
import Common.LongFilePathOs as os\r
import subprocess\r
-import StringIO\r
+from io import BytesIO\r
from struct import *\r
\r
-import Ffs\r
-import AprioriSection\r
-import FfsFileStatement\r
-from GenFdsGlobalVariable import GenFdsGlobalVariable\r
-from GenFds import GenFds\r
+from . import Ffs\r
+from . import AprioriSection\r
+from . import FfsFileStatement\r
+from .GenFdsGlobalVariable import GenFdsGlobalVariable\r
from CommonDataClass.FdfClass import FvClassObject\r
from Common.Misc import SaveFileOnChange, PackGUID\r
from Common.LongFilePathSupport import CopyLongFilePath\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
from Common.DataType import *\r
\r
-T_CHAR_LF = '\n'\r
FV_UI_EXT_ENTY_GUID = 'A67DF1FA-8DE8-4E98-AF09-4BDF2EFFBC7C'\r
\r
## generate FV\r
self.FvForceRebase = None\r
self.FvRegionInFD = None\r
self.UsedSizeEnable = False\r
- \r
+\r
## AddToBuffer()\r
#\r
# Generate Fv and add it to the Buffer\r
#\r
def AddToBuffer (self, Buffer, BaseAddress=None, BlockSize= None, BlockNum=None, ErasePloarity='1', VtfDict=None, MacroDict = {}, Flag=False) :\r
\r
+ from .GenFds import GenFds\r
if BaseAddress is None and self.UiFvName.upper() + 'fv' in GenFds.ImageBinDict:\r
return GenFds.ImageBinDict[self.UiFvName.upper() + 'fv']\r
- \r
+\r
#\r
# Check whether FV in Capsule is in FD flash region.\r
# If yes, return error. Doesn't support FV in Capsule image is also in FD flash region.\r
GenFdsGlobalVariable.InfLogger( "\nGenerating %s FV" %self.UiFvName)\r
GenFdsGlobalVariable.LargeFileInFvFlags.append(False)\r
FFSGuid = None\r
- \r
+\r
if self.FvBaseAddress is not None:\r
BaseAddress = self.FvBaseAddress\r
if not Flag:\r
if not Flag:\r
self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r
FileName + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
\r
# Process Modules in FfsList\r
for FfsFile in self.FfsList :\r
if not Flag:\r
self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r
FileName + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
if not Flag:\r
SaveFileOnChange(self.InfFileName, self.FvInfFile.getvalue(), False)\r
self.FvInfFile.close()\r
#\r
self.InfFileName = os.path.join(GenFdsGlobalVariable.FvDir,\r
self.UiFvName + '.inf')\r
- self.FvInfFile = StringIO.StringIO()\r
+ self.FvInfFile = BytesIO()\r
\r
#\r
# Add [Options]\r
#\r
- self.FvInfFile.writelines("[options]" + T_CHAR_LF)\r
+ self.FvInfFile.writelines("[options]" + TAB_LINE_BREAK)\r
if BaseAddress is not None :\r
self.FvInfFile.writelines("EFI_BASE_ADDRESS = " + \\r
BaseAddress + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
\r
if BlockSize is not None:\r
self.FvInfFile.writelines("EFI_BLOCK_SIZE = " + \\r
'0x%X' %BlockSize + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
if BlockNum is not None:\r
self.FvInfFile.writelines("EFI_NUM_BLOCKS = " + \\r
' 0x%X' %BlockNum + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
else:\r
if self.BlockSizeList == []:\r
if not self._GetBlockSize():\r
#set default block size is 1\r
- self.FvInfFile.writelines("EFI_BLOCK_SIZE = 0x1" + T_CHAR_LF)\r
- \r
+ self.FvInfFile.writelines("EFI_BLOCK_SIZE = 0x1" + TAB_LINE_BREAK)\r
+\r
for BlockSize in self.BlockSizeList :\r
if BlockSize[0] is not None:\r
self.FvInfFile.writelines("EFI_BLOCK_SIZE = " + \\r
'0x%X' %BlockSize[0] + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
\r
if BlockSize[1] is not None:\r
self.FvInfFile.writelines("EFI_NUM_BLOCKS = " + \\r
' 0x%X' %BlockSize[1] + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
\r
if self.BsBaseAddress is not None:\r
self.FvInfFile.writelines('EFI_BOOT_DRIVER_BASE_ADDRESS = ' + \\r
#\r
# Add attribute\r
#\r
- self.FvInfFile.writelines("[attributes]" + T_CHAR_LF)\r
+ self.FvInfFile.writelines("[attributes]" + TAB_LINE_BREAK)\r
\r
self.FvInfFile.writelines("EFI_ERASE_POLARITY = " + \\r
' %s' %ErasePloarity + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
if not (self.FvAttributeDict is None):\r
for FvAttribute in self.FvAttributeDict.keys() :\r
if FvAttribute == "FvUsedSizeEnable":\r
FvAttribute + \\r
' = ' + \\r
self.FvAttributeDict[FvAttribute] + \\r
- T_CHAR_LF )\r
+ TAB_LINE_BREAK )\r
if self.FvAlignment is not None:\r
self.FvInfFile.writelines("EFI_FVB2_ALIGNMENT_" + \\r
self.FvAlignment.strip() + \\r
" = TRUE" + \\r
- T_CHAR_LF)\r
- \r
+ TAB_LINE_BREAK)\r
+\r
#\r
# Generate FV extension header file\r
#\r
# check if the file path exists or not\r
if not os.path.isfile(FileFullPath):\r
GenFdsGlobalVariable.ErrorLogger("Error opening FV Extension Header Entry file %s." % (self.FvExtEntryData[Index]))\r
- FvExtFile = open (FileFullPath,'rb')\r
- FvExtFile.seek(0,2)\r
+ FvExtFile = open (FileFullPath, 'rb')\r
+ FvExtFile.seek(0, 2)\r
Size = FvExtFile.tell()\r
if Size >= 0x10000:\r
GenFdsGlobalVariable.ErrorLogger("The size of FV Extension Header Entry file %s exceeds 0x10000." % (self.FvExtEntryData[Index]))\r
TotalSize += (Size + 4)\r
FvExtFile.seek(0)\r
Buffer += pack('HH', (Size + 4), int(self.FvExtEntryTypeValue[Index], 16))\r
- Buffer += FvExtFile.read() \r
+ Buffer += FvExtFile.read()\r
FvExtFile.close()\r
if self.FvExtEntryType[Index] == 'DATA':\r
ByteList = self.FvExtEntryData[Index].split(',')\r
#\r
if TotalSize > 0:\r
FvExtHeaderFileName = os.path.join(GenFdsGlobalVariable.FvDir, self.UiFvName + '.ext')\r
- FvExtHeaderFile = StringIO.StringIO()\r
+ FvExtHeaderFile = BytesIO()\r
FvExtHeaderFile.write(Buffer)\r
Changed = SaveFileOnChange(FvExtHeaderFileName, FvExtHeaderFile.getvalue(), True)\r
FvExtHeaderFile.close()\r
os.remove (self.InfFileName)\r
self.FvInfFile.writelines("EFI_FV_EXT_HEADER_FILE_NAME = " + \\r
FvExtHeaderFileName + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r
+\r
\r
- \r
#\r
# Add [Files]\r
#\r
- self.FvInfFile.writelines("[files]" + T_CHAR_LF)\r
+ self.FvInfFile.writelines("[files]" + TAB_LINE_BREAK)\r
if VtfDict and self.UiFvName in VtfDict:\r
self.FvInfFile.writelines("EFI_FILE_NAME = " + \\r
VtfDict[self.UiFvName] + \\r
- T_CHAR_LF)\r
+ TAB_LINE_BREAK)\r