## @file\r
# process FD Region generation\r
#\r
-# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
PadByte = pack('B', 0xFF)\r
else:\r
PadByte = pack('B', 0)\r
- PadData = string.join(PadByte for i in xrange(0, Size))\r
+ PadData = ''.join(PadByte for i in xrange(0, Size))\r
Buffer.write(PadData)\r
\r
## AddToBuffer()\r
# @retval string Generated FV file path\r
#\r
\r
- def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolarity, ImageBinDict, vtfDict=None, MacroDict={}):\r
+ def AddToBuffer(self, Buffer, BaseAddress, BlockSizeList, ErasePolarity, ImageBinDict, vtfDict=None, MacroDict={}, Flag=False):\r
Size = self.Size\r
- GenFdsGlobalVariable.InfLogger('\nGenerate Region at Offset 0x%X' % self.Offset)\r
- GenFdsGlobalVariable.InfLogger(" Region Size = 0x%X" % Size)\r
+ if not Flag:\r
+ GenFdsGlobalVariable.InfLogger('\nGenerate Region at Offset 0x%X' % self.Offset)\r
+ GenFdsGlobalVariable.InfLogger(" Region Size = 0x%X" % Size)\r
GenFdsGlobalVariable.SharpCounter = 0\r
+ if Flag and (self.RegionType != 'FV'):\r
+ return\r
\r
if self.RegionType == 'FV':\r
#\r
FileName = None\r
if RegionData.endswith(".fv"):\r
RegionData = GenFdsGlobalVariable.MacroExtend(RegionData, MacroDict)\r
- GenFdsGlobalVariable.InfLogger(' Region FV File Name = .fv : %s' % RegionData)\r
+ if not Flag:\r
+ GenFdsGlobalVariable.InfLogger(' Region FV File Name = .fv : %s' % RegionData)\r
if RegionData[1] != ':' :\r
RegionData = mws.join (GenFdsGlobalVariable.WorkSpaceDir, RegionData)\r
if not os.path.exists(RegionData):\r
\r
FileName = RegionData\r
elif RegionData.upper() + 'fv' in ImageBinDict.keys():\r
- GenFdsGlobalVariable.InfLogger(' Region Name = FV')\r
+ if not Flag:\r
+ GenFdsGlobalVariable.InfLogger(' Region Name = FV')\r
FileName = ImageBinDict[RegionData.upper() + 'fv']\r
else:\r
#\r
FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict.get(RegionData.upper())\r
\r
if FvObj != None :\r
- GenFdsGlobalVariable.InfLogger(' Region Name = FV')\r
+ if not Flag:\r
+ GenFdsGlobalVariable.InfLogger(' Region Name = FV')\r
#\r
# Call GenFv tool\r
#\r
FvBaseAddress = '0x%X' % self.FvAddress\r
BlockSize = None\r
BlockNum = None\r
- FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, vtfDict)\r
+ FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, vtfDict, Flag=Flag)\r
+ if Flag:\r
+ continue\r
+\r
if FvBuffer.len > Size:\r
FvBuffer.close()\r
EdkLogger.error("GenFds", GENFDS_ERROR,\r
#\r
# Add the exist Fv image into FD buffer\r
#\r
- if FileName != None:\r
- FileLength = os.stat(FileName)[ST_SIZE]\r
- if FileLength > Size:\r
- EdkLogger.error("GenFds", GENFDS_ERROR,\r
- "Size of FV File (%s) is larger than Region Size 0x%X specified." \\r
- % (RegionData, Size))\r
- BinFile = open(FileName, 'r+b')\r
- Buffer.write(BinFile.read())\r
- BinFile.close()\r
- Size = Size - FileLength\r
+ if not Flag:\r
+ if FileName != None:\r
+ FileLength = os.stat(FileName)[ST_SIZE]\r
+ if FileLength > Size:\r
+ EdkLogger.error("GenFds", GENFDS_ERROR,\r
+ "Size of FV File (%s) is larger than Region Size 0x%X specified." \\r
+ % (RegionData, Size))\r
+ BinFile = open(FileName, 'rb')\r
+ Buffer.write(BinFile.read())\r
+ BinFile.close()\r
+ Size = Size - FileLength\r
#\r
# Pad the left buffer\r
#\r
- self.PadBuffer(Buffer, ErasePolarity, Size)\r
+ if not Flag:\r
+ self.PadBuffer(Buffer, ErasePolarity, Size)\r
\r
if self.RegionType == 'CAPSULE':\r
#\r
EdkLogger.error("GenFds", GENFDS_ERROR,\r
"Size 0x%X of Capsule File (%s) is larger than Region Size 0x%X specified." \\r
% (FileLength, RegionData, Size))\r
- BinFile = open(FileName, 'r+b')\r
+ BinFile = open(FileName, 'rb')\r
Buffer.write(BinFile.read())\r
BinFile.close()\r
Size = Size - FileLength\r