Dennis: Two comments are here. 1) Do you update EXT header size filed to include this EXT entry? 2) EXT entry size is recorded in totalsize. How about directly use totalsize in the following code?
-----Original Message----- From: Yingke Liu [mailto:[email protected]] Sent: Thursday, June 11, 2015 4:21 PM To: [email protected] Subject: [edk2] [Patch] BaseTools: Generate a FV EXT entry for FV UI name. This patch also removed a warning message. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yingke Liu <[email protected]> --- BaseTools/Source/Python/AutoGen/AutoGen.py | 1 - BaseTools/Source/Python/GenFds/Fv.py | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 996b654..0e7482a 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -2297,7 +2297,6 @@ class ModuleAutoGen(AutoGen): if Module.MetaFile == self.MetaFile: continue if Module.Name == self.Name: - EdkLogger.warn('build', 'Modules have same BaseName:\n %s\n %s' % (Module.MetaFile, self.MetaFile)) if uuid.UUID(Module.Guid) == uuid.UUID(self.Guid): EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n' ' %s\n %s' % (Module.MetaFile, self.MetaFile)) diff --git a/BaseTools/Source/Python/GenFds/Fv.py b/BaseTools/Source/Python/GenFds/Fv.py index 03a7426..8f341d3 100644 --- a/BaseTools/Source/Python/GenFds/Fv.py +++ b/BaseTools/Source/Python/GenFds/Fv.py @@ -30,6 +30,7 @@ from Common.LongFilePathSupport import CopyLongFilePath from Common.LongFilePathSupport import OpenLongFilePath as open T_CHAR_LF = '\n' +FV_UI_EXT_ENTY_GUID = 'A67DF1FA-8DE8-4E98-AF09-4BDF2EFFBC7C' ## generate FV # @@ -295,6 +296,26 @@ class FV (FvClassObject): if self.FvNameGuid <> None and self.FvNameGuid <> '': TotalSize = 16 + 4 Buffer = '' + # + # Create EXT entry for FV UI name + # This GUID is used: A67DF1FA-8DE8-4E98-AF09-4BDF2EFFBC7C + # + FvUiLen = len(self.UiFvName) + TotalSize += (FvUiLen + 16 + 4) + Guid = FV_UI_EXT_ENTY_GUID.split('-') + # + # Layout: + # EFI_FIRMWARE_VOLUME_EXT_ENTRY : size 4 + # GUID : size 16 + # FV UI name + # + Buffer += (pack('HH', (FvUiLen + 16 + 4), 0x0002) + + pack('=LHHBBBBBBBB', int(Guid[0], 16), int(Guid[1], 16), int(Guid[2], 16), + int(Guid[3][-4:-2], 16), int(Guid[3][-2:], 16), int(Guid[4][-12:-10], 16), + int(Guid[4][-10:-8], 16), int(Guid[4][-8:-6], 16), int(Guid[4][-6:-4], 16), + int(Guid[4][-4:-2], 16), int(Guid[4][-2:], 16)) + + self.UiFvName) + for Index in range (0, len(self.FvExtEntryType)): if self.FvExtEntryType[Index] == 'FILE': # check if the path is absolute or relative -- 1.9.5.msysgit.0 ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
