IP Library Granted Patent US 8,370,618
Granted Patent B1
US 8,370,618 · App. 12/816,768 · Granted Feb 5, 2013

Multiple platform support in computer system firmware

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 8,370,618
App. No.
12/816,768
Granted
Feb 5, 2013
Kind
B1
Abstract

Technologies are provided herein for multiple platform support in a computer system firmware. A firmware is built for each hardware platform to be supported. At built time of the firmware for each platform to be supported, an instance of platform specific information is extracted from the built firmware and stored. Once the platform specific information instances have been collected for each platform to be supported, the platform specific information instances are stored in a multi-platform firmware. At run-time of the multi-platform firmware, the particular hardware platform that the multi-platform firmware is executing upon is identified. Once the platform has been identified, the particular instance of platform specific information corresponding to the identified platform is selected. The selected instance of platform specific information is then loaded and exposed for consumption by other programs.

Claims (32)

1. A computer-implemented method for supporting a plurality of computing system platforms in a computer system firmware, the method comprising performing computer-implemented operations for:

executing the computer system firmware on a computer system, the computer system comprising one of a plurality of possible platforms;

identifying by way of the computer system firmware the platform of the computer system, comprising identifying the platform of the computer system by examining a platform identifier (ID), globally unique identifier (GUID), and a platform ID pre-extensible firmware interface module (PEIM);

selecting by way of the computer system firmware an instance of platform specific information for the identified platform from a plurality of instances of platform specific information stored in the firmware; and

exposing by way of the computer firmware system firmware the selected instance of platform specific information for consumption by one or more programs.

2. The computer-implemented method of claim 1 , wherein the platform specific information comprises Peripheral Component Interconnect (PCI) routing information for a programmable interrupt controller (PIC).

3. The computer-implemented method of claim 2 , wherein the PCI routing information for the PIC comprises a $PIR table.

4. The computer-implemented method of claim 1 , wherein the platform specific information comprises interrupt request (IRQ) routing information for a advanced programmable interrupt controller (APIC).

5. The computer-implemented method of claim 1 , wherein the platform specific information comprises advanced configuration and power interface (ACPI)_PRT method content for a PIC and an APIC.

6. The computer-implemented method of claim 1 , wherein the platform specific information comprises an ACPI namespace table.

7. The computer-implemented method of claim 6 , wherein the ACPI namespace table comprises a differentiated system description table (DSDT).

8. The computer-implemented method of claim 1 , wherein the platform specific information comprises built time to run time bus translation information.

9. The computer-implemented method of claim 1 , wherein the platform specific information comprises data identifying one or more input/output (I/O) APIC devices present in the computer system.

10. The computer-implemented method of claim 1 , wherein the platform specific information comprises data identifying one or more hot pluggable slots and parenting bridges in the computer system.

11. A computer system comprising:

a central processing unit (CPU); and

a non-volatile memory connected to the CPU having stored therein a plurality of instances of platform specific information and a firmware executable by the CPU, the firmware configured when executed to

identify the platform of the computer system from a plurality of possible platforms, comprising identifying the platform of the computer system by examining a platform identifier (ID), globally unique identifier (GUID), and a platform ID pre-extensible firmware interface module (PEIM),

select an instance of platform specific information for the identified platform from the plurality of instances of platform specific information stored in the firmware, and

cause the selected instance of platform specific information to be exposed for consumption by one or more programs.

12. The computer system of claim 11 , wherein the platform specific information comprises Peripheral Component Interconnect (PCI) routing information for a programmable interrupt controller (PIC).

13. The computer system of claim 12 , wherein the platform specific information further comprises interrupt request (IRQ) routing information for a advanced programmable interrupt controller (APIC).

14. The computer system of claim 13 , wherein the platform specific information further comprises advanced configuration and power interface (ACPI)_PRT method content for a PIC and an APIC.

15. The computer system of claim 14 , wherein the platform specific information further comprises an ACPI namespace table.

16. The computer system of claim 15 , wherein the platform specific information further comprises built time to run time bus translation information.

17. The computer system of claim 16 , wherein the platform specific information comprises data identifying one or more input/output (I/O) APIC devices present in the computer system.

18. The computer system of claim 12 , wherein the PCI routing information for the PIC comprises a $PIR table.

19. The computer system of claim 11 , wherein the platform specific information comprises data identifying one or more hot pluggable slots and parenting bridges.

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

identify a platform of the computer system from a plurality of possible platforms by examining a platform identifier (ID), globally unique identifier (GUID), and a platform ID pre-extensible firmware interface module (PEIM);

select an instance of platform specific information for the identified platform from a plurality of instances of platform specific information stored in a non-volatile memory of the computer system; and to

cause the selected instance of platform specific information to be exposed for consumption by one or more programs.

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/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 Jun 16, 2010
From: YAKOVLEV, SERGIY B.
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 024548/0075 →