IP Library Granted Patent US 10,430,201
Granted Patent B1
US 10,430,201 · App. 15/496,809 · Granted Oct 1, 2019

Multi-platform firmware support

Inventors: Sergiy Yakovlev (Duluth, GA); Oleksiy Yakovlev (Lawrenceville, GA)
Assignee: American Megatrends International, LLC
G06F9/441G06F9/4411G06F1/32
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,430,201
App. No.
15/496,809
Granted
Oct 1, 2019
Kind
B1
Abstract

A computer system accesses a multiplatform firmware image to obtain a GUID identifying a platform for the computer system. The multiplatform firmware image includes a core firmware volume and a plurality of platform-specific firmware volumes. The computer system installs a platform identifier interface including the GUID. The computer system executes files within a platform-specific firmware volume including the GUID and a file of the core firmware volume including the GUID based at least in part on dependency expressions of the executed files and the platform identifier interface.

Claims (52)

1. A computer-implemented method comprising:

accessing a multiplatform firmware image to obtain a platform globally unique identifier (GUID) identifying a particular hardware platform for a computer, wherein the multiplatform firmware image supports a plurality of hardware platforms by comprising:

a core firmware volume that includes a set of common files that are commonly usable for booting multiple different hardware platforms of the plurality of hardware platforms, and

a plurality of platform-specific firmware volumes that include sets of platform-specific files that are specific for booting individual hardware platforms of the plurality of hardware platforms;

installing a platform identifier interface including the platform GUID;

executing a particular set of platform-specific files contained in a particular platform-specific firmware volume of the plurality of platform-specific firmware volumes including the platform GUID and executing the set of common files of the core firmware volume including the platform GUID based at least in part on:

dependency expressions of at least some files contained in the particular platform-specific firmware volume and the set of common files of the core firmware volume, and

the platform identifier interface.

2. The computer-implemented method of claim 1 wherein the method is performed during a pre-Extensible Firmware Interface (PEI) initialization phase of a boot sequence of the computer.

3. The computer-implemented method of claim 2 wherein the platform identifier interface comprises a pre-Extensible Firmware Interface module (PEIM) to PEIM interface.

4. The computer-implemented method of claim 2 wherein the core firmware volume and the plurality of platform-specific firmware volumes are uncompressed.

5. The computer-implemented method of claim 2 further comprising creating a hand-off block (HOB) including the platform GUID.

6. The computer-implemented method of claim 5 further comprising accessing the HOB during a driver execution environment (DXE) phase of the boot sequence of the computer.

7. The computer-implemented method of claim 2 wherein the multiplatform firmware image further comprises a main compressed firmware volume and a plurality of compressed platform-specific firmware volumes, and the computer-implemented method further comprises:

executing one or more drivers of the main compressed firmware volume including the platform GUID; and

executing drivers contained in one of the plurality of compressed platform-specific firmware volumes, wherein the one of the plurality of compressed platform-specific firmware volumes includes the platform GUID.

8. The computer-implemented method of claim 1 wherein the multiplatform firmware image further comprises a multiplatform driver indicating a plurality of hardware platforms corresponding to the plurality of platform-specific firmware volumes.

9. The computer-implemented method of claim 8 wherein accessing the multiplatform firmware image to obtain the platform GUID includes executing the multiplatform driver.

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

determining a platform globally unique identifier (GUID) identifying a platform for the computer;

installing a platform identifier interface including the platform GUID;

accessing a multiplatform firmware image that supports a plurality of platforms by comprising:

a core firmware volume that includes a set of common files that are commonly usable for booting multiple different ones of the plurality of platforms, and

a plurality of platform-specific firmware volumes that include sets of platform-specific files that are specific for booting individual ones of the plurality of platforms;

executing a particular set of platform-specific files contained in a particular platform-specific firmware volume including the platform GUID and a file external from the plurality of platform-specific firmware volumes including the platform GUID based at least in part on:

dependency expressions of the particular set of platform-specific files contained in the particular platform-specific firmware volume and the file external from the plurality of platform-specific firmware volumes, and

the platform identifier interface.

11. The non-transitory computer-readable storage medium of claim 10 wherein the operations are performed during a pre-Extensible Firmware Interface (PEI) initialization phase of a boot sequence of the computer.

12. The non-transitory computer-readable storage medium of claim 11 wherein the platform identifier interface comprises a pre-Extensible Firmware Interface module (PEIM) to PEIM interface.

13. The non-transitory computer-readable storage medium of claim 11 wherein the plurality of platform-specific firmware volumes are uncompressed.

14. The non-transitory computer-readable storage medium of claim 11 wherein the operations further comprise creating a hand-off block (HOB) including the platform GUID.

15. The non-transitory computer-readable storage medium of claim 14 wherein the operations further comprise accessing the HOB during a driver execution environment (DXE) phase of the boot sequence of the computer.

16. The non-transitory computer-readable storage medium of claim 10 wherein the multiplatform firmware image further comprises a multiplatform driver indicating a plurality of platforms.

17. The non-transitory computer-readable storage medium of claim 16 wherein determining the platform GUID includes executing the multiplatform driver.

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

execute a multiplatform pre-Extensible Firmware Interface module (PEIM) driver during a pre-Extensible Firmware Interface (PEI) phase of a boot sequence of the computer, the multiplatform PEIM driver performing operations comprising:

accessing a multiplatform firmware image to obtain a platform globally unique identifier (GUID) identifying a platform for the computer, the multiplatform firmware image comprising:

a main uncompressed firmware volume that includes a set of common files that are commonly usable for booting multiple different ones of a plurality of platforms,

a plurality of uncompressed platform-specific firmware volumes that include sets of platform-specific files that are specific for booting individual ones of the plurality of platforms,

a main compressed firmware volume, and

a plurality of compressed platform-specific firmware volumes,

installing a platform identifier interface including the GUID,

executing one or more PEIMs of the main uncompressed firmware volume wherein the one or more PEIMs of the main uncompressed firmware volume include the platform GUID,

executing PEIMs contained in one of the plurality of uncompressed platform-specific firmware volumes wherein the one of the plurality of uncompressed platform-specific firmware volumes include the platform GUID, and

creating a hand-off block (HOB) including the platform GUID; and

execute a multiplatform driver execution environment (DXE) driver during a DXE phase of a boot sequence, the multiplatform DXE driver performing operations comprising:

accessing the HOB created by the multiplatform PEIM driver to identify the platform GUID,

identifying one of the plurality of compressed platform-specific firmware volumes including the platform GUID,

executing one or more drivers of the main compressed firmware volume, wherein the one or more drivers of the main compressed firmware volume including the platform GUID, and

executing drivers contained in one of the plurality of compressed platform-specific firmware volumes, wherein the one of the plurality of compressed platform-specific firmware volumes includes the platform GUID.

19. The non-transitory computer-readable storage medium of claim 18 wherein the multiplatform firmware image further comprises a multiplatform driver indicating a plurality of platforms.

20. The non-transitory computer-readable storage medium of claim 19 wherein accessing the multiplatform firmware image to obtain the platform GUID includes executing the multiplatform driver.

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 Aug 23, 2017
From: YAKLOVEV, OLEKSIY; YAKLOVEV, SERGIY
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 043375/0309 →