IP Library Granted Patent US 11,372,653
Granted Patent B1
US 11,372,653 · App. 16/778,385 · Granted Jun 28, 2022

Runtime access to firmware platform configuration data

Inventors: Madhan B. Santharam (Duluth, GA); Stefano Righi (Lawrenceville, GA)
Assignee: AMERICAN MEGATRENDS INTERNATIONAL, LLC
G06F9/4411G06F9/44505G06F9/44578G06F9/547
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,372,653
App. No.
16/778,385
Granted
Jun 28, 2022
Kind
B1
Abstract

During boot time of a computing system, a human-readable lookup table is utilized to generate a binary lookup table. At runtime, a hook to a function for reading or setting a firmware variable receives a request in a custom format or a standard format. If the request is in the custom format, the hook locates a mapping identifier (ID) associated with a setup question value to be read or set and a performs a lookup operation in the binary lookup table for the mapping ID. The hook retrieves the offset and bit width associated with the setup question value to be read or set from the binary lookup table. The hook then performs the requested get or set operation using the offset and width for the value and a conventional firmware function for getting or setting a firmware variable.

Claims (52)

1. A computing device, comprising:

one or more processors; and

at least one non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the one or more processors, cause the computing device to:

receive a request, by way of a firmware executing on the computing device, to get or set a setup question value;

responsive to receiving the request, determine if the request is in a first format or a second format different from the first format;

responsive to determining that the request is in a first format,

identify a mapping identifier (ID) associated with the setup question value,

perform a lookup operation in a lookup table using the mapping ID to determine an offset and bit width associated with the setup question value, and

perform a firmware runtime function to get or set the setup question value using the offset and bit width associated with the setup question value; and

responsive to determining the request has a second format, perform the firmware runtime function to get or set the setup question value.

2. The computing device of claim 1 , wherein the lookup table is in a binary format, wherein the lookup table is generated from a lookup table in a human-readable format, and wherein the lookup table in the human-readable format is generated at a build time of the firmware.

3. The computing device of claim 2 , wherein the request is received from an application executing on an operating system on the computing device, and wherein the lookup table in the human-readable format is made available to the application by way of an advanced configuration and power interface (ACPI).

4. The computing device of claim 1 , wherein the request is received from an application executing on an operating system on the computing device, and wherein the request is received at a system management mode (SMM) handler executing in the firmware.

5. The computing device of claim 1 , wherein the requested is received by way of a windows management interface (WMI).

6. The computing device of claim 1 , wherein the at least one non-transitory computer-readable storage medium has further computer-executable instructions stored thereupon to:

return the setup question value in response to the request if the request comprises a request to perform a firmware runtime function to get a setup question value; or

return a status in response to the request if the request comprises a request to perform a firmware runtime function to set a setup question value.

7. The computing device of claim 1 , wherein a function hook receives the request to perform the firmware runtime function to get or set the setup question value, and wherein the function hook is configured to call a get or set function provided by the firmware to perform the firmware runtime function to get or set the setup question value.

8. The computing device of claim 7 , wherein the set function is configured to:

read a firmware variable containing the setup question value from a non-volatile memory;

modify the firmware variable at the offset with a new values for the setup question value; and

store the modified firmware variable in the non-volatile memory.

9. 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 request, by way of a firmware executing on the computing device, to perform a firmware runtime function to get or set a setup question value;

responsive to receiving the request, determine if the request is in a first format or a second format different from the first format;

responsive to determining that the request is in a first format,

identify a mapping identifier (ID) associated with the setup question value,

perform a lookup operation in a lookup table using the mapping ID to determine an offset and bit width associated with the setup question value, and

perform the firmware runtime function to get or set the setup question value using the offset and bit width associated with the setup question value; and

responsive to determining the request has a second format, perform the firmware runtime function to get or set the setup question value.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the lookup table is in a binary format, wherein the lookup table is generated from a lookup table in a human-readable format, and wherein the lookup table in the human-readable format is generated at a build time of the firmware.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the request is received from an application executing on an operating system on the computing device, and wherein the lookup table in the human-readable format is made available to the application by way of an advanced configuration and power interface (ACPI).

12. The non-transitory computer-readable storage medium of claim 9 , wherein the request is received from an application executing on an operating system on the computing device, and wherein the request is received at a system management mode (SMM) handler executing in the firmware.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the requested is received by way of a windows management interface (WMI).

14. The non-transitory computer-readable storage medium of claim 9 , having further computer-executable instructions stored thereupon to:

return the setup question value in response to the request if the request comprises a request to perform a firmware runtime function to get the setup question value; or

return a status in response to the request if the request comprises a request to perform a firmware runtime function to set the setup question value.

15. The non-transitory computer-readable storage medium of claim 9 , wherein a function hook receives the request to perform the firmware runtime function to get or set the setup question value, and wherein the function hook is configured to call a get or set function provided by the firmware to perform the firmware runtime function to get or set the setup question value.

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

receiving a request, by way of a firmware executing on the computing device, to perform a firmware runtime function to get or set a setup question value;

responsive to receiving the request, determining if the request is in a first format or a second format different from the first format;

responsive to determining that the request is in a first format,

identifying a mapping identifier (ID) associated with the setup question value,

performing a lookup operation in a lookup table using the mapping ID to determine an offset and bit width associated with the setup question value, and

performing the firmware runtime function to get or set the setup question value using the offset and bit width associated with the setup question value; and

responsive to determining the request has a second format, performing the firmware runtime function to get or set the setup question value.

17. The computer-implemented method of claim 16 , wherein the lookup table is in a binary format, wherein the lookup table is generated from a lookup table in a human-readable format, and wherein the lookup table in the human-readable format is generated at a build time of the firmware.

18. The computer-implemented method of claim 17 , wherein the request is received from an application executing on an operating system on the computing device, and wherein the lookup table in the human-readable format is made available to the application by way of an advanced configuration and power interface (ACPI).

19. The computer-implemented method of claim 16 , wherein the request is received from an application executing on an operating system on the computing device, and wherein the request is received at a system management mode (SMM) handler executing in the firmware.

20. The computer-implemented method of claim 16 , further comprising:

returning the setup question value in response to the request if the request comprises a request to perform a firmware runtime function to get a setup question value; or

returning a status in response to the request if the request comprises a request to perform a firmware runtime function to set a setup question value.

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 Jan 31, 2020
From: SANTHARAM, MADHAN B.; RIGHI, STEFANO
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 051684/0410 →