IP Library Granted Patent US 10,402,454
Granted Patent B1
US 10,402,454 · App. 15/041,595 · Granted Sep 3, 2019

Obtaining platform-specific information in a firmware execution environment

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,402,454
App. No.
15/041,595
Granted
Sep 3, 2019
Kind
B1
Abstract

Technologies are described herein for obtaining platform-specific information in a firmware execution environment. A platform-to-driver configuration protocol executes within the firmware execution environment. The platform-to-driver configuration protocol receives a request for platform-specific information from a firmware driver that is also executing in conjunction with the firmware execution environment. The platform-to-driver configuration protocol discovers one or more platform-to-driver agents also executing in the firmware execution environment. The platform-to-driver configuration protocol then queries at least a portion of the platform-to-driver agents to identify one of the platform-to-driver agents as a provider of the requested platform-specific information. A communications session can then be established between the requesting firmware driver and the platform-to-driver agent identified as the provider of the requested platform-specific information. The requested platform-specific information is then obtained from the appropriate platform-to-driver agent and provided to the firmware driver that requested the platform-specific information.

Claims (37)

1. A computer-implemented method for obtaining platform-specific information in a firmware execution environment, comprising:

receiving a request for the platform-specific information from a firmware driver executing in the firmware execution environment;

discovering one or more platform-to-driver agents executing in the firmware execution environment, wherein the one or more platform-to-driver agents comprise unified extensible firmware interface (UEFI) compatible protocols;

querying at least a portion of the one or more platform-to-driver agents to identify one of the platform-to-driver agents as a provider of the requested platform-specific information;

obtaining the platform-specific information from the one of the platform-to-driver agents identified as a provider of the requested platform-specific information; and

providing the platform-specific information to the firmware driver.

2. The method of claim 1 , wherein the firmware execution environment is provided by a unified extensible firmware interface (UEFI) compatible firmware.

3. The method of claim 1 , wherein the firmware driver comprises a unified extensible firmware interface (UEFI) compatible firmware driver.

4. The method of claim 1 , further comprising establishing a communications session between the firmware driver and the one of the platform-to-driver agents identified as the provider of the requested platform-specific information.

5. The method of claim 1 , further comprising exposing a unified extensible firmware interface (UEFI) compatible interface to the firmware driver for receiving the request for the platform-specific information.

6. The method of claim 1 , wherein the platform-specific information comprises information that is specific to a hardware platform that provides the firmware execution environment.

7. The method of claim 1 , wherein discovering the one or more platform-to-driver agents comprises using a UEFI-specific protocol discovery mechanism provided by UEFI Boot Services.

8. The method of claim 1 , wherein the request for the platform-specific information comprises at least one of a controller handle or a child handle passed from the firmware driver.

9. The method of claim 8 , wherein the querying at least a portion of the one or more platform-to-driver agents comprises generating a query that includes at least one of the controller handle or the child handle.

10. 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 for platform-specific information from a firmware driver executing in a firmware execution environment, wherein the firmware execution environment comprises a driver execution environment (DXE);

identify one or more platform-to-driver agents executing in the firmware execution environment;

query at least one of the one or more platform-to-driver agents to identify one of the platform-to-driver agents as a provider of the requested platform-specific information;

obtain the platform-specific information from the one of the platform-to-driver agents identified as a provider of the requested platform-specific information; and

provide the platform-specific information to the firmware driver.

11. The computer-readable storage medium of claim 10 , wherein the firmware execution environment is provided by a unified extensible firmware interface (UEFI) compatible firmware and the firmware driver comprises a unified extensible firmware interface (UEFI) compatible compliant firmware driver.

12. The computer-readable storage medium of claim 10 , having further computer-executable instructions stored thereupon to establish a communications session between the firmware driver and the one of the platform-to-driver agents identified as the provider of the requested platform-specific information.

13. The computer-readable storage medium of claim 10 , having further computer-executable instructions stored thereupon to expose a unified extensible firmware interface (UEFI) compatible interface to the firmware driver for receiving the request for the platform-specific information.

14. The computer-readable storage medium of claim 10 , wherein the one or more platform-to-driver agents comprise unified extensible firmware interface (UEFI) compatible protocols.

15. The computer-readable storage medium of claim 10 , wherein the platform-specific information comprises information that is specific to the computer.

16. An apparatus comprising:

a central processing unit (CPU); and

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

receive a request for platform-specific information from a firmware driver executing in conjunction with the UEFI-compliant firmware,

identify a plurality of platform-to-driver agents executing in conjunction with the UEFI-compliant firmware, the platform-to-driver agents implemented as UEFI-compatible protocols,

query at least two of the plurality of platform-to-driver agents to identify one of the platform-to-driver agents as a provider of the requested platform-specific information,

obtain the platform-specific information from the one of the platform-to-driver agents identified as the provider of the requested platform-specific information, and

provide the platform-specific information to the firmware driver.

17. The apparatus of claim 16 , wherein the firmware driver comprises a unified extensible firmware interface (UEFI) compliant firmware driver and the platform-to-driver agents comprise unified extensible firmware interface (UEFI) compatible protocols.

18. The apparatus of claim 16 , wherein the non-volatile memory stores further computer-executable instructions to establish a communications session between the firmware driver and the one of the platform-to-driver agents identified as the provider of the requested platform-specific information.

19. The apparatus of claim 16 , wherein the non-volatile memory stores further computer-executable instructions to expose a unified extensible firmware interface (UEFI) compatible interface to the firmware driver for receiving the request for the platform-specific information.

20. The apparatus of claim 16 , wherein the platform-specific information comprises a media access control (MAC) address of a network adapter.

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 Feb 11, 2016
From: SHCHYGEL, ARTEM
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 037717/0483 →