Intel Extensible Firmware Interface User Manual
Page 76
Extensible Firmware Interface Specification
3-6
12/01/02
Version 1.10
The
LangCodes
variable contains an array of 3-character (8-bit ASCII characters)
ISO-639-2 language codes that the firmware can support. At initialization time the firmware
computes the supported languages and creates this data variable. Since the firmware creates this
value on each initialization, its contents are not stored in nonvolatile memory. This value is
considered read-only.
The
Lang
variable contains the 3-character (8-bit ASCII characters) ISO-639-2 language code that
the machine has been configured for. This value may be changed to any value supported by
LangCodes
; however, the change does not take effect until the next boot. If the language code is
set to an unsupported value, the firmware will choose a supported default at initialization and set
Lang
to a supported value.
The
Timeout
variable contains a binary
UINT16
that supplies the number of seconds that the
firmware will wait before initiating the original default boot selection. A value of 0 indicates that
the default boot selection is to be initiated immediately on boot. If the value is not present, or
contains the value of 0xFFFF then firmware will wait for user input before booting. This means the
default boot selection is not automatically started by the firmware.
The
ConIn
,
ConOut
, and
ErrOut
variables each contain an
descriptor
that defines the default device to use on boot. Changes to these values do not take effect until the
next boot. If the firmware cannot resolve the device path, it is allowed to automatically replace the
value(s) as needed to provide a console for the system.
The
ConInDev
,
ConOutDev
, and
ErrOutDev
variables each contain an
EFI_DEVICE_PATH
descriptor that defines all the possible default devices to use on boot. These variables are volatile,
and are set dynamically on every boot.
ConIn
,
ConOut
, and
ErrOut
are always proper subsets
of
ConInDev
,
ConOutDev
, and
ErrOutDev
.
Each
Boot####
variable contains an
EFI_LOAD_OPTION
. Each
Boot####
variable is the
name “Boot” appended with a unique four digit hexadecimal number. For example, Boot0001,
Boot0002, Boot0A02, etc.
The
BootOrder
variable contains an array of
UINT16
’s that make up an ordered list of the
Boot####
options. The first element in the array is the value for the first logical boot option, the
second element is the value for the second logical boot option, etc. The
BootOrder
order list is
used by the firmware’s boot manager as the default boot order.
The
BootNext
variable is a single
UINT16
that defines the
Boot####
option that is to be tried
first on the next boot. After the
BootNext
boot option is tried the normal
BootOrder
list is
used. To prevent loops, the boot manager deletes this variable before transferring control to the
preselected boot option.
The
BootCurrent
variable is a single
UINT16
that defines the
Boot####
option that was
selected on the current boot.
Each
Driver####
variable contains an
EFI_LOAD_OPTION
. Each load option variable is
appended with a unique number, for example Driver0001, Driver0002, etc.
The
DriverOrder
variable contains an array of
UINT16
’s that make up an ordered list of the
Driver####
variable. The first element in the array is the value for the first logical driver load
option, the second element is the value for the second logical driver load option, etc. The
DriverOrder
list is used by the firmware’s boot manager as the default load order for EFI
drivers that it should explicitly load.