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