public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] BaseTools: Fix the bug that same region print twice in the build log
@ 2017-09-05  8:43 Yonghong Zhu
  2017-09-06  3:27 ` Gao, Liming
  0 siblings, 1 reply; 2+ messages in thread
From: Yonghong Zhu @ 2017-09-05  8:43 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao

This patch fixed the bug that same region print twice in the build log.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/GenFds/Fd.py | 58 ++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 26 deletions(-)

diff --git a/BaseTools/Source/Python/GenFds/Fd.py b/BaseTools/Source/Python/GenFds/Fd.py
index 684b5ce..f330a7e 100644
--- a/BaseTools/Source/Python/GenFds/Fd.py
+++ b/BaseTools/Source/Python/GenFds/Fd.py
@@ -1,9 +1,9 @@
 ## @file
 # process FD generation
 #
-#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
 #  which accompanies this distribution.  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php
@@ -65,36 +65,42 @@ class FD(FDClassObject):
             GenFdsGlobalVariable.VerboseLogger(FvObj)
 
         GenFdsGlobalVariable.VerboseLogger('################### Gen VTF ####################')
         self.GenVtfFile()
 
-        TempFdBuffer = StringIO.StringIO('')
-        PreviousRegionStart = -1
-        PreviousRegionSize = 1
-        
-        for RegionObj in self.RegionList :
+        HasCapsuleRegion = False
+        for RegionObj in self.RegionList:
             if RegionObj.RegionType == 'CAPSULE':
-                continue
-            if RegionObj.Offset + RegionObj.Size <= PreviousRegionStart:
-                pass
-            elif RegionObj.Offset <= PreviousRegionStart or (RegionObj.Offset >=PreviousRegionStart and RegionObj.Offset < PreviousRegionStart + PreviousRegionSize):
-                pass
-            elif RegionObj.Offset > PreviousRegionStart + PreviousRegionSize:
-                GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))
-                PadRegion = Region.Region()
-                PadRegion.Offset = PreviousRegionStart + PreviousRegionSize
-                PadRegion.Size = RegionObj.Offset - PadRegion.Offset
-                PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
-            PreviousRegionStart = RegionObj.Offset
-            PreviousRegionSize = RegionObj.Size
-            #
-            # Call each region's AddToBuffer function
-            #
-            if PreviousRegionSize > self.Size:
-                pass
-            GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')
-            RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
+                HasCapsuleRegion = True
+                break
+        if HasCapsuleRegion:
+            TempFdBuffer = StringIO.StringIO('')
+            PreviousRegionStart = -1
+            PreviousRegionSize = 1
+
+            for RegionObj in self.RegionList :
+                if RegionObj.RegionType == 'CAPSULE':
+                    continue
+                if RegionObj.Offset + RegionObj.Size <= PreviousRegionStart:
+                    pass
+                elif RegionObj.Offset <= PreviousRegionStart or (RegionObj.Offset >=PreviousRegionStart and RegionObj.Offset < PreviousRegionStart + PreviousRegionSize):
+                    pass
+                elif RegionObj.Offset > PreviousRegionStart + PreviousRegionSize:
+                    GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))
+                    PadRegion = Region.Region()
+                    PadRegion.Offset = PreviousRegionStart + PreviousRegionSize
+                    PadRegion.Size = RegionObj.Offset - PadRegion.Offset
+                    PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
+                PreviousRegionStart = RegionObj.Offset
+                PreviousRegionSize = RegionObj.Size
+                #
+                # Call each region's AddToBuffer function
+                #
+                if PreviousRegionSize > self.Size:
+                    pass
+                GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')
+                RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)
         
         FdBuffer = StringIO.StringIO('')
         PreviousRegionStart = -1
         PreviousRegionSize = 1
         for RegionObj in self.RegionList :
-- 
2.6.1.windows.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-09-06  3:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-05  8:43 [Patch] BaseTools: Fix the bug that same region print twice in the build log Yonghong Zhu
2017-09-06  3:27 ` Gao, Liming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox