Beyond BIOS: Implementing the Unified Extensible Firmware Interface with Intel's Framework

The CSM empowers EFI with the ability of loading a traditional operating system and using a traditional Option ROM. The CSM consists of five main components:
EfiCompatibility (CSM32)
Compatibility16BIOS (CSM16)
Compatibility16SMM
Thunk and ReverseThunk
Legacy Option ROM
The EfiCompatibility, Compatibility16BIOS, Compatibility16SMM, and Thunk and ReverseThunk are integral parts of the EFI firmware image. The legacy Option ROM may or may not be a part of EFI firmware image.
The CSM operates primarily in two different environments, namely, booting a legacy operating system and loading an EFI-aware operating system from a device controlled by a legacy Option ROM. Booting a legacy operating system is the traditional environment. Industry trends may require the legacy Option ROM support even after the legacy operating system has been replaced by EFI-aware operating system. The functionality to load an EFI-aware operating system using a legacy Option ROM is a subset of the functionality to boot a legacy operating system. The Framework architecture exhibits this split functionality and allows removal of functionality, if necessary, in the future.
EfiCompatibility is a 32-bit module and interfaces with the EFI environment to invoke Compatibility16 functions and legacy BIOS services. The Framework provides this module. This module consists mainly of four different types of EFI drivers:
Platform- and hardware-independent drivers that form the CSM foundation
Legacy component drivers that are also platform-independent; for example, a driver for a legacy 8259 Programmable Interrupt Controller
Chipset-specific drivers such as the driver for ICH7
Platform-specific drivers such as the driver...