]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/Fd.py
BaseTools: Update Makefile to support FFS file generation
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / Fd.py
index f330a7ed55dc0536ea7188835148395f1bb88098..f735d3b5b015bc679c6b0fc8a3dfed895d1870f9 100644 (file)
@@ -45,7 +45,7 @@ class FD(FDClassObject):
     #\r
     #   @retval string      Generated FD file name\r
     #\r
-    def GenFd (self):\r
+    def GenFd (self, Flag = False):\r
         if self.FdUiName.upper() + 'fd' in GenFds.ImageBinDict.keys():\r
             return GenFds.ImageBinDict[self.FdUiName.upper() + 'fd']\r
 \r
@@ -53,7 +53,8 @@ class FD(FDClassObject):
         # Print Information\r
         #\r
         FdFileName = os.path.join(GenFdsGlobalVariable.FvDir, self.FdUiName + '.fd')\r
-        GenFdsGlobalVariable.InfLogger("Fd File Name:%s (%s)" %(self.FdUiName, FdFileName))\r
+        if not Flag:\r
+            GenFdsGlobalVariable.InfLogger("\nFd File Name:%s (%s)" %(self.FdUiName, FdFileName))\r
 \r
         Offset = 0x00\r
         for item in self.BlockSizeList:\r
@@ -85,11 +86,13 @@ class FD(FDClassObject):
                 elif RegionObj.Offset <= PreviousRegionStart or (RegionObj.Offset >=PreviousRegionStart and RegionObj.Offset < PreviousRegionStart + PreviousRegionSize):\r
                     pass\r
                 elif RegionObj.Offset > PreviousRegionStart + PreviousRegionSize:\r
-                    GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))\r
+                    if not Flag:\r
+                        GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))\r
                     PadRegion = Region.Region()\r
                     PadRegion.Offset = PreviousRegionStart + PreviousRegionSize\r
                     PadRegion.Size = RegionObj.Offset - PadRegion.Offset\r
-                    PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
+                    if not Flag:\r
+                        PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
                 PreviousRegionStart = RegionObj.Offset\r
                 PreviousRegionSize = RegionObj.Size\r
                 #\r
@@ -113,11 +116,13 @@ class FD(FDClassObject):
                                 'Region offset 0x%X overlaps with Region starting from 0x%X, size 0x%X' \\r
                                 % (RegionObj.Offset, PreviousRegionStart, PreviousRegionSize))\r
             elif RegionObj.Offset > PreviousRegionStart + PreviousRegionSize:\r
-                GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))\r
+                if not Flag:\r
+                    GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))\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, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
+                if not Flag:\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
@@ -131,13 +136,14 @@ class FD(FDClassObject):
             # Call each region's AddToBuffer function\r
             #\r
             GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')\r
-            RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
+            RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict,Flag=Flag)\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
-        FdBuffer.close();\r
+        if not Flag:\r
+            SaveFileOnChange(FdFileName, FdBuffer.getvalue())\r
+        FdBuffer.close()\r
         GenFds.ImageBinDict[self.FdUiName.upper() + 'fd'] = FdFileName\r
         return FdFileName\r
 \r