Role of UEFI ACPI Tables in Operating Systems
This article examines the critical function of Advanced Configuration and Power Interface (ACPI) tables supplied by UEFI firmware to the operating system during boot and runtime. It explains how these structured data tables bridge the gap between platform hardware and software, enabling hardware discovery, power state management, device configuration, and platform abstraction without requiring hardcoded, motherboard-specific operating system drivers.
What Are ACPI Tables in UEFI?
When a computer boots, the Unified Extensible Firmware Interface (UEFI) initializes the motherboard, processor, memory, and essential peripherals. Because modern operating systems are designed to run across thousands of different motherboard configurations, they cannot rely on hardcoded hardware mappings.
To solve this, UEFI constructs ACPI tables in system memory. These tables are standardized data structures containing detailed descriptions of the motherboard's architecture, integrated devices, power capabilities, and system interfaces.
How the UEFI-to-OS Handoff Works
During the platform initialization phase, the UEFI firmware builds the ACPI tables and creates a pointer structure known as the Root System Description Pointer (RSDP).
When the operating system's bootloader executes:
- The OS queries the UEFI system table to retrieve the RSDP address.
- The RSDP points to the Extended System Description Table (XSDT), which contains 64-bit physical memory addresses for all other ACPI tables on the system.
- Once the operating system transitions out of UEFI boot services, it takes ownership of the hardware using the ACPI tables as its master blueprint.
Core Functions of ACPI Tables
1. Hardware Discovery and Enumeration
Before an operating system can load appropriate drivers, it must identify what hardware is present. ACPI tables describe components that cannot be automatically discovered by traditional bus scans (such as PCI or USB enumeration). This includes system clocks, interrupt controllers, platform controllers, and non-pluggable embedded devices.
2. Power and Thermal Management
ACPI tables define the power management capabilities of both the system and individual devices:
- Global System States (G-States and S-States): They inform the OS how to enter and wake from sleep, hibernation, and soft-off states (e.g., S3, S4, Modern Standby).
- Device Power States (D-States): They specify how peripheral devices transition between fully operational and low-power idle states.
- Processor Performance States (P-States and C-States): They define dynamic voltage and frequency scaling (DVFS) and CPU idle states to balance performance and energy consumption.
- Thermal Zones: They map temperature sensors to cooling policies (e.g., controlling fan trip points or initiating thermal throttling).
3. Execution of Platform Logic (AML and ASL)
Certain ACPI tables contain ACPI Machine Language (AML), a byte-code compiled from ACPI Source Language (ASL). The operating system includes a built-in AML interpreter. This allows the OS to execute vendor-specific routines—such as adjusting display brightness, detecting laptop lid closure, or handling hot-plug events—directly through standardized interfaces without custom low-level drivers.
Critical ACPI Tables
While a system may provide dozens of ACPI tables, several are essential for basic system operation:
- FADT (Fixed ACPI Description Table): Contains fundamental platform configurations, power management profile flags, and pointers to the DSDT and FACS (Firmware ACPI Control Structure).
- MADT (Multiple APIC Description Table): Outlines the processor architecture, describing all local APICs (Advanced Programmable Interrupt Controllers), I/O APICs, and interrupt routing required for multi-core processing.
- DSDT (Differentiated System Description Table): The central ACPI database containing the base AML code that describes peripheral devices, power resources, and device control methods.
- SSDT (Secondary System Description Table): Supplemental tables that expand on the DSDT, often used for add-in cards or dynamic platform features.
- SRAT (System Resource Affinity Table): In high-performance and server systems, this table describes Non-Uniform Memory Access (NUMA) topologies, enabling the OS to optimize memory allocation and CPU thread scheduling.
Summary
ACPI tables provided by UEFI serve as the universal communication contract between physical hardware and the operating system. By translating vendor-specific motherboard designs into standardized data tables and executable byte-code, they allow a single operating system image to reliably discover hardware, allocate resources, and handle power and thermal regulation across diverse computing platforms.