IP Library Granted Patent US 7,996,570
Granted Patent B1
US 7,996,570 · App. 12/533,418 · Granted Aug 9, 2011

Usage of keyboard driver in extensible firmware interface for adding new hot keys at firmware level

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,996,570
App. No.
12/533,418
Granted
Aug 9, 2011
Kind
B1
Abstract

A hot key register request is created in an extensible firmware interface application, the hot key register request has a key number and a pointer to a hot key function for the new hot key. The hot key register request is sent to a keyboard driver in the extensible firmware interface. A hot key table is created in working storage from the hot key table in the keyboard driver, and a hot key entry is inserted into the hot key table in working storage. The entry includes the key number and pointer from the hot key register request to add the new hot key as a registered hot key. A success message is sent from the keyboard driver to the extensible firmware interface application. The success message indicates the new hot key has been registered.

Claims (45)

1. In a personal computing system that includes a basic input-output system (BIOS), a computer-implemented method for registering a hot key sequence at a firmware level, comprising:

publishing a hot key protocol that provides a first function for registering at least one hot key sequence at the firmware level within the personal computing system and that provides at least a second function for unregistering the at least one hot key sequence at the firmware level, wherein the first and second functions are callable by an extensible firmware interface (EFI) application to register or unregister the hot key sequence in a hot key lookup table located in a keyboard driver, wherein the keyboard driver is separate from the BIOS;

receiving from the EFI application at least one request to register a hot key sequence, the request to register the hot key sequence having a key number and a function pointer to a hot key function associated with the hot key sequence within the hot key lookup table;

sending the request to register the hot key sequence to the keyboard driver; and

responding to activation of the hot key sequence during a boot-up of the computing system by performing the function associated with the hot key sequence.

2. The method of claim 1 , further comprising:

creating a further hot key lookup table in a working storage of the computing system, based upon the hot key lookup table in the keyboard driver; and

inserting an entry into the further hot key lookup table in the working storage to add the hot key sequence as a registered hot key sequence, the entry comprising the key number and function pointer from the request to register the hot key sequence.

3. The method of claim 2 , further comprising:

sending a success message from the keyboard driver to the EFI application, the success message indicating the new hot key sequence has been registered.

4. The method of claim 3 , further comprising:

detecting whether the key number in the request to register has previously been registered in a hot key sequence; and

assigning the key number to the entry for the new hot key sequence if the key number in the request to register has not previously been registered in a hot key sequence.

5. The method of claim 4 , further comprising:

testing whether the request to register includes an override parameter value if the key number in the request to register has previously been registered; and

changing the function pointer for a previously registered hot key sequence to the function pointer in the request to register if there is an override parameter value in the request to register.

6. The method of claim 5 , wherein the success message indicates the new hot key sequence has been registered and one or more changes to key numbers and function pointers of registered hot key sequences.

7. The method of claim 2 , further comprising:

detecting whether a hot key protocol exists at the keyboard driver in the EFI; and

sending a function table pointer to the EFI application creating the request to register upon detecting that a hot key protocol does exist.

8. The method of claim 2 , further comprising:

receiving a keyboard event when at least one key is pressed;

in response to receiving the keyboard event, searching to determine if the at least one key pressed represents a registered hot key sequence; and

executing the hot key function associated with the hot key sequence if the key pressed is a registered hot key sequence.

9. The method of claim 8 , further comprising:

executing a normal key function if the at least one key pressed is not a registered hot key sequence.

10. The method of claim 8 , further comprising:

testing whether a skip normal processing parameter value is included with a key number read for the keyboard event if the at least one key pressed is not a registered hot key sequence; and

skipping normal key processing if the skip normal processing parameter value is included.

11. In a personal computing system that includes a BIOS and that has a system architecture that includes at least a hardware layer, a firmware layer, and an extensible firmware interface (EFI) layer, an apparatus for registering new hot keys at the firmware layer comprising:

a keyboard driver stored in a tangible computer readable storage medium and provided in the EFI layer and configured to define a protocol for requesting registration of the new hot keys, and to maintain a hot key lookup table that maps hot key sequences to be associated with functions accessible using the hot keys;

an EFI application module stored in the tangible computer readable storage medium and provided in the EFI layer configured to create and send at least one request to the keyboard driver to register at least one new hot key sequence, the request to register the new hot key sequence comprising a key number identifying the new hot key and a function pointer to a function to be associated with the new hot key; and

the keyboard driver further configured to receive the request to register the new hot key sequence, to detect whether the key number has previously been registered, and to insert a new entry in the hot key table for the new hot key sequence if the key number for the request has not previously been registered, wherein the keyboard driver is responsive to activation of the hot key sequence during boot-up of the computing system to perform the function associated with the hot key sequence.

12. The apparatus of claim 11 , further comprising a core services module stored in the tangible computer readable storage medium and provided in the EFI layer for managing the keyboard driver.

13. The apparatus of claim 12 , wherein upon determining that the hot key has previously been registered, the keyboard driver is further configured to detect whether the request to register the hot key includes the override parameter, and upon detecting that the request to register the hot key includes the override parameter, the keyboard driver is configured to change the function pointer for the key number in the hot key table to the pointer in the request to register the hot key.

14. The apparatus of claim 13 , wherein the keyboard driver is further configured to send a success message to the EFI application module if the new hot key sequence is successfully registered in the hot key table, wherein the success message includes change information indicating whether the key number or the function associated with the new hot key sequence has been changed during registration in the hot key table.

15. The apparatus of claim 12 , wherein:

the application module is configured to send to the core services module a message for locating the protocol for requesting registration of the new hot key sequences; and

the core services module is configured to detect whether the keyboard driver defines the protocol and to send a function pointer to the application module if the keyboard driver defines the protocol, the function pointer pointing to the hot key functions available from the keyboard driver.

16. The apparatus of claim 11 , further comprising a keyboard controller configured to connect to a keyboard having a plurality of keys, to receive notifications of at least one of the keys being pressed, to generate keyboard events in response to the notifications, and to maintain key scan codes that indicate which keys are pressed, and wherein:

the keyboard driver is further configured to receive the keyboard event and for reading from the keyboard controller the key scan code for the key pressed, search the hot key lookup table to detect whether the key pressed is a hot key sequence, and execute the function associated with the hot key sequence, if the key pressed is a registered hot key sequence.

17. The apparatus of claim 16 , wherein the keyboard driver executes a normal key function for the key pressed if the key pressed is not a registered hot key sequence.

18. The apparatus of claim 16 , wherein upon detecting that the key pressed is not a registered hot key sequence and if a parameter specifying that the normal key function is to be skipped, the keyboard driver is configured to skip a normal key function for the key pressed.

19. The apparatus of claim 11 , wherein the keyboard driver is configured to create a copy of the hot key table in a working storage of the computing system before inserting the new entry in the copy of the hot key table in the working storage.

20. The apparatus of claim 11 , wherein the keyboard driver is separate from the BIOS.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0795 →
SECURITY INTEREST Recorded May 6, 2019
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 049087/0266 →
ENTITY CONVERSION Recorded Apr 15, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 049091/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2009
From: ILYASOV, OLEG
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 023037/0064 →