Jump to content

Simple Firmware Interface

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Cydebot (talk | contribs) at 09:13, 17 March 2011 (Robot - Speedily moving category Intel to Category:Intel Corporation per CFDS.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Simple Firmware Interface (SFI) is developed by Intel Corporation as a lightweight method for firmware to export static tables to the operating system. It is supported by Intel's hand-held Moorestown platform.

SFI tables are data structures in memory. All SFI tables share a common table header format.

SFI support was merged into Linux kernel 2.6.32-rc1.[1] The core SFI patch is about 1,000 lines of code. Linux is the first operating system with an SFI implementation.

SFI provide access to a standard ACPI XSDT (Extended System Description Table). XSDT is used by SFI to prevent namespace collision between SPI and ACPI. It can access standard ACPI tables such as PCI Memory Configuration Table (MCFG).

The operating system finds the system table by searching 16 byte boundaries between physical address 0x000E0000 and 0x000FFFFF.

SFI have CPU, APIC, Memory Map, Idle, Frequency, M-Timer, M-RTC, OEMx, Wake Vector, I2C Device, and SPI Device table.

SFI Common Table Format
Offset Length Field
0 4 Signature
4 4 Length
8 1 Revision (always 1)
9 1 Checksum
10 6 OEM ID
16 8 OEM Table ID
24 var. Table Payload

References