IP Library Granted Patent US 7,698,547
Granted Patent B1
US 7,698,547 · App. 11/495,696 · Granted Apr 13, 2010

Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware

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,698,547
App. No.
11/495,696
Granted
Apr 13, 2010
Kind
B1
Abstract

Methods, apparatus, and computer-readable media for executing the same program module in a PEI and ad DXE are disclosed. According to one method, a program module is first executed in the PEI phase. While the program module is executing in the PEI, it stores the memory address of a DXE entry point in a hand-off block. When the DXE phase is entered, the stored DXE entry point for the program module is retrieved from the hand-off block and the program module is executed at the DXE entry point.

Claims (29)

1. A computer-implemented method for executing a program module within both a pre-extensible firmware interface (EFI) initialization environment (PEI) and a driver execution environment (DXE) of an EFI-compatible firmware, the method comprising computer-implemented operations for:

executing, through a computer comprising a processor a memory coupled to the processor, the program module in the PEI;

while executing the program module in the PEI, storing, through the computer, a DXE entry point for executing the program module in the DXE; and

while in the DXE, retrieving, through the computer, the stored DXE entry point and executing the program module at the DXE entry point.

2. The computer-implemented method of claim 1 , wherein storing, through the computer, a DXE entry point for executing the program module in the DXE comprises creating, through the computer, a hand-off block (HOB) that is passed from the PEI to the DXE, the HOB storing the DXE entry point for the program module.

3. The computer-implemented method of claim 2 , wherein the HOB comprises a globally unique identifier (GUID) extension HOB.

4. The computer-implemented method of claim 3 , wherein executing, through the computer, the program module at the DXE entry point comprises:

determining, through the computer, in the DXE if the program module is located in a read-only memory (ROM);

relocating, through the computer, the program module to a random access memory (RAM) if the program module is located in a ROM; and

executing, through the computer, the relocated program module at the DXE entry point.

5. The computer-implemented method of claim 4 , wherein, in response to being executed at the DXE entry point, the program module is configured to install a protocol in the DXE.

6. The computer-implemented method of claim 5 , wherein the program module further comprises a PEI entry point for executing the program module in the PEI.

7. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to perform the method of claim 1 .

8. A computer-controlled apparatus capable of performing the method of claim 1 .

9. A computer-implemented method for continuing the execution of a program module from within a pre-extensible firmware interface initialization (PEI) environment to a driver execution environment (DXE), the method comprising computer-implemented operations for:

creating, through a computer comprising a processor and a memory coupled to the processor, a hand-off block (HOB) during the execution of the program module in the PEI, the HOB identifying the module as a module that should also be executed in the DXE and storing an entry point memory address for executing the program module in the DXE; and

retrieving, through the computer, the entry point memory address from the HOB during execution of the program module in the DXE, and executing the program module from the entry point memory address in the DXE.

10. The computer-implemented method of claim 9 , wherein executing the program module from the entry point memory address during the DXE comprises determining if the program module is located in a read-only memory (ROM), and if the program module is in a ROM, relocating the program module from a read-only memory (ROM) to a random access memory (RAM) and executing the relocating program module from the RAM at the entry point memory address.

11. The computer-implemented method of claim 10 , wherein, in response to being executed at the entry point memory address, the program module is configured to install a protocol in the DXE.

12. The computer-implemented method of claim 11 , wherein the program module further comprises a second entry point memory address utilized for executing the program module in the PEI.

13. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to perform the method of claim 9 .

14. A computer-controlled apparatus capable of performing the method of claim 9 .

15. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to:

provide a firmware, the firmware configured to execute in a pre-extensible firmware interface initialization (PEI) phase and a driver execution environment (DXE) phase, the firmware configured to store a PEI entry point and a DXE entry point, the PEI entry point comprising an entry point into a program module at which execution of the program module is started during the PEI phase, the DXE entry point comprising an entry point into the program module at which execution of the program module is started during the DXE phase;

during the PEI phase, (a) launching the program module at the PEI entry point, (b) creating a hand-off block (HOB), (c) storing the DXE entry point in the HOB, and (d) passing a pointer to the HOB to a DXE core; and

during the DXE phase (a) locating the HOB through the pointer passed to the DXE core and (b) launching the program module at the DXE entry point.

16. The computer-readable storage medium of claim 15 , wherein the HOB further comprises data indicating that the program module should be executed in both the PEI phase and the DXE phase.

17. The computer-readable storage medium of claim 16 , wherein the firmware is further configured to determine prior to executing the program module in the DXE phase whether the program module is located in a read-only memory (ROM) and, if the program module is in a ROM, to relocate the program module to a random access memory (RAM) for execution.

18. The computer-readable storage medium of claim 17 , wherein the program module is configured to install a protocol in the DXE phase in response to being executed from the entry point memory address.

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 28, 2006
From: POLYUDOV, FELIKS
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 018146/0355 →