Revision: 18262
          http://sourceforge.net/p/edk2/code/18262
Author:   lzeng14
Date:     2015-08-24 01:42:37 +0000 (Mon, 24 Aug 2015)
Log Message:
-----------
BaseTools: Follow PI spec to update ExtendedSize in EFI_FFS_FILE_HEADER2

for FFS data above 16 bytes alignment requirement.

PI spec requires FFS header to be at 8 bytes alignment to FV header.
And, FFS data alignment requires the beginning of the file data must
be aligned on a particular boundary, such as 1, 16, 128 bytes or above.
If FFS data alignment requires to be above 16 bytes, and FFS header
must be at 8 byte alignment, so FFS header size must be multiple of 8.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c
    trunk/edk2/BaseTools/Source/C/Common/FvLib.c
    trunk/edk2/BaseTools/Source/C/Include/Common/PiFirmwareFile.h

Modified: trunk/edk2/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c 2015-08-24 
01:24:44 UTC (rev 18261)
+++ trunk/edk2/BaseTools/Source/C/Common/FirmwareVolumeBuffer.c 2015-08-24 
01:42:37 UTC (rev 18262)
@@ -1,7 +1,7 @@
 /** @file
 EFI Firmware Volume routines which work on a Fv image in buffers.
 
-Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2015, 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
@@ -864,7 +864,7 @@
     return 0;
   }
   if (Ffs->Attributes & FFS_ATTRIB_LARGE_FILE) {
-    return ((EFI_FFS_FILE_HEADER2 *)Ffs)->ExtendedSize;
+    return (UINT32) ((EFI_FFS_FILE_HEADER2 *)Ffs)->ExtendedSize;
   }
   return FvBufExpand3ByteSize(Ffs->Size);
 }

Modified: trunk/edk2/BaseTools/Source/C/Common/FvLib.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/FvLib.c        2015-08-24 01:24:44 UTC 
(rev 18261)
+++ trunk/edk2/BaseTools/Source/C/Common/FvLib.c        2015-08-24 01:42:37 UTC 
(rev 18262)
@@ -1,7 +1,7 @@
 /** @file
 These functions assist in parsing and manipulating a Firmware Volume.
 
-Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2015, 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        
@@ -784,7 +784,7 @@
     return 0;
   }
   if (FfsHeader->Attributes & FFS_ATTRIB_LARGE_FILE) {
-    return ((EFI_FFS_FILE_HEADER2 *)FfsHeader)->ExtendedSize;
+    return (UINT32) ((EFI_FFS_FILE_HEADER2 *)FfsHeader)->ExtendedSize;
   } else {
     return GetLength(FfsHeader->Size);
   }

Modified: trunk/edk2/BaseTools/Source/C/Include/Common/PiFirmwareFile.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Include/Common/PiFirmwareFile.h       
2015-08-24 01:24:44 UTC (rev 18261)
+++ trunk/edk2/BaseTools/Source/C/Include/Common/PiFirmwareFile.h       
2015-08-24 01:42:37 UTC (rev 18262)
@@ -2,9 +2,9 @@
   The firmware file related definitions in PI.
   
   @par Revision Reference:
-  Version 1.0.
+  Version 1.4.
 
-  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006 - 2015, 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
@@ -110,7 +110,7 @@
   EFI_FFS_FILE_ATTRIBUTES Attributes;
   UINT8                   Size[3];
   EFI_FFS_FILE_STATE      State;
-  UINT32                  ExtendedSize;
+  UINT64                  ExtendedSize;
 } EFI_FFS_FILE_HEADER2;
 
 #define MAX_FFS_SIZE        0x1000000


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to