]> git.proxmox.com Git - mirror_edk2.git/blame - DuetPkg/Include/EfiFlashMap.h
Change DUET specific HOB structure to make all HOB 8-byte align to fix the PI-SCT...
[mirror_edk2.git] / DuetPkg / Include / EfiFlashMap.h
CommitLineData
18b84857 1/** @file\r
ca162103 2\r
d555d90f 3Copyright (c) 2004 - 2010, Intel Corporation \r
ca162103 4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 EfiFlashMap.h\r
15\r
16Abstract:\r
17\r
18 Defines for the EFI Flash Map functionality\r
19 \r
18b84857 20**/\r
ca162103 21\r
22#ifndef _EFI_FLASHMAP_H_\r
23#define _EFI_FLASHMAP_H_\r
24\r
ca162103 25//\r
26// Definition for flash map GUIDed HOBs\r
27//\r
28typedef UINT32 EFI_FLASH_AREA_ATTRIBUTES;\r
29\r
30#define EFI_FLASH_AREA_FV 0x0001\r
31#define EFI_FLASH_AREA_SUBFV 0x0002\r
32#define EFI_FLASH_AREA_MEMMAPPED_FV 0x0004\r
33#define EFI_FLASH_AREA_REQUIRED 0x0008\r
34#define EFI_FLASH_AREA_CORRUPT 0x0010\r
35\r
36typedef UINT8 EFI_FLASH_AREA_TYPE;\r
37\r
38#define EFI_FLASH_AREA_RECOVERY_BIOS 0x0 // Recovery code\r
39#define EFI_FLASH_AREA_MAIN_BIOS 0x1 // Regular BIOS code\r
40#define EFI_FLASH_AREA_PAL_B 0x2 // PAL-B\r
41#define EFI_FLASH_AREA_RESERVED_03 0x3 // Reserved for backwards compatibility\r
42#define EFI_FLASH_AREA_RESERVED_04 0x4 // Reserved for backwards compatibility\r
43#define EFI_FLASH_AREA_DMI_FRU 0x5 // DMI FRU information\r
44#define EFI_FLASH_AREA_OEM_BINARY 0x6 // OEM Binary Code/data\r
45#define EFI_FLASH_AREA_RESERVED_07 0x7 // Reserved for backwards compatibility\r
46#define EFI_FLASH_AREA_RESERVED_08 0x8 // Reserved for backwards compatibility\r
47#define EFI_FLASH_AREA_RESERVED_09 0x9 // Reserved for backwards compatibility\r
48#define EFI_FLASH_AREA_RESERVED_0A 0x0a // Reserved for backwards compatibility\r
49#define EFI_FLASH_AREA_EFI_VARIABLES 0x0b // EFI variables\r
50#define EFI_FLASH_AREA_MCA_LOG 0x0c // MCA error log\r
51#define EFI_FLASH_AREA_SMBIOS_LOG 0x0d // SMBIOS error log\r
52#define EFI_FLASH_AREA_FTW_BACKUP 0x0e // A backup block during FTW operations\r
53#define EFI_FLASH_AREA_FTW_STATE 0x0f // State information during FTW operations\r
54#define EFI_FLASH_AREA_UNUSED 0x0fd // Not used\r
55#define EFI_FLASH_AREA_GUID_DEFINED 0x0fe // Usage defined by a GUID\r
56#pragma pack(1)\r
57//\r
58// An individual sub-area Entry.\r
59// A single flash area may consist of more than one sub-area.\r
60//\r
c69dd9df 61/**\r
ca162103 62typedef struct {\r
63 EFI_FLASH_AREA_ATTRIBUTES Attributes;\r
64 UINT32 Reserved;\r
65 EFI_PHYSICAL_ADDRESS Base;\r
66 EFI_PHYSICAL_ADDRESS Length;\r
67 EFI_GUID FileSystem;\r
68} EFI_FLASH_SUBAREA_ENTRY;\r
69\r
70typedef struct {\r
71 UINT8 Reserved[3];\r
72 EFI_FLASH_AREA_TYPE AreaType;\r
73 EFI_GUID AreaTypeGuid;\r
74 UINT32 NumEntries;\r
75 EFI_FLASH_SUBAREA_ENTRY Entries[1];\r
76} EFI_FLASH_MAP_ENTRY_DATA;\r
77\r
78typedef struct {\r
79 UINT8 Reserved[3];\r
80 EFI_FLASH_AREA_TYPE AreaType;\r
81 EFI_GUID AreaTypeGuid;\r
82 UINT32 NumberOfEntries;\r
83 EFI_FLASH_SUBAREA_ENTRY Entries[1];\r
84 //\r
85 // Extended Hob data.\r
86 //\r
87 // VolumeId and FilePath indicating a unique file.\r
88 //\r
89 UINT32 VolumeId;\r
90 CHAR16 FilePath[256];\r
91 UINT32 ActuralSize;\r
92 UINT32 Offset;\r
93} EFI_FLASH_MAP_FS_ENTRY_DATA;\r
94\r
95typedef struct {\r
96 EFI_HOB_GENERIC_HEADER Header;\r
97 EFI_GUID Name;\r
98 UINT8 Reserved[3];\r
99 EFI_FLASH_AREA_TYPE AreaType;\r
100 EFI_GUID AreaTypeGuid;\r
101 UINT32 NumEntries;\r
102 EFI_FLASH_SUBAREA_ENTRY Entries[1];\r
103} EFI_HOB_FLASH_MAP_ENTRY_TYPE;\r
104\r
105//\r
106// Internal definitions\r
107//\r
108typedef struct {\r
109 UINT8 Reserved[3];\r
110 EFI_FLASH_AREA_TYPE AreaType;\r
111 EFI_GUID AreaTypeGuid;\r
112 UINT32 NumberOfEntries;\r
113 EFI_FLASH_SUBAREA_ENTRY SubAreaData;\r
114} EFI_FLASH_AREA_HOB_DATA;\r
115\r
116typedef struct {\r
117 UINTN Base;\r
118 UINTN Length;\r
119 EFI_FLASH_AREA_ATTRIBUTES Attributes;\r
120 EFI_FLASH_AREA_TYPE AreaType;\r
121 UINT8 Reserved[3];\r
122 EFI_GUID AreaTypeGuid;\r
123} EFI_FLASH_AREA_DATA;\r
c69dd9df 124**/\r
125\r
126typedef struct {\r
127 EFI_FLASH_AREA_ATTRIBUTES Attributes;\r
128 UINT32 Reserved;\r
129 EFI_PHYSICAL_ADDRESS Base;\r
130 EFI_PHYSICAL_ADDRESS Length;\r
131 EFI_GUID FileSystem;\r
132} EFI_FLASH_SUBAREA_ENTRY;\r
133\r
134typedef struct {\r
135 UINT8 Reserved[3];\r
136 EFI_FLASH_AREA_TYPE AreaType;\r
137 EFI_GUID AreaTypeGuid;\r
138 UINT32 NumberOfEntries;\r
139 EFI_FLASH_SUBAREA_ENTRY Entries[1];\r
140 //\r
141 // Extended Hob data.\r
142 //\r
143 // VolumeId and FilePath indicating a unique file.\r
144 //\r
145 UINT32 VolumeId;\r
d555d90f 146 CHAR16 FilePath[258];\r
c69dd9df 147 UINT32 ActuralSize;\r
148 UINT32 Offset;\r
149} EFI_FLASH_MAP_FS_ENTRY_DATA;\r
ca162103 150\r
151#pragma pack()\r
152\r
153#endif // #ifndef _EFI_FLASHMAP_H_\r