IP Library Granted Patent US 8,539,214
Granted Patent B1
US 8,539,214 · App. 12/722,088 · Granted Sep 17, 2013

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 8,539,214
App. No.
12/722,088
Granted
Sep 17, 2013
Kind
B1
Abstract

Methods, apparatus, and computer-readable media for executing the same program module in a PEI phase and a DXE phase 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 (44)

1. A computer system 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 computer system comprising:

a processor;

a memory coupled to the processor; and

an application which executes in the processor from the memory and, when executed by the processor, causes the computer system to execute the program module within both the PEI and the DXE of the application by

executing the program module in the PEI,

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

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

2. The computer system of claim 1 , wherein storing a DXE entry point for executing the program module in the DXE comprises creating 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 system of claim 2 , wherein the HOB comprises a globally unique identifier (GUID) extension HOB.

4. The computer system of claim 3 , wherein executing the program module at the DXE entry point comprises:

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

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

executing the relocated program module at the DXE entry point.

5. The computer system 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 system of claim 5 , wherein the program module further comprises a PEI entry point for executing the program module in the PEI.

7. The computer system of claim 1 , wherein the application comprises EFI-compatible firmware.

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

a processor;

a memory coupled to the processor; and

an application which executes in the processor from the memory and, when executed by the processor, causes the computer system to continue the execution of the program module within both the PEI and the DXE of the application by

creating 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,

retrieving the entry point memory address during execution of the DXE, and

executing the program module from the entry point memory address.

9. The computer system of claim 8 , 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 the read-only memory (ROM) to a random access memory (RAM), and

executing the relocated program module from the RAM at the entry point memory address.

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

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

12. The computer system of claim 8 , wherein the application comprises EFI-compatible firmware.

13. The computer system of claim 8 , wherein the HOB comprises a globally unique identifier (GUID) extension HOB.

14. A computer system comprising:

a processor;

a memory coupled to the processor; and

a firmware which executes in the processor from the memory and, when executed by the processor, causes the computer system to

execute in a pre-extensible firmware interface initialization (PEI) phase and a driver execution environment (DXE) phase,

during the DXE phase, retrieve an entry point memory address for a program module that should be executed during both the PEI phase and the DXE phase, wherein the entry point memory address is stored in a hand-off block (HOB) created by the program module during its execution in the PEI phase, and wherein the HOB further comprises data indicating that the program module should be executed in both the PEI phase and the DXE phase, and

execute the program module from the entry point memory address during the DXE phase.

15. The computer system of claim 14 , wherein the firmware further causes the computer system 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 the ROM, relocate the program module to a random access memory (RAM) for execution.

16. The computer system of claim 15 , 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.

17. The computer system of claim 16 , wherein the program module further comprises a second entry point memory address utilized for executing the program module in the PEI.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Oct 23, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069229/0834 →
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 Mar 11, 2010
From: POLYUDOV, FELIKS
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 024067/0775 →