IP Library Granted Patent US 11,354,109
Granted Patent B1
US 11,354,109 · App. 16/875,923 · Granted Jun 7, 2022

Firmware updates using updated firmware files in a dedicated firmware volume

Inventors: Senthamizhsey Subramanian (Suwanee, GA); Bejean David Mosher (Acworth, GA); Rodney Grant (Lithonia, GA)
Assignee: AMERICAN MEGATRENDS INTERNATIONAL, LLC
G06F8/65G06F16/1734
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,354,109
App. No.
16/875,923
Granted
Jun 7, 2022
Kind
B1
Abstract

Technologies are disclosed herein for updating a firmware file system (FFS) file by preserving the original FFS file in its current firmware volume and then storing an updated version of the original FFS file in a firmware volume for updated FFS files. The updated FFS file may be stored in the firmware volume for updated FFS files referenced to the same FFS file identifier as the original FFS file. During boot-up of a system incorporating the updated firmware, the firmware volume for updated FFS files may be accessed to determine if an updated version of any FFS files are present. If updated FFS files are present, then those updated FFS files may be executed, rather than the original FFS files.

Claims (36)

1. A computer-implemented method, comprising:

identifying, by one or more processors, a first firmware file system (FFS) file to be updated, the first FFS file stored within a first firmware volume of a firmware retained in a non-volatile memory device;

identifying, by the one or more processors, a first identifier corresponding to the first FFS file;

receiving, by the one or more processors, a second FFS file corresponding to the first FFS file, the second FFS being an updated version of the first FFS file;

storing, by the one or more processors, the second FFS file within a second firmware volume of the firmware, the second FFS file being associated with the first identifier;

identifying, by the one or more processors, the first FFS file for execution during boot-up of a computing system including the firmware;

detecting, by the one or more processors, the second FFS file stored in the second firmware volume;

determining if the second FFS file is indicated on a black list or a launch list;

responsive to determining that the second FFS file is not indicated on the black list or the launch list, adding an indication of the second FFS file to the black list and executing, by the one or more processors, the second FFS file;

determining if execution of the second FFS file was successful; and

responsive to determining that execution of the second FFS file was successful, removing the indication of the second FFS file from the black list and adding the indication of the second FFS file to the launch list.

2. The computer-implemented method of claim 1 , wherein the identifying the first FFS file to be updated comprises receiving, by the one or more processor, a message identifying the first FFS file.

3. The computer-implemented method of claim 1 , wherein the identifying the first FFS file to be updated comprises receiving, by the one or more processor, input information by means of an application program, the input information identifying the first FFS file.

4. The computer-implemented method of claim 1 , wherein the first identifier is one of a globally unique identifier (GUID) or an FFS file name.

5. The computer-implemented method of claim 1 , wherein the receiving the second FFS file comprises receiving, from a peripheral device, an upload containing the second FFS file.

6. The computer-implemented method of claim 1 , wherein the detecting comprises accessing, by the one or more processors, the second firmware volume and determining, by the one or more processor, that the second FFS file is present in the second firmware volume and is associated with the first identifier.

7. The computer-implemented method of claim 1 , further comprising responsive to determining that the second FFS file is indicated on the black list, not executing the second FFS file.

8. The computer-implemented method of claim 1 , further comprising responsive to determining that the second FFS file is indicated on the launch list, executing the second FFS file.

9. A computing device, comprising:

at least one processor configured to execute computer-executable instructions to,

identify a first firmware file system (FFS) file to be updated, the first FFS file stored within a first firmware volume of a firmware retained in a non-volatile memory device;

identify a first identifier corresponding to the first FFS file;

receive a second FFS file corresponding to the first FFS file, the second FFS being an updated version of the first FFS file;

store the second FFS file within a second firmware volume of the firmware, the second FFS file being associated with the first identifier;

identify the first FFS file for execution during boot-up of a computing system including the firmware;

detect the second FFS file stored in the second firmware volume;

determine if the second FFS file is indicated on a black list or a launch list;

responsive to determining that the second FFS file is not indicated on the black list or the launch list, add an indication of the second FFS file to the black list and execute the second FFS file;

determine if execution of the second FFS file was successful; and

responsive to determining that execution of the second FFS file was successful, remove the indication of the second FFS file from the black list and add the indication of the second FFS file to the launch list.

10. The computing device of claim 9 , wherein identifying the first FFS file to be updated comprises receiving a message identifying the first FFS file.

11. The computing device of claim 9 , wherein identifying the first FFS file to be updated comprises receiving input information by means of an application program, the input information identifying the first FFS file.

12. The computing device of claim 9 , wherein the first identifier is one of a globally unique identifier (GUID) or an FFS file name.

13. The computing device of claim 9 , wherein receiving the second FFS file comprises receiving, from a peripheral device, an upload containing the second FFS file.

14. The computing device of claim 9 , the execute computer-executable instructions further configured to: responsive to determining that the second FFS file is indicated on the black list, not execute the second FFS file.

15. The computing device of claim 9 , the execute computer-executable instructions further configured to: responsive to determining that the second FFS file is indicated on the launch list, execute the second FFS file.

Assignments (6)
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 May 15, 2020
From: MOSHER, BEJEAN DAVID; GRANT, RODNEY
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 052677/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: SUBRAMANIAN, SENTHAMIZHSEY
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 052677/0621 →
ENTITY CONVERSION Recorded May 15, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 052678/0890 →
Continuity (1)
Continuation 15718862 · Sep 28, 2017