+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \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
-\r
-Module Name:\r
-\r
- EfiFirmwareVolumeHeader.h\r
-\r
-Abstract:\r
-\r
- Defines data structure that is the volume header found at the beginning of\r
- all firmware volumes that are either memory mapped, or have an\r
- associated FirmwareVolumeBlock protocol.\r
-\r
---*/\r
-\r
-#ifndef _EFI_FIRMWARE_VOLUME_HEADER_H_\r
-#define _EFI_FIRMWARE_VOLUME_HEADER_H_\r
-\r
-\r
-//\r
-// Firmware Volume Block Attributes bit definitions\r
-// They are the shared between Framework and PI1.0.\r
-//\r
-typedef UINT32 EFI_FVB_ATTRIBUTES;\r
-\r
-#define EFI_FVB_READ_DISABLED_CAP 0x00000001\r
-#define EFI_FVB_READ_ENABLED_CAP 0x00000002\r
-#define EFI_FVB_READ_STATUS 0x00000004\r
-\r
-#define EFI_FVB_WRITE_DISABLED_CAP 0x00000008\r
-#define EFI_FVB_WRITE_ENABLED_CAP 0x00000010\r
-#define EFI_FVB_WRITE_STATUS 0x00000020\r
-\r
-#define EFI_FVB_LOCK_CAP 0x00000040\r
-#define EFI_FVB_LOCK_STATUS 0x00000080\r
-\r
-#define EFI_FVB_STICKY_WRITE 0x00000200\r
-#define EFI_FVB_MEMORY_MAPPED 0x00000400\r
-#define EFI_FVB_ERASE_POLARITY 0x00000800\r
-\r
-\r
-#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
-\r
-#define EFI_FVB_ALIGNMENT_CAP 0x00008000\r
-#define EFI_FVB_ALIGNMENT_2 0x00010000\r
-#define EFI_FVB_ALIGNMENT_4 0x00020000\r
-#define EFI_FVB_ALIGNMENT_8 0x00040000\r
-#define EFI_FVB_ALIGNMENT_16 0x00080000\r
-#define EFI_FVB_ALIGNMENT_32 0x00100000\r
-#define EFI_FVB_ALIGNMENT_64 0x00200000\r
-#define EFI_FVB_ALIGNMENT_128 0x00400000\r
-#define EFI_FVB_ALIGNMENT_256 0x00800000\r
-#define EFI_FVB_ALIGNMENT_512 0x01000000\r
-#define EFI_FVB_ALIGNMENT_1K 0x02000000\r
-#define EFI_FVB_ALIGNMENT_2K 0x04000000\r
-#define EFI_FVB_ALIGNMENT_4K 0x08000000\r
-#define EFI_FVB_ALIGNMENT_8K 0x10000000\r
-#define EFI_FVB_ALIGNMENT_16K 0x20000000\r
-#define EFI_FVB_ALIGNMENT_32K 0x40000000\r
-#define EFI_FVB_ALIGNMENT_64K 0x80000000\r
-\r
-#define EFI_FVB_CAPABILITIES (EFI_FVB_READ_DISABLED_CAP | \\r
- EFI_FVB_READ_ENABLED_CAP | \\r
- EFI_FVB_WRITE_DISABLED_CAP | \\r
- EFI_FVB_WRITE_ENABLED_CAP | \\r
- EFI_FVB_LOCK_CAP \\r
- )\r
-\r
-#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
-\r
-\r
-\r
-#else\r
-\r
-#define EFI_FVB2_READ_LOCK_CAP 0x00001000\r
-#define EFI_FVB2_READ_LOCK_STATUS 0x00002000\r
-\r
-#define EFI_FVB2_WRITE_LOCK_CAP 0x00004000\r
-#define EFI_FVB2_WRITE_LOCK_STATUS 0x00008000\r
-\r
-#define EFI_FVB2_ALIGNMENT 0x001F0000\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_8 0x00030000\r
-#define EFI_FVB2_ALIGNMENT_16 0x00040000\r
-#define EFI_FVB2_ALIGNMENT_32 0x00050000\r
-#define EFI_FVB2_ALIGNMENT_64 0x00060000\r
-#define EFI_FVB2_ALIGNMENT_128 0x00070000\r
-#define EFI_FVB2_ALIGNMENT_256 0x00080000\r
-#define EFI_FVB2_ALIGNMENT_512 0x00090000\r
-#define EFI_FVB2_ALIGNMENT_1K 0x000A0000\r
-#define EFI_FVB2_ALIGNMENT_2K 0x000B0000\r
-#define EFI_FVB2_ALIGNMENT_4K 0x000C0000\r
-#define EFI_FVB2_ALIGNMENT_8K 0x000D0000\r
-#define EFI_FVB2_ALIGNMENT_16K 0x000E0000\r
-#define EFI_FVB2_ALIGNMENT_32K 0x000F0000\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_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
-#define EFI_FVB2_ALIGNMENT_8M 0x00170000\r
-#define EFI_FVB2_ALIGNMENT_16M 0x00180000\r
-#define EFI_FVB2_ALIGNMENT_32M 0x00190000\r
-#define EFI_FVB2_ALIGNMENT_64M 0x001A0000\r
-#define EFI_FVB2_ALIGNMENT_128M 0x001B0000\r
-#define EFI_FVB2_ALIGNMENT_256M 0x001C0000\r
-#define EFI_FVB2_ALIGNMENT_512M 0x001D0000\r
-#define EFI_FVB2_ALIGNMENT_1G 0x001E0000\r
-#define EFI_FVB2_ALIGNMENT_2G 0x001F0000\r
-\r
-#define EFI_FVB_CAPABILITIES (EFI_FVB_READ_DISABLED_CAP | \\r
- EFI_FVB_READ_ENABLED_CAP | \\r
- EFI_FVB_WRITE_DISABLED_CAP | \\r
- EFI_FVB_WRITE_ENABLED_CAP | \\r
- EFI_FVB_LOCK_CAP | \\r
- EFI_FVB2_READ_LOCK_CAP | \\r
- EFI_FVB2_WRITE_LOCK_CAP )\r
-\r
-#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | \\r
- EFI_FVB_LOCK_STATUS | EFI_FVB2_READ_LOCK_STATUS | \\r
- EFI_FVB2_WRITE_LOCK_STATUS )\r
-\r
-\r
-\r
-//\r
-// Extended Header Header. Located via ExtHeaderOffset.\r
-// The extended headers follow each other in memory and are \r
-// terminated by ExtHeaderType EFI_FV_EXT_TYPE_END\r
-//\r
-#define EFI_FV_EXT_TYPE_END 0x00\r
-typedef struct {\r
- UINT16 ExtEntrySize;\r
- UINT16 ExtEntryType;\r
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;\r
-\r
-//\r
-// GUID that maps OEM file types to GUIDs\r
-//\r
-#define EFI_FV_EXT_TYPE_OEM_TYPE 0x01\r
-typedef struct {\r
- EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;\r
- UINT32 TypeMask;\r
- EFI_GUID Types[1];\r
-} EFI_FIRMWARE_VOLUME_EXT_HEADER_OEM_TYPE;\r
-\r
-//\r
-// Unique name of the FV\r
-//\r
-typedef struct {\r
- EFI_GUID FvName;\r
- UINT32 ExtHeaderSize;\r
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;\r
-\r
-\r
-#endif\r
-\r
-\r
-//\r
-// Firmware Volume Header Revision definition\r
-//\r
-#define EFI_FVH_REVISION 0x01\r
-//\r
-// PI1.0 define Firmware Volume Header Revision to 2\r
-//\r
-#define EFI_FVH_PI_REVISION 0x02\r
-\r
-//\r
-// Firmware Volume Header Signature definition\r
-//\r
-#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')\r
-\r
-//\r
-// Firmware Volume Header Block Map Entry definition\r
-//\r
-typedef struct {\r
- UINT32 NumBlocks;\r
- UINT32 BlockLength;\r
-} EFI_FV_BLOCK_MAP_ENTRY;\r
-\r
-//\r
-// Firmware Volume Header definition\r
-//\r
-typedef struct {\r
- UINT8 ZeroVector[16];\r
- EFI_GUID FileSystemGuid;\r
- UINT64 FvLength;\r
- UINT32 Signature;\r
- EFI_FVB_ATTRIBUTES Attributes;\r
- UINT16 HeaderLength;\r
- UINT16 Checksum;\r
-#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
- UINT8 Reserved[3];\r
-#else\r
- UINT16 ExtHeaderOffset;\r
- UINT8 Reserved[1];\r
-#endif\r
- UINT8 Revision;\r
- EFI_FV_BLOCK_MAP_ENTRY FvBlockMap[1];\r
-} EFI_FIRMWARE_VOLUME_HEADER;\r
-\r
-#endif\r