Simple Firmware Interface

SFI Common Table Format
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;[1] 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.[2]

SFI support was removed in Linux kernel 5.12.[3]

References

  1. ^ "Upstream Linux Kernel Support". June 2009.
  2. ^ "The Linux Kernel Obsoletes The Intel Simple Firmware Interface - Phoronix". www.phoronix.com. Retrieved 2020-09-16.
  3. ^ Wysocki, Rafael. "Linux-Kernel Archive: [GIT PULL] Simple Firmware Interface (SFI) support removal for v5.12-rc1". lkml.iu.edu. LKML. Retrieved 26 February 2021.

External links

  • Brown, Len; Kamp, Kerry Vander (2010-10-19). "Simple Firmware Interface - Draft 0.8.2" (PDF). Archived from the original (PDF) on 2016-03-04.
  • Brown, A. Leonard (2009). "The Simple Firmware Interface" (PDF). Ottawa Linux Symposium 2009.
  • v
  • t
  • e
Firmware and booting
Processes
Booting firmware
Types
  • Proprietary firmware
  • Open-source firmware
  • Custom firmware
Interfaces
Implementations
Hybrid firmware bootloaderBootloaders
Implementations
Partition layoutsPartitionsUtilities
Software
Hardware
Network bootROM variantsRelated
  • v
  • t
  • e
Subsidiaries
Joint venture
4Group Holdings (50% owned by Technicolor SA)
Products
  • v
  • t
  • e
Lists
Microarchitectures
IA-32 (32-bit)
x86-64 (64-bit)
x86 ULV
Current products
x86-64 (64-bit)
Discontinued
BCD oriented (4-bit)
pre-x86 (8-bit)
Early x86 (16-bit)
x87 (external FPUs)
8/16-bit databus
8087 (1980)
16-bit databus
80C187
80287
80387SX
32-bit databus
80387DX
80487
IA-32 (32-bit)
x86-64 (64-bit)
Other
Related
Litigation
People
Founders
CEOs
Related