The Extensible Firmware Interface (EFI) is a set of interfaces that defines how software will interface with future firmware. Intel developed EFI as a part of the Intel Boot Initiative program that began in 1998. This program was designed to modernize firmware technology in today's computers in order to move past the limitations of a legacy BIOS. It offers features similar to the Open Firmware used on older PowerPC-based Macs. Beyond that, it is extensible and quite flexible. (Note: HP Itanium systems have been using EFI for several years)
Drivers, pre-boot applications and OS loaders for EFI are written in C, not assembly. The EFI specification includes clean APIs for text and graphical screen output, keyboard and mouse input, and access to file systems and block devices. EFI allows settings to be stored in NVRAM in the form of named variables, i.e. key-value pairs.
Intel also created the Platform Innovation Framework for EFI (or "The Framework"), which is a fully compliant EFI implementation that also supports legacy Operating Systems (OS'es) through a Compatibility Support Module (CSM). The Framework is often mistakingly refered to simply as "EFI", when it is in reality only a single possible implementation of the EFI standard. Other implementations include Apple's new firmware being used in their Intel-based Macs and Insyde Technology's InsydeH2O firmware. Certain Gateway motherboards have been shipping with The Framework for some time now. .
 EFI on Hackintosh
EFI is an alternative to patching kernel extension files (.kext) to make OSX recognize your device. Another alternative is patching DSDT in bios or a patched dsdt.aml which is loaded by the bootloader.
You basically add an EFI-String of your device to /Library/Preferences/SystemConfiguration/com.apple.boot.plist and the device will be recognized.
The EFI-string [in hex] is a long collection of numbers and letters . Efi injection is not as effective as DSDT editing .
 See also
This page was last modified on 20 November 2011, at 22:46.
This page has been accessed 312,759 times.