ACPIspec40a

1015
Advanced Configuration and Power Interface Specification Hewlett-Packard Corporation Intel Corporation Microsoft Corporation Phoenix Technologies Ltd. Toshiba Corporation Revision 4.0a April 5, 2010 Copyright © 1996-2010, Hewlett-Packard Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd., Toshiba Corporation All rights reserved. INTELLECTUAL PROPERTY DISCLAIMER THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED OR INTENDED HEREBY.

Transcript of ACPIspec40a

Advanced Configuration and Power Interface SpecificationHewlett-Packard Corporation Intel Corporation Microsoft Corporation Phoenix Technologies Ltd. Toshiba Corporation

Revision 4.0a April 5, 2010

Copyright 1996-2010, Hewlett-Packard Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd., Toshiba Corporation All rights reserved.

INTELLECTUAL PROPERTY DISCLAIMER THIS SPECIFICATION IS PROVIDED AS IS WITH NO WARRANTIES WHATSOEVER INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED OR INTENDED HEREBY. HP, INTEL, MICROSOFT, PHOENIX, AND TOSHIBA DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF PROPRIETARY RIGHTS, RELATING TO IMPLEMENTATION OF INFORMATION IN THIS SPECIFICATION. HP, INTEL, MICROSOFT, PHOENIX, AND TOSHIBA DO NOT WARRANT OR REPRESENT THAT SUCH IMPLEMENTATION(S) WILL NOT INFRINGE SUCH RIGHTS.

ii

Microsoft, Win32, Windows, and Windows NT are registered trademarks of Microsoft Corporation. All other product names are trademarks, registered trademarks, or service marks of their respective owners.

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

iii

Revision 4.0a Apr. 2010

Change Description Errata corrected and clarifications added. Removed text concerning government requirement of mechanical off Clarified URL update document, Corrected section references for APIC, SLIT, SRAT in Table 5-5, Update URLs and reformated Table 5-6 Corrected reference to Interrupt Source Override Structure Corrected name for CPEP table Corrected reference to SMBus, should be IPMI Clarified BusCheck and DeviceCheck notifications in Table 5-53 Added link to non-ACPI Plug and Play ID reference document Added missing _ATT and _GAI names, Corrected page/section references in Table 5-67 Corrected EndTag name value. Was 0x78, correct value is 0x79 Table 6-33 Consumer/Producer bit is ignored (Restored 2.0C change that had been lost) Clarified use of _GLK (Global Lock) object Corrected definition of _TSD object Corrected definition of _PSD object Corrected table name (CPEP) Corrected maximum positive adjustment value. Was 500%, correct value is 50%, Updated description of example 300 to 400 lux, Eliminated hardcoded package lengths in examples, Changed brightness to highest ambient light value Corrected reference to _IDE, should be _GTM. Corrected table reference Clarified GPE Block Device Description Corrected _PLD object examples Repaired diagram that would not display properly Figure 10-2 Added missing _BCT method to Table 10-3 Clarified that OEM Information field should contain NULL string if not supported in Table 10-4 &Table 10-5 Corrected description of _BTM arguments and return value Clarified description of _BCT return value Corrected HID for Power Source device. Was ACPI0003, correct value is ACPI0004 Corrected _PIF example. First package element was a Buffer, should be Integer, Clarified that OEM Information field should contain NULL string if not supported Table 10-10 Corrected description of _SHL method Table 10-11 Clarified _PRL return value, a list of References Corrected _PMC example. First package element was a Buffer, should be Integer

Affected Sections 2.2 5.2.6 5.2.12.4 5.2.18 5.5.2.4.3.1 5.6.5 5.6.6 5.6.7 6.4.2.8 6.4.3.5.1,2,3 6.5.7 8.4.3.4 8.4.4.5 8.4.5 9.2.5

9.8.2.1.1 9.10 9.13 10.1.3.1 10.2.2 10.2.1.1-2 10.2.2.8 10.2.2.9 10.3 10.3.3

10.4 10.3.4 10.4.1

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

iv

Revision

Change Description Clarified that OEM Information field should contain NULL string if not supported Table 10-12 Removed TODO note. Updated example Repaired diagram that would not display properly Figure 15-1 Corrected error conditions from fatal to corrected Corrected several incorrect section references, Clarified number of Generic Error Data Entry structures is >=1 (not Zero) Clarified number of Generic Error Data Entry structures is >=1 (not Zero) Added new section clarifying SCI notification for generic error sources Added new section describing Firmware First error handling Clarified purpose of the codes Table 17-17 Added reference to table of COMMAND_STATUS codes Table 17-23 Clarified purpose of the command status codes in Table 17-27 and the error type definitions in Table 17-28 Added _ATT resource descriptor field name Clarified rules for Buffer vs. Integer return types from a field unit Corrected section/page reference

Affected Sections 10.4.1 10.5 15.1 17.1 17.3.1 17.3.2.6.1 17.3.2.6.2 17.4 17.5.1.1 17.6.1 17.6.3 18.1.8 18.5.44,89 18.5.101

4.0 June 2009

Major specification revision. Clock Domains, x2APIC Support, Logical Processor Idling, Corrected Platform Error Polling Table, Maximum System Characteristics Table, Power Metering and Budgeting, IPMI Operation Region, USB3 Support in _PLD, Re-evaluation of _PPC acknowledgement via _OST, Thermal Model Enhancements, _OSC at \_SB, Wake Alarm Device, Battery Related Extensions, Memory Bandwidth Monitoring and Reporting, ACPI Hardware Error Interfaces, D3hot. Errata corrected and clarifications added. Errata corrected and clarifications added. Major specification revision. General configuration enhancements. InterProcessor power, performance, and throttling state dependency support added. Support for > 256 processors added. NUMA Distancing support added. PCI Express support added. SATA support added. Ambient Light Sensor and User Presence device support added. Thermal model extended beyond processorcentric support. Errata corrected and clarifications added. Errata corrected and clarifications added. Errata corrected and clarifications added. ACPI 2.0 Errata Document Revision 1.0 through 1.5 integrated. Errata corrected and clarifications added.

3.0b Oct. 2006 3.0a Dec. 2005 3.0 Sept. 2004

2.0c Aug. 2003 2.0b Oct. 2002 2.0a Mar. 2002 ACPI 2.0

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

v

Revision Errata Doc. Rev. 1.5 ACPI 2.0 Errata Doc. Rev. 1.4 ACPI 2.0 Errata Doc. Rev. 1.3 ACPI 2.0 Errata Doc. Rev. 1.2 ACPI 2.0 Errata Doc. Rev. 1.1 ACPI 2.0 Errata Doc. Rev. 1.0 2.0 Aug. 2000

Change Description

Affected Sections

Errata corrected and clarifications added.

Errata corrected and clarifications added.

Errata corrected and clarifications added.

Errata corrected and clarifications added.

Errata corrected and clarifications added.

Major specification revision. 64-bit addressing support added. Processor and device performance state support added. Numerous multiprocessor workstation and server-related enhancements. Consistency and readability enhancements throughout. Errata corrected and clarifications added. New interfaces added. Errata corrected and clarifications added. New interfaces added. Original Release.

1.0b Feb. 1999 1.0a Jul. 1998 1.0 Dec. 1996

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

vi

Contents1 INTRODUCTION.......................................................................................................................................201.1 Principal Goals.....................................................................................................................................................20 1.2 Power Management Rationale............................................................................................................................21 1.3 Legacy Support.....................................................................................................................................................22 1.4 OEM Implementation Strategy..........................................................................................................................22 1.5 Power and Sleep Buttons.....................................................................................................................................22 1.6 ACPI Specification and the Structure Of ACPI...............................................................................................22 1.7 OS and Platform Compliance.............................................................................................................................24 1.7.1 Platform Implementations of ACPI-defined Interfaces...................................................................................24 1.7.2 OSPM Implementations...................................................................................................................................27 1.7.3 OS Requirements..............................................................................................................................................28 1.8 Target Audience...................................................................................................................................................28 1.9 Document Organization......................................................................................................................................29 1.9.1 ACPI Introduction and Overview....................................................................................................................29 1.9.2 Programming Models.......................................................................................................................................29 1.9.3 Implementation Details....................................................................................................................................29 2 Technical Reference...............................................................................................................................................30 2.1 Related Documents...............................................................................................................................................30

3

DEFINITION OF TERMS........................................................................................................................313.1 3.2 3.3 3.4 3.5 3.6 General ACPI Terminology................................................................................................................................31 Global System State Definitions.........................................................................................................................36 Device Power State Definitions...........................................................................................................................39 Sleeping State Definitions....................................................................................................................................40 Processor Power State Definitions.....................................................................................................................40 Device and Processor Performance State Definitions......................................................................................41

4

ACPI OVERVIEW.....................................................................................................................................434.1 System Power Management................................................................................................................................44 4.2 Power States..........................................................................................................................................................44 4.2.1 Power Button....................................................................................................................................................46 4.2.2 Platform Power Management Characteristics..................................................................................................46 4.3 Device Power Management.................................................................................................................................47 4.3.1 Power Management Standards.........................................................................................................................47 4.3.2 Device Power States.........................................................................................................................................47 4.3.3 Device Power State Definitions.......................................................................................................................48 4.4 Controlling Device Power....................................................................................................................................48 4.4.1 Getting Device Power Capabilities..................................................................................................................48 4.4.2 Setting Device Power States............................................................................................................................49 4.4.3 Getting Device Power Status............................................................................................................................49 4.4.4 Waking the Computer......................................................................................................................................49 4.4.5 Example: Modem Device Power Management................................................................................................51 4.5 Processor Power Management...........................................................................................................................53 4.6 Device and Processor Performance States........................................................................................................54 4.7 Configuration and Plug and Play...................................................................................................................54 4.7.1 Device Configuration Example: Configuring the Modem...............................................................................55 4.7.2 NUMA Nodes...................................................................................................................................................55 4.8 System Events.......................................................................................................................................................55 4.9 Battery Management...........................................................................................................................................56 4.9.1 Battery Communications..................................................................................................................................56 4.9.2 Battery Capacity...............................................................................................................................................56 4.9.3 Battery Gas Gauge............................................................................................................................................57

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

vii4.9.4 Low Battery Levels..........................................................................................................................................57 4.9.5 Battery Calibration...........................................................................................................................................59 4.10 Thermal Management.......................................................................................................................................60 4.10.1 Active and Passive Cooling Modes................................................................................................................61 4.10.2 Performance vs. Energy Conservation ..........................................................................................................61 4.10.3 Acoustics (Noise)...........................................................................................................................................61 4.10.4 Multiple Thermal Zones.................................................................................................................................61

5

ACPI HARDWARE SPECIFICATION..................................................................................................625.1 Fixed Hardware Programming Model..............................................................................................................62 5.1.1 Functional Fixed Hardware..............................................................................................................................62 5.2 Generic Hardware Programming Model..........................................................................................................63 5.3 Diagram Legends..................................................................................................................................................65 5.4 Register Bit Notation............................................................................................................................................66 5.5 The ACPI Hardware Model ...............................................................................................................................66 5.5.1 Hardware Reserved Bits...................................................................................................................................69 5.5.2 Hardware Ignored Bits.....................................................................................................................................70 5.5.3 Hardware Write-Only Bits...............................................................................................................................70 5.5.4 Cross Device Dependencies.............................................................................................................................70 5.6 ACPI Hardware Features...................................................................................................................................70 5.7 ACPI Register Model...........................................................................................................................................72 5.7.1 ACPI Register Summary..................................................................................................................................75 5.7.2 Fixed Hardware Features..................................................................................................................................77 5.7.3 Fixed Hardware Registers................................................................................................................................86 5.7.4 Generic Hardware Registers.............................................................................................................................93

6

ACPI SOFTWARE PROGRAMMING MODEL................................................................................1016.1 Overview of the System Description Table Architecture .............................................................................101 6.1.1 Address Space Translation.............................................................................................................................103 6.2 ACPI System Description Tables.....................................................................................................................104 6.2.1 Reserved Bits and Fields................................................................................................................................104 6.2.2 Compatibility..................................................................................................................................................105 6.2.3 Address Format..............................................................................................................................................105 6.2.4 Universal Uniform Identifiers (UUID)..........................................................................................................106 6.2.5 Root System Description Pointer (RSDP).....................................................................................................106 6.2.6 System Description Table Header..................................................................................................................108 6.2.7 Root System Description Table (RSDT)........................................................................................................111 6.2.8 Extended System Description Table (XSDT)................................................................................................112 6.2.9 Fixed ACPI Description Table (FADT).........................................................................................................112 6.2.10 Firmware ACPI Control Structure (FACS)..................................................................................................123 6.2.11 Definition Blocks.........................................................................................................................................129 6.2.12 Multiple APIC Description Table (MADT).................................................................................................132 6.2.13 Global System Interrupts..............................................................................................................................143 6.2.14 Smart Battery Table (SBST)........................................................................................................................144 6.2.15 Embedded Controller Boot Resources Table (ECDT).................................................................................144 6.2.16 System Resource Affinity Table (SRAT)....................................................................................................146 6.2.17 System Locality Distance Information Table (SLIT)..................................................................................149 6.2.18 Corrected Platform Error Polling Table (CPEP)..........................................................................................151 6.2.19 Maximum System Characteristics Table (MSCT).......................................................................................152 6.3 ACPI Namespace ...............................................................................................................................................155 6.3.1 Predefined Root Namespaces.........................................................................................................................156 6.3.2 Objects............................................................................................................................................................157 6.4 Definition Block Encoding................................................................................................................................157 6.5 Using the ACPI Control Method Source Language .....................................................................................158 6.5.1 ASL Statements..............................................................................................................................................159 6.5.2 Control Method Execution.............................................................................................................................159 6.6 ACPI Event Programming Model....................................................................................................................167

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

viii6.6.1 ACPI Event Programming Model Components.............................................................................................167 6.6.2 Types of ACPI Events....................................................................................................................................168 6.6.3 Fixed Event Handling.....................................................................................................................................169 6.6.5 General-Purpose Event Handling...................................................................................................................170 6.6.6 Device Object Notifications...........................................................................................................................173 6.6.7 Device Class-Specific Objects.......................................................................................................................178 6.6.8 Predefined ACPI Names for Objects, Methods, and Resources....................................................................181 6.7 Predefined Objects.............................................................................................................................................189 6.7.1 \_GL (Global Lock Mutex)............................................................................................................................189 6.7.2 \_OSI (Operating System Interfaces).............................................................................................................189 6.7.3 \_OS (OS Name Object).................................................................................................................................192 6.7.4 \_REV (Revision Data Object).......................................................................................................................193 6.8 System Configuration Objects..........................................................................................................................193 6.8.1 _PIC Method..................................................................................................................................................193

7

DEVICE CONFIGURATION.................................................................................................................1947.1 Device Identification Objects............................................................................................................................194 7.1.1 _ADR (Address).............................................................................................................................................195 7.1.2 _CID (Compatible ID)...................................................................................................................................196 7.1.3 _DDN (DOS Device Name)...........................................................................................................................196 7.1.4 _HID (Hardware ID)......................................................................................................................................197 7.1.5 _MLS (Multiple Language String)................................................................................................................197 7.1.6 _PLD (Physical Device Location)..................................................................................................................198 7.1.7 _STR (String).................................................................................................................................................204 7.1.8 _SUN (Slot User Number).............................................................................................................................205 7.1.9 _UID (Unique ID)..........................................................................................................................................205 7.2 Device Configuration Objects ..........................................................................................................................205 7.2.1 _CDM (Clock Domain)..................................................................................................................................206 7.2.2 _CRS (Current Resource Settings)....................................................................................................................207 7.2.3 _DIS (Disable)................................................................................................................................................207 7.2.4 _DMA (Direct Memory Access)....................................................................................................................207 7.2.5 _FIX (Fixed Register Resource Provider)......................................................................................................210 7.2.6 _GSB (Global System Interrupt Base)...........................................................................................................211 7.2.7 _HPP (Hot Plug Parameters)..........................................................................................................................212 7.2.8 _HPX (Hot Plug Parameter Extensions)........................................................................................................214 7.2.9 _MAT (Multiple APIC Table Entry).............................................................................................................219 7.2.10 _OSC (Operating System Capabilities)........................................................................................................220 7.2.11 _PRS (Possible Resource Settings)..............................................................................................................229 7.2.12 _PRT (PCI Routing Table)...........................................................................................................................229 7.2.13 _PXM (Proximity)........................................................................................................................................231 7.2.14 _SLI (System Locality Information)............................................................................................................232 7.2.15 _SRS (Set Resource Settings)......................................................................................................................235 7.3 Device Insertion, Removal, and Status Objects..............................................................................................235 7.3.1 _EDL (Eject Device List)...............................................................................................................................237 7.3.2 _EJD (Ejection Dependent Device)...............................................................................................................238 7.3.3 _EJx (Eject)....................................................................................................................................................239 7.3.4 _LCK (Lock)..................................................................................................................................................239 7.3.5 _OST (OSPM Status Indication)....................................................................................................................240 7.3.6 _RMV (Remove)............................................................................................................................................244 7.3.7 _STA (Status).................................................................................................................................................244 7.4 Resource Data Types for ACPI........................................................................................................................245 7.4.1 ASL Macros for Resource Descriptors..........................................................................................................245 7.4.2 Small Resource Data Type.............................................................................................................................245 7.4.3 Large Resource Data Type.............................................................................................................................250 7.5 Other Objects and Control Methods...............................................................................................................272 7.5.1 _INI (Init).......................................................................................................................................................272 7.5.2 _DCK (Dock).................................................................................................................................................273

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

ix7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 _BDN (BIOS Dock Name)............................................................................................................................273 _REG (Region)...............................................................................................................................................273 _BBN (Base Bus Number).............................................................................................................................275 _SEG (Segment).............................................................................................................................................275 _GLK (Global Lock)......................................................................................................................................277

8

POWER AND PERFORMANCE MANAGEMENT...........................................................................2798.1 Declaring a Power Resource Object................................................................................................................279 8.1.1 Defined Child Objects for a Power Resource................................................................................................280 8.1.2 _OFF...............................................................................................................................................................280 8.1.3 _ON................................................................................................................................................................280 8.1.4 _STA (Status).................................................................................................................................................281 8.2 Device Power Management Objects................................................................................................................281 8.2.1 _DSW (Device Sleep Wake)..........................................................................................................................283 8.2.2 _PS0 (Power State 0)......................................................................................................................................283 8.2.3 _PS1 (Power State 1)......................................................................................................................................283 8.2.4 _PS2 (Power State 2)......................................................................................................................................284 8.2.5 _PS3 (Power State 3)......................................................................................................................................284 8.2.6 _PSC (Power State Current)...........................................................................................................................284 8.2.7 _PR0 (Power Resources for D0)....................................................................................................................284 8.2.8 _PR1 (Power Resources for D1)....................................................................................................................285 8.2.9 _PR2 (Power Resources for D2)....................................................................................................................285 8.2.10 _PR3 (Power Resources for D3hot).............................................................................................................286 8.2.11 _PRW (Power Resources for Wake)............................................................................................................286 8.2.12 _PSW (Power State Wake)..........................................................................................................................287 8.2.13 _IRC (In Rush Current)................................................................................................................................287 8.2.14 _S1D (S1 Device State)................................................................................................................................288 8.2.15 _S2D (S2 Device State)................................................................................................................................288 8.2.16 _S3D (S3 Device State)................................................................................................................................289 8.2.17 _S4D (S4 Device State)................................................................................................................................290 8.2.18 _S0W (S0 Device Wake State)....................................................................................................................290 8.2.19 _S1W (S1 Device Wake State)....................................................................................................................290 8.2.20 _S2W (S2 Device Wake State)....................................................................................................................291 8.2.21 _S3W (S3 Device Wake State)....................................................................................................................291 8.2.22 _S4W (S4 Device Wake State)....................................................................................................................291 8.3 OEM-Supplied System-Level Control Methods.............................................................................................291 8.3.1 \_BFS (Back From Sleep)..............................................................................................................................292 8.3.2 \_PTS (Prepare To Sleep)...............................................................................................................................292 8.3.3 \_GTS (Going To Sleep)................................................................................................................................293 8.3.4 System \_Sx states..........................................................................................................................................293 8.3.5 _SWS (System Wake Source)........................................................................................................................297 8.3.6 \_TTS (Transition To State)...........................................................................................................................298 8.3.7 \_WAK (System Wake).................................................................................................................................298 8.4 OSPM usage of _GTS, _PTS, _TTS, _WAK, and _BFS...............................................................................299

9

PROCESSOR CONFIGURATION AND CONTROL........................................................................3019.1 Processor Power States......................................................................................................................................301 9.1.1 Processor Power State C0..............................................................................................................................303 9.1.2 Processor Power State C1..............................................................................................................................305 9.1.3 Processor Power State C2..............................................................................................................................305 9.1.4 Processor Power State C3..............................................................................................................................305 9.1.5 Additional Processor Power States................................................................................................................306 9.2 Flushing Caches..................................................................................................................................................306 9.3 Power, Performance, and Throttling State Dependencies............................................................................307 9.4 Declaring Processors..........................................................................................................................................307 9.4.1 _PDC (Processor Driver Capabilities) ..........................................................................................................308 9.4.2 Processor Power State Control.......................................................................................................................309

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

x9.4.3 Processor Throttling Controls........................................................................................................................314 9.4.4 Processor Performance Control......................................................................................................................320 9.4.5 _PPE (Polling for Platform Errors) ...............................................................................................................327 9.5 Processor Aggregator Device............................................................................................................................327 9.5.1 Logical Processor Idling.................................................................................................................................328

10

ACPI-DEFINED DEVICES AND DEVICE SPECIFIC OBJECTS................................................32910.1 \_SI System Indicators.....................................................................................................................................329 10.1.1 _SST (System Status)...................................................................................................................................329 10.1.2 _MSG (Message)..........................................................................................................................................329 10.1.3 _BLT (Battery Level Threshold)..................................................................................................................330 10.2 Ambient Light Sensor Device.........................................................................................................................330 10.2.1 Overview......................................................................................................................................................331 10.2.2 _ALI (Ambient Light Illuminance)..............................................................................................................331 10.2.3 _ALT (Ambient Light Temperature)...........................................................................................................332 10.2.4 _ALC (Ambient Light Color Chromaticity)................................................................................................332 10.2.5 _ALR (Ambient Light Response)................................................................................................................332 10.2.6 _ALP (Ambient Light Polling)....................................................................................................................336 10.2.7 Ambient Light Sensor Events......................................................................................................................336 10.2.8 Relationship to Backlight Control Methods.................................................................................................336 10.3 Battery Device...................................................................................................................................................337 10.4 Control Method Lid Device............................................................................................................................337 10.4.1 _LID.............................................................................................................................................................337 10.5 Control Method Power and Sleep Button Devices.......................................................................................337 10.6 Embedded Controller Device..........................................................................................................................338 10.7 Generic Container Device...............................................................................................................................338 10.8 ATA Controller Devices..................................................................................................................................338 10.8.1 Objects for Both ATA and SATA Controllers.............................................................................................339 10.8.2 IDE Controller Device.................................................................................................................................340 10.8.3 Serial ATA (SATA) Controller Device.......................................................................................................342 10.9 Floppy Controller Device Objects..................................................................................................................344 10.9.1 _FDE (Floppy Disk Enumerate)..................................................................................................................344 10.9.2 _FDI (Floppy Disk Information)..................................................................................................................345 10.9.3 _FDM (Floppy Disk Drive Mode)...............................................................................................................346 10.10 GPE Block Device..........................................................................................................................................346 10.10.1 Matching Control Methods for General-Purpose Events in a GPE Block Device....................................347 10.11 Module Device................................................................................................................................................347 10.11.1 Describing PCI Bus and Segment Group Numbers under Module Devices..............................................349 10.12 Memory Devices.............................................................................................................................................351 10.12.1 Address Decoding......................................................................................................................................352 10.12.2 Memory Bandwidth Monitoring and Reporting.........................................................................................352 10.12.3 _OSC Definition for Memory Device........................................................................................................354 10.12.4 Example: Memory Device.........................................................................................................................354 10.13 _UPC (USB Port Capabilities) .....................................................................................................................355 10.13.1 USB 2.0 Host Controllers and _UPC and _PLD........................................................................................359 10.14 Device Object Name Collision......................................................................................................................360 10.14.1 _DSM (Device Specific Method)...............................................................................................................360 10.15 PC/AT RTC/CMOS Devices.........................................................................................................................363 10.15.1 PC/AT-compatible RTC/CMOS Devices (PNP0B00)...............................................................................363 10.15.2 Intel PIIX4-compatible RTC/CMOS Devices (PNP0B01)........................................................................364 10.15.3 Dallas Semiconductor-compatible RTC/CMOS Devices (PNP0B02)......................................................365 10.16 User Presence Detection Device....................................................................................................................365 10.16.1 _UPD (User Presence Detect)....................................................................................................................366 10.16.2 _UPP (User Presence Polling)....................................................................................................................366 10.16.3 User Presence Sensor Events.....................................................................................................................366 10.17 I/O APIC Device.............................................................................................................................................366

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

xi10.18 Wake Alarm Device.......................................................................................................................................367 10.18.1 Overview....................................................................................................................................................367 10.18.2 _STP (Set Expired Timer Wake Policy)....................................................................................................369 10.18.3 _STV (Set Timer Value)............................................................................................................................370 10.18.4 _TIP (Expired Timer Wake Policy)...........................................................................................................370 10.18.5 _TIV (Timer Values)..................................................................................................................................370 10.18.6 ACPI Wakeup Alarm Events.....................................................................................................................370 10.18.7 Relationship to Real Time Clock Alarm ...................................................................................................370 10.18.8 Example ASL code ....................................................................................................................................371

11

POWER SOURCE AND POWER METER DEVICES....................................................................37311.1 Smart Battery Subsystems..............................................................................................................................373 11.1.1 ACPI Smart Battery Status Change Notification Requirements..................................................................375 11.1.2 Smart Battery Objects..................................................................................................................................376 11.1.3 _SBS (Smart Battery Subsystem) ...............................................................................................................376 11.2 Control Method Batteries................................................................................................................................379 11.2.1 Battery Events..............................................................................................................................................379 11.2.2 Battery Control Methods..............................................................................................................................380 11.3 AC Adapters and Power Source Objects......................................................................................................392 11.3.1 _PSR (Power Source)...................................................................................................................................392 11.3.2 _PCL (Power Consumer List)......................................................................................................................393 11.3.3 _PIF (Power Source Information)................................................................................................................393 11.3.4 _PRL (Power Source Redundancy List)......................................................................................................394 11.4 Power Meters....................................................................................................................................................394 11.4.1 _PMC (Power Meter Capabilities) ..............................................................................................................394 11.4.2 _PTP (Power Trip Points)............................................................................................................................396 11.4.3 _PMM (Power Meter Measurement)...........................................................................................................397 11.4.4 _PAI (Power Averaging Interval)................................................................................................................397 11.4.5 _GAI (Get Averaging Interval)....................................................................................................................397 11.4.6 _SHL (Set Hardware Limit).........................................................................................................................398 11.4.7 _GHL (Get Hardware Limit)........................................................................................................................398 11.4.8 _PMD (Power Metered Devices).................................................................................................................398 11.5 Example: Power Source and Power Meter Namespace..............................................................................399

13

THERMAL MANAGEMENT..............................................................................................................40113.1 Thermal Control ..............................................................................................................................................401 13.1.1 Active, Passive, and Critical Policies...........................................................................................................402 13.1.2 Dynamically Changing Cooling Temperature Trip Points..........................................................................403 13.1.3 Detecting Temperature Changes..................................................................................................................404 13.1.4 Active Cooling ............................................................................................................................................406 13.1.5 Passive Cooling............................................................................................................................................406 13.1.6 Critical Shutdown.........................................................................................................................................408 13.2 Cooling Preferences.........................................................................................................................................409 13.2.1 Evaluating Thermal Device Lists.................................................................................................................410 13.2.2 Evaluating Device Thermal Relationship Information................................................................................410 13.2.3 Fan Device Notifications..............................................................................................................................411 13.3 Fan Device.........................................................................................................................................................411 13.3.1 Fan Objects...................................................................................................................................................411 13.4 Thermal Objects...............................................................................................................................................414 13.4.1 _ACx (Active Cooling)................................................................................................................................415 13.4.2 _ALx (Active List).......................................................................................................................................416 13.4.3 _ART (Active Cooling Relationship Table)................................................................................................416 13.4.4 _CRT (Critical Temperature).......................................................................................................................419 13.4.5 _DTI (Device Temperature Indication)........................................................................................................419 13.4.6 _HOT (Hot Temperature).............................................................................................................................419 13.4.7 _NTT (Notification Temperature Threshold)..............................................................................................419 13.4.8 _PSL (Passive List)......................................................................................................................................420

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

xii13.4.9 _PSV (Passive).............................................................................................................................................420 13.4.10 _RTV (Relative Temperature Values).......................................................................................................420 13.4.11 _SCP (Set Cooling Policy).........................................................................................................................421 13.4.12 _TC1 (Thermal Constant 1).......................................................................................................................423 13.4.13 _TC2 (Thermal Constant 2).......................................................................................................................424 13.4.14 _TMP (Temperature)..................................................................................................................................424 13.4.15 _TPT (Trip Point Temperature).................................................................................................................424 13.4.16 _TRT (Thermal Relationship Table)..........................................................................................................424 13.4.17 _TSP (Thermal Sampling Period)..............................................................................................................425 13.4.18 _TST (Temperature Sensor Threshold)......................................................................................................425 13.4.19 _TZD (Thermal Zone Devices)..................................................................................................................426 13.4.20 _TZM (Thermal Zone Member)................................................................................................................426 13.4.21 _TZP (Thermal Zone Polling)....................................................................................................................426 13.5 Native OS Device Driver Thermal Interfaces...............................................................................................427 13.6 Thermal Zone Interface Requirements.........................................................................................................427 13.7 Thermal Zone Examples.................................................................................................................................428 13.7.1 Example: The Basic Thermal Zone..............................................................................................................428 13.7.2 Example: Multiple-Speed Fans....................................................................................................................429 13.7.3 Example: Thermal Zone with Multiple Devices..........................................................................................430

14

ACPI EMBEDDED CONTROLLER INTERFACE SPECIFICATION........................................43614.1 Embedded Controller Interface Description................................................................................................436 14.2 Embedded Controller Register Descriptions................................................................................................439 14.2.1 Embedded Controller Status, EC_SC (R)....................................................................................................439 14.2.2 Embedded Controller Command, EC_SC (W)............................................................................................440 14.2.3 Embedded Controller Data, EC_DATA (R/W)...........................................................................................440 14.3 Embedded Controller Command Set............................................................................................................440 14.3.1 Read Embedded Controller, RD_EC (0x80)................................................................................................441 14.3.2 Write Embedded Controller, WR_EC (0x81)..............................................................................................441 14.3.3 Burst Enable Embedded Controller, BE_EC (0x82)....................................................................................441 14.3.4 Burst Disable Embedded Controller, BD_EC (0x83)..................................................................................442 14.3.5 Query Embedded Controller, QR_EC (0x84)..............................................................................................442 14.4 SMBus Host Controller Notification Header (Optional), OS_SMB_EVT...............................................442 14.5 Embedded Controller Firmware....................................................................................................................442 14.6 Interrupt Model................................................................................................................................................443 14.6.1 Event Interrupt Model..................................................................................................................................443 14.6.2 Command Interrupt Model...........................................................................................................................444 14.7 Embedded Controller Interfacing Algorithms.............................................................................................444 14.8 Embedded Controller Description Information...........................................................................................444 14.9 SMBus Host Controller Interface via Embedded Controller.....................................................................445 14.9.1 Register Description.....................................................................................................................................445 14.9.2 Protocol Description.....................................................................................................................................449 14.9.3 SMBus Register Set.....................................................................................................................................452 14.10 SMBus Devices................................................................................................................................................454 14.10.1 SMBus Device Access Restrictions...........................................................................................................454 14.10.2 SMBus Device Command Access Restriction...........................................................................................454 14.11 Defining an Embedded Controller Device in ACPI Namespace..............................................................454 14.11.1 Example: EC Definition ASL Code ..........................................................................................................455 14.12 Defining an EC SMBus Host Controller in ACPI Namespace.................................................................455 14.12.1 Example: EC SMBus Host Controller ASL-Code.....................................................................................456

15

ACPI SYSTEM MANAGEMENT BUS INTERFACE SPECIFICATION....................................45615.1 SMBus Overview..............................................................................................................................................457 15.1.1 SMBus Slave Addresses...............................................................................................................................457 15.1.2 SMBus Protocols..........................................................................................................................................457 15.1.3 SMBus Status Codes....................................................................................................................................458 15.1.4 SMBus Command Values............................................................................................................................458

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

xiii15.2 Accessing the SMBus from ASL Code...........................................................................................................458 15.2.1 Declaring SMBus Host Controller Objects..................................................................................................458 15.2.2 Declaring SMBus Devices...........................................................................................................................459 15.2.3 Declaring SMBus Operation Regions..........................................................................................................459 15.2.4 Declaring SMBus Fields..............................................................................................................................460 15.2.5 Declaring and Using an SMBus Data Buffer...............................................................................................462 15.3 Using the SMBus Protocols.............................................................................................................................463 15.3.1 Read/Write Quick (SMBQuick)...................................................................................................................463 15.3.2 Send/Receive Byte (SMBSendReceive)......................................................................................................464 15.3.3 Read/Write Byte (SMBByte).......................................................................................................................464 15.3.4 Read/Write Word (SMBWord)....................................................................................................................465 15.3.5 Read/Write Block (SMBBlock)...................................................................................................................465 15.3.6 Word Process Call (SMBProcessCall).........................................................................................................466 15.3.7 Block Process Call (SMBBlockProcessCall)...............................................................................................467

16

SYSTEM ADDRESS MAP INTERFACES.........................................................................................46816.1 16.2 16.3 16.4 16.5 16.6 INT 15H, E820H - Query System Address Map..........................................................................................469 E820 Assumptions and Limitations...............................................................................................................471 UEFI GetMemoryMap() Boot Services Function........................................................................................471 UEFI Assumptions and Limitations..............................................................................................................472 Example Address Map.....................................................................................................................................473 Example: Operating System Usage................................................................................................................473

17

WAKING AND SLEEPING..................................................................................................................47617.1 Sleeping States..................................................................................................................................................477 17.1.1 S1 Sleeping State..........................................................................................................................................479 17.1.2 S2 Sleeping State..........................................................................................................................................479 17.1.3 S3 Sleeping State..........................................................................................................................................480 17.1.4 S4 Sleeping State..........................................................................................................................................480 17.1.5 S5 Soft Off State..........................................................................................................................................482 17.1.6 Transitioning from the Working to the Sleeping State................................................................................482 17.1.7 Transitioning from the Working to the Soft Off State.................................................................................482 17.2 Flushing Caches................................................................................................................................................483 17.3 Initialization......................................................................................................................................................483 17.3.1 Placing the System in ACPI Mode...............................................................................................................485 17.3.2 BIOS Initialization of Memory....................................................................................................................486 17.3.3 OS Loading...................................................................................................................................................488 17.3.4 Exiting ACPI Mode......................................................................................................................................489

18

NON-UNIFORM MEMORY ACCESS (NUMA) ARCHITECTURE PLATFORMS..................49118.1 NUMA Node......................................................................................................................................................491 18.2 System Locality.................................................................................................................................................491 18.2.1 System Resource Affinity Table Definition.................................................................................................491 18.3 System Locality Distance Information..........................................................................................................492

19

ACPI PLATFORM ERROR INTERFACES (APEI)........................................................................49419.1 Hardware Errors and Error Sources............................................................................................................494 19.2 Relationship between OSPM and System Firmware...................................................................................495 19.3 Error Source Discovery....................................................................................................................................495 19.3.1 Boot Error Source.........................................................................................................................................495 19.3.2 ACPI Error Source.......................................................................................................................................497 19.4 Firmware First Error Handling.....................................................................................................................510 19.4.1 Example: Firmware First Handling Using NMI Notification......................................................................510 19.5 Error Serialization...........................................................................................................................................511 19.5.1 Serialization Action Table............................................................................................................................512 19.5.2 Operations....................................................................................................................................................517 19.6 Error Injection..................................................................................................................................................521 19.6.1 Error Injection Table (EINJ)........................................................................................................................521

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

xiv19.6.2 19.6.3 19.6.4 19.6.5 Injection Instruction Entries.........................................................................................................................523 Injection Instructions....................................................................................................................................524 Trigger Action Table....................................................................................................................................525 Error Injection Operation.............................................................................................................................525

20

ACPI SOURCE LANGUAGE (ASL) REFERENCE.........................................................................52620.1 ASL Language Grammar................................................................................................................................526 20.1.1 ASL Grammar Notation...............................................................................................................................527 20.1.2 ASL Name and Pathname Terms.................................................................................................................529 20.1.3 ASL Root and Secondary Terms..................................................................................................................529 20.1.4 ASL Data and Constant Terms.....................................................................................................................530 20.1.5 ASL Opcode Terms......................................................................................................................................532 20.1.6 ASL Primary (Terminal) Terms...................................................................................................................533 20.1.7 ASL Parameter Keyword Terms..................................................................................................................542 20.1.8 ASL Resource Template Terms...................................................................................................................543 20.2 ASL Concepts...................................................................................................................................................549 20.2.1 ASL Names..................................................................................................................................................549 20.2.2 ASL Literal Constants..................................................................................................................................549 20.2.3 ASL Resource Templates.............................................................................................................................551 20.2.4 ASL Macros.................................................................................................................................................552 20.2.5 ASL Data Types...........................................................................................................................................554 20.3 ASL Operator Summary ................................................................................................................................566 20.4 ASL Operator Summary By Type ................................................................................................................568 20.5 ASL Operator Reference ................................................................................................................................571 20.5.1 Acquire (Acquire a Mutex)..........................................................................................................................571 20.5.2 Add (Integer Add)........................................................................................................................................571 20.5.3 Alias (Declare Name Alias).........................................................................................................................572 20.5.4 And (Integer Bitwise And)...........................................................................................................................572 20.5.5 Argx (Method Argument Data Objects).......................................................................................................572 20.5.6 BankField (Declare Bank/Data Field)..........................................................................................................573 20.5.7 Break (Break from While)............................................................................................................................574 20.5.8 BreakPoint (Execution Break Point)............................................................................................................574 20.5.9 Buffer (Declare Buffer Object)....................................................................................................................574 20.5.10 Case (Expression for Conditional Execution)............................................................................................575 20.5.11 Concatenate (Concatenate Data) ...............................................................................................................575 20.5.12 ConcatenateResTemplate (Concatenate Resource Templates)..................................................................575 20.5.13 CondRefOf (Create Object Reference Conditionally)...............................................................................576 20.5.14 Continue (Continue Innermost Enclosing While)......................................................................................576 20.5.15 CopyObject (Copy and Store Object)........................................................................................................576 20.5.16 CreateBitField (Create 1-Bit Buffer Field) ...............................................................................................577 20.5.17 CreateByteField (Create 8-Bit Buffer Field)..............................................................................................577 20.5.18 CreateDWordField (Create 32-Bit Buffer Field).......................................................................................577 20.5.19 CreateField (Create Arbitrary Length Buffer Field)..................................................................................577 20.5.20 CreateQWordField (Create 64-Bit Buffer Field).......................................................................................578 20.5.21 CreateWordField (Create 16-Bit Buffer Field) .........................................................................................578 20.5.22 DataTableRegion (Create Data Table Operation Region).........................................................................578 20.5.23 Debug (Debugger Output)..........................................................................................................................579 20.5.24 Decrement (Integer Decrement).................................................................................................................579 20.5.25 Default (Default Execution Path in Switch) ..............................................................................................579 20.5.26 DefinitionBlock (Declare Definition Block)..............................................................................................580 20.5.27 DerefOf (Dereference an Object Reference)..............................................................................................580 20.5.28 Device (Declare Bus/Device Package)......................................................................................................581 20.5.29 Divide (Integer Divide)..............................................................................................................................582 20.5.30 DMA (DMA Resource Descriptor Macro)................................................................................................583 20.5.31 DWordIO (DWord IO Resource Descriptor Macro)..................................................................................583 20.5.32 DWordMemory (DWord Memory Resource Descriptor Macro)..............................................................585 20.5.33 DWordSpace (DWord Space Resource Descriptor Macro).......................................................................587

Hewlett-Packard/Intel/Microsoft/Phoenix/Toshiba

xv20.5.34 20.5.35 20.5.36 20.5.37 20.5.38 20.5.39 20.5.40 20.5.41 20.5.42 20.5.43 20.5.44 20.5.45 20.5.46 20.5.47 20.5.48 20.5.49 20.5.50 20.5.51 20.5.52 20.5.53 20.5.54 20.5.55 20.5.56 20.5.57 20.5.58 20.5.59 20.5.60 20.5.61 20.5.62 20.5.63 20.5.64 20.5.65 20.5.66 20.5.67 20.5.68 20.5.69 20.5.70 20.5.71 20.5.72 20.5.73 20.5.74 20.5.75 20.5.76 20.5.77 20.5.78 20.5.79 20.5.80 20.5.81 20.5.82 20.5.83 20.5.84 20.5.85 20.5.86 20.5.87 20.5.88 20.5.89 20.5.90 EISAID (EISA ID String To Integer Conversion Macro).........................................................................588 Else (Alternate Execution).........................................................................................................................588 ElseIf (Alternate/Conditional Execution)...................................................................................................589 EndDependentFn (End Dependent Function Resource Descriptor Macro)...............................................590 Event (Declare Event Synchronization Object).........................................................................................590 ExtendedIO (Extended IO Resource Descriptor Macro)...........................................................................590 ExtendedMemory (Extended Memory Resource Descriptor Macro) .......................................................592 ExtendedSpace (Extended Address Space Resource Descriptor Macro)..................................................593 External (Declare External Objects)..........................................................................................................594 Fatal (Fatal Error Check)............................................................................................................................595 Field (Declare Field Objects).....................................................................................................................595 FindSetLeftBit (Find First Set Left Bit).....................................................................................................598 FindSetRightBit (Find First Set Right Bit)................................................................................................598 FixedIO (Fixed IO Resource Descriptor Macro).......................................................................................598 FromBCD (Convert BCD To Integer).......................................................................................................599 Function (Declare Control Method)...........................................................................................................599 If (Conditional Execution).........................................................................................................................600 Include (Include Additional ASL File)......................................................................................................600 Increment (Integer Increment)...................................................................................................................601 Index (Indexed Reference To Member Object).........................................................................................601 IndexField (Declare Index/Data Fields).....................................................................................................603 Interrupt (Interrupt Resource Descriptor Macro).......................................................................................604 IO (IO Resource Descriptor Macro)...........................................................................................................605 IRQ (Interrupt Resource Descriptor Macro)..............................................................................................606 IRQNoFlags (Interrupt Resource Descriptor Macro) ...............................................................................606 LAnd (Logical And)...................................................................................................................................607 LEqual (Logical Equal)..............................................................................................................................607 LGreater (Logical Greater).........................................................................................................................607 LGreaterEqual (Logical Greater Than Or Equal)......................................................................................608 LLess (Logical Less)..................................................................................................................................608 LLessEqual (Logical Less Than Or Equal)................................................................................................608 LNot (Logical Not).....................................................................................................................................609 LNotEqual (Logical Not Equal) )...............................................................................................................609 Load (Load Definition Block)....................................................................................................................609 LoadTable (Load Definition Block From XSDT).....................................................................................610 Localx (Method Local Data Objects).........................................................................................................611 LOr (Logical Or)........................................................................................................................................611 Match (Find Object Match)........................................................................................................................611 Memory24 (Memory Resource Descriptor Macro)...................................................................................612 Memory32 (Memory Resource Descriptor Macro) ..................................................................................613 Memory32Fixed (Memory Resource Descriptor Macro)..........................................................................614 Method (Declare