IP Library Granted Patent US 8,726,258
Granted Patent B2
US 8,726,258 · App. 13/086,853 · Granted May 13, 2014

Supporting multiple hardware components in UEFI

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,726,258
App. No.
13/086,853
Granted
May 13, 2014
Kind
B2
Abstract

Approaches for customizing a unified extensible firmware interface (UEFI) compatible firmware component to support multiple hardware components. The UEFI compatible firmware component may be implemented by linking one or more executive drivers created in an executive module of the firmware component. The executive drivers, instead of platform drivers, are executed by UEFI dispatchers. The platform module, rather than being a collection of drivers, functions as a platform library that links to the executive drivers. One or more programs for providing one or more library functions to the one or more executive drivers are also linked into the firmware component. Call outs to board library functions provided by a board module are implemented in the executive drivers, instead of drivers of the platform module. The board library functions replace the one or more library functions provided to the executive drivers and reflect a change in a customer reference board (CRB).

Claims (38)

1. A method for customizing a Unified Extensible Firmware Interface (UEFI) compatible firmware component, the method comprising:

executing, by a processor, a sequence of instructions to build the firmware component by:

linking one or more executive drivers into the firmware component, wherein the one or more executive drivers are loaded and started by one or more UEFI dispatchers;

wherein the firmware component includes a driver for a silicon component in the CRB;

linking a silicon module including at least one UEFI compatible program for driving the silicon component;

linking, to the one or more executive drivers, a platform module comprising one or more library functions, wherein the platform module is called by the one or more executive drivers and contains default library functions for a plurality of Customer Reference Boards (CRBs); and

linking a board module into the firmware component, the board module providing a board library function to replace at least one of the library functions, and wherein the board library function reflects a change in a Customer Reference Board (CRB),

wherein the one or more executive drivers first call a particular board library function of the board module and upon the one or more executive drivers determining that the particular board library function is not implemented, the one or more executive drivers call the particular board library function provided by the platform module.

2. The method of claim 1 , wherein the platform module includes at least one UEFI compatible program for providing platform services to programs in the silicon module.

3. The method of claim 2 , wherein providing platform services comprises providing a Pre-EFI module to Pre-EFI module Interface (PPI), and wherein programs in the silicon module use the PPI.

4. The method of claim 2 , wherein providing platform services comprises providing a Driver Execution Environment (DXE) interface, and wherein programs in the silicon module use the DXE interface.

5. The method of claim 1 , wherein providing the board library function comprises providing a Driver Execution Environment (DXE) interface.

6. The method of claim 1 , wherein the one or more executive drivers comprise executive platform drivers, which are linked as a portion of an executive module including UEFI compatible programs for calling the one or more library functions that include executive board library functions and executive platform library functions.

7. The method of claim 1 , wherein programs in the board module are modified according to the changes in the CRB.

8. An apparatus comprising:

one or more processors;

a Customer Reference Board (CRB) including a silicon component; and

memory having instructions encoded therein, the instructions when executed by the one or more processors cause the processor to:

build a Unified Extensible Firmware Interface (UEFI) compatible firmware component by

linking one or more executive drivers into the firmware component, wherein the one or more executive drivers are loaded and started by one or more UEFI dispatchers;

wherein the firmware component includes a driver for the silicon component in the CRB;

linking a silicon module including at least one UEFI compatible program for driving the silicon component;

linking, to the one or more executive drivers, a platform module comprising one or more library functions, wherein the platform module is called by the one or more executive drivers and contains default library functions for a plurality of Customer Reference Boards (CRBs); and

linking a board module into the firmware component, the board module providing a board library function to replace at least one of the library functions, and wherein the board library function reflects a change in the CRB,

wherein the one or more executive drivers first call a particular board library function of the board module and upon the one or more executive drivers determining that the particular board library function is not implemented, the one or more executive drivers call the particular board library function provided by the platform module.

9. The apparatus of claim 8 , wherein the one or more executive drivers comprise executive platform drivers, which are linked as a portion of an executive module including UEFI compatible programs for providing executive board library functions and executive platform library functions.

10. The apparatus of claim 8 , wherein programs in the board module are modified according to the changes in the CRB.

11. A non-transitory computer-readable medium having instructions encoded therein, the instructions when executed by one or more processors perform a method comprising:

building a Unified Extensible Firmware Interface (UEFI) compatible firmware component including:

linking one or more executive drivers into the firmware component, wherein the one or more executive drivers are loaded and started by one or more UEFI dispatchers;

wherein the firmware component includes a driver for a silicon component in the CRB;

linking a silicon module including at least one UEFI compatible program for driving the silicon component;

linking, to the one or more executive drivers, a platform module comprising one or more library functions, wherein the platform module is called by the one or more executive drivers and contains default library functions for a plurality of Customer Reference Boards (CRBs); and

linking a board module into the firmware component, the board module providing a board library function to replace at least one of the library functions, and wherein the board library function reflects a change in a Customer Reference Board (CRB),

wherein the one or more executive drivers first call a particular board library function of the board module and upon the one or more executive drivers determining that the particular board library function is not implemented, the one or more executive drivers call the particular board library function provided by the platform module.

12. The non-transitory computer-readable medium of claim 11 , wherein the platform module includes at least one UEFI compatible program for providing platform services to programs in the silicon module.

13. The non-transitory computer-readable medium of claim 12 , wherein providing platform services comprises providing a Pre-EFI module to Pre-EFI module Interface (PPI), and wherein programs in the silicon module use the PPI.

14. The non-transitory computer-readable medium of claim 11 , wherein the one or more executive drivers comprise executive platform drivers, which are linked as a portion of an executive module including UEFI compatible programs for calling the one or more library functions that include executive board library functions and executive platform library functions, and wherein programs in the board module are modified according to the changes in the CRB.

Assignments (6)
CHANGE OF NAME Recorded Aug 17, 2021
From: SANTERA EMEA LTD.
To: PHOENIX TECHNOLOGIES EMEA LIMITED
Reel/Frame 057199/0594 →
RELEASE OF SECURITY INTEREST Recorded Jan 12, 2021
From: CERBERUS BUSINESS FINANCE, LLC
To: PHOENIX TECHNOLOGIES, LTD.
Reel/Frame 054891/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: PHOENIX TECHNOLOGIES LTD.
To: SANTERA EMEA LTD.
Reel/Frame 054893/0734 →
CHANGE OF ADDRESS Recorded Jun 20, 2019
From: PHOENIX TECHNOLOGIES LTD.
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 051790/0789 →
IP SECURITY AGREEMENT - PATENTS Recorded Sep 30, 2013
From: PHOENIX TECHNOLOGIES LTD.
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 031315/0700 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2011
From: MORTENSEN, JAMES L.
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 026128/0157 →