Intel Extensible Firmware Interface User Manual

Page 76

Advertising
background image

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

EFI_DEVICE_PATH

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.

Advertising