Simple Firmware Interface
Boot firmware for Intel Moorestown platform
| Offset | Length | Field |
|---|---|---|
| 0 | 4 | Signature |
| 4 | 4 | Length |
| 8 | 1 | Revision |
| 9 | 1 | Checksum |
| 10 | 6 | OEM ID |
| 16 | 8 | OEM Table ID |
| 24 | var. | Table Payload |
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, and all SFI tables share a common table header format. The operating system finds the system table by searching 16 byte boundaries between physical address 0x000E0000 and 0x000FFFFF. SFI has CPU, APIC, Memory Map, Idle, Frequency, M-Timer, M-RTC, OEMx, Wake Vector, I²C Device, and a SPI Device table.
SFI provides 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).
SFI support was merged into Linux kernel 2.6.32-rc1; the core SFI patch is about 1,000 lines of code. Linux is the first operating system with an SFI implementation. Linux kernel 5.6 marked SFI as obsolete.
SFI support was removed in Linux kernel 5.12.
Sources and credits
This article is adapted from the Wikipedia article “Simple Firmware Interface”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.