Reviewed-by: Yonghong Zhu <[email protected]> Best Regards, Zhu Yonghong
-----Original Message----- From: Carsey, Jaben Sent: Thursday, September 06, 2018 5:51 AM To: [email protected] Cc: Zhu, Yonghong <[email protected]>; Gao, Liming <[email protected]>; Feng, Bob C <[email protected]> Subject: [PATCH v1 1/1] BaseTools: refactor to remove duplicate functions Update GenFdsGlobalVariable GetAlignment to support G. replace use of local function in Region with updated shared function. Cc: Yonghong Zhu <[email protected]> Cc: Liming Gao <[email protected]> Cc: Bob C Feng <[email protected]> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <[email protected]> --- BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py | 11 +++++----- BaseTools/Source/Python/GenFds/Region.py | 21 +------------------- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py index eb106b574420..77873d36b98a 100644 --- a/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py +++ b/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py @@ -512,14 +512,15 @@ class GenFdsGlobalVariable: @staticmethod def GetAlignment (AlignString): - if AlignString is None: + if not AlignString: return 0 - if AlignString in ("1K", "2K", "4K", "8K", "16K", "32K", "64K", "128K", "256K", "512K"): + if AlignString.endswith('K'): return int (AlignString.rstrip('K')) * 1024 - elif AlignString in ("1M", "2M", "4M", "8M", "16M"): + if AlignString.endswith('M'): return int (AlignString.rstrip('M')) * 1024 * 1024 - else: - return int (AlignString) + if AlignString.endswith('G'): + return int (AlignString.rstrip('G')) * 1024 * 1024 * 1024 + return int (AlignString) @staticmethod def GenerateFfs(Output, Input, Type, Guid, Fixed=False, CheckSum=False, Align=None, diff --git a/BaseTools/Source/Python/GenFds/Region.py b/BaseTools/Source/Python/GenFds/Region.py index 7f94b3d66b55..5242b74c9e70 100644 --- a/BaseTools/Source/Python/GenFds/Region.py +++ b/BaseTools/Source/Python/GenFds/Region.py @@ -124,7 +124,7 @@ class Region(RegionClassObject): # self.BlockInfoOfRegion(BlockSizeList, FvObj) self.FvAddress = self.FvAddress + FvOffset - FvAlignValue = self.GetFvAlignValue(FvObj.FvAlignment) + FvAlignValue = + GenFdsGlobalVariable.GetAlignment(FvObj.FvAlignment) if self.FvAddress % FvAlignValue != 0: EdkLogger.error("GenFds", GENFDS_ERROR, "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName, FvObj.FvAlignment)) @@ -277,25 +277,6 @@ class Region(RegionClassObject): GenFdsGlobalVariable.InfLogger(' Region Name = None') self.PadBuffer(Buffer, ErasePolarity, Size) - def GetFvAlignValue(self, Str): - AlignValue = 1 - Granu = 1 - Str = Str.strip().upper() - if Str.endswith('K'): - Granu = 1024 - Str = Str[:-1] - elif Str.endswith('M'): - Granu = 1024 * 1024 - Str = Str[:-1] - elif Str.endswith('G'): - Granu = 1024 * 1024 * 1024 - Str = Str[:-1] - else: - pass - - AlignValue = int(Str) * Granu - return AlignValue - ## BlockSizeOfRegion() # # @param BlockSizeList List of block information -- 2.16.2.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

