Linux ACPI Status

len.brown@intel.com

7/21/2004

Agenda

Past

Present

Future

ACPI

OSPM – OS Power Management

1996 ACPI 1.0

2000 ACPI 2.0

2004 ACPI 3.0

ACPI on Linux

“in-tree” starting 2.4.22 – 2003

mid-stream intercept on i386

But it Works on Windows...

Linux/ACPI Deployment

Blacklists

DMI: BIOS < 1/1/2001

acpi=off

ACPI table header signatures

acpi=off

DMI scan

acpi=noirq

pci=noacpi

acpi=ht

acpi=off

ACPI Tables

Platform BIOS, Firmware

Platform Hardware

ACPI Registers

ACPI BIOS

ACPICA Core

Linux/ACPI

acpid

/proc/acpi

User

Kernel

OSL

Button

Processor

Battery

AC

Thermal

Fan

ACPI Specification

Platform Defined

ACPI Events

System Control Interrupt (SCI)

Fixed Feature Events (FF)

General Purpose Events (GPE)

/proc/acpi/event

SCI Configuration

PCI semantics unless explicit override

i386 IOAPIC Configuration

Interrupt Source Overrides

Identity Legacy mappings

setup_IO_APIC()

Load DSDT w/ _PRT

Enable AML Interpreter

acpi_pci_link_init()

for (each PCI device)

acpi_pci_irq_enable()

Configuration Issues

Linux ignores MB resources in DSDT

IRQ/IO-port resource conflicts result

lapic=off still required on many laptops

Power Management

APM

cpufreq

G0 (S0)

Working

G1 - Sleeping

C1 - idle

C0 - Execute

C3 - idle

C2 - idle

Throttling

P-states

S1 - Standby

S4 - Hibernate

S3 - Suspend

G2 (S5) –

Soft off

G3 – Mech off

Legacy

ACPI States

C3 Issues

< 1000 usec latency = 2.6 HZ period

Device DMA latency -> buffer overflow

C3 may really be C4, w/ ++latency

TSC stops during C3

Bus master activity stops C3

Demotion algorithm simplistic

Device States

D0 – full on

D3 – full off

vs. PCI Power Management

Device Drivers vs. Power Management

Devices need to recognize when idle and take power saving action.

Device drivers should not have to care if power management is handled by PCI-PM or ACPI.

Today, no connection between (conventional) motherboard device drivers and ACPI for resources or power management.

Linux need Power Policy Mgr

User specifies policy

manager communicates it to devices and sub-systems

Configuration Todo

Abstract Device Enumeration:

PCI/ACPI/Legacy resources

Docking Station support -

Power Management Todo

Suspend/Resume reliability++

Abstract Device power states

PCI/ACPI D-states

System Power policy manager

SMP: P-states, C-states, S-states

C-states: tick timer stop in idle

Video controls: switching, brightness

Hot Keys – need Vendor support

More To do

ACPI 3.0 features

Questions?

2004-07-19T06:55:45