]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Guid/FlashMapHob.h
Retire the "Include/Common" of MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Include / Guid / FlashMapHob.h
1 /*++
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 FlashMapHob.h
15
16 Abstract:
17
18 GUID used for Flash Map HOB entries in the HOB list.
19
20 --*/
21
22 #ifndef _FLASH_MAP_HOB_GUID_H_
23 #define _FLASH_MAP_HOB_GUID_H_
24
25 //
26 // Definitions for Flash Map
27 //
28 #define EFI_FLASH_MAP_HOB_GUID \
29 { 0xb091e7d2, 0x5a0, 0x4198, {0x94, 0xf0, 0x74, 0xb7, 0xb8, 0xc5, 0x54, 0x59 } }
30
31
32 //
33 // Definition for flash map GUIDed HOBs
34 //
35 typedef UINT32 EFI_FLASH_AREA_ATTRIBUTES;
36
37 #define EFI_FLASH_AREA_FV 0x0001
38 #define EFI_FLASH_AREA_SUBFV 0x0002
39 #define EFI_FLASH_AREA_MEMMAPPED_FV 0x0004
40 #define EFI_FLASH_AREA_REQUIRED 0x0008
41 #define EFI_FLASH_AREA_CORRUPT 0x0010
42
43 typedef UINT8 EFI_FLASH_AREA_TYPE;
44
45 #define EFI_FLASH_AREA_RECOVERY_BIOS 0x0 // Recovery code
46 #define EFI_FLASH_AREA_MAIN_BIOS 0x1 // Regular BIOS code
47 #define EFI_FLASH_AREA_PAL_B 0x2 // PAL-B
48 #define EFI_FLASH_AREA_RESERVED_03 0x3 // Reserved for backwards compatibility
49 #define EFI_FLASH_AREA_RESERVED_04 0x4 // Reserved for backwards compatibility
50 #define EFI_FLASH_AREA_DMI_FRU 0x5 // DMI FRU information
51 #define EFI_FLASH_AREA_OEM_BINARY 0x6 // OEM Binary Code/data
52 #define EFI_FLASH_AREA_RESERVED_07 0x7 // Reserved for backwards compatibility
53 #define EFI_FLASH_AREA_RESERVED_08 0x8 // Reserved for backwards compatibility
54 #define EFI_FLASH_AREA_RESERVED_09 0x9 // Reserved for backwards compatibility
55 #define EFI_FLASH_AREA_RESERVED_0A 0x0a // Reserved for backwards compatibility
56 #define EFI_FLASH_AREA_EFI_VARIABLES 0x0b // EFI variables
57 #define EFI_FLASH_AREA_MCA_LOG 0x0c // MCA error log
58 #define EFI_FLASH_AREA_SMBIOS_LOG 0x0d // SMBIOS error log
59 #define EFI_FLASH_AREA_FTW_BACKUP 0x0e // A backup block during FTW operations
60 #define EFI_FLASH_AREA_FTW_STATE 0x0f // State information during FTW operations
61 #define EFI_FLASH_AREA_UNUSED 0x0fd // Not used
62 #define EFI_FLASH_AREA_GUID_DEFINED 0x0fe // Usage defined by a GUID
63 #pragma pack(1)
64 //
65 // An individual sub-area Entry.
66 // A single flash area may consist of more than one sub-area.
67 //
68 typedef struct {
69 EFI_FLASH_AREA_ATTRIBUTES Attributes;
70 UINT32 Reserved;
71 EFI_PHYSICAL_ADDRESS Base;
72 EFI_PHYSICAL_ADDRESS Length;
73 EFI_GUID FileSystem;
74 } EFI_FLASH_SUBAREA_ENTRY;
75
76 typedef struct {
77 UINT8 Reserved[3];
78 EFI_FLASH_AREA_TYPE AreaType;
79 EFI_GUID AreaTypeGuid;
80 UINT32 NumEntries;
81 EFI_FLASH_SUBAREA_ENTRY Entries[1];
82 } EFI_FLASH_MAP_ENTRY_DATA;
83
84 typedef struct {
85 EFI_HOB_GENERIC_HEADER Header;
86 EFI_GUID Name;
87 UINT8 Reserved[3];
88 EFI_FLASH_AREA_TYPE AreaType;
89 EFI_GUID AreaTypeGuid;
90 UINT32 NumEntries;
91 EFI_FLASH_SUBAREA_ENTRY Entries[1];
92 } EFI_HOB_FLASH_MAP_ENTRY_TYPE;
93
94 //
95 // Internal definitions
96 //
97 typedef struct {
98 UINT8 Reserved[3];
99 EFI_FLASH_AREA_TYPE AreaType;
100 EFI_GUID AreaTypeGuid;
101 UINT32 NumberOfEntries;
102 EFI_FLASH_SUBAREA_ENTRY SubAreaData;
103 } EFI_FLASH_AREA_HOB_DATA;
104
105 typedef struct {
106 UINTN Base;
107 UINTN Length;
108 EFI_FLASH_AREA_ATTRIBUTES Attributes;
109 EFI_FLASH_AREA_TYPE AreaType;
110 UINT8 Reserved[3];
111 EFI_GUID AreaTypeGuid;
112 } EFI_FLASH_AREA_DATA;
113
114 #pragma pack()
115
116
117 extern EFI_GUID gEfiFlashMapHobGuid;
118
119 #endif // _FLASH_MAP_HOB_GUID_H_