Image

UEFI specification limited to 105 keys?

Post Reply
Jonas
Junior Member
Posts: 1
Joined: Wed Apr 18, 2018 8:54 am

UEFI specification limited to 105 keys?

Post by Jonas » Wed Apr 18, 2018 11:27 am

I have a keyboard with 106 keys, how are you supposed to create an EFI_HII_KEYBOARD_LAYOUT layout that reference all my keys?
The specification only have 105 keys as specified by the EfiKeyXXX enum's (page 2013 in "UEFI Spec 2_7A Sept 6.pdf")

User avatar
BobJC
Member
Posts: 20
Joined: Wed Apr 04, 2018 2:07 pm

Re: UEFI specification limited to 105 keys?

Post by BobJC » Wed Apr 18, 2018 12:56 pm

HII spec states the flexibility:
https://www.intel.com/content/dam/doc/r ... n-v092.pdf
Keyboard Mapping The keyboard mapping that is defined in EFI is loosely based on ISO 9995. The naming mechanism is based on the figure below. The keys that are highlighted in brown are the keys that almost all keyboard layouts use for customizations. However, customization does not necessarily mean that all the keys are different. In fact, most of the keys are likely to be the same. When modifying the mapping, one can normally reference the keys in brown as the likely candidates for which to create modifications. Instead of referencing keys in hardware-specific ways such as scan codes, the Framework defines an EFI_KEY enumeration that allows for a simple way to reference this hardware abstraction. Type EFI_KEY is defined in Code Definitions in EFI_HII_PROTOCOL.GetKeyboardLayout() . It also provides a way to update the keyboard layout with a great deal of flexibility. Any of the keys can be mapped to any Unicode value or control code value. When defining the values for a particular key, there are six elements that are pertinent to the key:
• Key name: The EFI_KEY enumeration defines the names of the above keys.
• Unicode value: Defines the Unicode value (if any) of the named key.
• Shifted Unicode value: Defines the Unicode value (if any) of the named key while the shift modifier key is being pressed
• Alt-GR Unicode value: Defines the Unicode value (if any) of the named key while the Alt-GR modifier key (if any) is being pressed.
• Shifted Alt-GR Unicode value: Defines the Unicode value (if any) of the named key while the Shift and Alt-GR modifier key (if any) is being pressed.
• Modifier key value: Defines the nonprintable special function that this key has assigned to it.

Under normal circumstances, a key that has any Unicode definitions generally has a modifier key value of EFI_NULL_MODIFIER . This value means the key has no special function other than the printing of a character. An exception to the rule is if any of the Unicode values have a value of 0xFFFF. Although rarely used, this value is the one case in which a key might have both a printable character and an active control key value.

Post Reply