from Common import EdkLogger\r
from Common.BuildToolError import *\r
from Common.Misc import SaveFileOnChange\r
+from GenFds import GenFds\r
\r
## generate FD\r
#\r
#\r
# Generate FD\r
#\r
- # @param self The object pointer\r
- # @param FvBinDict dictionary contains generated FV name and its file name\r
# @retval string Generated FD file name\r
#\r
- def GenFd (self, FvBinDict):\r
+ def GenFd (self):\r
+ if self.FdUiName.upper() + 'fd' in GenFds.ImageBinDict.keys():\r
+ return GenFds.ImageBinDict[self.FdUiName.upper() + 'fd']\r
+\r
#\r
# Print Information\r
#\r
PadRegion = Region.Region()\r
PadRegion.Offset = PreviousRegionStart + PreviousRegionSize\r
PadRegion.Size = RegionObj.Offset - PadRegion.Offset\r
- PadRegion.AddToBuffer(FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, FvBinDict, self.vtfRawDict, self.DefineVarDict)\r
+ PadRegion.AddToBuffer(FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
PreviousRegionStart = RegionObj.Offset\r
PreviousRegionSize = RegionObj.Size\r
#\r
if PreviousRegionSize > self.Size:\r
EdkLogger.error("GenFds", GENFDS_ERROR, 'FD %s size too small' % self.FdUiName)\r
GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')\r
- RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, FvBinDict, self.vtfRawDict, self.DefineVarDict)\r
+ RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
#\r
# Create a empty Fd file\r
#\r
GenFdsGlobalVariable.VerboseLogger ('Create an empty Fd file')\r
- FdFileName = os.path.join(GenFdsGlobalVariable.FvDir,\r
- self.FdUiName + '.fd')\r
- #FdFile = open(FdFileName, 'wb')\r
-\r
+ FdFileName = os.path.join(GenFdsGlobalVariable.FvDir,self.FdUiName + '.fd')\r
#\r
# Write the buffer contents to Fd file\r
#\r
GenFdsGlobalVariable.VerboseLogger('Write the buffer contents to Fd file')\r
SaveFileOnChange(FdFileName, FdBuffer.getvalue())\r
- #FdFile.write(FdBuffer.getvalue());\r
- #FdFile.close();\r
FdBuffer.close();\r
+ GenFds.ImageBinDict[self.FdUiName.upper() + 'fd'] = FdFileName\r
return FdFileName\r
\r
## generate VTF\r