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