Advanced Configuration and Power
Interface (ACPI) Specification
Release 6.5
UEFI Forum, Inc.
Aug 29, 2022
CONTENTS
1 Introduction 1
1.1 Principal Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Principle of Inclusive Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Power Management Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Legacy Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 OEM Implementation Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Power and Sleep Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 ACPI Specification and the Structure of ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.7 OS and Platform Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7.1 Platform Implementations of ACPI-defined Interfaces . . . . . . . . . . . . . . . . . . . . . 6
1.7.1.1 Recommended Features and Interface Descriptions for Design Guides . . . . . . . 6
1.7.1.2 Terminology Examples for Design Guides . . . . . . . . . . . . . . . . . . . . . . 8
1.7.2 OSPM Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7.3 OS Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 Target Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.9 Document Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9.1 ACPI Introduction and Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9.2 Programming Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9.3 Implementation Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.9.4 Technical Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.9.5 Revsion Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.10 Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Definition of Terms 15
2.1 General ACPI Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Global System State Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Device Power State Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1 Device Performance States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Sleeping and Soft-off State Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Processor Power State Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Device and Processor Performance State Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 ACPI Concepts 26
3.1 System Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Power States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1 Power Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 Platform Power Management Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2.1 Mobile PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2.2 Desktop PCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2.3 Multiprocessor and Server PCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
i
3.3 Device Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Device Power Management Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.2 Power Management Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.3 Device Power States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.4 Device Power State Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4 Controlling Device Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 Getting Device Power Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.2 Setting Device Power States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.3 Getting Device Power Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.4 Waking the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.5 Example: Modem Device Power Management . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.5.1 Obtaining the Modem Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.5.2 Setting the Modem Power State . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.5.3 Obtaining the Modem Power Status . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4.5.4 Waking the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Processor Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.6 Device and Processor Performance States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7 Configuration and “Plug and Play” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.7.1 Device Configuration Example: Configuring the Modem . . . . . . . . . . . . . . . . . . . 37
3.7.2 NUMA Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 System Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.9 Battery Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.9.1 Battery Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.9.2 Battery Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.9.3 Battery Gas Gauge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.9.4 Low Battery Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.9.4.1 Emergency Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.9.5 Battery Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.9.6 Battery Charge Limiting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.10 Thermal Management Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.10.1 Active and Passive Cooling Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.10.2 Performance vs. Energy Conservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.10.3 Acoustics (Noise) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.10.4 Multiple Thermal Zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.11 Flexible Platform Architecture Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.11.1 Hardware-reduced ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.11.1.1 Interrupt-based Wake Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.11.2 Low-Power Idle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.11.2.1 Low Power S0 Idle Capable Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.11.3 Connection Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.11.3.1 Supported Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4 ACPI Hardware Specification 48
4.1 Hardware-Reduced ACPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.1 Hardware-Reduced Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1.1.1 GPIO-Signaled Events or Interrupt Signaled Events . . . . . . . . . . . . . . . . . 49
4.1.1.2 Interrupt-based Wake Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Fixed Hardware Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 Generic Hardware Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4 Diagram Legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.5 Register Bit Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6 The ACPI Hardware Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.6.1 Hardware Reserved Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6.2 Hardware Ignored Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
ii
4.6.3 Hardware Write-Only Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6.4 Cross Device Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.6.4.1 Example 1: Related Device Interference . . . . . . . . . . . . . . . . . . . . . . . 57
4.6.4.2 Example 2: Unrelated Device Interference . . . . . . . . . . . . . . . . . . . . . . 57
4.7 ACPI Hardware Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.8 ACPI Register Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.8.1 ACPI Register Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.8.1.1 PM1 Event Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.8.1.2 PM1 Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8.1.3 PM2 Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8.1.4 PM Timer Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8.1.5 Processor Control Block (P_BLK) . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8.1.6 General-Purpose Event Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.8.2 Fixed Hardware Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.8.2.1 Power Management Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.8.2.2 Console Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.8.2.3 Sleeping/Wake Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.8.2.4 Real Time Clock Alarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.8.2.5 Legacy/ACPI Select and the SCI Interrupt . . . . . . . . . . . . . . . . . . . . . . 72
4.8.2.6 Processor Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.8.3 Fixed Hardware Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.8.3.1 PM1 Event Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.8.3.2 PM1 Control Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.8.3.3 Power Management Timer (PM_TMR) . . . . . . . . . . . . . . . . . . . . . . . . 79
4.8.3.4 PM2 Control (PM2_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.8.3.5 Processor Register Block (P_BLK) . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.8.3.6 Reset Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.8.3.7 Sleep Control and Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.8.4 Generic Hardware Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.8.4.1 General-Purpose Event Register Blocks . . . . . . . . . . . . . . . . . . . . . . . . 85
4.8.4.2 Example Generic Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5 ACPI Software Programming Model 90
5.1 Overview of the System Description Table Architecture . . . . . . . . . . . . . . . . . . . . . . . . 90
5.1.1 Address Space Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2 ACPI System Description Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.1 Reserved Bits and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.2.1.1 Reserved Bits and Software Components . . . . . . . . . . . . . . . . . . . . . . . 94
5.2.1.2 Reserved Values and Software Components . . . . . . . . . . . . . . . . . . . . . 94
5.2.1.3 Reserved Hardware Bits and Software Components . . . . . . . . . . . . . . . . . 94
5.2.1.4 Ignored Hardware Bits and Software Components . . . . . . . . . . . . . . . . . . 95
5.2.2 Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.2.3 Address Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.2.3.1 Functional Fixed Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.2.3.2 Generic Address Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.4 Universally Unique Identifiers (UUIDs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.5 Root System Description Pointer (RSDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.5.1 Finding the RSDP on IA-PC Systems . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.5.2 Finding the RSDP on UEFI Enabled Systems . . . . . . . . . . . . . . . . . . . . 98
5.2.5.3 Root System Description Pointer (RSDP) Structure . . . . . . . . . . . . . . . . . 99
5.2.6 System Description Table Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.2.7 Root System Description Table (RSDT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.8 Extended System Description Table (XSDT) . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.9 Fixed ACPI Description Table (FADT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
iii
5.2.9.1 Preferred PM Profile System Types . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.2.9.2 System Type Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.9.3 IA-PC Boot Architecture Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.9.4 ARM Architecture Boot Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2.10 Firmware ACPI Control Structure (FACS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.2.10.1 Global Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.2.11 Definition Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.11.1 Differentiated System Description Table (DSDT) . . . . . . . . . . . . . . . . . . 126
5.2.11.2 Secondary System Description Table (SSDT) . . . . . . . . . . . . . . . . . . . . . 126
5.2.11.3 Persistent System Description Table (PSDT) . . . . . . . . . . . . . . . . . . . . . 127
5.2.12 Multiple APIC Description Table (MADT) . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2.12.1 MADT Processor Local APIC / SAPIC Structure Entry Order . . . . . . . . . . . . 130
5.2.12.2 Processor Local APIC Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2.12.3 I/O APIC Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.2.12.4 Platforms with APIC and Dual 8259 Support . . . . . . . . . . . . . . . . . . . . . 131
5.2.12.5 Interrupt Source Override Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.2.12.6 Non-Maskable Interrupt (NMI) Source Structure . . . . . . . . . . . . . . . . . . . 133
5.2.12.7 Local APIC NMI Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.2.12.8 Local APIC Address Override Structure . . . . . . . . . . . . . . . . . . . . . . . 134
5.2.12.9 I/O SAPIC Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.2.12.10 Local SAPIC Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.2.12.11 Platform Interrupt Source Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.2.12.12 Processor Local x2APIC Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.2.12.13 Local x2APIC NMI Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.2.12.14 GIC CPU Interface (GICC) Structure . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.2.12.15 GIC Distributor (GICD) Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.2.12.16 GIC MSI Frame Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.2.12.17 GIC Redistributor (GICR) Structure . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.2.12.18 GIC Interrupt Translation Service (ITS) Structure . . . . . . . . . . . . . . . . . . 142
5.2.12.19 Multiprocessor Wakeup Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.2.12.20 Core Programmable Interrupt Controller (CORE PIC) Structure . . . . . . . . . . . 144
5.2.12.21 Legacy I/O Programmable Interrupt Controller(LIO PIC) Structure . . . . . . . . . 145
5.2.12.22 HyperTransport Programmable Interrupt Controller (HT PIC) Structure . . . . . . . 145
5.2.12.23 Extend I/O Programmable Interrupt Controller (EIO PIC) Structure . . . . . . . . . 146
5.2.12.24 MSI Programmable Interrupt Controller (MSI PIC) Structure . . . . . . . . . . . . 146
5.2.12.25 Bridge I/O Programmable Interrupt Controller (BIO PIC) Structure . . . . . . . . . 147
5.2.12.26 LPC Programmable Interrupt Controller (LPC PIC) Structure . . . . . . . . . . . . 147
5.2.13 Global System Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5.2.14 Smart Battery Table (SBST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.2.15 Embedded Controller Boot Resources Table (ECDT) . . . . . . . . . . . . . . . . . . . . . 151
5.2.16 System Resource Affinity Table (SRAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.2.16.1 Processor Local APIC/SAPIC Affinity Structure . . . . . . . . . . . . . . . . . . . 154
5.2.16.2 Memory Affinity Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.2.16.3 Processor Local x2APIC Affinity Structure . . . . . . . . . . . . . . . . . . . . . . 155
5.2.16.4 GICC Affinity Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.2.16.5 GIC Interrupt Translation Service (ITS) Affinity Structure . . . . . . . . . . . . . . 156
5.2.16.6 Generic Initiator Affinity Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.2.16.7 Generic Port Affinity Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.17 System Locality Information Table (SLIT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2.18 Corrected Platform Error Polling Table (CPEP) . . . . . . . . . . . . . . . . . . . . . . . . 160
5.2.18.1 Corrected Platform Error Polling Processor Structure . . . . . . . . . . . . . . . . 161
5.2.19 Maximum System Characteristics Table (MSCT) . . . . . . . . . . . . . . . . . . . . . . . 162
5.2.19.1 Maximum Proximity Domain Information Structure . . . . . . . . . . . . . . . . . 163
5.2.20 ACPI RAS Feature Table (RASF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
iv