Liming,

1) TotalSize is the EXT header size
2) TotalSize is the whole EXT header size, and it is initianlized with 16 + 4 
which is the size of EFI_FIRMWARE_VOLUME_EXT_HEADER.

Dennis

-----Original Message-----
From: Gao, Liming [mailto:liming....@intel.com] 
Sent: Thursday, June 11, 2015 23:18
To: edk2-devel@lists.sourceforge.net
Subject: Re: [edk2] [Patch] BaseTools: Generate a FV EXT entry for FV UI name.

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:yingke.d....@intel.com] 
Sent: Thursday, June 11, 2015 4:21 PM
To: edk2-devel@lists.sourceforge.net
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 <yingke.d....@intel.com>
---
 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
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to