xref: /illumos-gate/usr/src/boot/efi/include/Guid/GlobalVariable.h (revision 9164a50bf932130cbb5097a16f6986873ce0e6e5)
1 /** @file
2   GUID for EFI (NVRAM) Variables.
3 
4   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5   SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7   @par Revision Reference:
8   GUID defined in UEFI 2.1
9 **/
10 
11 #ifndef __GLOBAL_VARIABLE_GUID_H__
12 #define __GLOBAL_VARIABLE_GUID_H__
13 
14 #define EFI_GLOBAL_VARIABLE \
15   { \
16     0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C } \
17   }
18 
19 extern EFI_GUID  gEfiGlobalVariableGuid;
20 
21 //
22 // Follow UEFI 2.4 spec:
23 // To prevent name collisions with possible future globally defined variables,
24 // other internal firmware data variables that are not defined here must be
25 // saved with a unique VendorGuid other than EFI_GLOBAL_VARIABLE or
26 // any other GUID defined by the UEFI Specification. Implementations must
27 // only permit the creation of variables with a UEFI Specification-defined
28 // VendorGuid when these variables are documented in the UEFI Specification.
29 //
30 // Note: except the globally defined variables defined below, the spec also defines
31 // L"Boot####"      - A boot load option.
32 // L"Driver####"    - A driver load option.
33 // L"SysPrep####"   - A System Prep application load option.
34 // L"Key####"       - Describes hot key relationship with a Boot#### load option.
35 // The attribute for them is NV+BS+RT, #### is a printed hex value, and no 0x or h
36 // is included in the hex value. They can not be expressed as a #define like other globally
37 // defined variables, it is because we can not list the Boot0000, Boot0001, etc one by one.
38 //
39 
40 ///
41 /// The language codes that the firmware supports. This value is deprecated.
42 /// Its attribute is BS+RT.
43 ///
44 #define EFI_LANG_CODES_VARIABLE_NAME  L"LangCodes"
45 ///
46 /// The language code that the system is configured for. This value is deprecated.
47 /// Its attribute is NV+BS+RT.
48 ///
49 #define EFI_LANG_VARIABLE_NAME  L"Lang"
50 ///
51 /// The firmware's boot managers timeout, in seconds, before initiating the default boot selection.
52 /// Its attribute is NV+BS+RT.
53 ///
54 #define EFI_TIME_OUT_VARIABLE_NAME  L"Timeout"
55 ///
56 /// The language codes that the firmware supports.
57 /// Its attribute is BS+RT.
58 ///
59 #define EFI_PLATFORM_LANG_CODES_VARIABLE_NAME  L"PlatformLangCodes"
60 ///
61 /// The language code that the system is configured for.
62 /// Its attribute is NV+BS+RT.
63 ///
64 #define EFI_PLATFORM_LANG_VARIABLE_NAME  L"PlatformLang"
65 ///
66 /// The device path of the default input/output/error output console.
67 /// Its attribute is NV+BS+RT.
68 ///
69 #define EFI_CON_IN_VARIABLE_NAME   L"ConIn"
70 #define EFI_CON_OUT_VARIABLE_NAME  L"ConOut"
71 #define EFI_ERR_OUT_VARIABLE_NAME  L"ErrOut"
72 ///
73 /// The device path of all possible input/output/error output devices.
74 /// Its attribute is BS+RT.
75 ///
76 #define EFI_CON_IN_DEV_VARIABLE_NAME   L"ConInDev"
77 #define EFI_CON_OUT_DEV_VARIABLE_NAME  L"ConOutDev"
78 #define EFI_ERR_OUT_DEV_VARIABLE_NAME  L"ErrOutDev"
79 ///
80 /// The ordered boot option load list.
81 /// Its attribute is NV+BS+RT.
82 ///
83 #define EFI_BOOT_ORDER_VARIABLE_NAME  L"BootOrder"
84 ///
85 /// The boot option for the next boot only.
86 /// Its attribute is NV+BS+RT.
87 ///
88 #define EFI_BOOT_NEXT_VARIABLE_NAME  L"BootNext"
89 ///
90 /// The boot option that was selected for the current boot.
91 /// Its attribute is BS+RT.
92 ///
93 #define EFI_BOOT_CURRENT_VARIABLE_NAME  L"BootCurrent"
94 ///
95 /// The types of boot options supported by the boot manager. Should be treated as read-only.
96 /// Its attribute is BS+RT.
97 ///
98 #define EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME  L"BootOptionSupport"
99 ///
100 /// The ordered driver load option list.
101 /// Its attribute is NV+BS+RT.
102 ///
103 #define EFI_DRIVER_ORDER_VARIABLE_NAME  L"DriverOrder"
104 ///
105 /// The ordered System Prep Application load option list.
106 /// Its attribute is NV+BS+RT.
107 ///
108 #define EFI_SYS_PREP_ORDER_VARIABLE_NAME  L"SysPrepOrder"
109 ///
110 /// Identifies the level of hardware error record persistence
111 /// support implemented by the platform. This variable is
112 /// only modified by firmware and is read-only to the OS.
113 /// Its attribute is NV+BS+RT.
114 ///
115 #define EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME  L"HwErrRecSupport"
116 ///
117 /// Whether the system is operating in setup mode (1) or not (0).
118 /// All other values are reserved. Should be treated as read-only.
119 /// Its attribute is BS+RT.
120 ///
121 #define EFI_SETUP_MODE_NAME  L"SetupMode"
122 ///
123 /// The Key Exchange Key Signature Database.
124 /// Its attribute is NV+BS+RT+AT.
125 ///
126 #define EFI_KEY_EXCHANGE_KEY_NAME  L"KEK"
127 ///
128 /// The public Platform Key.
129 /// Its attribute is NV+BS+RT+AT.
130 ///
131 #define EFI_PLATFORM_KEY_NAME  L"PK"
132 ///
133 /// Array of GUIDs representing the type of signatures supported
134 /// by the platform firmware. Should be treated as read-only.
135 /// Its attribute is BS+RT.
136 ///
137 #define EFI_SIGNATURE_SUPPORT_NAME  L"SignatureSupport"
138 ///
139 /// Whether the platform firmware is operating in Secure boot mode (1) or not (0).
140 /// All other values are reserved. Should be treated as read-only.
141 /// Its attribute is BS+RT.
142 ///
143 #define EFI_SECURE_BOOT_MODE_NAME  L"SecureBoot"
144 ///
145 /// The OEM's default Key Exchange Key Signature Database. Should be treated as read-only.
146 /// Its attribute is BS+RT.
147 ///
148 #define EFI_KEK_DEFAULT_VARIABLE_NAME  L"KEKDefault"
149 ///
150 /// The OEM's default public Platform Key. Should be treated as read-only.
151 /// Its attribute is BS+RT.
152 ///
153 #define EFI_PK_DEFAULT_VARIABLE_NAME  L"PKDefault"
154 ///
155 /// The OEM's default secure boot signature store. Should be treated as read-only.
156 /// Its attribute is BS+RT.
157 ///
158 #define EFI_DB_DEFAULT_VARIABLE_NAME  L"dbDefault"
159 ///
160 /// The OEM's default secure boot blacklist signature store. Should be treated as read-only.
161 /// Its attribute is BS+RT.
162 ///
163 #define EFI_DBX_DEFAULT_VARIABLE_NAME  L"dbxDefault"
164 ///
165 /// The OEM's default secure boot timestamp signature store. Should be treated as read-only.
166 /// Its attribute is BS+RT.
167 ///
168 #define EFI_DBT_DEFAULT_VARIABLE_NAME  L"dbtDefault"
169 ///
170 /// Allows the firmware to indicate supported features and actions to the OS.
171 /// Its attribute is BS+RT.
172 ///
173 #define EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME  L"OsIndicationsSupported"
174 ///
175 /// Allows the OS to request the firmware to enable certain features and to take certain actions.
176 /// Its attribute is NV+BS+RT.
177 ///
178 #define EFI_OS_INDICATIONS_VARIABLE_NAME  L"OsIndications"
179 ///
180 /// Whether the system is configured to use only vendor provided
181 /// keys or not. Should be treated as read-only.
182 /// Its attribute is BS+RT.
183 ///
184 #define EFI_VENDOR_KEYS_VARIABLE_NAME  L"VendorKeys"
185 
186 #endif
187