/** @file\r
The firmware volume related definitions in PI.\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation All rights reserved.\r
-\r
- This program and the accompanying materials are licensed and made available\r
- under the terms and conditions of the BSD License which accompanies this\r
- distribution. The full text of the license may be found at:\r
- http://opensource.org/licenses/bsd-license.php\r
+ @par Revision Reference:\r
+ Version 1.2C\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
\r
- File Name: PiFirmwareVolume.h\r
-\r
- @par Revision Reference:\r
- Version 1.0.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
\r
//\r
// Value of EFI_FV_FILE_ATTRIBUTES.\r
-// \r
+//\r
#define EFI_FV_FILE_ATTRIB_ALIGNMENT 0x0000001F\r
#define EFI_FV_FILE_ATTRIB_FIXED 0x00000100\r
#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED 0x00000200\r
\r
-typedef UINT32 EFI_FVB_ATTRIBUTES;\r
+typedef UINT32 EFI_FVB_ATTRIBUTES_2;\r
\r
-// \r
+//\r
// Attributes bit definitions\r
-// \r
+//\r
#define EFI_FVB2_READ_DISABLED_CAP 0x00000001\r
#define EFI_FVB2_READ_ENABLED_CAP 0x00000002\r
#define EFI_FVB2_READ_STATUS 0x00000004\r
#define EFI_FVB2_WRITE_LOCK_CAP 0x00004000\r
#define EFI_FVB2_WRITE_LOCK_STATUS 0x00008000\r
#define EFI_FVB2_ALIGNMENT 0x001F0000\r
+#define EFI_FVB2_WEAK_ALIGNMENT 0x80000000\r
#define EFI_FVB2_ALIGNMENT_1 0x00000000\r
#define EFI_FVB2_ALIGNMENT_2 0x00010000\r
#define EFI_FVB2_ALIGNMENT_4 0x00020000\r
#define EFI_FVB2_ALIGNMENT_64K 0x00100000\r
#define EFI_FVB2_ALIGNMENT_128K 0x00110000\r
#define EFI_FVB2_ALIGNMENT_256K 0x00120000\r
-#define EFI_FVB2_ALIGNMNET_512K 0x00130000\r
+#define EFI_FVB2_ALIGNMENT_512K 0x00130000\r
#define EFI_FVB2_ALIGNMENT_1M 0x00140000\r
#define EFI_FVB2_ALIGNMENT_2M 0x00150000\r
#define EFI_FVB2_ALIGNMENT_4M 0x00160000\r
EFI_GUID FileSystemGuid;\r
UINT64 FvLength;\r
UINT32 Signature;\r
- EFI_FVB_ATTRIBUTES Attributes;\r
+ EFI_FVB_ATTRIBUTES_2 Attributes;\r
UINT16 HeaderLength;\r
UINT16 Checksum;\r
UINT16 ExtHeaderOffset;\r
EFI_FV_BLOCK_MAP_ENTRY BlockMap[1];\r
} EFI_FIRMWARE_VOLUME_HEADER;\r
\r
-#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')\r
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')\r
\r
///\r
/// Firmware Volume Header Revision definition\r
\r
//\r
// Extension header pointed by ExtHeaderOffset of volume header.\r
-// \r
+//\r
typedef struct {\r
EFI_GUID FvName;\r
UINT32 ExtHeaderSize;\r
UINT32 TypeMask;\r
\r
//\r
- // Array of GUIDs. \r
+ // Array of GUIDs.\r
// Each GUID represents an OEM file type.\r
- // \r
- EFI_GUID Types[1];\r
+ //\r
+ // EFI_GUID Types[1];\r
+ //\r
} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;\r
\r
+#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002\r
+typedef struct {\r
+ EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;\r
+ EFI_GUID FormatType;\r
+\r
+ //\r
+ // An array of bytes of length Length.\r
+ //\r
+ // UINT8 Data[1];\r
+ //\r
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;\r
+\r
+#define EFI_FV_EXT_TYPE_USED_SIZE_TYPE 0x03\r
+typedef struct {\r
+ EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;\r
+ UINT32 UsedSize;\r
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_USED_SIZE_TYPE;\r
\r
#endif\r