IP Library Granted Patent US 9,110,744
Granted Patent B2
US 9,110,744 · App. 13/224,662 · Granted Aug 18, 2015

Secure application firmware environment for X86 and non-X86 processors

Inventor: Timothy A. Lewis (El Dorado Hills, CA)
Assignee: Phoenix Technologies Ltd.
G06F9/545G06F9/4411G06F9/455
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 9,110,744
App. No.
13/224,662
Granted
Aug 18, 2015
Kind
B2
Abstract

Techniques for firmware providing a simulated system management mode (SMM) while being executed by a non-x86 platform, such as an ARM platform. In response to receiving a service call from an OS interface driver, the firmware may determine a requested service identified by the service call. Thereafter, the firmware may identify an appropriate service handler to perform the requested service. After the appropriate service handler performs the requested service, the appropriate service handler notifies the OS interface driver. Since the SMM is emulated by the firmware, the firmware may execute on an x86 platform or a non-x86 platform, such as an ARM platform.

Claims (31)

1. A method for providing firmware services, comprising:

firmware providing a simulated system management mode (SMM) while being executed by two or more physical ARM processors by performing:

in response to receiving a service call from an OS interface driver, determining a requested service identified by the service call,

wherein the service call contains an attribute used to determine whether all but one physical processing core should be suspended when processing the service call;

the OS interface driver suspends all but one processing physical core when issuing the service call, wherein one or more physical processing cores are suspended by the OS interface driver;

identifying an appropriate service handler to perform the requested service;

after the appropriate service handler performs the requested service, the appropriate service handler notifying the OS interface driver; and

in response to the OS interface driver receiving the notification, the OS interface driver releasing any suspended physical processing cores, wherein said any suspended physical processing cores includes at least one physical processing core.

2. The method of claim 1 , wherein determining is performed by a SAFE dispatcher using a unique identifier associated with the service call.

3. The method of claim 1 , wherein identifying is performed by a SAFE dispatcher, and wherein the appropriate service handler is selected by the SAFE dispatcher from a plurality of service handlers registered with the SAFE dispatcher.

4. The method of claim 1 , wherein the OS interface driver makes the service call using an entry point address exposed by an ACPI table.

5. The method of claim 1 , wherein the OS interface driver issues the service call in response to a communication received from an OS application.

6. The method of claim 1 , wherein the OS interface driver issues the service call in response to a communication received from an OS system event dispatcher.

7. The method of claim 1 , wherein the service call involves a timer managed by the OS interface driver.

8. The method of claim 1 , wherein the service call involves a transition to a different sleep state.

9. The method of claim 1 , wherein source code for the firmware is capable of executing on an x86 platform without modification.

10. The method of claim 1 , wherein the one or more processors are each a ARM7 processor, and wherein the simulated system management mode (SMM) operates as a client of a monitor component that manages a TrustZone environment provided by the one or more processors.

11. The method of claim 1 , wherein the one or more processors are each a ARM7 processor, and wherein the simulated system management mode (SMM) operates as a monitor component that manages a TrustZone environment provided by the one or more processors.

12. A non-transitory machine-readable storage medium storing one or more sequences of instructions, which when executed by one or more processors, causes:

firmware providing a simulated system management mode (SMM) while being executed by two or more physical ARM processors by performing:

in response to receiving a service call from an OS interface driver, determining a requested service identified by the service call,

wherein the service call contains an attribute used to determine whether all but one physical processing core should be suspended when processing the service call;

the OS interface driver suspending all but one processing physical core when issuing the service call, wherein one or more physical processing cores are suspended by the OS interface driver;

identifying an appropriate service handler to perform the requested service;

after the appropriate service handler performs the requested service, the appropriate service handler notifying the OS interface driver; and

in response to the OS interface driver receiving the notification, the OS interface driver releasing any suspended physical processing cores, wherein said any suspended physical processing cores includes at least one physical processing core.

13. The non-transitory machine-readable storage medium of claim 12 , wherein identifying is performed by a SAFE dispatcher, and wherein the appropriate service handler is selected by the SAFE dispatcher from a plurality of service handlers registered with the SAFE dispatcher.

14. The non-transitory machine-readable storage medium of claim 12 , wherein the OS interface driver makes the service call using an entry point address exposed by an ACPI table.

15. The non-transitory machine-readable storage medium of claim 12 , wherein the OS interface driver issues the service call in response to a communication received from an OS application.

16. The non-transitory machine-readable storage medium of claim 12 , wherein the OS interface driver issues the service call in response to a communication received from an OS system event dispatcher.

17. The non-transitory machine-readable storage medium of claim 12 , wherein source code for the firmware is capable of executing on an x86 platform without modification.

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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ADDRESS PREVIOUSLY RECORDED ON REEL 026851 FRAME 0086. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ENTIRE INTEREST. Recorded Jun 20, 2019
From: PHOENIX TECHNOLOGIES LTD.
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 049551/0389 →
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 Sep 2, 2011
From: LEWIS, TIMOTHY A.
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 026851/0086 →
Continuity (1)
Related Publication 20130061242A1 · Mar 7, 2013