IP Library Granted Patent US 11,200,203
Granted Patent B1
US 11,200,203 · App. 16/725,983 · Granted Dec 14, 2021

Accessing files stored in a firmware volume from a pre-boot application

Inventors: Stefano Righi (Lawrenceville, GA); Madhan B. Santharam (Duluth, GA); Arun Subramanian (Duluth, GA)
Assignee: American Megatrends International, LLC
G06F16/148G06F9/4406
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,200,203
App. No.
16/725,983
Granted
Dec 14, 2021
Kind
B1
Abstract

Standard I/O library functions for accessing files stored on mass storage devices are modified to enable access to files stored in firmware volumes. An application can be compiled against the modified standard I/O library functions to generate a pre-boot application. When the pre-boot application is executed within a pre-boot execution environment, it can utilize standard I/O library functions to access files stored in a firmware volume. In response to receiving a request to open a file from a pre-boot application, the called I/O function searches a file cross-reference table to locate the filename for the file. If the filename is in the file cross-reference table, the GUID associated with the filename is retrieved from the file cross-reference table and used to obtain a file handle to the file. The file handle can then be returned to the pre-boot application and used to perform other types of operations on the file.

Claims (45)

1. A computer-implemented method for accessing a file stored in a firmware volume in a firmware device from a pre-boot execution environment, comprising:

receiving a request to open the file from a pre-boot application executing in the pre-boot execution environment, the request comprising a filename associated with the file;

responsive to the request, searching a file cross-reference table for the filename, the file cross-reference table comprising a mapping between filenames for firmware file system files stored in the firmware volume and globally unique identifiers associated with the filenames; and

responsive to determining that the filename is contained in the file cross-reference table,

retrieving a globally unique identifier associated with the filename from the file cross-reference table,

utilizing the globally unique identifier associated with the filename to obtain a file handle for the file, and

returning the file handle to the pre-boot application in response to the request, wherein the filenames for the firmware file system files stored in the firmware volume are stored in the firmware file system files, and wherein the file cross-reference table is generated by

identifying files stored in the firmware volume, and

adding the filenames and the globally unique identifiers for the files stored in the firmware volume to the cross-reference table.

2. The computer-implemented method of claim 1 , further comprising:

responsive to determining that the filename is not contained in the file cross-reference table, obtaining the file handle for the file using one or more standard input/output library functions.

3. The computer-implemented method of claim 1 , wherein the pre-boot application, the cross-reference table, and the file are stored in the firmware device.

4. The computer-implemented method of claim 1 , wherein the file cross-reference table further comprises a mapping between volume names for firmware volumes and globally unique identifiers for the firmware volumes.

5. The computer-implemented method of claim 1 , further comprising using the file handle to perform one or more file operations on the file stored in the firmware volume.

6. The computer-implemented method of claim 1 , wherein the pre-boot execution environment is provided by a unified extensible firmware interface (UEFI) compliant firmware.

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

receive a request to open a file from a pre-boot application executing in a pre-boot execution environment, the request comprising a filename associated with the file;

responsive to the request, search a file cross-reference table for the filename, the file cross-reference table comprising a mapping between filenames for firmware file system files stored in a firmware volume and globally unique identifiers associated with the filenames; and

responsive to determining that the filename is contained in the file cross-reference table,

retrieve a globally unique identifier associated with the filename from the file cross-reference table,

utilize the globally unique identifier associated with the filename to obtain a file handle for the file, and

return the file handle to the pre-boot application in response to the request, wherein the filenames for the firmware file system files stored in the firmware volume are stored in the firmware file system files, and wherein the file cross-reference table is generated by

identifying files stored in the firmware volume, and

adding the filenames and the globally unique identifiers for the files stored in the firmware volume to the cross-reference table.

8. The computer-readable storage medium of claim 7 , having further computer-executable instructions stored thereupon to obtain the file handle for the file using one or more standard input/output library functions responsive to determining that the filename is not contained in the file cross-reference table.

9. The computer-readable storage medium of claim 7 , wherein the pre-boot application, the cross-reference table, and the file are stored in a firmware device.

10. The computer-readable storage medium of claim 7 , wherein the file cross-reference table further comprises a mapping between volume names for firmware volumes and globally unique identifiers for the firmware volumes.

11. The computer-readable storage medium of claim 7 , having further computer-executable instructions stored thereupon to use the file handle to perform one or more file operations on the file stored in the firmware volume.

12. The computer-readable storage medium of claim 7 , wherein the pre-boot execution environment is provided by a unified extensible firmware interface (UEFI) compliant firmware.

13. An apparatus comprising:

a central processing unit (CPU); and

a firmware device storing a unified extensible firmware interface (UEFI)-compliant firmware which, when executed by the CPU, will cause the CPU to

receive a request to open a file from a pre-boot application executing in a pre-boot execution environment, the request comprising a filename associated with the file,

responsive to the request, search a file cross-reference table for the filename, the file cross-reference table comprising a mapping between filenames for firmware file system files stored in a firmware volume and globally unique identifiers associated with the filenames, and

responsive to determining that the filename is contained in the file cross-reference table,

retrieve a globally unique identifier associated with the filename from the file cross-reference table,

utilize the globally unique identifier associated with the filename to obtain a file handle for the file, and

return the file handle to the pre-boot application in response to the request, wherein the filenames for the firmware file system files stored in the firmware volume are stored in the firmware file system files, and wherein the file cross-reference table is generated by

identifying files stored in the firmware volume, and

adding the filenames and the globally unique identifiers for the files stored in the firmware volume to the cross-reference table.

14. The apparatus of claim 13 , wherein the firmware device has further computer-executable instructions stored thereupon to obtain the file handle for the file using one or more standard input/output library functions responsive to determining that the filename is not contained in the file cross-reference table.

15. The apparatus of claim 13 , wherein the pre-boot application, the cross-reference table, and the file are stored in the firmware device.

16. The apparatus of claim 13 , wherein the file cross-reference table further comprises a mapping between volume names for firmware volumes and globally unique identifiers for the firmware volumes.

17. The apparatus of claim 13 , wherein the firmware device has further computer-executable instructions stored thereupon to use the file handle to perform one or more file operations on the file stored in the firmware volume.

18. The apparatus of claim 13 , wherein the pre-boot execution environment is provided by the unified extensible firmware interface (UEFI) compliant firmware.

Assignments (5)
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 Dec 23, 2019
From: RIGHI, STEFANO; SANTHARAM, MADHAN B.; SUBRAMANIAN, ARUN
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 051360/0149 →
ENTITY CONVERSION Recorded Dec 23, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 051416/0605 →