PMI loader and execution mechanism supporting extensible PMI event handlers
Abstract
A method and system that enables executable content in the form of one or more software drivers or firmware volumes to be loaded into the native mode of an Itanium- or IA-64 based processor. The mechanism allows for multiple drivers, possibly written by different parties, to be installed for these operations. An agent that registers event handlers provided by the drivers runs in the EFI boot-services mode and is composed of a processor-specific component that binds the drivers and a platform component that abstracts chipset control of the PMI (Platform Management Interrupt) signals corresponding to a PMI event triggering condition. Accordingly, the functionality of the native mode the processors can be extended through add-on drivers written by parties other than the OEM from the computer system or the BIOS vendor for the system.
Claims
exact text as granted — not AI-modified1 . A method for handling a Platform Management Interrupt (PMI) event in a processor, comprising:
loading a PMI event-handling management service into memory accessible to the processor; registering an entry point for the PMI event-handling management service; enabling one or more PMI event handlers to be made accessible to the processor via the PMI event-handling management service; and in response to the PMI event, vectoring the processor to begin executing the PMI event-handling management service at its entry point, wherein execution of the PMI event-handling management service performs the function of: dispatching at least one of said one or more PMI event handlers to service the PMI event.
2 . The method of claim 1 , wherein the said one or more PMI event handlers are made accessible to the PMI event-handling management service by publishing a registration interface that enables registration of PMI event handlers with the PMI event-handling management service.
3 . The method of claim 2 , wherein a plurality of PMI event handlers are registered with the PMI event handling management service, further comprising:
creating an ordered list of said plurality of event handlers; dispatching a first event handler; determining if the first event handler is an appropriate event handler for servicing the PMI event and, if it is, executing the first event handler to completion to service the event; otherwise dispatching a next event handler in the list and determining whether that event handler is an appropriate event handler for servicing the PMI event and repeating this function until the appropriate event handler has been dispatched, whereupon that event handler is executed to completion to service the PMI event.
4 . The method of claim 2 , wherein the registration interface enables a set of machine code corresponding to an event handler that is stored outside of any component(s) in which an original set of firmware is stored to be registered as a PMI event handler.
5 . The method of claim 4 , wherein the registration interface is published during a pre-boot process for a computer system employing the processor to enable a driver to load the set of machine code corresponding to the event handler prior to loading an operating system for the computer system.
6 . The method of claim 5 , further comprising:
scanning for any firmware volumes that are materialized during a pre-boot process for the computer system to identify an existence of any firmware file containing a PMI event handler; and loading the PMI event handler in system memory.
7 . The method of claim 1 , wherein the computer system includes a plurality of processors, further comprising:
loading the PMI event handler management service into a selected processor among said plurality of processors; causing the selected processor to begin execution of the PMI event handler management service in response to the event; synchronizing all of said plurality of processors other than the selected processor and halting execution of a respective current operation for each of these other processors during execution of the service handler management service; returning all of said plurality of processors to a previous processing mode to resume execution of their respective operations after the PMI event has been serviced by an appropriate event handler.
8 . The method of claim 1 , wherein each of said one or more PMI event handlers comprise a set a machine code that is executed by the processor to service an error condition generated by a hardware component in a computer system employing the processor that causes the event, the method further comprising:
executing a first portion of the set of machine code corresponding to the PMI event handler that was most recently dispatched that queries the hardware component corresponding to that event handler to determine if the error condition was caused by that hardware component; and completing execution of the set of machine code for the PMI event handler if it is determined that the error condition was caused by its corresponding hardware component, otherwise returning a value to the PMI event handler management service indicating that the event handler is not the appropriate event handler to service the error condition.
9 . The method of claim 1 , further comprising authenticating said one or more PMI event handlers before they are loaded into memory for a computer system employing the processor.
10 . The method of claim 1 , wherein an original set of firmware for a computer system in which the processor is employed includes one or more legacy event handlers, the method further comprising:
registering said one or more legacy event handlers with the PMI event handling management service; and dispatching at least one of said one or more legacy event handlers via the PMI event handler management service to service the PMI event.
11 . The method of claim 1 , further comprising enabling any legacy event handlers that are stored as machine code in an original set of firmware for a computer system employing the processor to be executed to service the PMI event, as appropriate, in response to the PMI event.
12 . A machine-readable medium to provide instructions, which if executed by a processor in a computer system performs operations comprising:
loading a Plafform Management Interrupt (PMI) event-handling management service into memory accessible to the processor; registering an entry point for the PMI event-handling management service; enabling one or more PMI event handlers to be made accessible to the processor via the PMI event-handling management service; and in response to a PMI event, vectoring the processor to begin executing the PMI event-handling management service at its entry point, wherein execution of the PMI event-handling management service dispatches at least one of said one or more PMI event handlers to service the PMI event.
13 . The machine-readable medium of claim 12 , wherein execution of the instructions performs the further operation of:
publishing a registration interface that enables registration of PMI event handlers with the PMI event-handling service.
14 . The machine-readable medium of claim 13 , wherein a plurality of PMI event handlers are registered with the PMI event handling management service, and wherein execution of the instructions performs further operations comprising:
creating an ordered list of said plurality of event handlers; dispatching a first event handler; determining if the first event handler is an appropriate event handler for servicing the PMI event and, if it is, executing the first event handler to completion to service the event; otherwise dispatching a next event handler in the list and determining whether that event handler is an appropriate event handler for servicing the PMI event and repeating this function until the appropriate event handler has been dispatched, whereupon that event handler is executed to completion to service the PMI event.
15 . The machine-readable medium of claim 12 , wherein execution of the instructions performs further operations comprising:
scanning for any firmware volumes that are materialized during a pre-boot process for the computer system to identify an existence of any firmware file containing a PMI event handler; and loading the PMI event handler in system memory.
16 . The machine-readable medium of claim 12 , wherein the computer system includes a plurality of processors, and execution of the instructions performs further operations comprising:
loading the PMI event handler management service into a selected processor among said plurality of processors; causing the selected processor to begin execution of the PMI event handler management service in response to the event; synchronizing all of said plurality of processors other than the selected processor and halting execution of a respective current operation for each of these other processors during execution of the service handler management service; returning all of said plurality of processors to a previous processing mode to resume execution of their respective operations after the PMI event has been serviced by an appropriate event handler.
17 . The machine-readable medium of claim 12 , wherein an original set of firmware for the computer system includes one or more legacy event handlers, and execution of the instructions performs further operations comprising:
registering said one or more legacy event handlers with the PMI event handling management service; and dispatching at least one of said one or more legacy event handlers via the PMI event handler management service to service the PMI event.
18 . The machine-readable medium of claim 12 , wherein each of said one or more PMI event handlers comprise a set a machine code that is executed by the processor to service an error condition generated by a hardware component in a computer system employing the processor that causes the event, and execution of the instructions performs further operations comprising:
executing a first portion of the set of machine code corresponding to the PMI event handler that was most recently dispatched that queries the hardware component corresponding to that event handler to determine if the error condition was caused by that hardware component; and completing execution of the set of machine code for the PMI event handler if it is determined that the error condition was caused by its corresponding hardware component, otherwise returning a value to the PMI event handler management service indicating that the event handler is not the appropriate event handler to service the error condition.
19 . The machine-readable medium of claim 12 , wherein a portion of the instructions are embodied as the PMI event handler management service.
20 . A computer system comprising:
a motherboard; a memory operatively coupled to the motherboard in which a plurality of machine instructions are stored; a processor linked in communication with the memory; and a firmware storage device having firmware instructions stored therein, which if executed by the processor perform operations comprising:
loading a Plafform Management Interrupt (PMI) event-handling management service into the memory;
registering an entry point for the PMI event-handling management service;
enabling one or more PMI event handlers to be made accessible to the processor via the PMI event-handling management service; and
in response to a PMI event, vectoring the processor to begin executing the PMI event-handling management service at its entry point, wherein execution of the PMI event-handling management service dispatches at least one of said one or more PMI event handlers to service the PMI event.
21 . The computer system of claim 20 , wherein execution of the firmware instructions performs the further operation of:
publishing a registration interface that enables registration of PMI event handlers with the PMI event-handling service.
22 . The computer system of claim 21 , wherein a plurality of PMI event handlers are registered with the PMI event handling management service, and wherein execution of the firmware instructions performs further operations comprising:
creating an ordered list of said plurality of event handlers; dispatching a first event handler; determining if the first event handler is an appropriate event handler for servicing the PMI event and, if it is, executing the first event handler to completion to service the event; otherwise dispatching a next event handler in the list and determining whether that event handler is an appropriate event handler for servicing the PMI event and repeating this function until the appropriate event handler has been dispatched, whereupon that event handler is executed to completion to service the PMI event.
23 . The computer system of claim 20 , wherein execution of the firmware instructions performs further operation comprising:
scanning for any firmware volumes that are materialized during a pre-boot process for the computer system to identify an existence of any firmware file containing a PMI event handler; and loading the PMI event handler in the memory.
24 . The computer system of claim 20 , wherein the firmware storage device includes firmware instructions comprising one or more legacy event handlers, and execution of the firmware instructions performs further operations comprising:
registering said one or more legacy event handlers with the PMI event handling management service; and dispatching at least one of said one or more legacy event handlers via the PMI event handler management service to service the PMI event.Join the waitlist — get patent alerts
Track US2005102459A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.