]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Pi/PiFirmwareVolume.h
Fix doxygen issue:
[mirror_edk2.git] / MdePkg / Include / Pi / PiFirmwareVolume.h
CommitLineData
959ccb23 1/** @file\r
2 The firmware volume related definitions in PI.\r
3\r
4 Copyright (c) 2006 - 2007, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
959ccb23 13 @par Revision Reference:\r
14 Version 1.0.\r
15\r
16**/\r
17\r
18#ifndef __PI_FIRMWAREVOLUME_H__\r
19#define __PI_FIRMWAREVOLUME_H__\r
20\r
0b3cac32 21#include <ProcessorBind.h>\r
22\r
dc53faa3 23///\r
24/// EFI_FV_FILE_ATTRIBUTES\r
25///\r
00edb218 26typedef UINT32 EFI_FV_FILE_ATTRIBUTES;\r
959ccb23 27\r
28//\r
29// Value of EFI_FV_FILE_ATTRIBUTES.\r
30// \r
00edb218
A
31#define EFI_FV_FILE_ATTRIB_ALIGNMENT 0x0000001F\r
32#define EFI_FV_FILE_ATTRIB_FIXED 0x00000100\r
33#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED 0x00000200\r
959ccb23 34\r
dc53faa3 35///\r
36/// type of EFI FVB attribute\r
37/// \r
2e765be2 38typedef UINT32 EFI_FVB_ATTRIBUTES;\r
959ccb23 39\r
40// \r
41// Attributes bit definitions\r
42// \r
43#define EFI_FVB2_READ_DISABLED_CAP 0x00000001\r
44#define EFI_FVB2_READ_ENABLED_CAP 0x00000002\r
45#define EFI_FVB2_READ_STATUS 0x00000004\r
46#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008\r
47#define EFI_FVB2_WRITE_ENABLED_CAP 0x00000010\r
48#define EFI_FVB2_WRITE_STATUS 0x00000020\r
49#define EFI_FVB2_LOCK_CAP 0x00000040\r
50#define EFI_FVB2_LOCK_STATUS 0x00000080\r
51#define EFI_FVB2_STICKY_WRITE 0x00000200\r
52#define EFI_FVB2_MEMORY_MAPPED 0x00000400\r
53#define EFI_FVB2_ERASE_POLARITY 0x00000800\r
54#define EFI_FVB2_READ_LOCK_CAP 0x00001000\r
55#define EFI_FVB2_READ_LOCK_STATUS 0x00002000\r
56#define EFI_FVB2_WRITE_LOCK_CAP 0x00004000\r
57#define EFI_FVB2_WRITE_LOCK_STATUS 0x00008000\r
58#define EFI_FVB2_ALIGNMENT 0x001F0000\r
59#define EFI_FVB2_ALIGNMENT_1 0x00000000\r
60#define EFI_FVB2_ALIGNMENT_2 0x00010000\r
61#define EFI_FVB2_ALIGNMENT_4 0x00020000\r
62#define EFI_FVB2_ALIGNMENT_8 0x00030000\r
63#define EFI_FVB2_ALIGNMENT_16 0x00040000\r
64#define EFI_FVB2_ALIGNMENT_32 0x00050000\r
65#define EFI_FVB2_ALIGNMENT_64 0x00060000\r
66#define EFI_FVB2_ALIGNMENT_128 0x00070000\r
67#define EFI_FVB2_ALIGNMENT_256 0x00080000\r
68#define EFI_FVB2_ALIGNMENT_512 0x00090000\r
69#define EFI_FVB2_ALIGNMENT_1K 0x000A0000\r
70#define EFI_FVB2_ALIGNMENT_2K 0x000B0000\r
71#define EFI_FVB2_ALIGNMENT_4K 0x000C0000\r
72#define EFI_FVB2_ALIGNMENT_8K 0x000D0000\r
73#define EFI_FVB2_ALIGNMENT_16K 0x000E0000\r
74#define EFI_FVB2_ALIGNMENT_32K 0x000F0000\r
75#define EFI_FVB2_ALIGNMENT_64K 0x00100000\r
76#define EFI_FVB2_ALIGNMENT_128K 0x00110000\r
77#define EFI_FVB2_ALIGNMENT_256K 0x00120000\r
78#define EFI_FVB2_ALIGNMNET_512K 0x00130000\r
79#define EFI_FVB2_ALIGNMENT_1M 0x00140000\r
80#define EFI_FVB2_ALIGNMENT_2M 0x00150000\r
81#define EFI_FVB2_ALIGNMENT_4M 0x00160000\r
82#define EFI_FVB2_ALIGNMENT_8M 0x00170000\r
83#define EFI_FVB2_ALIGNMENT_16M 0x00180000\r
84#define EFI_FVB2_ALIGNMENT_32M 0x00190000\r
85#define EFI_FVB2_ALIGNMENT_64M 0x001A0000\r
86#define EFI_FVB2_ALIGNMENT_128M 0x001B0000\r
87#define EFI_FVB2_ALIGNMENT_256M 0x001C0000\r
88#define EFI_FVB2_ALIGNMENT_512M 0x001D0000\r
89#define EFI_FVB2_ALIGNMENT_1G 0x001E0000\r
90#define EFI_FVB2_ALIGNMENT_2G 0x001F0000\r
91\r
92\r
93typedef struct {\r
94 UINT32 NumBlocks;\r
95 UINT32 Length;\r
96} EFI_FV_BLOCK_MAP_ENTRY;\r
97\r
0b3cac32 98///\r
99/// Describes the features and layout of the firmware volume.\r
100///\r
959ccb23 101typedef struct {\r
00edb218
A
102 UINT8 ZeroVector[16];\r
103 EFI_GUID FileSystemGuid;\r
104 UINT64 FvLength;\r
105 UINT32 Signature;\r
2e765be2 106 EFI_FVB_ATTRIBUTES Attributes;\r
00edb218
A
107 UINT16 HeaderLength;\r
108 UINT16 Checksum;\r
109 UINT16 ExtHeaderOffset;\r
110 UINT8 Reserved[1];\r
111 UINT8 Revision;\r
959ccb23 112 EFI_FV_BLOCK_MAP_ENTRY BlockMap[1];\r
113} EFI_FIRMWARE_VOLUME_HEADER;\r
114\r
8a017eaf 115#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')\r
959ccb23 116\r
8a017eaf 117///\r
118/// Firmware Volume Header Revision definition\r
119///\r
eda67610 120#define EFI_FVH_REVISION 0x02\r
959ccb23 121\r
dc53faa3 122///\r
123/// Extension header pointed by ExtHeaderOffset of volume header.\r
124/// \r
959ccb23 125typedef struct {\r
126 EFI_GUID FvName;\r
127 UINT32 ExtHeaderSize;\r
128} EFI_FIRMWARE_VOLUME_EXT_HEADER;\r
129\r
dc53faa3 130///\r
131/// Entry struture for describing FV extension header\r
132/// \r
959ccb23 133typedef struct {\r
134 UINT16 ExtEntrySize;\r
135 UINT16 ExtEntryType;\r
136} EFI_FIRMWARE_VOLUME_EXT_ENTRY;\r
137\r
138#define EFI_FV_EXT_TYPE_OEM_TYPE 0x01\r
dc53faa3 139///\r
140/// This extension header provides a mapping between a GUID and an OEM file type.\r
141/// \r
959ccb23 142typedef struct {\r
143 EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;\r
144 UINT32 TypeMask;\r
145\r
146 //\r
147 // Array of GUIDs. \r
148 // Each GUID represents an OEM file type.\r
149 // \r
150 EFI_GUID Types[1];\r
151} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;\r
152\r
153\r
154#endif\r