IP Library Granted Patent US 11,106,457
Granted Patent B1
US 11,106,457 · App. 16/933,331 · Granted Aug 31, 2021

Updating firmware runtime components

Inventors: Senthamizhsey Subramanian (Suwanee, GA); Srinivasan N. Rao (Suwanee, GA); Feliks Polyudov (Suwanee, GA); Bejean David Mosher (Acworth, GA)
Assignee: AMERICAN MEGATRENDS INTERNATIONAL, LLC
G06F8/656G06F9/44594G06F9/4401
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 11,106,457
App. No.
16/933,331
Granted
Aug 31, 2021
Kind
B1
Abstract

A computing device includes a processor, a volatile memory, and a non-volatile memory. The computing device receives a firmware update that includes updated firmware runtime components, such as updated runtime interrupt handlers (e.g. SMI handlers). The computing device stores the updated firmware runtime components in the volatile memory (e.g. RAM) of the device. The computing device also causes the updated firmware runtime components stored in the volatile memory to be used during the runtime of the computing device instead of one or more other firmware runtime components previously stored in the volatile memory. For example, the contents of one or more interrupt routing tables can be adjusted such that updated runtime interrupt handlers stored in volatile memory are used instead of previously installed and potentially insecure runtime interrupt handlers. On a subsequent reboot of the computing device, updated firmware runtime components stored in the non-volatile memory will be utilized.

Claims (35)

1. A computing device, comprising:

one or more processors;

a volatile memory; and

a non-volatile memory having computer-executable instructions stored therein which, when executed by the one or more processors, cause the computing device to:

receive a firmware update during a runtime of the computing device, the firmware update comprising one or more updated runtime interrupt handlers,

store the firmware update in the non-volatile memory,

store the one or more updated runtime interrupt handlers in the volatile memory, and

cause the one or more updated runtime interrupt handlers stored in the volatile memory to be used during the runtime of the computing device instead of one or more other runtime interrupt handlers previously stored in the volatile memory.

2. The computing device of claim 1 , wherein the non-volatile memory has further computer-executable instructions stored therein to unload the one or more other runtime interrupt handlers previously stored in the volatile memory.

3. The computing device of claim 1 , wherein the one or more updated runtime interrupt handlers and the one or more other runtime interrupt handlers previously stored in the volatile memory comprise system management interrupt (SMI) handlers.

4. The computing device of claim 1 , wherein the computing device is configured to execute the firmware update from the non-volatile memory following a reboot of the computing device.

5. The computing device of claim 1 , wherein the volatile memory stores an operating system and a runtime update application configured execute on the operating system and to retrieve the firmware update from an update server.

6. The computing device of claim 5 , wherein the volatile memory stores a runtime update listener configured to receive the firmware update from the runtime update application.

7. The computing device of claim 6 , wherein the runtime update listener is further configured to store the one or more updated runtime interrupt handlers in the volatile memory and to cause the one or more updated runtime interrupt handlers stored in the volatile memory to be used during the runtime of the computing device instead of one or more other runtime interrupt handlers previously stored in the volatile memory.

8. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computing device, cause the computing device to:

receive a firmware update during a runtime of the computing device, the firmware update comprising one or more updated runtime interrupt handlers;

store the firmware update in a non-volatile memory;

store the one or more updated runtime interrupt handlers in a volatile memory; and

cause the one or more updated runtime interrupt handlers stored in the volatile memory to be used during the runtime of the computing device instead of one or more other runtime interrupt handlers previously stored in the volatile memory.

9. The non-transitory computer-readable storage medium of claim 8 , having further computer-executable instructions stored therein to unload the one or more other runtime interrupt handlers previously stored in the volatile memory.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the one or more updated runtime interrupt handlers and the one or more other runtime interrupt handlers previously stored in the volatile memory comprise system management interrupt (SMI) handlers.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the computing device is configured to execute the firmware update from the non-volatile memory following a reboot of the computing device.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the volatile memory stores an operating system and a runtime update application configured execute on the operating system and to retrieve the firmware update from an update server.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the volatile memory further stores a runtime update listener configured to receive the firmware update from the runtime update application.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the runtime update listener is further configured to store the one or more updated runtime interrupt handlers in the volatile memory and to cause the one or more updated runtime interrupt handlers stored in the volatile memory to be used during the runtime of the computing device instead of one or more other runtime interrupt handlers previously stored in the volatile memory.

15. A computer-implemented method performed by a computing device, the method comprising:

receiving a firmware update during a runtime of the computing device, the firmware update comprising one or more updated runtime interrupt handlers;

storing the firmware update in a non-volatile memory of the computing device;

storing the one or more updated runtime interrupt handlers in a volatile memory of the computing device; and

causing the one or more updated runtime interrupt handlers stored in the volatile memory to be used during the runtime of the computing device instead of one or more other runtime interrupt handlers previously stored in the volatile memory.

16. The computer-implemented method of claim 15 , further comprising unloading the one or more other runtime interrupt handlers previously stored in the volatile memory.

17. The computer-implemented method of claim 15 , wherein the one or more updated runtime interrupt handlers and the one or more other runtime interrupt handlers previously stored in the volatile memory comprise system management interrupt (SMI) handlers.

18. The computer-implemented method of claim 15 , wherein the computing device is configured to execute the firmware update from the non-volatile memory following a reboot of the computing device.

19. The computer-implemented method of claim 15 , wherein the volatile memory stores an operating system and a runtime update application configured execute on the operating system and to retrieve the firmware update from an update server.

20. The computer-implemented method of claim 19 , wherein the volatile memory further stores a runtime update listener configured to receive the firmware update from the runtime update application, store the one or more updated runtime interrupt handlers in the volatile memory, and cause the one or more updated runtime interrupt handlers stored in the volatile memory to be used during the runtime of the computing device instead of one or more other runtime interrupt handlers previously stored in the volatile memory.

Assignments (4)
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/0948 →
SECURITY INTEREST Recorded Apr 30, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 067274/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: SUBRAMANIAN, SENTHAMIZHSEY; RAO, SRINIVASAN N.; POLYUDOV, FELIKS; MOSHER, BEJEAN DAVID
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053254/0025 →