IP Library Granted Patent US 10,055,234
Granted Patent B1
US 10,055,234 · App. 15/176,895 · Granted Aug 21, 2018

Switching CPU execution path during firmware execution using a system management mode

Inventor: Srinivasan Narayana Rao (Suwanee, GA)
Assignee: American Megatrends, Inc.
G06F9/441G06F9/442G06F9/4405G06F9/4418
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 10,055,234
App. No.
15/176,895
Granted
Aug 21, 2018
Kind
B1
Abstract

A computer system firmware is provided that includes functionality for using a system management mode (SMM) to efficiently boot to a secondary operating system prior to booting to a primary operating system. The SMM is utilized to store data describing the state of the computer system at a point just prior to booting the secondary operating system. This data is used following execution of the secondary operating system to restore the system to the same state that it was in prior to executing the secondary operating system. Execution can then be continued at a location just following the location at which the secondary operating system was booted in order to execute a primary operating system.

Claims (51)

1. A computer-implemented method for using a system management mode (SMM) to modify an execution path during a boot operation to execute an application, the method comprising:

during execution of a firmware, determining whether a secondary operating system is to be executed prior to the execution of a primary operating system;

generating a first system management interrupt (SMI);

entering the SMM;

executing a save handler in the SMM to store a save state;

exiting the SMM;

causing a secondary operating system to be executed, wherein the application is executed using the secondary operating system;

responsive to the shutting down of the secondary operating system, generating a second SMI;

entering the SMM;

executing a restore handler in the SMM for loading the save state;

exiting the SMM; and

continuing execution of the firmware at a location following a location at which the first SMI was generated.

2. The computer-implemented method of claim 1 , wherein generating the first SMI comprises determining if an SMM flag is set.

3. The computer-implemented method of claim 1 , wherein the save state is stored in system management RAM.

4. The computer-implemented method of claim 1 , wherein the save state comprises a processor context.

5. The computer-implemented method of claim 4 , wherein the save state further comprises data relating to chipset registers, memory content, or interrupt controllers.

6. The computer-implemented method of claim 5 , wherein save state comprises a return address specifying a location at which execution of the firmware is to continue following the shutdown of the secondary operating system.

7. The computer-implemented method of claim 1 , wherein the application comprises an anti-virus application, a biometric or facial recognition application, a diagnostic utility, a memory partitioning utility, a recovery service, or a backup/restore service.

8. A non-transitory computer-readable storage medium having stored thereon computer-executable instructions which, when executed by one or more processors, cause a computer to:

during execution of a computer system firmware, determine whether a secondary operating system is to be executed prior to the execution of a primary operating system;

responsive to determining that the secondary operating system is to be executed, generate a first SMI to cause the one or more processors to enter an SMM;

execute a save handler to store a save state while in the SMM;

exit the SMM;

boot the secondary operating system;

execute an application in the secondary operating system;

responsive to the shutting down of the secondary operating system, generate a second SMI to cause the one or more processors to enter the SMM;

execute a resume handler to load the save state; and

upon exiting the SMM, continue execution of the computer system firmware at a location following a location of a firmware initialization routine at which the first SMI was generated.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the computer-executable instruction to determine whether the secondary operating system is to be executed prior to the execution of the primary operating system comprises computer-execute instructions to determine if an SMM flag is set during the firmware initialization routine.

10. The non-transitory computer-readable storage medium of claim 8 , wherein herein the save state is stored in system management RAM.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the save state comprises a processor context.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the save state further comprises data relating to chipset registers, or interrupt controllers.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the save state further comprises the location at which the computer system firmware is to resume execution following the shutdown of the secondary operating system.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the application comprises an anti-virus application, a biometric or facial recognition application, a diagnostic utility, a memory partitioning utility, a recovery service, or a backup/restore service.

15. An apparatus comprising:

a central processing unit (CPU) configured to provide a system management mode (SMM); and

a memory device in communication with the CPU, the memory device having computer-executable instructions stored therein, which when executed by the CPU;

during execution of a computer system firmware, determine whether a secondary operating system is to be executed prior to the execution of a primary operating system;

responsive to determining that the secondary operating system is to be executed, generate a first SMI to cause the one or more processors to enter an SMM;

execute a save handler to store a save state while in the SMM;

exit the SMM;

boot the secondary operating system;

execute an application in the secondary operating system;

responsive to the shutting down of the secondary operating system, generate a second SMI to cause the one or more processors to enter the SMM;

execute a resume handler to load the save state; and

upon exiting the SMM, continue execution of the computer system firmware at a location following a location of a firmware initialization routine at which the first SMI was generated.

16. The apparatus of claim 15 , wherein the computer-executable instruction to determine whether the secondary operating system is to be executed prior to the execution of the primary operating system comprises computer-execute instructions to determine if an SMM flag is set during the firmware initialization routine.

17. The apparatus of claim 15 , wherein the save state is stored in system management RAM.

18. The apparatus of claim 17 , wherein the save state comprises data relating to a processor context.

19. The apparatus of claim 18 , wherein the save state further comprises data relating to at least one of chipset registers, interrupt controllers, or information relating to the execution of the firmware initialization routine.

20. The apparatus of claim 19 , wherein the preboot application comprises at least one of an anti-virus application, a biometric or facial recognition application, a diagnostic utility, a memory partitioning utility, a recovery service, or a backup/restore service.

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 Jun 22, 2016
From: RAO, SRINIVASAN NARAYANA
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 038987/0511 →
Cited By (1)
US 12,293,092