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