Using firmware to enhance the functionality of a controller
First Claim
1. A utility for adapting a controller for handling a first set of higher-priority functions and a second set of lower-priority functions using firmware, the utility comprising:
- means for receiving a notification of a function to be performed;
means for determining whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions;
means for executing the function associated with the notification if the notification is for one of the first set of higher-priority functions;
means for starting a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started;
means for beginning execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions;
means for aborting the function if not completed before expiration of the timer, and storing an address of a point of abortion of the function in a data return vector; and
means for resuming execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector.
6 Assignments
1 Petition
Accused Products
Abstract
A single controller handles keyboard functions and ACPI configuration and power management functions, while providing priority to keyboard functions so that there is no end user-perceptible compromise of keyboard functionality. When an interrupt is received by the microcontroller, it is determined whether the interrupt is an embedded controller interrupt received at the embedded controller host interface or a keyboard interrupt received at the keyboard host interface. If the interrupt is a keyboard interrupt, the keyboard function is handled in a standard fashion. If the interrupt is an embedded controller interrupt for an ACPI configuration or power management function, a burst timer is started and the command is handled by a command dispatcher. If the embedded controller is in burst mode, multiple commands may be received during a burst period. Commands which are not completed before the expiration of the burst timer are aborted, and a data return vector is set to the absolute address at the point of abortion in the firmware. Aborted commands are resumed on reception of the next embedded controller interrupt by continuation of the process at the data return vector address.
-
Citations
23 Claims
-
1. A utility for adapting a controller for handling a first set of higher-priority functions and a second set of lower-priority functions using firmware, the utility comprising:
-
means for receiving a notification of a function to be performed; means for determining whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions; means for executing the function associated with the notification if the notification is for one of the first set of higher-priority functions; means for starting a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started; means for beginning execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions; means for aborting the function if not completed before expiration of the timer, and storing an address of a point of abortion of the function in a data return vector; and means for resuming execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for use of a controller for handling a first set of high-priority tasks and a second set of lower-priority tasks, comprising the steps of:
-
(a) receiving a task interrupt; (b) determining whether the task interrupt is for the first set of high-priority tasks or the second set of lower-priority tasks; (c) executing a current function associated with the task interrupt if the task interrupt is for one of the first set of high-priority tasks; (d) starting a burst period timer if the task interrupt is for one of the second set of lower-priority tasks; (e) executing the current function associated with the task interrupt if the task interrupt is for the one of the second set of lower-priority tasks; and (f) returning to step (e) if an additional communication for execution of an additional function is received prior to expiration of the burst period timer and if the controller is in burst mode, where the current function is defined as the additional function. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. In a computer system with an operating system and firmware, the computer system comprising a device for handling a first set of higher-priority functions and a second set of lower-priority functions using the firmware, the device configured to:
-
receive a notification of a function to be performed; determine whether the function to be performed is one of the first set of higher-priority functions or one of the second set of lower-priority functions; execute the function associated with the notification if the notification is for one of the first set of higher-priority functions; start a timer if the notification is for one of the first set of lower-priority functions and the timer has not already been started; begin execution of the function associated with the notification after starting the timer if the notification is for one of the first set of lower-priority functions; abort the function if not completed before expiration of the timer, and store an address of a point of abortion of the function in a data return vector; and resume execution of the function if previously aborted due to the expiration of the timer upon reception of a subsequent notification, by continuation at the address stored by the data return vector. - View Dependent Claims (20, 21, 22, 23)
-
Specification