4.2.18 Offer alternatives to function keys

Configuration of drivers should be accomplished via HII and via OS-present interfaces.

There are design considerations when interacting outside of configuration. First, consider using the setup interface as the user interface for a UEFI driver. The user already understands the interface and remote use is already enabled. If the existing high level interfaces cannot be used, then follow the design considerations for using console based services.

UEFI drivers should use the console input services (see Section 22.2 of this guide), and then be aware of alternatives to function keys. This is because the UEFI console may be connected through a serial port. In such cases, it is sensitive to the correct terminal emulator configuration. If the terminal emulator is not correctly configured to match the terminal settings in UEFI (PC ANSI, VT100, VT100+, or VT-UTF8), some of the keys (function keys, arrow keys (page up/down, insert/delete, and backspace), may not work correctly, display colors properly nor render the correct cursor positioning.

Note: To better support users, it is recommended that UEFI configuration protocols and UEFI applications create user interfaces that are not solely dependent on these keys but instead offer alternatives for these keys.

Note: It is important to be aware that the Simple Input Protocol does not support the CTRL or ALT keys because these keys are not available with remote terminals such as terminal emulators and telnet.

The following table shows one possible set of alternate key sequences for function keys, arrow keys, page up/down keys, and the insert/delete keys. Each configuration protocol and application decides if alternate key sequences are supported and which alternate mappings should be used. The table also lists the UEFI scan code from the Simple Input Protocol and the alternate key sequence to use to produce particular scan codes.

Most of these key sequences are directly supported in the EDK II_―_special handling is not required to support these key sequences on a remote terminal. Those labeled as "No" are not directly supported in the EDK II. They are parsed and interpreted by the configuration protocol or application.

Table 14-Alternate key sequences for remote terminals

UEFI scan code

Key sequence

Supported in EDK II?

SCAN_UP

'^'

No

SCAN_DOWN

'v' or 'V'

No

SCAN_RIGHT

'>'

No

SCAN_LEFT

'<'

No

SCAN_HOME

ESC h

Yes

SCAN_END

ESC k

Yes

SCAN_INSERT

ESC +

Yes

SCAN_DELETE

ESC -

Yes

SCAN_PAGE_UP

ESC ?

Yes

SCAN_PAGE_DOWN

ESC /

Yes

SCAN_F1

ESC 1

Yes

SCAN_F2

ESC 2

Yes

SCAN_F3

ESC 3

Yes

SCAN_F4

ESC 4

Yes

SCAN_F5

ESC 5

Yes

SCAN_F6

ESC 6

Yes

SCAN_F7

ESC 7

Yes

SCAN_F8

ESC 8

Yes

SCAN_F9

ESC 9

Yes

SCAN_F10

ESC 0

Yes

ESC

ESC

Yes