Sei sulla pagina 1di 950

Advanced Configuration and

Power Interface Specification


Hewlett-Packard Corporation
Intel Corporation
Microsoft Corporation
Phoenix Technologies Ltd
Toshi!a Corporation
"evision #$
Septe%!er &' &$$(
Cop)right * +,,-' +,,.' +,,/' +,,,' &$$$' &$$+' &$$&' &$$#' &$$( Hewlett-Packard Corporation' Intel
Corporation' Microsoft Corporation' Phoenix Technologies Ltd' Toshi!a Corporation
All rights reserved
I0T1LL1CT2AL P"3P1"T4 5ISCLAIM1"
THIS SP1CI6ICATI30 IS P"37I515 8AS IS9 :ITH 03 :A""A0TI1S :HATS3171" I0CL25I0;
A04 :A""A0T4 36 M1"CHA0TA<ILIT4' 6IT01SS 63" A04 PA"TIC2LA" P2"P3S1' 3" A04
:A""A0T4 3TH1":IS1 A"ISI0; 32T 36 A04 P"3P3SAL' SP1CI6ICATI30' 3" SAMPL1
03 LIC10S1' 1=P"1SS 3" IMPLI15' <4 1ST3PP1L 3" 3TH1":IS1' T3 A04 I0T1LL1CT2AL
P"3P1"T4 "I;HTS IS ;"A0T15 3" I0T10515 H1"1<4
HP' I0T1L' MIC"3S36T' PH310I=' A05 T3SHI<A 5ISCLAIM ALL LIA<ILIT4' I0CL25I0;
LIA<ILIT4 63" I06"I0;1M10T 36 P"3P"I1TA"4 "I;HTS' "1LATI0; T3 IMPL1M10TATI30 36
I063"MATI30 I0 THIS SP1CI6ICATI30 HP' I0T1L' MIC"3S36T' PH310I=' A05 T3SHI<A 53
03T :A""A0T 3" "1P"1S10T THAT S2CH IMPL1M10TATI30>S? :ILL 03T I06"I0;1 S2CH
"I;HTS
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@Toshi!a
iii
"evision Change 5escription
Affected
Sections
3.
!ept. 2"
Ma#or specification revision. $eneral configuration enhancements. %nter&
'rocessor power, performance, and throttling state dependenc( support added.
!upport for ) 2*+ processors added. N,MA -istancing support added. 'C%
./press support added. !ATA support added. Am0ient 1ight !ensor and ,ser
'resence device support added. Thermal model e/tended 0e(ond processor&
centric support.
2.c
Aug.. 23
.rrata and clarifications added.
2.0
2ct. 22
.rrata and clarifications added.
2.a
Mar. 22
.rrata and clarifications added. AC'% 2. .rrata -ocument 3evision 4.
through 4.* integrated.
AC'% 2.
.rrata -oc.
3ev. 4.*
.rrata and clarifications added.
AC'% 2.
.rrata -oc.
3ev. 4."
.rrata and clarifications added.
AC'% 2.
.rrata -oc.
3ev. 4.3
.rrata and clarifications added.
AC'% 2.
.rrata -oc.
3ev. 4.2
.rrata and clarifications added.
AC'% 2.
.rrata -oc.
3ev. 4.4
.rrata and clarifications added.
AC'% 2.
.rrata -oc.
3ev. 4.
.rrata and clarifications added.
2.
Aug. 2
Ma#or specification revision. +"&0it addressing support added. 'rocessor and
device performance state support added. Numerous multiprocessor workstation
and server&related enhancements. Consistenc( and reada0ilit( enhancements
throughout.
4.0
5e0. 4666
.rrata and clarifications added. New interfaces added.
4.a
7ul. 4668
.rrata and clarifications added. New interfaces added.
4.
-ec. 466+
2riginal 3elease.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
iv
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
v
Contents
+ I0T"352CTI30+
++ Principal ;oals +
+& Power Manage%ent "ationale &
+# Legac) Support #
+( 31M I%ple%entation Strateg) #
+A Power and Sleep <uttons #
+- ACPI Specification and the Structure 3f ACPI(
+. 3S and Platfor% Co%pliance A
4.9.4 'latform %mplementations of AC'%&defined %nterfaces...................................................................................*
4.9.2 2!'M %mplementations................................................................................................................................. 8
4.9.3 2! 3e:uirements........................................................................................................................................... 6
+/ Target Audience ,
+, 5ocu%ent 3rganiBation ,
4.6.4 AC'% %ntroduction and 2verview................................................................................................................. 4
4.6.2 'rogramming Models................................................................................................................................... 4
4.6.3 %mplementation -etails................................................................................................................................ 4
4.6." Technical 3eference..................................................................................................................................... 44
++$ "elated 5ocu%ents ++
& 516I0ITI30 36 T1"MS+#
&+ ;eneral ACPI Ter%inolog) +#
&& ;lo!al S)ste% State 5efinitions+,
&# 5evice Power State 5efinitions&+
&( Sleeping State 5efinitions &&
&A Processor Power State 5efinitions &&
&- 5evice and Processor Perfor%ance State 5efinitions&#
# ACPI 371"7I1:&A
#+ S)ste% Power Manage%ent &-
#& Power States &.
3.2.4 'ower ;utton............................................................................................................................................... 28
3.2.2 'latform 'ower Management Characteristics...............................................................................................28
## 5evice Power Manage%ent &,
3.3.4 'ower Management !tandards..................................................................................................................... 26
3.3.2 -evice 'ower !tates..................................................................................................................................... 26
3.3.3 -evice 'ower !tate -efinitions....................................................................................................................3
#( Controlling 5evice Power #$
3.".4 $etting -evice 'ower Capa0ilities...............................................................................................................3
3.".2 !etting -evice 'ower !tates.........................................................................................................................3
3.".3 $etting -evice 'ower !tatus........................................................................................................................34
3."." Waking the Computer................................................................................................................................... 34
3.".* ./ample< Modem -evice 'ower Management............................................................................................33
#A Processor Power Manage%ent#-
#- 5evice and Processor Perfor%ance States #-
#. Configuration and 8Plug and Pla)9#-
3.9.4 -evice Configuration ./ample< Configuring the Modem............................................................................39
3.9.2 N,MA Nodes.............................................................................................................................................. 39
#/ S)ste% 1vents #.
#, <atter) Manage%ent #/
3.6.4 ;atter( Communications.............................................................................................................................. 38
3.6.2 ;atter( Capacit(........................................................................................................................................... 36
3.6.3 ;atter( $as $auge....................................................................................................................................... 36
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
vi
3.6." 1ow ;atter( 1evels...................................................................................................................................... 36
3.6.* ;atter( Cali0ration....................................................................................................................................... "2
#+$ Ther%al Manage%ent (#
3.4.4 Active and 'assive Cooling Modes............................................................................................................ ""
3.4.2 'erformance vs. .nerg( Conservation........................................................................................................""
3.4.3 Acoustics =Noise>....................................................................................................................................... ""
3.4." Multiple Thermal ?ones............................................................................................................................. ""
( ACPI HA"5:A"1 SP1CI6ICATI30(A
(+ 6ixed Hardware Progra%%ing Model(A
".4.4 5unctional 5i/ed @ardware.......................................................................................................................... "*
(& ;eneric Hardware Progra%%ing Model(-
(# 5iagra% Legends (/
(( "egister <it 0otation (,
(A The ACPI Hardware Model (,
".*.4 @ardware 3eserved ;its............................................................................................................................... *2
".*.2 @ardware %gnored ;its................................................................................................................................. *2
".*.3 @ardware Write&2nl( ;its............................................................................................................................ *3
".*." Cross -evice -ependencies......................................................................................................................... *3
(- ACPI Hardware 6eatures A#
(. ACPI "egister Model AA
".9.4 AC'% 3egister !ummar(.............................................................................................................................. *8
".9.2 5i/ed @ardware 5eatures............................................................................................................................. +
".9.3 5i/ed @ardware 3egisters............................................................................................................................ +6
".9." $eneric @ardware 3egisters......................................................................................................................... 99
A ACPI S36T:A"1 P"3;"AMMI0; M351L/#
A+ 3verview of the S)ste% 5escription Ta!le Architecture/#
*.4.4 Address !pace Translation............................................................................................................................ 8*
A& ACPI S)ste% 5escription Ta!les/-
*.2.4 3eserved ;its and 5ields.............................................................................................................................. 8+
*.2.2 Compati0ilit(............................................................................................................................................... 89
*.2.3 Address 5ormat............................................................................................................................................ 89
*.2." ,niversal ,niform %dentifiers =,,%->......................................................................................................... 88
*.2.* 3oot !(stem -escription 'ointer =3!-'>....................................................................................................88
*.2.+ !(stem -escription Ta0le @eader................................................................................................................6
*.2.9 3oot !(stem -escription Ta0le =3!-T>.......................................................................................................62
*.2.8 ./tended !(stem -escription Ta0le =A!-T>...............................................................................................6"
*.2.6 5i/ed AC'% -escription Ta0le =5A-T>........................................................................................................6*
*.2.4 5irmware AC'% Control !tructure =5AC!>...............................................................................................4*
*.2.44 -efinition ;locks..................................................................................................................................... 46
*.2.42 $lo0al !(stem %nterrupts..........................................................................................................................42
*.2.43 !mart ;atter( Ta0le =!;!T>..................................................................................................................... 422
*.2.4" .m0edded Controller ;oot 3esources Ta0le =.C-T>..............................................................................422
*.2.4* !(stem 3esource Affinit( Ta0le =!3AT>..................................................................................................42"
*.2.4+ !(stem 1ocalit( -istance %nformation Ta0le =!1%T>................................................................................429
A# ACPI 0a%espace +&,
*.3.4 'redefined 3oot Namespaces..................................................................................................................... 434
*.3.2 20#ects....................................................................................................................................................... 434
A( 5efinition <lock 1ncoding +#+
AA 2sing the ACPI Control Method Source Language+##
*.*.4 A!1 !tatements.......................................................................................................................................... 433
*.*.2 Control Method ./ecution.........................................................................................................................43"
A- ACPI 1vent Progra%%ing Model+#A
*.+.4 AC'% .vent 'rogramming Model Components..........................................................................................43+
*.+.2 T(pes of AC'% .vents................................................................................................................................ 43+
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
vii
*.+.3 -evice 20#ect Notifications....................................................................................................................... 4"4
*.+." -evice Class&!pecific 20#ects................................................................................................................... 4""
*.+.* -efined $eneric 20#ects and Control Methods..........................................................................................4"+
A. Predefined 3!Cects +A#
*.9.4 BC$1 =$lo0al 1ock Mute/>........................................................................................................................4*"
*.9.2 BC2!% =2perating !(stem %nterfaces>.......................................................................................................... 4*"
*.9.3 BC2! =2! Name 20#ect>............................................................................................................................. 4*9
*.9." BC3.D =3evision -ata 20#ect>................................................................................................................... 4*9
A/ S)ste% Configuration 3!Cects +A/
*.8.4 C'%C Method.............................................................................................................................................. 4*8
- C306I;2"ATI30+A,
-+ 5evice Identification 3!Cects +A,
+.4.4 CA-3 =Address>........................................................................................................................................ 4*6
+.4.2 CC%- =Compati0le %->............................................................................................................................... 4+
+.4.3 C--N =-2! -evice Name>....................................................................................................................... 4+4
+.4." C@%- =@ardware %->.................................................................................................................................. 4+4
+.4.* CM1! =Multiple 1anguage !tring>............................................................................................................. 4+2
+.4.+ C'1- ='h(sical -evice 1ocation>..............................................................................................................4+2
+.4.9 C!T3 =!tring>............................................................................................................................................. 4+"
+.4.8 C!,N =!lot ,ser Num0er>......................................................................................................................... 4+"
+.4.6 C,%- =,ni:ue %->...................................................................................................................................... 4+*
-& 5evice Configuration 3!Cects +-A
+.2.4 CC3! =Current 3esource !ettings>............................................................................................................. 4++
+.2.2 C-%! =-isa0le>........................................................................................................................................... 4++
+.2.3 C-MA =-irect Memor( Access>.................................................................................................................4+9
+.2." C5%A =5i/ed 3egister 3esource 'rovider>..................................................................................................4+6
+.2.* C$!; =$lo0al !(stem %nterrupt ;ase>.......................................................................................................49
+.2.+ C@'' =@ot 'lug 'arameters>...................................................................................................................... 494
+.2.9 C@'A =@ot 'lug 'arameter ./tensions>.....................................................................................................493
+.2.8 CMAT =Multiple A'%C Ta0le .ntr(>...........................................................................................................49*
+.2.6 C2!C =2perating !(stem Capa0ilities>......................................................................................................49+
+.2.4 C'3! ='ossi0le 3esource !ettings>.......................................................................................................... 48"
+.2.44 C'3T ='C% 3outing Ta0le>........................................................................................................................48"
+.2.42 C'AM ='ro/imit(>................................................................................................................................... 48+
+.2.43 C!1% =!(stem 1ocalit( %nformation>........................................................................................................48+
+.2.4" C!3! =!et 3esource !ettings>.................................................................................................................. 486
-# 5evice Insertion' "e%oval' and Status 3!Cects+/,
+.3.4 C.-1 =.#ect -evice 1ist>...........................................................................................................................464
+.3.2 C.7- =.#ection -ependent -evice>............................................................................................................464
+.3.3 C.7/ =.#ect>................................................................................................................................................ 463
+.3." C1CE =1ock>.............................................................................................................................................. 463
+.3.* C2!T =2!'M !tatus %ndication>................................................................................................................463
+.3.+ C3MD =3emove>........................................................................................................................................ 468
+.3.9 C!TA =!tatus>............................................................................................................................................. 468
-( "esource 5ata T)pes for ACPI +,,
+.".4 A!1 Macros for 3esource -escriptors....................................................................................................... 466
+.".2 !mall 3esource -ata T(pe.........................................................................................................................466
+.".3 1arge 3esource -ata T(pe.........................................................................................................................2"
-A 3ther 3!Cects and Control Methods&&.
+.*.4 C%N% =%nit>................................................................................................................................................... 229
+.*.2 C-CE =-ock>............................................................................................................................................. 229
+.*.3 C;-N =;%2! -ock Name>......................................................................................................................... 228
+.*." C3.$ =3egion>.......................................................................................................................................... 228
+.*.* C;;N =;ase ;us Num0er>......................................................................................................................... 226
+.*.+ C!.$ =!egment>........................................................................................................................................ 226
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
viii
+.*.9 C$1E =$lo0al 1ock>.................................................................................................................................. 234
. P3:1" A05 P1"63"MA0C1 MA0A;1M10T&##
.+ 5eclaring a Power "esource 3!Cect &##
9.4.4 -efined Child 20#ects for a 'ower 3esource.............................................................................................23"
9.4.2 C255.......................................................................................................................................................... 23"
9.4.3 C2N........................................................................................................................................................... 23*
9.4." C!TA =!tatus>............................................................................................................................................. 23*
.& 5evice Power Manage%ent 3!Cects&#A
9.2.4 C-!W =-evice !leep Wake>...................................................................................................................... 239
9.2.2 C'! ='ower !tate >................................................................................................................................. 239
9.2.3 C'!4 ='ower !tate 4>................................................................................................................................. 238
9.2." C'!2 ='ower !tate 2>................................................................................................................................. 238
9.2.* C'!3 ='ower !tate 3>................................................................................................................................. 238
9.2.+ C'!C ='ower !tate Current>....................................................................................................................... 238
9.2.9 C'3 ='ower 3esources for ->................................................................................................................236
9.2.8 C'34 ='ower 3esources for -4>................................................................................................................236
9.2.6 C'32 ='ower 3esources for -2>................................................................................................................236
9.2.4 C'3W ='ower 3esources for Wake>......................................................................................................... 236
9.2.44 C'!W ='ower !tate Wake>....................................................................................................................... 2"
9.2.42 C%3C =%n 3ush Current>............................................................................................................................ 2"4
9.2.43 C!4- =!4 -evice !tate>............................................................................................................................ 2"4
9.2.4" C!2- =!2 -evice !tate>............................................................................................................................ 2"4
9.2.4* C!3- =!3 -evice !tate>............................................................................................................................ 2"2
9.2.4+ C!"- =!" -evice !tate>............................................................................................................................ 2"2
9.2.49 C!W =! -evice Wake !tate>.................................................................................................................2"3
9.2.48 C!4W =!4 -evice Wake !tate>.................................................................................................................2"3
9.2.46 C!2W =!2 -evice Wake !tate>.................................................................................................................2"3
9.2.2 C!3W =!3 -evice Wake !tate>.................................................................................................................2"3
9.2.24 C!"W =!" -evice Wake !tate>.................................................................................................................2"3
.# 31M-Supplied S)ste%-Level Control Methods&(#
9.3.4 BC;5! =;ack 5rom !leep>.......................................................................................................................... 2""
9.3.2 BC'T! ='repare To !leep>........................................................................................................................... 2""
9.3.3 BC$T! =$oing To !leep>............................................................................................................................. 2"*
9.3." !(stem BC!/ states...................................................................................................................................... 2"*
9.3.* C!W! =!(stem Wake !ource>....................................................................................................................2"6
9.3.+ BCTT! =Transition To !tate>........................................................................................................................2*
9.3.9 BCWAE =!(stem Wake>.............................................................................................................................. 2*
.( 3SPM usage of D;TS' DPTS' DTTS' D:AE' and D<6S&A+
/ P"3C1SS3" P3:1" A05 P1"63"MA0C1 STAT1 C306I;2"ATI30 A05 C30T"3L&A#
/+ Processor Power States &A#
8.4.4 'rocessor 'ower !tate C........................................................................................................................... 2**
8.4.2 'rocessor 'ower !tate C4........................................................................................................................... 2*9
8.4.3 'rocessor 'ower !tate C2........................................................................................................................... 2*9
8.4." 'rocessor 'ower !tate C3........................................................................................................................... 2*9
8.4.* Additional 'rocessor 'ower !tates............................................................................................................. 2*8
/& 6lushing Caches &A/
/# Power' Perfor%ance' and Throttling State 5ependencies&A,
/( 5eclaring Processors &A,
8.".4 C'-C ='rocessor -river Capa0ilities>........................................................................................................2+
8.".2 'rocessor 'ower !tate Control................................................................................................................... 2+4
8.".3 'rocessor Throttling Controls.....................................................................................................................2+"
8."." 'rocessor 'erformance Control..................................................................................................................2+6
, ACPI-517IC1S A05 517IC1 SP1CI6IC 3<F1CTS&.A
,+ GDSI S)ste% Indicators &.A
6.4.4 C!!T =!(stem !tatus>................................................................................................................................. 29*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
i/
6.4.2 CM!$ =Message>....................................................................................................................................... 29*
6.4.3 ;1T =;atter( 1evel Threshold>.................................................................................................................. 29*
,& Control Method A%!ient Light Sensor 5evice&.-
6.2.4 2verview.................................................................................................................................................... 29+
6.2.2 CA1% =Am0ient 1ight %lluminance>............................................................................................................ 299
6.2.3 CA1T =Am0ient 1ight Temperature>...........................................................................................................299
6.2." CA1C =Am0ient 1ight Color Chromacit(>.................................................................................................299
6.2.* CA13 =Am0ient 1ight 3esponse>............................................................................................................... 298
6.2.+ CA1' =Am0ient 1ight 'olling>................................................................................................................... 284
6.2.9 Am0ient 1ight !ensor .vents..................................................................................................................... 284
6.2.8 3elationship to ;acklight Control Methods...............................................................................................282
,# <atter) 5evice &/&
,( Control Method Lid 5evice &/&
6.".4 C1%-........................................................................................................................................................... 282
,A Control Method Power and Sleep <utton 5evices&/&
,- 1%!edded Controller 5evice&/#
,. 6an 5evice &/#
,/ ;eneric Container 5evice &/#
,, ATA Controller 5evices &/#
6.6.4 20#ects for ;oth ATA and !ATA Controllers..............................................................................................28"
6.6.2 %-. Controller -evice............................................................................................................................... 28*
6.6.3 !erial ATA =!ATA> Controller -evice........................................................................................................289
,+$ 6lopp) Controller 5evice 3!Cects &/,
6.4.4 C5-. =5lopp( -isk .numerate>............................................................................................................... 286
6.4.2 C5-% =5lopp( -isk %nformation>..............................................................................................................286
6.4.3 C5-M =5lopp( -isk -rive Mode>............................................................................................................26
,++ ;P1 <lock 5evice &,+
6.44.4 Matching Control Methods for $eneral&'urpose .vents in a $'. ;lock -evice.....................................264
,+& Module 5evice &,&
,+# Me%or) 5evices &,(
6.43.4 Address -ecoding.................................................................................................................................... 26"
6.43.2 ./ample< Memor( -evice........................................................................................................................26*
,+( D2PC >2S< Port Capa!ilities?&,A
6.4".4 ,!; 2. @ost Controllers and C,'C and C'1-.......................................................................................268
,+A 5evice 3!Cect 0a%e Collision #$$
6.4*.4 C-!M =-evice !pecific Method>.............................................................................................................3
,+- PC@AT "TC@CM3S 5evices#$&
6.4+.4 'CFAT&compati0le 3TCFCM2! -evices ='N';>...............................................................................32
6.4+.2 %ntel '%%A"&compati0le 3TCFCM2! -evices ='N';4>.......................................................................33
6.4+.3 -allas !emiconductor&compati0le 3TCFCM2! -evices ='N';2>......................................................33
,+. Control Method 2ser Presence 5etection 5evice#$(
6.49.4 C,'- =,ser 'resence -etect>..................................................................................................................3"
6.49.2 C,'' =,ser 'resence 'olling>..................................................................................................................3"
6.49.3 ,ser 'resence !ensor .vents....................................................................................................................3*
,+/ I@3 APIC 5evice #$A
+$ P3:1" S32"C1 517IC1S#$.
+$+ S%art <atter) Su!s)ste%s #$.
4.4.4 AC'% !mart ;atter( !tatus Change Notification 3e:uirements................................................................36
4.4.2 !mart ;atter( 20#ects.............................................................................................................................. 34
4.4.3 !mart ;atter( !u0s(stem Control Methods..............................................................................................344
+$& Control Method <atteries #+#
4.2.4 ;atter( .vents.......................................................................................................................................... 343
4.2.2 ;atter( Control Methods..........................................................................................................................34"
+$# AC Adapters and Power Source 3!Cects#&&
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/
4.3.4 C'!3 ='ower !ource>............................................................................................................................... 322
4.3.2 C'C1 ='ower Consumer 1ist>.................................................................................................................. 322
+$( 1xa%pleH Power Source 0a%e Space #&#
++ TH1"MAL MA0A;1M10T#&A
+++ Ther%al Control #&A
44.4.4 Active, 'assive, and Critical 'olicies........................................................................................................32+
44.4.2 -(namicall( Changing Cooling Temperature Trip 'oints........................................................................329
44.4.3 -etecting Temperature Changes...............................................................................................................328
44.4." Active Cooling......................................................................................................................................... 33
44.4.* 'assive Cooling........................................................................................................................................ 33
44.4.+ Critical !hutdown..................................................................................................................................... 332
++& Cooling Preferences ###
44.2.4 .valuating Thermal -evice 1ists.............................................................................................................33"
44.2.2 .valuating -evice Thermal 3elationship %nformation..............................................................................33*
++# Ther%al 3!Cects ##A
44.3.4 CACx =Active Cooling>............................................................................................................................. 33+
44.3.2 CA1x =Active 1ist>................................................................................................................................... 33+
44.3.3 CC3T =Critical Temperature>....................................................................................................................33+
44.3." C@2T =@ot Temperature>......................................................................................................................... 339
44.3.* C'!1 ='assive 1ist>.................................................................................................................................. 339
44.3.+ C'!D ='assive>......................................................................................................................................... 339
44.3.9 C3TD =3elative Temperature Dalues>....................................................................................................... 338
44.3.8 C!C' =!et Cooling 'olic(>.......................................................................................................................338
44.3.6 CTC4 =Thermal Constant 4>......................................................................................................................3"4
44.3.4 CTC2 =Thermal Constant 2>....................................................................................................................3"4
44.3.44 CTM' =Temperature>.............................................................................................................................. 3"4
44.3.42 CT'T =Trip 'oint Temperature>..............................................................................................................3"4
44.3.43 CT3T =Thermal 3elationship Ta0le>.......................................................................................................3"4
44.3.4" CT!' =Thermal !ampling 'eriod>...........................................................................................................3"2
44.3.4* CT!T =Temperature !ensor Threshold>...................................................................................................3"3
44.3.4+ CT?- =Thermal ?one -evices>.............................................................................................................. 3"3
44.3.49 CT?M =Thermal ?one Mem0er>.............................................................................................................3"3
44.3.48 CT?' =Thermal ?one 'olling>................................................................................................................ 3"3
++( 0ative 3S 5evice 5river Ther%al Interfaces#((
++A Ther%al Ione Interface "eJuire%ents #((
++- Ther%al Ione 1xa%ples #(A
44.+.4 ./ample< The ;asic Thermal ?one.......................................................................................................... 3"*
44.+.2 ./ample< Multiple&!peed 5ans................................................................................................................. 3"+
44.+.3 ./ample< Thermal ?one with Multiple -evices.......................................................................................3"8
+& ACPI 1M<15515 C30T"3LL1" I0T1"6AC1 SP1CI6ICATI30#A#
+&+ 1%!edded Controller Interface 5escription#A#
+&& 1%!edded Controller "egister 5escriptions#A-
42.2.4 .m0edded Controller !tatus, .CC!C =3>.................................................................................................3*9
42.2.2 .m0edded Controller Command, .CC!C =W>.........................................................................................3*8
42.2.3 .m0edded Controller -ata, .CC-ATA =3FW>.........................................................................................3*8
+&# 1%!edded Controller Co%%and Set#A/
42.3.4 3ead .m0edded Controller, 3-C.C =/8>.............................................................................................3*8
42.3.2 Write .m0edded Controller, W3C.C =/84>...........................................................................................3*8
42.3.3 ;urst .na0le .m0edded Controller, ;.C.C =/82>.................................................................................3*6
42.3." ;urst -isa0le .m0edded Controller, ;-C.C =/83>...............................................................................3*6
42.3.* Guer( .m0edded Controller, G3C.C =/8">...........................................................................................3*6
+&( SM<us Host Controller 0otification Header >3ptional?' 3SDSM<D17T#-$
+&A 1%!edded Controller 6ir%ware #-$
+&- Interrupt Model #-$
42.+.4 .vent %nterrupt Model.............................................................................................................................. 3+4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/i
42.+.2 Command %nterrupt Model.......................................................................................................................3+4
+&. 1%!edded Controller Interfacing Algorith%s#-+
+&/ 1%!edded Controller 5escription Infor%ation#-&
+&, SM<us Host Controller Interface via 1%!edded Controller#-&
42.6.4 3egister -escription................................................................................................................................. 3+2
42.6.2 'rotocol -escription................................................................................................................................. 3++
42.6.3 !M;us 3egister !et................................................................................................................................. 39
+&+$ SM<us 5evices #.+
42.4.4 !M;us -evice Access 3estrictions........................................................................................................392
42.4.2 !M;us -evice Command Access 3estriction........................................................................................392
+&++ 5efining an 1%!edded Controller 5evice in ACPI 0a%espace#.&
42.44.4 ./ample< .C -efinition A!1 Code........................................................................................................ 393
+&+& 5efining an 1C SM<us Host Controller in ACPI 0a%espace#.#
42.42.4 ./ample< .C !M;us @ost Controller A!1&Code..................................................................................393
+# ACPI S4ST1M MA0A;1M10T <2S I0T1"6AC1 SP1CI6ICATI30#.A
+#+ SM<us 3verview #.A
43.4.4 !M;us !lave Addresses...........................................................................................................................39*
43.4.2 !M;us 'rotocols...................................................................................................................................... 39*
43.4.3 !M;us !tatus Codes................................................................................................................................ 39+
43.4." !M;us Command Dalues......................................................................................................................... 39+
+#& 5eclaring SM<us Host Controller 3!Cects#..
+## 5eclaring SM<us 5evices #..
+#( 5eclaring SM<us 3peration "egions#./
+#A 5eclaring SM<us 6ields #.,
+#- 5eclaring and 2sing an SM<us 5ata <uffer#/+
+#. 2sing the SM<us Protocols #/&
43.9.4 3eadFWrite Guick =!M;Guick>...............................................................................................................382
43.9.2 !endF3eceive ;(te =!M;!end3eceive>...................................................................................................382
43.9.3 3eadFWrite ;(te =!M;;(te>....................................................................................................................383
43.9." 3eadFWrite Word =!M;Word>.................................................................................................................383
43.9.* 3eadFWrite ;lock =!M;;lock>................................................................................................................38"
43.9.+ Word 'rocess Call =!M;'rocessCall>......................................................................................................38*
43.9.9 ;lock 'rocess Call =!M;;lock'rocessCall>............................................................................................38*
+( S4ST1M A55"1SS MAP I0T1"6AC1S#/.
+(+ I0T +AH' 1/&$H - Kuer) S)ste% Address Map#/.
+(& 1/&$ Assu%ptions and Li%itations #/,
+(# 16I ;etMe%or)Map>? <oot Services 6unction#/,
+(( 16I Assu%ptions and Li%itations #,+
+(A 1xa%ple Address Map #,+
+(- 1xa%pleH 3perating S)ste% 2sage#,#
+A :AEI0; A05 SL11PI0;#,A
+A+ Sleeping States #,-
4*.4.4 !4 !leeping !tate..................................................................................................................................... 368
4*.4.2 !2 !leeping !tate..................................................................................................................................... 368
4*.4.3 !3 !leeping !tate..................................................................................................................................... 366
4*.4." !" !leeping !tate..................................................................................................................................... 366
4*.4.* !* !oft 2ff !tate...................................................................................................................................... "
4*.4.+ Transitioning from the Working to the !leeping !tate.............................................................................."4
4*.4.9 Transitioning from the Working to the !oft 2ff !tate..............................................................................."4
+A& 6lushing Caches ($+
+A# InitialiBation ($&
4*.3.4 'lacing the !(stem in AC'% Mode........................................................................................................... ""
4*.3.2 ;%2! %nitialiHation of Memor(................................................................................................................. "*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/ii
4*.3.3 2! 1oading.............................................................................................................................................. "9
4*.3." ./iting AC'% Mode.................................................................................................................................. "8
+- 030-20I63"M M1M3"4 ACC1SS >02MA? A"CHIT1CT2"1 PLAT63"MS($,
+-+ 02MA 0ode ($,
+-& S)ste% Localit) ($,
4+.2.4 !(stem 3esource Affinit( Ta0le -efinition.............................................................................................."6
+-# S)ste% Localit) 5istance Infor%ation(+$
+. ACPI S32"C1 LA0;2A;1 >ASL? "161"10C1(++
+.+ ASL Language ;ra%%ar (++
49.4.4 A!1 $rammar Notation........................................................................................................................... "42
49.4.2 A!1 Name and 'athname Terms.............................................................................................................. "43
49.4.3 A!1 3oot and !econdar( Terms............................................................................................................... "43
49.4." A!1 -ata and Constant Terms.................................................................................................................. "4"
49.4.* A!1 2pcode Terms.................................................................................................................................. "4+
49.4.+ A!1 'rimar( =Terminal> Terms................................................................................................................"49
49.4.9 A!1 'arameter Ee(word Terms..............................................................................................................."2+
49.4.8 A!1 3esource Template Terms................................................................................................................. "29
+.& ASL Concepts (##
49.2.4 A!1 Names.............................................................................................................................................. "33
49.2.2 A!1 1iteral Constants.............................................................................................................................. "33
49.2.3 A!1 3esource Templates.......................................................................................................................... "3*
49.2." A!1 Macros............................................................................................................................................. "3+
49.2.* A!1 -ata T(pes........................................................................................................................................ "3+
+.# ASL 3perator Su%%ar) ((.
+.( ASL 3perator Su%%ar) <) T)pe ((,
+.A ASL 3perator "eference (A&
49.*.4 Ac:uire =Ac:uire a Mute/>......................................................................................................................."*2
49.*.2 Add =%nteger Add>.................................................................................................................................... "*2
49.*.3 Alias =-eclare Name Alias>......................................................................................................................"*3
49.*." And =%nteger ;itwise And>....................................................................................................................... "*3
49.*.* Argx =Method Argument -ata 20#ects>...................................................................................................."*3
49.*.+ ;ank5ield =-eclare ;ankF-ata 5ield>......................................................................................................"*3
49.*.9 ;reak =;reak from While>........................................................................................................................ "*"
49.*.8 ;reak'oint =./ecution ;reak 'oint>........................................................................................................"**
49.*.6 ;uffer =-eclare ;uffer 20#ect>................................................................................................................."**
49.*.4 Case =./pression for Conditional ./ecution>........................................................................................."**
49.*.44 Concatenate =Concatenate -ata>............................................................................................................. "*+
49.*.42 Concatenate3esTemplate =Concatenate 3esource Templates>................................................................"*+
49.*.43 Cond3ef2f =Create 20#ect 3eference Conditionall(>............................................................................"*+
49.*.4" Continue =Continue %nnermost .nclosing While>..................................................................................."*9
49.*.4* Cop(20#ect =Cop( and !tore 20#ect>....................................................................................................."*9
49.*.4+ Create;it5ield =Create 4&;it ;uffer 5ield>............................................................................................."*9
49.*.49 Create;(te5ield =Create 8&;it ;uffer 5ield>..........................................................................................."*8
49.*.48 Create-Word5ield =Create 32&;it ;uffer 5ield>....................................................................................."*8
49.*.46 Create5ield =Create Ar0itrar( 1ength ;uffer 5ield>................................................................................"*8
49.*.2 CreateGWord5ield =Create +"&;it ;uffer 5ield>....................................................................................."*8
49.*.24 CreateWord5ield =Create 4+&;it ;uffer 5ield>......................................................................................."*6
49.*.22 -ataTa0le3egion =Create -ata Ta0le 2peration 3egion>......................................................................."*6
49.*.23 -e0ug =-e0ugger 2utput>......................................................................................................................"*6
49.*.2" -ecrement =%nteger -ecrement>............................................................................................................. "+
49.*.2* -efault =-efault ./ecution 'ath in !witch>..........................................................................................."+
49.*.2+ -efinition;lock =-eclare -efinition ;lock>..........................................................................................."+
49.*.29 -eref2f =-ereference an 20#ect 3eference>.........................................................................................."+4
49.*.28 -evice =-eclare ;usF-evice 'ackage>..................................................................................................."+4
49.*.26 -ivide =%nteger -ivide>.......................................................................................................................... "+2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/iii
49.*.3 -MA =-MA 3esource -escriptor Macro>.............................................................................................."+3
49.*.34 -Word%2 =-Word %2 3esource -escriptor Macro>..............................................................................."+3
49.*.32 -WordMemor( =-Word Memor( 3esource -escriptor Macro>............................................................."+*
49.*.33 -Word!pace =-Word !pace 3esource -escriptor Macro>....................................................................."++
49.*.3" .%!A%- =.%!A %- !tring To %nteger Conversion Macro>......................................................................."+9
49.*.3* .lse =Alternate ./ecution>..................................................................................................................... "+8
49.*.3+ .lse%f =AlternateFConditional ./ecution>..............................................................................................."+8
49.*.39 .nd-ependent5n =.nd -ependent 5unction 3esource -escriptor Macro>............................................."+6
49.*.38 .vent =-eclare .vent !(nchroniHation 20#ect>......................................................................................"+6
49.*.36 ./tended%2 =./tended %2 3esource -escriptor Macro>........................................................................."9
49.*." ./tendedMemor( =./tended Memor( 3esource -escriptor Macro>......................................................"94
49.*."4 ./tended!pace =./tended Address !pace 3esource -escriptor Macro>................................................."93
49.*."2 ./ternal =-eclare ./ternal 20#ects>......................................................................................................."9"
49.*."3 5atal =5atal .rror Check>........................................................................................................................"9"
49.*."" 5ield =-eclare 5ield 20#ects>................................................................................................................."9*
49.*."* 5ind!et1eft;it =5ind 5irst !et 1eft ;it>................................................................................................."99
49.*."+ 5ind!et3ight;it =5ind 5irst !et 3ight ;it>............................................................................................."99
49.*."9 5i/ed%2 =5i/ed %2 3esource -escriptor Macro>...................................................................................."99
49.*."8 5rom;C- =Convert ;C- To %nteger>...................................................................................................."98
49.*."6 5unction =-eclare Control Method>......................................................................................................."98
49.*.* %f =Conditional ./ecution>......................................................................................................................"96
49.*.*4 %nclude =%nclude Additional A!1 5ile>...................................................................................................."96
49.*.*2 %ncrement =%nteger %ncrement>................................................................................................................ "8
49.*.*3 %nde/ =%nde/ed 3eference To Mem0er 20#ect>......................................................................................."8
49.*.*" %nde/5ield =-eclare %nde/F-ata 5ields>.................................................................................................."82
49.*.** %nterrupt =%nterrupt 3esource -escriptor Macro>...................................................................................."83
49.*.*+ %2 =%2 3esource -escriptor Macro>......................................................................................................."8"
49.*.*9 %3G =%nterrupt 3esource -escriptor Macro>..........................................................................................."8*
49.*.*8 %3GNo5lags =%nterrupt 3esource -escriptor Macro>.............................................................................."8*
49.*.*6 1And =1ogical And>............................................................................................................................... "8+
49.*.+ 1.:ual =1ogical .:ual>.......................................................................................................................... "8+
49.*.+4 1$reater =1ogical $reater>..................................................................................................................... "8+
49.*.+2 1$reater.:ual =1ogical $reater Than 2r .:ual>..................................................................................."89
49.*.+3 11ess =1ogical 1ess>.............................................................................................................................. "89
49.*.+" 11ess.:ual =1ogical 1ess Than 2r .:ual>............................................................................................."89
49.*.+* 1Not =1ogical Not>................................................................................................................................ "88
49.*.++ 1Not.:ual =1ogical Not .:ual> >........................................................................................................... "88
49.*.+9 1oad =1oad -efinition ;lock>................................................................................................................ "88
49.*.+8 1oadTa0le =1oad -efinition ;lock 5rom A!-T>..................................................................................."86
49.*.+6 1ocalx =Method 1ocal -ata 20#ects>......................................................................................................"6
49.*.9 12r =1ogical 2r>.................................................................................................................................... "6
49.*.94 Match =5ind 20#ect Match>...................................................................................................................."6
49.*.92 Memor(2" =Memor( 3esource -escriptor Macro>................................................................................"64
49.*.93 Memor(32 =Memor( 3esource -escriptor Macro>................................................................................"62
49.*.9" Memor(325i/ed =Memor( 3esource -escriptor Macro>........................................................................"63
49.*.9* Method =-eclare Control Method>........................................................................................................."63
49.*.9+ Mid =./tract 'ortion of ;uffer or !tring>..............................................................................................."6"
49.*.99 Mod =%nteger Modulo>............................................................................................................................"6"
49.*.98 Multipl( =%nteger Multipl(>...................................................................................................................."6*
49.*.96 Mute/ =-eclare !(nchroniHationFMute/ 20#ect>...................................................................................."6*
49.*.8 Name =-eclare Named 20#ect>.............................................................................................................."6*
49.*.84 NAnd =%nteger ;itwise Nand>................................................................................................................."6+
49.*.82 No2p Code =No 2peration>................................................................................................................... "6+
49.*.83 N2r =%nteger ;itwise Nor>...................................................................................................................... "6+
49.*.8" Not =%nteger ;itwise Not>....................................................................................................................... "69
49.*.8* Notif( =Notif( 20#ect of .vent>............................................................................................................. "69
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/iv
49.*.8+ 20#ectT(pe =$et 20#ect T(pe>................................................................................................................"69
49.*.89 2ne =Constant 2ne 20#ect>...................................................................................................................."68
49.*.88 2nes =Constant 2nes 20#ect>................................................................................................................."68
49.*.86 2peration3egion =-eclare 2peration 3egion>........................................................................................"68
49.*.6 2r =%nteger ;itwise 2r>.......................................................................................................................... *
49.*.64 'ackage =-eclare 'ackage 20#ect>......................................................................................................... *
49.*.62 'ower3esource =-eclare 'ower 3esource>............................................................................................*4
49.*.63 'rocessor =-eclare 'rocessor>................................................................................................................ *4
49.*.6" GWord%2 =GWord %2 3esource -escriptor Macro>...............................................................................*2
49.*.6* GWordMemor( =GWord Memor( 3esource -escriptor Macro>.............................................................*3
49.*.6+ GWord!pace =GWord !pace 3esource -escriptor Macro>.....................................................................**
49.*.69 3ef2f =Create 20#ect 3eference>...........................................................................................................*+
49.*.68 3egister =$eneric 3egister 3esource -escriptor Macro>........................................................................*9
49.*.66 3elease =3elease a Mute/ !(nchroniHation 20#ect>...............................................................................*9
49.*.4 3eset =3eset an .vent !(nchroniHation 20#ect>...................................................................................*8
49.*.44 3esourceTemplate =3esource To ;uffer Conversion Macro>................................................................*8
49.*.42 3eturn =3eturn from Method ./ecution>..............................................................................................*8
49.*.43 3evision =Constant 3evision 20#ect>...................................................................................................*8
49.*.4" !cope =2pen Named !cope>.................................................................................................................*6
49.*.4* !hift1eft =%nteger !hift 1eft>................................................................................................................ *6
49.*.4+ !hift3ight =%nteger !hift 3ight>............................................................................................................ *4
49.*.49 !ignal =!ignal a !(nchroniHation .vent>..............................................................................................*4
49.*.48 !iHe2f =$et -ata 20#ect !iHe>.............................................................................................................. *4
49.*.46 !leep =Milliseconds !leep>................................................................................................................... *4
49.*.44 !tall =!tall for a !hort Time>................................................................................................................. *44
49.*.444 !tart-ependent5n =!tart -ependent 5unction 3esource -escriptor Macro>.........................................*44
49.*.442 !tart-ependent5nNo'ri =!tart -ependent 5unction 3esource -escriptor Macro>...............................*42
49.*.443 !tore =!tore an 20#ect>.........................................................................................................................*42
49.*.44" !u0tract =%nteger !u0tract>.................................................................................................................... *42
49.*.44* !witch =!elect Code To ./ecute ;ased 2n ./pression>.......................................................................*43
49.*.44+ Thermal?one =-eclare Thermal ?one>.................................................................................................*4"
49.*.449 Timer =$et +"&;it Timer Dalue>............................................................................................................*4*
49.*.448 To;C- =Convert %nteger to ;C->........................................................................................................ *4*
49.*.446 To;uffer =Convert -ata to ;uffer>.......................................................................................................*4+
49.*.42 To-ecimal!tring =Convert -ata to -ecimal !tring>.............................................................................*4+
49.*.424 To@e/!tring =Convert -ata to @e/adecimal !tring>............................................................................*4+
49.*.422 To%nteger =Convert -ata to %nteger>.....................................................................................................*4+
49.*.423 To!tring =Convert ;uffer To !tring>.....................................................................................................*49
49.*.42" To,,%- =Convert !tring to ,,%- Macro>...........................................................................................*49
49.*.42* ,nicode =!tring To ,nicode Conversion Macro>.................................................................................*48
49.*.42+ ,nload =,nload -efinition ;lock>.......................................................................................................*48
49.*.429 Dendor1ong =1ong Dendor 3esource -escriptor>.................................................................................*48
49.*.428 Dendor!hort =!hort Dendor 3esource -escriptor>................................................................................*46
49.*.426 Wait =Wait for a !(nchroniHation .vent>..............................................................................................*46
49.*.43 While =Conditional 1oop>....................................................................................................................*2
49.*.434 Word;usNum0er =Word ;us Num0er 3esource -escriptor Macro>....................................................*2
49.*.432 Word%2 =Word %2 3esource -escriptor Macro>...................................................................................*24
49.*.433 Word!pace =Word !pace 3esource -escriptor Macro> >......................................................................*23
49.*.43" A2r =%nteger ;itwise Aor>.................................................................................................................... *2"
49.*.43* ?ero =Constant ?ero 20#ect>.................................................................................................................*2"
+/ ACPI MACHI01 LA0;2A;1 >AML? SP1CI6ICATI30A&A
+/+ 0otation Conventions A&A
+/& AML ;ra%%ar 5efinition A&-
48.2.4 Ta0le and Ta0le @eader .ncoding............................................................................................................*2+
48.2.2 Name 20#ects .ncoding...........................................................................................................................*2+
48.2.3 -ata 20#ects .ncoding............................................................................................................................. *29
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/v
48.2." 'ackage 1ength .ncoding........................................................................................................................ *28
48.2.* Term 20#ects .ncoding............................................................................................................................ *28
48.2.+ Miscellaneous 20#ects .ncoding.............................................................................................................. *3"
+/# AML <)te Strea% <)te 7alues A#A
+/( AML 1ncoding of 0a%es in the 0a%espaceA#,
A 517IC1 CLASS PM SP1CI6ICATI30SA(+
A+ 3verview A(+
A& 5evice Power States A(+
A.2.4 ;us 'ower Management..........................................................................................................................*"2
A.2.2 -ispla( 'ower Management....................................................................................................................*"2
A.2.3 'CMC%AF'CCA3-FCard;us 'ower Management.................................................................................*"2
A.2." 'C% 'ower Management..........................................................................................................................*"2
A.2.* ,!; 'ower Management........................................................................................................................*"2
A.2.+ -evice Classes........................................................................................................................................ *"3
A# 5efault 5evice Class A(#
A.3.4 -efault 'ower !tate -efinitions.............................................................................................................. *"3
A.3.2 -efault 'ower Management 'olic(......................................................................................................... *"3
A.3.3 -efault Wake .vents............................................................................................................................... *""
A.3." Minimum 'ower Capa0ilities..................................................................................................................*""
A( Audio 5evice Class A((
A.".4 'ower !tate -efinitions...........................................................................................................................*""
A.".2 'ower Management 'olic(......................................................................................................................*""
A.".3 Wake .vents............................................................................................................................................ *"*
A."." Minimum 'ower Capa0ilities..................................................................................................................*"*
AA C3M Port 5evice Class A(A
A.*.4 'ower !tate -efinitions...........................................................................................................................*"+
A.*.2 'ower Management 'olic(......................................................................................................................*"+
A.*.3 Wake .vents............................................................................................................................................ *"+
A.*." Minimum 'ower Capa0ilities..................................................................................................................*"+
A- 5ispla) 5evice Class A(-
A.+.4 'ower !tate -efinitions...........................................................................................................................*"9
A.+.2 'ower Management 'olic( for the -ispla( Class....................................................................................**2
A.+.3 Wake .vents............................................................................................................................................ **3
A.+." Minimum 'ower Capa0ilities..................................................................................................................**3
A.+.* 'erformance !tates for -ispla( Class -evices.....................................................................................**3
A. Input 5evice Class AAA
A.9.4 'ower !tate -efinitions...........................................................................................................................***
A.9.2 'ower Management 'olic(......................................................................................................................***
A.9.3 Wake .vents............................................................................................................................................ **+
A.9." Minimum 'ower Capa0ilities..................................................................................................................**+
A/ Mode% 5evice Class AA-
A.8.4 Technolog( 2verview............................................................................................................................. **+
A.8.2 'ower !tate -efinitions...........................................................................................................................**9
A.8.3 'ower Management 'olic(......................................................................................................................**8
A.8." Wake .vents............................................................................................................................................ **8
A.8.* Minimum 'ower Capa0ilities..................................................................................................................**8
A, 0etwork 5evice Class AA,
A.6.4 'ower !tate -efinitions...........................................................................................................................**6
A.6.2 'ower Management 'olic(......................................................................................................................*+
A.6.3 Wake .vents............................................................................................................................................ *+
A.6." Minimum 'ower Capa0ilities..................................................................................................................*+
A+$ PC Card Controller 5evice ClassA-$
A.4.4 'ower !tate -efinitions.........................................................................................................................*+4
A.4.2 'ower Management 'olic(....................................................................................................................*+2
A.4.3 Wake .vents.......................................................................................................................................... *+2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
/vi
A.4." Minimum 'ower Capa0ilities................................................................................................................*+2
A++ Storage 5evice Class A-#
A.44.4 'ower !tate -efinitions......................................................................................................................... *+3
A.44.2 'ower Management 'olic(.................................................................................................................... *+"
A.44.3 Wake .vents.......................................................................................................................................... *+"
A.44." Minimum 'ower Capa0ilities................................................................................................................ *+"
< ACPI 1=T10SI30S 63" 5ISPLA4 A5APT1"SA-A
<+ Introduction A-A
<& 5efinitions A--
<# ACPI 0a%espace A--
<( 5ispla)-specific Methods A-.
;.".4 C-2! =.na0leF-isa0le 2utput !witching>..............................................................................................*+9
;.".2 C-2- =.numerate All -evices Attached to the -ispla( Adapter>...........................................................*+8
;.".3 C32M =$et 32M -ata>.......................................................................................................................... *94
;."." C$'- =$et '2!T -evice>....................................................................................................................... *92
;.".* C!'- =!et '2!T -evice>........................................................................................................................*92
;.".+ CD'2 =Dideo '2!T 2ptions>.................................................................................................................. *93
<A 0otifications for 5ispla) 5evices A.#
<- 3utput 5evice-specific Methods A.(
;.+.4 CA-3 =3eturn the ,ni:ue %- for this -evice>........................................................................................*9"
;.+.2 C;C1 =Guer( 1ist of ;rightness Control 1evels !upported>...................................................................*9"
;.+.3 C;CM =!et the ;rightness 1evel>............................................................................................................ *9*
;.+." C;GC =;rightness Guer( Current level>..................................................................................................*9*
;.+.* C--C =3eturn the .-%- for this -evice>................................................................................................*9*
;.+.+ C-C! =3eturn the !tatus of 2utput -evice>............................................................................................*9+
;.+.9 C-$! =Guer( $raphics !tate>................................................................................................................. *9+
;.+.8 C-!! I -evice !et !tate..........................................................................................................................*99
<. 0otifications Specific to 3utput 5evicesA./
</ 0otes on State Changes A./
I051=A/$
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4
1 Introduction
The Advanced Configuration and 'ower %nterface =AC'%> specification was developed to esta0lish industr(
common interfaces ena0ling ro0ust operating s(stem =2!>&directed mother0oard device configuration and
power management of 0oth devices and entire s(stems. AC'% is the ke( element in 2perating !(stem&
directed configuration and 'ower Management =2!'M>.
AC'% evolves the e/isting collection of power management ;%2! code, Advanced 'ower Management
=A'M> application programming interfaces =A'%s, 'N';%2! A'%s, Multiprocessor !pecification =M'!>
ta0les and so on into a well&defined power management and configuration interface specification. AC'%
provides the means for an orderl( transition from e/isting =legac(> hardware to AC'% hardware, and it
allows for 0oth AC'% and legac( mechanisms to e/ist in a single machine and to 0e used as needed.
5urther, new s(stem architectures are 0eing 0uilt that stretch the limits of current 'lug and 'la( interfaces.
AC'% evolves the e/isting mother0oard configuration interfaces to support these advanced architectures in
a more ro0ust, and potentiall( more efficient manner.
The interfaces and 2!'M concepts defined within this specification are suita0le to all classes of computers
including =0ut not limited to> desktop, mo0ile, workstation, and server machines. 5rom a power
management perspective, 2!'MFAC'% promotes the concept that s(stems should conserve energ( 0(
transitioning unused devices into lower power states including placing the entire s(stem in a low&power
state =sleeping state> when possi0le.
This document descri0es AC'% hardware interfaces, AC'% software interfaces and AC'% data structures
that, when implemented, ena0le support for ro0ust 2!&directed configuration and power management
=2!'M>.
1.1 Principal Goals
AC'% is the ke( element in implementing 2!'M. AC'%&defined interfaces are intended for wide adoption
to encourage hardware and software vendors to 0uild AC'%&compati0le =and, thus, 2!'M&compati0le>
implementations.
The principal goals of AC'% and 2!'M are to<
4. .na0le all computer s(stems to implement mother0oard configuration and power management
functions, using appropriate costFfunction tradeoffs.
Computer s(stems include =0ut are not limited to> desktop, mo0ile, workstation, and server
machines.
Machine implementers have the freedom to implement a wide range of solutions, from the ver(
simple to the ver( aggressive, while still maintaining full 2! support.
Wide implementation of power management will make it practical and compelling for applications
to support and e/ploit it. %t will make new uses of 'Cs practical and e/isting uses of 'Cs more
economical.
2. .nhance power management functionalit( and ro0ustness.
'ower management policies too complicated to implement in a 32M ;%2! can 0e implemented
and supported in the 2!, allowing ine/pensive power managed hardware to support ver( ela0orate
power management policies.
$athering power management information from users, applications, and the hardware together
into the 2! will ena0le 0etter power management decisions and e/ecution.
,nification of power management algorithms in the 2! will reduce conflicts 0etween the
firmware and 2! and will enhance relia0ilit(.
3. 5acilitate and accelerate industr(&wide implementation of power management.
2!'M and AC'% will reduce the amount of redundant investment in power management
throughout the industr(, as this investment and function will 0e gathered into the 2!. This will
allow industr( participants to focus their efforts and investments on innovation rather than simple
parit(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2 Advanced Configuration and 'ower %nterface !pecification
The 2! can evolve independentl( of the hardware, allowing all AC'%&compati0le machines to
gain the 0enefits of 2! improvements and innovations.
". Create a ro0ust interface for configuring mother0oard devices.
.na0le new advanced designs not possi0le with e/isting interfaces.
1.2 Power Management Rationale
%t is necessar( to move power management into the 2! and to use an a0stract interface =AC'%> 0etween the
2! and the hardware to achieve the principal goals set forth a0ove.
Minimal support for power management inhi0its application vendors from supporting or
e/ploiting it.
o Moving power management functionalit( into the 2! makes it availa0le on ever(
machine on which the 2! is installed. The level of functionalit( =power savings, and so
on> varies from machine to machine, 0ut users and applications will see the same power
interfaces and semantics on all 2!'M machines.
o This will ena0le application vendors to invest in adding power management functionalit(
to their products.
1egac( power management algorithms were restricted 0( the information availa0le to the ;%2!
that implemented them. This limited the functionalit( that could 0e implemented.
o CentraliHing power management information and directives from the user, applications,
and hardware in the 2! allows the implementation of more powerful functionalit(. 5or
e/ample, an 2! can have a polic( of dividing %F2 operations into normal and laH(. 1aH(
%F2 operations =such as a word processor saving files in the 0ackground> would 0e
gathered up into clumps and done onl( when the re:uired %F2 device is powered up for
some other reason. A non&laH( %F2 re:uest made when the re:uired device was powered
down would cause the device to 0e powered up immediatel(, the non&laH( %F2 re:uest to
0e carried out, and an( pending laH( %F2 operations to 0e done. !uch a polic( re:uires
knowing when %F2 devices are powered up, knowing which application %F2 re:uests are
laH(, and 0eing a0le to assure that such laH( %F2 operations do not starve.
o Appliance functions, such as answering machines, re:uire glo0all( coherent power
decisions. 5or e/ample, a telephone&answering application could call the 2! and assert,
J% am waiting for incoming phone callsK an( sleep state the s(stem enters must allow me
to wake and answer the telephone in 4 second.L Then, when the user presses the JoffL
0utton, the s(stem would pick the deepest sleep state consistent with the needs of the
phone answering service.
;%2! code has 0ecome ver( comple/ to deal with power management. %t is difficult to make work
with an 2! and is limited to static configurations of the hardware.
o There is much less state information for the ;%2! to retain and manage =0ecause the 2!
manages it>.
o 'ower management algorithms are unified in the 2!, (ielding much 0etter integration
0etween the 2! and the hardware.
o ;ecause additional AC'% ta0les =-efinition ;locks> can 0e loaded, for e/ample, when a
mo0ile s(stem docks, the 2! can deal with d(namic machine configurations.
o ;ecause the ;%2! has fewer functions and the( are simpler, it is much easier =and
therefore cheaper> to implement and support.
The e/isting structure of the 'C platform constrains 2! and hardware designs.
;ecause AC'% is a0stract, the 2! can evolve separatel( from the hardware and, likewise, the
hardware from the 2!.
AC'% is 0( nature more porta0le across operating s(stems and processors. AC'% control methods
allow for ver( fle/i0le implementations of particular features.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3
1.3 Legacy Support
AC'% provides support for an orderl( transition from legac( hardware to AC'% hardware, and allows for
0oth mechanisms to e/ist in a single machine and 0e used as needed.
Ta!le +-+ Hardware T)pe vs 3S T)pe Interaction
HardwareG3S Legac) 3S ACPI 3S with 3SPM
1egac( hardware A legac( 2! on legac( hardware
does what it alwa(s did.
%f the 2! lacks legac( support, legac(
support is completel( contained within
the hardware functions.
1egac( and AC'%
hardware support in
machine
%t works #ust like a legac( 2! on
legac( hardware.
-uring 0oot, the 2! tells the hardware to
switch from legac( to 2!'MFAC'%
mode and from then on, the s(stem has
full 2!'MFAC'% support.
AC'%&onl( hardware There is no power management. There is full 2!'MFAC'% support.
1.4 OEM Implementation Strategy
An( 2.M is, as alwa(s, free to 0uild hardware as the( see fit. $iven the e/istence of the AC'%
specification, two general implementation strategies are possi0le<
An original e:uipment manufacturer =2.M> can adopt the 2! vendor&provided AC'% 2!'M
software and implement the hardware part of the AC'% specification =for a given platform> in one of
man( possi0le wa(s.
An 2.M can develop a driver and hardware that are not AC'%&compati0le. This strateg( opens up
even more hardware implementation possi0ilities. @owever, 2.Ms who implement hardware that is
2!'M&compati0le 0ut not AC'%&compati0le will 0ear the cost of developing, testing, and distri0uting
drivers for their implementation.
1.5 Power and Sleep Buttons
2!'M provides a new appliance interface to consumers. %n particular, it provides for a sleep 0utton that is a
JsoftL 0utton that does not turn the machine ph(sicall( off 0ut signals the 2! to put the machine in a soft
off or sleeping state. AC'% defines two t(pes of these JsoftL 0uttons< one for putting the machine to sleep
and one for putting the machine in soft off.
This gives the 2.M two different wa(s to implement machines< A one&0utton model or a two&0utton
model. The one&0utton model has a single 0utton that can 0e used as a power 0utton or a sleep 0utton as
determined 0( user settings. The two&0utton model has an easil( accessi0le sleep 0utton and a separate
power 0utton. %n either model, an override feature that forces the machine to the soft&off state without
2!'M interaction is also needed to deal with various rare, 0ut pro0lematic, situations.
1.6 ACPI Specifcation and the Structure Of ACPI
This specification defines AC'% hardware interfaces, AC'% software interfaces and AC'% data structures.
This specification also defines the semantics of these interfaces.
5igure 4&4 la(s out the software and hardware components relevant to 2!'MFAC'% and how the( relate to
each other. This specification descri0es the interfaces between components, the contents of the AC'%
!(stem -escription Ta0les, and the related semantics of the other AC'% components. Notice that the AC'%
!(stem -escription Ta0les, which descri0e a particular platformMs hardware, are at heart of the AC'%
implementation and the role of the AC'% !(stem 5irmware is primaril( to suppl( the AC'% Ta0les =rather
than a native instruction A'%>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
" Advanced Configuration and 'ower %nterface !pecification
AC'% is not a software specificationK it is not a hardware specification, although it addresses 0oth software
and hardware and how the( must 0ehave. AC'% is, instead, an interface specification comprised of 0oth
software and hardware elements.
ACPI Tables ACPI BIOS ACPI Registers
Kernel
Device
Driver
ACPI
Register
Interface
ACPI Table
Interface
ACPI BIOS
Interface
- ACPI Spec Covers this area.
- OS specific technology not part of ACPI.
- !ar"#are$Platfor% specific technology not part of ACPI.
Platfor% !ar"#are
&'isting
in"(stry
stan"ar"
register
interfaces to)
C*OS PIC
PITs ...
ACPI Driver$
A*+ Interpreter
Applications
OS
Dependent
Application
APIs
OS Specific
technologies,
interfaces, and code.
OS
Independent
technologies,
interfaces,
code, and
hardware.
BIOS
OSP* Syste% Co"e
6igure +-+ 3SPM@ACPI ;lo!al S)ste%
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *
There are three run&time components to AC'%<
ACPI S)ste% 5escription Ta!les -escri0e the interfaces to the hardware. !ome descriptions
limit what can 0e 0uilt =for e/ample, some controls are em0edded in fi/ed 0locks of registers and the
ta0le specifies the address of the register 0lock>. Most descriptions allow the hardware to 0e 0uilt in
ar0itrar( wa(s and can descri0e ar0itrar( operation se:uences needed to make the hardware function.
AC'% Ta0les containing J-efinition ;locksL can make use of a pseudo&code t(pe of language, the
interpretation of which is performed 0( the 2!. That is, 2!'M contains and uses an interpreter that
e/ecutes procedures encoded in the pseudo&code language and stored in the AC'% ta0les containing
J-efinition ;locks.L The pseudo&code language, known as AC'% Machine 1anguage =AM1>, is a
compact, tokeniHed, a0stract t(pe of machine language.
ACPI "egisters The constrained part of the hardware interface, descri0ed =at least in location> 0(
the AC'% !(stem -escription Ta0les.
ACPI S)ste% 6ir%ware 3efers to the portion of the firmware that is compati0le with the AC'%
specifications. T(picall(, this is the code that 0oots the machine =as legac( ;%2!s have done> and
implements interfaces for sleep, wake, and some restart operations. %t is called rarel(, compared to a
legac( ;%2!. The AC'% -escription Ta0les are also provided 0( the AC'% !(stem 5irmware.
1.7 OS and Platform Compliance
The AC'% specification contains onl( interface specifications. AC'% does not contain an( platform
compliance re:uirements. The following sections provide guidelines for class specific platform
implementations that reference AC'%&defined interfaces and guidelines for enhancements that operating
s(stems ma( re:uire to completel( support 2!'MFAC'%. The minimum feature implementation
re:uirements of an AC'%&compati0le 2! are also provided.
1.7.1 Platform Implementations of ACPI-defned Interfaces
!(stem platforms implement AC'%&defined hardware interfaces via the platform hardware and AC'%&
defined software interfaces and s(stem description ta0les via the AC'% s(stem firmware. !pecific AC'%&
defined interfaces and 2!'M concepts while appropriate for one class of machine =for e/ample, a mo0ile
s(stem>, ma( not 0e appropriate for another class of machine =for e/ample, a multi&domain enterprise
server>. %t is 0e(ond the capa0ilit( and scope of this specification to specif( all platform classes and the
appropriate AC'%&defined interfaces that should 0e re:uired for the platform class.
'latform design guide authors are encouraged to re:uire the appropriate AC'%&defined interfaces and
hardware re:uirements suita0le to the particular s(stem platform class addressed in a particular design
guide. 'latform design guides should not define alternative interfaces that provide similar functionalit( to
those defined in the AC'% specification.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+ Advanced Configuration and 'ower %nterface !pecification
1.7.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9
Recommended Features and Interface Descriptions for Design Guides
Common description te/t and categor( names should 0e used in design guides to descri0e all features,
concepts, and interfaces defined 0( the AC'% specification as re:uirements for a platform class. 1isted
0elow is the recommended set of high&level te/t and categor( names to 0e used to descri0e the features,
concepts, and interfaces defined 0( AC'%.
0oteH Where definitions or relational re:uirements of interfaces are localiHed to a specific section, the
section num0er is provided. The interface definitions and relational re:uirements of the interfaces specified
0elow are generall( spread throughout the AC'% specification. The AC'% specification defines<
System address map reporting interfaces (Section 14)
ACPI System Description Tables (Section !")#
$oot System Description Pointer ($SDP)
System Description Table %eader
$oot System Description Table ($SDT)
&ixed ACPI Description Table (&ADT)
&irmware ACPI Control Str'ct're (&ACS)
Differentiated System Description Table (DSDT)
Secondary System Description Table (SSDT)
('ltiple APIC Description Table ((ADT)
Smart )attery Table (S)ST)
*xtended System Description Table (+SDT)
*mbedded Controller )oot $eso'rces Table
System $eso'rce Affinity Table (S$AT)
System ,ocality Information Table (S,IT)
ACPI-defined &ixed $egisters Interfaces (Section 4. Section !"!/)#
Power management timer control0stat's
Power or sleep b'tton wit1 S o2erride (also possible in generic space)
$eal time cloc3 wa3e'p alarm control0stat's
SCI 0S(I ro'ting control0stat's for Power (anagement and 4eneral-p'rpose e2ents
System power state controls (sleeping0wa3e control) (Section 15)
Processor power state control (c states) (Section 6)
Processor t1rottling control0stat's (Section 6)
Processor performance state control0stat's (Section 6)
4eneral-p'rpose e2ent control0stat's
4lobal ,oc3 control0stat's
System $eset control (Section 4!7!8!9)
*mbedded Controller control0stat's (Section 1")
S()'s %ost Controller (%C) control0stat's (Section 18)
Smart )attery S'bsystem (Section 15!1)
ACPI-defined 4eneric $egister Interfaces and ob:ect definitions in t1e ACPI ;amespace (Section 4!".
Section !9!)#
4eneral-p'rpose e2ent processing
(ot1erboard de2ice identification. config'ration. and insertion0remo2al (Section 9)
T1ermal <ones (Section 11)
Power reso'rce control (Section 7!1)
De2ice power state control (Section 7!")
System power state control (Section 7!8)
System indicators (Section /!1)
De2ices and de2ice controls (Section /)#
Processor (Section 6)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8 Advanced Configuration and 'ower %nterface !pecification
Control (et1od )attery (Section 15)
Smart )attery S'bsystem (Section 15)
(obile ,id
Power or sleep b'tton wit1 S o2erride (also possible in fixed space)
*mbedded controller (Section 1")
&an
4eneric )'s )ridge
ATA Controller
&loppy Controller
4P* )loc3
(od'le
(emory
4lobal ,oc3 related interfaces
ACPI *2ent programming model (Section !9)
ACPI-defined System )I=S $esponsibilities (Section 1)
ACPI-defined State Definitions (Section ")#
4lobal system power states (4-states. S5. S)
System sleeping states (S-states S1-S4) (Section 1)
De2ice power states (D-states (Appendix )))
Processor power states (C-states) (Section 6)
De2ice and processor performance states (P-states) (Section 8. Section 6)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 6
1.7.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4 Advanced Configuration and 'ower %nterface !pecification
Terminology Examples for Design Guides
The following provides an e/ample of how a client platform design guide, whose goal is to re:uire ro0ust
configuration and power management for the s(stem class, could use the recommended terminolog( to
define AC'% re:uirements.
I%portantH This e/ample is provided as a guideline for how AC'% terminolog( can 0e used. %t should not
0e interpreted as a statement of AC'% re:uirements.
Platforms compliant wit1 t1is platform design g'ide m'st implement t1e following ACPI defined system
feat'res. concepts. and interfaces. along wit1 t1eir associated e2ent models#
System address map reporting interfaces
ACPI System Description Tables pro2ided in t1e system firmware
ACPI-defined &ixed $egisters Interfaces#
Power management timer control0stat's
Power or sleep b'tton wit1 S o2erride (may also be implemented in generic register space)
$eal time cloc3 wa3e'p alarm control0stat's
4eneral-p'rpose e2ent control0stat's
SCI 0S(I ro'ting control0stat's for Power (anagement and 4eneral-p'rpose e2ents
(control re>'ired only if system s'pports legacy mode)
System power state controls (sleeping0wa3e control)
Processor power state control (for C1)
4lobal ,oc3 control0stat's (if 4lobal ,oc3 interfaces are re>'ired by t1e system)
ACPI-defined 4eneric $egister Interfaces and ob:ect definitions in t1e ACPI ;amespace#
4eneral-p'rpose e2ent processing
(ot1erboard de2ice identification. config'ration. and insertion0remo2al (Section 9)
System power state control ( Section 7!8)
De2ices and de2ice controls#
Processor
Control (et1od )attery (or Smart )attery S'bsystem on a mobile system)
Smart )attery S'bsystem (or Control (et1od )attery on a mobile system)
Power or sleep b'tton wit1 S o2erride (may also be implemented in fixed register space)
4lobal ,oc3 related interfaces w1en a logical register in t1e 1ardware is s1ared between =S
and firmware en2ironments
ACPI *2ent programming model (Section !9)
ACPI-defined System )I=S $esponsibilities (Section 1)
ACPI-defined State Definitions#
System sleeping states (At least one system sleeping state. S1-S4. m'st be implemented)
De2ice power states (D-states m'st be implemented in accordance wit1 de2ice class
specifications)
Processor power states (All processors m'st s'pport t1e C1 Power State)
The following provides an e/ample of how a design guide for s(stems that e/ecute multiple 2! instances,
whose goal is to re:uire ro0ust configuration and continuous availa0ilit( for the s(stem class, could use the
recommended terminolog( to define AC'% related re:uirements.
I%portantH This e/ample is provided as a guideline for how AC'% terminolog( can 0e used. %t should not
0e interpreted as a statement of AC'% re:uirements.
Platforms compliant wit1 t1is platform design g'ide m'st implement t1e following ACPI defined system
feat'res and interfaces. along wit1 t1eir associated e2ent models#
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 44
System address map reporting interfaces
ACPI System Description Tables pro2ided in t1e system firmware
ACPI-defined &ixed $egisters Interfaces#
Power management timer control0stat's
4eneral-p'rpose e2ent control0stat's
SCI 0S(I ro'ting control0stat's for Power (anagement and 4eneral-p'rpose e2ents
(control re>'ired only if system s'pports legacy mode)
System power state controls (sleeping0wa3e control)
Processor power state control (for C1)
4lobal ,oc3 control0stat's (if 4lobal ,oc3 interfaces are re>'ired by t1e system)
ACPI-defined 4eneric $egister Interfaces and ob:ect definitions in t1e ACPI ;amespace#
4eneral-p'rpose e2ent processing
(ot1erboard de2ice identification. config'ration. and insertion0remo2al (Section 9)
System power state control (Section 7!8)
System indicators
De2ices and de2ice controls#
Processor
4lobal ,oc3 related interfaces w1en a logical register in t1e 1ardware is s1ared between =S
and firmware en2ironments
ACPI *2ent programming model ( Section !9)
ACPI-defined System )I=S $esponsibilities (Section 1)
ACPI-defined State Definitions#
Processor power states (All processors m'st s'pport t1e C1 Power State)
1.7.2 OSPM Implementations
2! enhancements are needed to support AC'%&defined features, concepts, and interfaces, along with their
associated event models appropriate to the s(stem platform class upon which the 2! e/ecutes. This is the
implementation of 2!'M. The following outlines the 2! enhancements and elements necessar( to support
all AC'%&defined interfaces. To support AC'% through the implementation of 2!'M, the 2! needs to 0e
modified to<
,se s(stem address map reporting interfaces.
5ind and consume the AC'% !(stem -escription Ta0les.
%nterpret AC'% machine language =AM1>.
.numerate and configure mother0oard devices descri0ed in the AC'% Namespace.
%nterface with the power management timer.
%nterface with the real&time clock wake alarm.
.nter AC'% mode =on legac( hardware s(stems>.
%mplement device power management polic(.
%mplement power resource management.
%mplement processor power states in the scheduler idle handlers.
Control processor and device performance states.
%mplement the AC'% thermal model.
!upport the AC'% .vent programming model including handling !C% interrupts, managing fi/ed
events, general&purpose events, em0edded controller interrupts, and d(namic device support.
!upport ac:uisition and release of the $lo0al 1ock.
,se the reset register to reset the s(stem.
'rovide A'%s to influence power management polic(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
42 Advanced Configuration and 'ower %nterface !pecification
%mplement driver support for AC'%&defined devices.
%mplement A'%s supporting the s(stem indicators.
!upport all s(stem states !4I!*.
1.7.3 OS Requirements
The following list descri0es the minimum re:uirements for an 2!'MFAC'%&compati0le 2!<
,se s(stem address map reporting interfaces to get the s(stem address map on %ntel Architecture
=%A> platforms<
%NT 4*@, .82@ & Guer( !(stem Address Map interface =see section 4", J!(stem Address Map
%nterfacesL>
.5% $etMemor(Map=> ;oot !ervices 5unction =see section 4", J!(stem Address Map %nterfacesL>
5ind and consume the AC'% !(stem -escription Ta0les =see section *, JAC'% !oftware
'rogramming ModelL>.
%mplementation of an AM1 interpreter supporting all defined AM1 grammar elements =see section
48, AC'% Machine 1anguage !pecificationL>.
!upport for the AC'% .vent programming model including handling !C% interrupts, managing
fi/ed events, general&purpose events, em0edded controller interrupts, and d(namic device support.
.numerate and configure mother0oard devices descri0ed in the AC'% Namespace.
%mplement support for the following AC'% devices defined within this specification<
.m0edded Controller -evice =see section 42, JAC'% .m0edded Controller %nterface
!pecificationL>
$'. ;lock -evice =see section 6.44, J$'. ;lock -eviceL>
Module -evice =see section 6.42, JModule -eviceL>
%mplementation of the AC'% thermal model =see section 44, JThermal ManagementL>.
!upport ac:uisition and release of the $lo0al 1ock.
2!&directed power management support =device drivers are responsi0le for maintaining device
conte/t as descri0ed 0( the -evice 'ower Management Class !pecifications descri0ed in Appendi/ A>.
1.8 Target Audience
This specification is intended for the following users<
2.Ms 0uilding hardware containing AC'%&compati0le interfaces
2perating s(stem and device driver developers
;%2! and AC'% s(stem firmware developers
C', and chip set vendors
'eripheral vendors
1.9 Document Organization
The AC'% specification document is organiHed into the following four parts<
The first part of the specification =sections 4 through 3> introduces AC'% and provides an
e/ecutive overview.
The second part =sections " and *> defines the AC'% hardware and software programming models.
The third part =sections + through 4+> specifies the AC'% implementation detailsK this part of the
specification is primaril( for developers.
The fourth part =sections 49 and 48> is technical reference materialK section 49 is the AC'% !ource
1anguage =A!1> reference, parts of which are referred to 0( most of the other sections in the
document.
Appendices contain device class specifications, descri0ing power management characteristics of
specific classes of devices, and device class&specific AC'% interfaces.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 43
1.9.1 ACPI Introduction and Overview
The first three sections of the specification provide an e/ecutive overview of AC'%.
Section +H Introduction -iscusses the purpose and goals of the specification, presents an overview of the
AC'%&compati0le s(stem architecture, specifies the minimum re:uirements for an AC'%&compati0le
s(stem, and provides references to related specifications.
Section &H 5efinition of Ter%s -efines the ke( terminolog( used in this specification. %n particular, the
glo0al s(stem states =Mechanical 2ff, !oft 2ff, !leeping, Working, and Non&Dolatile !leep> are defined in
this section, along with the device power state definitions< 2ff =-3>, -2, -4, and 5ull(&2n =->. -evice
and processor performance states =', '4, N'n> are also discussed.
Section #H ACPI 3verview $ives an overview of the AC'% specification in terms of the functional areas
covered 0( the specification< s(stem power management, device power management, processor power
management, 'lug and 'la(, handling of s(stem events, 0atter( management, and thermal management.
1.9.2 Programming Models
!ections " and * define the AC'% hardware and software programming models. This part of the
specification is primaril( for s(stem designers, developers, and pro#ect managers.
All of the implementation&oriented, reference, and platform e/ample sections of the specification that
follow =all the rest of the sections of the specification> are 0ased on the models defined in sections " and *.
These sections are the heart of the AC'% specification. There are e/tensive cross&references 0etween the
two sections.
Section (H ACPI Hardware Specification -efines a set of hardware interfaces that meet the goals of this
specification.
Section AH ACPI Software Progra%%ing Model -efines a set of software interfaces that meet the goals
of this specification.
1.9.3 Implementation Details
The third part of the specification defines the implementation details necessar( to actuall( 0uild
components that work on an AC'%&compati0le platform. This part of the specification is primaril( for
developers.
Section -H Configuration -efines the reserved 'lug and 'la( o0#ects used to configure and assign
resources to devices, and share resources and the reserved o0#ects used to track device insertion and
removal. Also defines the format of AC'%&compati0le resource descriptors.
Section .H Power and Perfor%ance Manage%ent -efines the reserved device power&management
o0#ects and the reserved&s(stem power&management o0#ects.
Section /H Processor Control -efines how the 2! manages the processorsM power consumption and other
controls while the s(stem is in the working state.
Section ,H ACPI-Specific 5evice 3!Cects 1ists the integrated devices that need support for some device&
specific AC'% controls, along with the device&specific AC'% controls that can 0e provided. Most device
o0#ects are controlled through generic o0#ects and control methods and have generic device %-sK this
section discusses the e/ceptions.
Section +$H Power Source 5evices -efines the reserved 0atter( device and AC adapter o0#ects.
Section ++H Ther%al Manage%ent -efines the reserved thermal management o0#ects.
Section +&H ACPI 1%!edded Controller Interface Specification -efines the interfaces 0etween an
AC'%&compati0le 2! and an em0edded controller.
Section +#H ACPI S)ste% Manage%ent <us Interface Specification -efines the interfaces 0etween an
AC'%&compati0le 2! and a !(stem Management ;us =!M;us> host controller.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4" Advanced Configuration and 'ower %nterface !pecification
Section +(H S)ste% Address Map Interfaces ./plains the special %NT 4* call for use in %!AF.%!AF'C%
0us&0ased s(stems. This call supplies the 2! with a clean memor( map indicating address ranges that are
reserved and ranges that are availa0le on the mother0oard. .5%&0ased memor( address map reporting
interfaces are also descri0ed. Also descri0es memor( devices.
Section +AH :aking and Sleeping -efines in detail the transitions 0etween s(stem working and sleeping
states and their relationship to wake events. 3efers to the reserved o0#ects defined in sections +, 9, and 8.
Section +-H 0on-2nifor% Me%or) Access >02MA? Architecture Platfor%s -iscusses in detail how
AC'% define interfaces can 0e used to descri0e a N,MA architecture platform. 3efers to the reserved
o0#ects defined in sections *, +, 8, and 6.
2 Technical Reference
The fourth part of the specification contains reference material for developers.
Section +.H ACPI Source Language "eference -efines the s(nta/ of all the A!1 statements that can 0e
used to write AC'% control methods, along with e/ample s(nta/ usage.
Section +/H ACPI Machine Language Specification -efines the grammar of the language of the AC'%
virtual machine language. An A!1 translator =compiler> outputs AM1.
Appendix AH 5evice class specifications -escri0es device&specific power management 0ehavior on a per
device&class 0asis.
Appendix <H 7ideo 1xtensions Contains video device class&specific AC'% interfaces.
2.1 Related Documents
'ower management and 'lug and 'la( specifications for legac( hardware platforms are the following,
availa0le from http<FFwww.microsoft.comFwhdcFresourcesFrespecFspecsFdefault.msp/<
Ad2anced Power (anagement (AP() )I=S Specification, 3evision 4.2.
Pl'g and Play )I=S Specification, Dersion 4.a.
%ntel Architecture specifications are availa0le from http<FFdeveloper.intel.com<
Intel? Itani'm
TM
Arc1itect're Software De2eloper@s (an'al, Dolumes 4I", 3evision 2.4, %ntel Corporation,
2cto0er 22.
Itani'm
TM
Processor &amily System Abstraction ,ayer Specification, %ntel Corporation, -ecem0er 23
=7une 2" ,pdate>.
*xtensible &irmware Interface Specification. Aersion 1!15. December "55"(;o2ember "558 Bpdate).
-ocumentation and specifications for the !mart ;atter( !(stem components and the !M;us are availa0le
from http<FFwww.s0s&forum.org<
Smart )attery C1arger Specification, 3evision 4.4, !mart ;atter( !(stem %mplementers 5orum,
-ecem0er, 4668.
Smart )attery Data Specification, 3evision 4.4, !mart ;atter( !(stem %mplementers 5orum,
-ecem0er, 4668.
Smart )attery Selector Specification, 3evision 4.4, !mart ;atter( !(stem %mplementers 5orum,
-ecem0er, 4668.
Smart )attery System (anager Specification, 3evision 4., !mart ;atter( !(stem %mplementers
5orum, -ecem0er, 4668.
System (anagement )'s Specification, 3evision 4.4, !mart ;atter( !(stem %mplementers 5orum,
-ecem0er, 4668.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4*
3
Defnition of Terms
This specification uses a particular set of terminolog(, defined in this section. This section has three parts<
$eneral AC'% terms are defined and presented alpha0eticall(.
The AC'% glo0al s(stem states =working, sleeping, soft off, and mechanical off> are defined. $lo0al s(stem
states appl( to the entire s(stem, and are visi0le to the user.
The AC'% device power states are defined. -evice power states are states of particular devicesK as such,
the( are generall( not visi0le to the user. 5or e/ample, some devices ma( 0e in the off state even though the
s(stem as a whole is in the working state. -evice states appl( to an( device on an( 0us.
3.1 General ACPI Terminology
Advanced Configuration and Power Interface =ACPI)
As defined in this document, AC'% is a method for descri0ing hardware interfaces in terms a0stract
enough to allow fle/i0le and innovative hardware implementations and concrete enough to allow
shrink&wrap 2! code to use such hardware interfaces.
ACPI Hardware
Computer hardware with the features necessar( to support 2!'M and with the interfaces to those
features descri0ed using the -escription Ta0les as specified 0( this document.
ACPI Namespace
A hierarchical tree structure in 2!&controlled memor( that contains named o0#ects. These o0#ects ma(
0e data o0#ects, control method o0#ects, 0usFdevice package o0#ects, and so on. The 2! d(namicall(
changes the contents of the namespace at run&time 0( loading andFor unloading definition 0locks from
the AC'% Ta0les that reside in the AC'% ;%2!. All the information in the AC'% Namespace comes
from the -ifferentiated !(stem -escription Ta0le =-!-T>, which contains the -ifferentiated
-efinition ;lock, and one or more other definition 0locks.
ACPI Machine Language (AML)
'seudo&code for a virtual machine supported 0( an AC'%&compati0le 2! and in which AC'% control
methods and o0#ects are written. The AM1 encoding definition is provided in section 48, JAC'%
Machine 1anguage =AM1> !pecification.L
Advanced Programmable Interrupt Controller (APIC)
An interrupt controller architecture commonl( found on %ntel Architecture&0ased 32&0it 'C s(stems.
The A'%C architecture supports multiprocessor interrupt management =with s(mmetric interrupt
distri0ution across all processors>, multiple %F2 su0s(stem support, 82*6A compati0ilit(, and inter&
processor interrupt support. The architecture consists of local A'%Cs commonl( attached directl( to
processors and %F2 A'%Cs commonl( in chip sets.
ACPI ource Language (AL)
The programming language e:uivalent for AM1. A!1 is compiled into AM1 images. The A!1
statements are defined in section 49, JAC'% !ource 1anguage =A!1> 3eference.L
Control Method
A control method is a definition of how the 2! can perform a simple hardware task. 5or e/ample, the
2! invokes control methods to read the temperature of a thermal Hone. Control methods are written in
an encoded language called AM1 that can 0e interpreted and e/ecuted 0( the AC'%&compati0le 2!. An
AC'%&compati0le s(stem must provide a minimal set of control methods in the AC'% ta0les. The 2!
provides a set of well&defined control methods that AC'% ta0le developers can reference in their
control methods. 2.Ms can support different revisions of chip sets with one ;%2! 0( either including
control methods in the ;%2! that test configurations and respond as needed or including a different set
of control methods for each chip set revision.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4+ Advanced Configuration and 'ower %nterface !pecification
Central Processing !nit (CP!) or Processor
The part of a platform that e/ecutes the instructions that do the work. An AC'%&compati0le 2! can
0alance processor performance against power consumption and thermal states 0( manipulating the
processor performance controls. The AC'% specification defines a working state, la0eled $ =!>, in
which the processor e/ecutes instructions. 'rocessor sleeping states, la0eled C4 through C3, are also
defined. %n the sleeping states, the processor e/ecutes no instructions, thus reducing power
consumption and, potentiall(, operating temperatures. The AC'% specification also defines processor
performance states, where the processor =while in C> e/ecutes instructions, 0ut with lower
performance and =potentiall(> lower power consumption and operating temperature. 5or more
information, see section 8, J'rocessor 'ower and 'erformance !tate Configuration and Control.L
"efinition #loc$
A definition 0lock contains information a0out hardware implementation and configuration details in
the form of data and control methods, encoded in AM1. An 2.M can provide one or more definition
0locks in the AC'% Ta0les. 2ne definition 0lock must 0e provided< the -ifferentiated -efinition ;lock,
which descri0es the 0ase s(stem. ,pon loading the -ifferentiated -efinition ;lock, the 2! inserts the
contents of the -ifferentiated -efinition ;lock into the AC'% Namespace. 2ther definition 0locks,
which the 2! can d(namicall( insert and remove from the active AC'% Namespace, can contain
references to the -ifferentiated -efinition ;lock. 5or more information, see section *.2.44, J-efinition
;locks.L
"evice
@ardware component outside the core chip set of a platform. ./amples of devices are li:uid cr(stal
displa( =1C-> panels, video adapters, %ntegrated -rive .lectronics =%-.> C-&32M and hard disk
controllers, C2M ports, and so on. %n the AC'% scheme of power management, 0uses are devices. 5or
more information, see section 3.3.2, J-evice 'ower !tates.L
"evice Conte%t
The varia0le data held 0( the deviceK it is usuall( volatile. The device might forget this information
when entering or leaving certain states =for more information, see section 2.3, J-evice 'ower !tate
-efinitions.L>, in which case the 2! software is responsi0le for saving and restoring the information.
-evice Conte/t refers to small amounts of information held in device peripherals. !ee System Context!
"ifferentiated &stem "escription 'able (""')
An 2.M must suppl( a -!-T to an AC'%&compati0le 2!. The -!-T contains the -ifferentiated
-efinition ;lock, which supplies the implementation and configuration information a0out the 0ase
s(stem. The 2! alwa(s inserts the -!-T information into the AC'% Namespace at s(stem 0oot time
and never removes it.
(%tensible )irmware Interface (()I)
An interface 0etween the 2! and the platform firmware. The interface is in the form of data ta0les that
contain platform related information, and 0oot and run&time service calls that are availa0le to the 2!
and loader. Together, these provide a standard environment for 0ooting an 2!.
(mbedded Controller
The general class of microcontrollers used to support 2.M&specific implementations, mainl( in
mo0ile environments. The AC'% specification supports em0edded controllers in an( platform design,
as long as the microcontroller conforms to one of the models descri0ed in this section. The em0edded
controller performs comple/ low&level functions through a simple interface to the host
microprocessor=s>.
(mbedded Controller Interface
A standard hardware and software communications interface 0etween an 2! driver and an em0edded
controller. This allows an( 2! to provide a standard driver that can directl( communicate with an
em0edded controller in the s(stem, thus allowing other drivers within the s(stem to communicate with
and use the resources of s(stem em0edded controllers =for e/ample, !mart ;atter( and AM1 code>.
This in turn ena0les the 2.M to provide platform features that the 2! and applications can use.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 49
)irmware ACPI Control tructure ()AC)
A structure in readFwrite memor( that the ;%2! uses for handshaking 0etween the firmware and the
2!. The 5AC! is passed to an AC'%&compati0le 2! via the 5i/ed AC'% -escription Ta0le =5A-T>.
The 5AC! contains the s(stemMs hardware signature at last 0oot, the firmware waking vector, and the
$lo0al 1ock.
)i%ed ACPI "escription 'able ()A"')
A ta0le that contains the AC'% @ardware 3egister ;lock implementation and configuration details that
the 2! needs to directl( manage the AC'% @ardware 3egister ;locks, as well as the ph(sical address
of the -!-T, which contains other platform implementation and configuration details. An 2.M must
provide an 5A-T to an AC'%&compati0le 2! in the 3!-TFA!-T. The 2! alwa(s inserts the
namespace information defined in the -ifferentiated -efinition ;lock in the -!-T into the AC'%
Namespace at s(stem 0oot time, and the 2! never removes it.
)i%ed )eatures
A set of features offered 0( an AC'% interface. The AC'% specification places restrictions on where and
how the hardware programming model is generated. All fi/ed features, if used, are implemented as
descri0ed in this specification so that 2!'M can directl( access the fi/ed feature registers.
)i%ed )eature (vents
A set of events that occur at the AC'% interface when a paired set of status and event 0its in the fi/ed
feature registers are set at the same time. When a fi/ed feature event occurs, a s(stem control interrupt
=!C% is raised. 5or AC'% fi/ed feature events, 2!'M =or an AC'%&aware driver> acts as the event
handler.
)i%ed )eature *egisters
A set of hardware registers in fi/ed feature register space at specific address locations in s(stem %F2
address space. AC'% defines register 0locks for fi/ed features =each register 0lock gets a separate
pointer from the 5A-T>. 5or more information, see section ".+, JAC'% @ardware 5eatures.L
+eneral,Purpose (vent *egisters
The general&purpose event registers contain the event programming model for generic features. All
general&purpose events generate !C%s.
+eneric )eature
A generic feature of a platform is value&added hardware implemented through control methods and
general&purpose events.
+lobal &stem tates
$lo0al s(stem states appl( to the entire s(stem, and are visi0le to the user. The various glo0al s(stem
states are la0eled $ through $3 in the AC'% specification. 5or more information, see section 2.2,
J$lo0al !(stem !tate -efinitions.L
Ignored #its
!ome unused 0its in AC'% hardware registers are designated as JignoredL in the AC'% specification.
%gnored 0its are undefined and can return Hero or one =in contrast to reserved 0its, which alwa(s return
Hero>. !oftware ignores ignored 0its in AC'% hardware registers on reads and preserves ignored 0its on
writes.
Intel Architecture,Personal Computer (IA,PC)
A general descriptive term for computers 0uilt with processors conforming to the architecture defined
0( the %ntel processor famil( 0ased on the %ntel Architecture instruction set and having an industr(&
standard 'C architecture.
I-. APIC
An %nputF2utput Advanced 'rogramma0le %nterrupt Controller routes interrupts from devices to the
processorMs local A'%C.
I-. APIC
An %nputF2utput !treamlined Advanced 'rogramma0le %nterrupt Controller routes interrupts from
devices to the processorMs local A'%C.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
48 Advanced Configuration and 'ower %nterface !pecification
Legac&
A computer state where power management polic( decisions are made 0( the platform
hardwareFfirmware shipped with the s(stem. The legac( power management features found in toda(Ms
s(stems are used to support power management in a s(stem that uses a legac( 2! that does not support
the 2!&directed power management architecture.
Legac& Hardware
A computer s(stem that has no AC'% or 2!'M power management support.
Legac& .
An 2! that is not aware of and does not direct the power management functions of the s(stem.
%ncluded in this categor( are operating s(stems with A'M 4.x support.
Local APIC
A local Advanced 'rogramma0le %nterrupt Controller receives interrupts from the %F2 A'%C.
Local APIC
A local !treamlined Advanced 'rogramma0le %nterrupt Controller receives interrupts from the %F2
!A'%C.
Multiple APIC "escription 'able (MA"')
The Multiple A'%C -escription Ta0le =MA-T> is used on s(stems supporting the A'%C and !A'%C to
descri0e the A'%C implementation. 5ollowing the MA-T is a list of A'%CF!A'%C structures that
declare the A'%CF!A'%C features of the machine.
.b/ect
The nodes of the AC'% Namespace are o0#ects inserted in the tree 0( the 2! using the information in
the s(stem definition ta0les. These o0#ects can 0e data o0#ects, package o0#ects, control method
o0#ects, and so on. 'ackage o0#ects refer to other o0#ects. 20#ects also have t(pe, siHe, and relative
name.
.b/ect name
'art of the AC'% Namespace. There is a set of rules for naming o0#ects.
.perating &stem,directed Power Management (.PM)
A model of power =and s(stem> management in which the 2! pla(s a central role and uses glo0al
information to optimiHe s(stem 0ehavior for the task at hand.
Pac$age
An arra( of o0#ects.
Power #utton
A user push 0utton or other switch contact device that switches the s(stem from the sleepingFsoft off
state to the working state, and signals the 2! to transition to a sleepingFsoft off state from the working
state.
Power Management
Mechanisms in software and hardware to minimiHe s(stem power consumption, manage s(stem
thermal limits, and ma/imiHe s(stem 0atter( life. 'ower management involves trade&offs among
s(stem speed, noise, 0atter( life, processing speed, and alternating current =AC> power consumption.
'ower management is re:uired for some s(stem functions, such as appliance =for e/ample, answering
machine, furnace control> operations.
Power *esources
3esources =for e/ample, power planes and clock sources> that a device re:uires to operate in a given
power state.
Power ources
The 0atter( =including a ,'! 0atter(> and AC line powered adapters or power supplies that suppl(
power to a platform.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 46
*egister +rouping
Consists of two register 0locks =it has two pointers to two different 0locks of registers>. The fi/ed&
position 0its within a register grouping can 0e split 0etween the two register 0locks. This allows the
0its within a register grouping to 0e split 0etween two chips.
*eserved #its
!ome unused 0its in AC'% hardware registers are designated as J3eservedL in the AC'% specification.
5or future e/tensi0ilit(, hardware&register reserved 0its alwa(s return Hero, and data writes to them
have no side effects. 2!'M implementations must write Heros to all reserved 0its in ena0le and status
registers and preserve 0its in control registers.
*oot &stem "escription Pointer (*"P)
An AC'%&compati0le s(stem must provide an 3!-' in the s(stemMs low address space. This structureMs
onl( purpose is to provide the ph(sical address of the 3!-T and A!-T.
*oot &stem "escription 'able (*"')
A ta0le with the signature O3!-T,M followed 0( an arra( of ph(sical pointers to other s(stem
description ta0les. The 2! locates that 3!-T 0( following the pointer in the 3!-' structure.
econdar& &stem "escription 'able ("')
!!-Ts are a continuation of the -!-T. Multiple !!-Ts can 0e used as part of a platform description.
After the -!-T is loaded into the AC'% Namespace, each secondar( description ta0le listed in the
3!-TFA!-T with a uni:ue 2.M Ta0le %- is loaded. This allows the 2.M to provide the 0ase support
in one ta0le, while adding smaller s(stem options in other ta0les.
0oteH Additional ta0les can onl( add dataK the( cannot overwrite data from previous ta0les.
leep #utton
A user push 0utton that switches the s(stem from the sleepingFsoft off state to the working state, and
signals the 2! to transition to a sleeping state from the working state.
mart #atter& ubs&stem
A 0atter( su0s(stem that conforms to the following specifications< !mart ;atter( and either !mart
;atter( !(stem Manager or !mart ;atter( Charger and !electorPand the additional AC'%
re:uirements.
mart #atter& 'able
An AC'% ta0le used on platforms that have a !mart ;atter( su0s(stem. This ta0le indicates the energ(&
level trip points that the platform re:uires for placing the s(stem into different sleeping states and
suggested energ( levels for warning the user to transition the platform into a sleeping state.
&stem Management #us (M#us)
A two&wire interface 0ased upon the %QC protocol. The !M;us is a low&speed 0us that provides
positive addressing for devices, as well as 0us ar0itration.
M#us Interface
A standard hardware and software communications interface 0etween an 2! 0us driver and an !M;us
controller.
treamlined Advanced Programmable Interrupt Controller (APIC)
An advanced A'%C commonl( found on %ntel %tanium 'rocessor 5amil(&0ased +"&0it s(stems.
&stem Conte%t
The volatile data in the s(stem that is not saved 0( a device driver.
&stem Control Interrupt (CI)
A s(stem interrupt used 0( hardware to notif( the 2! of AC'% events. The !C% is an active, low,
sharea0le, level interrupt.
&stem Management Interrupt (MI)
An 2!&transparent interrupt generated 0( interrupt events on legac( s(stems. ;( contrast, on AC'%
s(stems, interrupt events generate an 2!&visi0le interrupt that is sharea0le =edge&st(le interrupts will
not work>. @ardware platforms that want to support 0oth legac( operating s(stems and AC'% s(stems
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2 Advanced Configuration and 'ower %nterface !pecification
must support a wa( of re&mapping the interrupt events 0etween !M%s and !C%s when switching
0etween AC'% and legac( models.
'hermal tates
Thermal states represent different operating environment temperatures within thermal Hones of a
s(stem. A s(stem can have one or more thermal HonesK each thermal Hone is the volume of space
around a particular temperature&sensing device. The transitions from one thermal state to another are
marked 0( trip points, which are implemented to generate an !C% when the temperature in a thermal
Hone moves a0ove or 0elow the trip point temperature.
(%tended *oot &stem "escription 'able (0"')
The A!-T provides identical functionalit( to the 3!-T 0ut accommodates ph(sical addresses of
-.!C3%'T%2N @.A-.3s that are larger than 32&0its. Notice that 0oth the A!-T and the 3!-T can
0e pointed to 0( the 3!-' structure.
3.2 Global System State Defnitions
$lo0al s(stem states =$x states> appl( to the entire s(stem and are visi0le to the user.
$lo0al s(stem states are defined 0( si/ principal criteria<
4. -oes application software runR
2. What is the latenc( from e/ternal events to application responseR
3. What is the power consumptionR
". %s an 2! re0oot re:uired to return to a working stateR
*. %s it safe to disassem0le the computerR
+. Can the state 0e entered and e/ited electronicall(R
5ollowing is a list of the s(stem states<
+1 Mechanical .ff
A computer state that is entered and left 0( a mechanical means =for e/ample, turning off the s(stemMs
power through the movement of a large red switch>. Darious government agencies and countries
re:uire this operating mode. %t is implied 0( the entr( of this off state through a mechanical means that
no electrical current is running through the circuitr( and that it can 0e worked on without damaging the
hardware or endangering service personnel. The 2! must 0e restarted to return to the Working state.
No hardware conte/t is retained. ./cept for the real&time clock, power consumption is Hero.
+2-3 oft .ff
A computer state where the computer consumes a minimal amount of power. No user mode or s(stem
mode code is run. This state re:uires a large latenc( in order to return to the Working state. The
s(stemMs conte/t will not 0e preserved 0( the hardware. The s(stem must 0e restarted to return to the
Working state. %t is not safe to disassem0le the machine in this state.
+4 leeping
A computer state where the computer consumes a small amount of power, user mode threads are not
0eing e/ecuted, and the s(stem JappearsL to 0e off =from an end userMs perspective, the displa( is off,
and so on>. 1atenc( for returning to the Working state varies on the wake environment selected prior to
entr( of this state =for e/ample, whether the s(stem should answer phone calls>. Work can 0e resumed
without re0ooting the 2! 0ecause large elements of s(stem conte/t are saved 0( the hardware and the
rest 0( s(stem software. %t is not safe to disassem0le the machine in this state.
+5 6or$ing
A computer state where the s(stem dispatches user mode =application> threads and the( e/ecute. %n this
state, peripheral devices =peripherals> are having their power state changed d(namicall(. The user can
select, through some ,%, various performanceFpower characteristics of the s(stem to have the software
optimiHe for performance or 0atter( life. The s(stem responds to e/ternal events in real time. %t is not
safe to disassem0le the machine in this state.
7 Non,8olatile leep
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 24
A special glo0al s(stem state that allows s(stem conte/t to 0e saved and restored =relativel( slowl(>
when power is lost to the mother0oard. %f the s(stem has 0een commanded to enter !", the 2! will
write all s(stem conte/t to a file on non&volatile storage media and leave appropriate conte/t markers.
The machine will then enter the !" state. When the s(stem leaves the !oft 2ff or Mechanical 2ff state,
transitioning to Working =$> and restarting the 2!, a restore from a ND! file can occur. This will
onl( happen if a valid non&volatile sleep data set is found, certain aspects of the configuration of the
machine have not changed, and the user has not manuall( a0orted the restore. %f all these conditions are
met, as part of the 2! restarting, it will reload the s(stem conte/t and activate it. The net effect for the
user is what looks like a resume from a !leeping =$4> state =al0eit slower>. The aspects of the machine
configuration that must not change include, 0ut are not limited to, disk la(out and memor( siHe. %t
might 0e possi0le for the user to swap a 'C Card or a -evice ;a( device, however.
Notice that for the machine to transition directl( from the !oft 2ff or !leeping states to !", the s(stem
conte/t must 0e written to non&volatile storage 0( the hardwareK entering the Working state first so that
the 2! or ;%2! can save the s(stem conte/t takes too long from the userMs point of view. The
transition from Mechanical 2ff to !" is likel( to 0e done when the user is not there to see it.
;ecause the !" state relies onl( on non&volatile storage, a machine can save its s(stem conte/t for an
ar0itrar( period of time =on the order of man( (ears>.
Ta!le &-+ Su%%ar) of ;lo!al Power States
;lo!al
s)ste% state
Software
runs Latenc)
Power
consu%ption
3S restart
reJuired
Safe to
disasse%!le
co%puter
1xit state
electronicall)
$ Working Ses 1arge No No Ses
$4 !leeping No ), varies with
sleep state
!maller No No Ses
$2F!* !oft
2ff
No 1ong Der( near Ses No Ses
$3
Mechanical
2ff
No 1ong 3TC 0atter( Ses Ses No
Notice that the entries for $2F!* and $3 in the 1atenc( column of the a0ove ta0le are J1ong.L This implies
that a platform designed to give the user the appearance of Jinstant&on,L similar to a home appliance device,
will use the $ and $4 states almost e/clusivel( =the $3 state ma( 0e used for moving the machine or
repairing it>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
22 Advanced Configuration and 'ower %nterface !pecification
3.3 Device Power State Defnitions
-evice power states are states of particular devicesK as such, the( are generall( not visi0le to the user. 5or
e/ample, some devices ma( 0e in the 2ff state even though the s(stem as a whole is in the Working state.
-evice states appl( to an( device on an( 0us. The( are generall( defined in terms of four principal criteria<
Power consu%ption @ow much power the device uses.
5evice context @ow much of the conte/t of the device is retained 0( the hardware. The 2! is
responsi0le for restoring an( lost device conte/t =this ma( 0e done 0( resetting the device>.
5evice driver What the device driver must do to restore the device to full on.
"estore ti%e @ow long it takes to restore the device to full on.
The device power states are defined 0elow, although ver( genericall(. Man( devices do not have all four
power states defined. -evices ma( 0e capa0le of several different low&power modes, 0ut if there is no user&
percepti0le difference 0etween the modes, onl( the lowest power mode will 0e used. The -evice Class
'ower Management !pecifications, included in Appendi/ A of this specification, descri0e which of these
power states are defined for a given t(pe =class> of device and define the specific details of each power state
for that device class. 5or a list of the availa0le De2ice Class Power (anagement Specifications, see
JAppendi/ A< -evice Class !pecifications.L
"1 .ff
'ower has 0een full( removed from the device. The device conte/t is lost when this state is entered, so
the 2! software will reinitialiHe the device when powering it 0ack on. !ince device conte/t and power
are lost, devices in this state do not decode their address lines. -evices in this state have the longest
restore times. All classes of devices define this state.
"2
The meaning of the -2 -evice !tate is defined 0( each device class. Man( device classes ma( not
define -2. %n general, -2 is e/pected to save more power and preserve less device conte/t than -4 or
-. ;uses in -2 ma( cause the device to lose some conte/t =for e/ample, 0( reducing power on the
0us, thus forcing the device to turn off some of its functions>.
"4
The meaning of the -4 -evice !tate is defined 0( each device class. Man( device classes ma( not
define -4. %n general, -4 is e/pected to save less power and preserve more device conte/t than -2.
"5 )ull&,.n
This state is assumed to 0e the highest level of power consumption. The device is completel( active
and responsive, and is e/pected to remem0er all relevant conte/t continuousl(.
Ta!le &-& Su%%ar) of 5evice Power States
5evice State Power Consu%ption 5evice Context "etained 5river "estoration
- & 5ull(&2n As needed for
operation
All None
-4 -)-4)-2)-3 )-2 T-2
-2 -)-4)-2)-3 T-4 )-4
-3 & 2ff None 5ull initialiHation and load
0oteH -evices often have different power modes within a given state. -evices can use these modes as long
as the( can automaticall( transparentl( switch 0etween these modes from the software, without violating
the rules for the current -x state the device is in. 1ow&power modes that adversel( affect performance =in
other words, low speed modes> or that are not transparent to software cannot 0e done automaticall( in
hardwareK the device driver must issue commands to use these modes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 23
3.4 Sleeping State Defnitions
!leeping states =!x states> are t(pes of sleeping states within the glo0al sleeping state, $4. The !x states are
0riefl( defined 0elow. 5or a detailed definition of the s(stem 0ehavior within each !x state, see section
9.3.", J!(stem BC!x !tates.L 5or a detailed definition of the transitions 0etween each of the !x states, see
section 4*.4, J!leeping !tates.L
4 leeping tate
The !4 sleeping state is a low wake latenc( sleeping state. %n this state, no s(stem conte/t is lost =C',
or chip set> and hardware maintains all s(stem conte/t.
2 leeping tate
The !2 sleeping state is a low wake latenc( sleeping state. This state is similar to the !4 sleeping state
e/cept that the C', and s(stem cache conte/t is lost =the 2! is responsi0le for maintaining the caches
and C', conte/t>. Control starts from the processorMs reset vector after the wake event.
1 leeping tate
The !3 sleeping state is a low wake latenc( sleeping state where all s(stem conte/t is lost e/cept
s(stem memor(. C',, cache, and chip set conte/t are lost in this state. @ardware maintains memor(
conte/t and restores some C', and 12 configuration conte/t. Control starts from the processorMs reset
vector after the wake event.
7 leeping tate
The !" sleeping state is the lowest power, longest wake latenc( sleeping state supported 0( AC'%. %n
order to reduce power to a minimum, it is assumed that the hardware platform has powered off all
devices. 'latform conte/t is maintained.
3 oft .ff tate
The !* state is similar to the !" state e/cept that the 2! does not save an( conte/t. The s(stem is in the
JsoftL off state and re:uires a complete 0oot when it wakes. !oftware uses a different state value to
distinguish 0etween the !* state and the !" state to allow for initial 0oot operations within the ;%2! to
distinguish whether or not the 0oot is going to wake from a saved memor( image.
3.5 Processor Power State Defnitions
'rocessor power states =Cx states> are processor power consumption and thermal management states within
the glo0al working state, $. The Cx states possess specific entr( and e/it semantics and are 0riefl( defined
0elow. 5or a more detailed definition of each Cx state, see section 8.4, J'rocessor 'ower !tates.L
C5 Processor Power tate
While the processor is in this state, it e/ecutes instructions.
C4 Processor Power tate
This processor power state has the lowest latenc(. The hardware latenc( in this state must 0e low
enough that the operating software does not consider the latenc( aspect of the state when deciding
whether to use it. Aside from putting the processor in a non&e/ecuting power state, this state has no
other software&visi0le effects.
C2 Processor Power tate
The C2 state offers improved power savings over the C4 state. The worst&case hardware latenc( for
this state is provided via the AC'% s(stem firmware and the operating software can use this information
to determine when the C4 state should 0e used instead of the C2 state. Aside from putting the processor
in a non&e/ecuting power state, this state has no other software&visi0le effects.
C1 Processor Power tate
The C3 state offers improved power savings over the C4 and C2 states. The worst&case hardware
latenc( for this state is provided via the AC'% s(stem firmware and the operating software can use this
information to determine when the C2 state should 0e used instead of the C3 state. While in the C3
state, the processorMs caches maintain state 0ut ignore an( snoops. The operating software is
responsi0le for ensuring that the caches maintain coherenc(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2" Advanced Configuration and 'ower %nterface !pecification
3.6 Device and Processor Performance State Defnitions
-evice and 'rocessor performance states ='x states> are power consumption and capa0ilit( states within the
activeFe/ecuting states, C for processors and - for devices. The '/ states are 0riefl( defined 0elow. 5or a
more detailed definition of each '/ state from a processor perspective, see section 8.".", J'rocessor
'erformance Control.L 5or a more detailed definition of each '/ state from a device perspective see section
3.+, J-evice and 'rocessor 'erformance !tates,L and the device class specifications in Appendi/ A.
P5 Performance tate
While a device or processor is in this state, it uses its ma/imum performance capa0ilit( and ma(
consume ma/imum power.
P4 Performance tate
%n this performance power state, the performance capa0ilit( of a device or processor is limited 0elow
its ma/imum and consumes less than ma/imum power.
Pn Performance tate
%n this performance state, the performance capa0ilit( of a device or processor is at its minimum level
and consumes minimal power while remaining in an active state. !tate n is a ma/imum num0er and is
processor or device dependent. 'rocessors and devices ma( define support for an ar0itrar( num0er of
performance states not to e/ceed 4+.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2+ Advanced Configuration and 'ower %nterface !pecification
4 ACPI Overview
'latforms compliant with the AC'% specification provide 2!'M with direct and exclusive control over the
power management and mother0oard device configuration functions of a computer. -uring 2!
initialiHation, 2!'M takes over these functions from legac( implementations such as the A'M ;%2!,
!MM&0ased firmware, legac( applications, and the 'N';%2!. @aving done this, 2!'M is responsi0le for
handling mother0oard device configuration events as well as for controlling the power, performance, and
thermal status of the s(stem 0ased on user preference, application re:uests and 2! imposed Gualit( of
!ervice =G2!> F usa0ilit( goals. AC'% provides low&level interfaces that allow 2!'M to perform these
functions. The functional areas covered 0( the AC'% specification are<
S)ste% power %anage%ent AC'% defines mechanisms for putting the computer as a whole in
and out of s(stem sleeping states. %t also provides a general mechanism for an( device to wake the
computer.
5evice power %anage%ent AC'% ta0les descri0e mother0oard devices, their power states, the
power planes the devices are connected to, and controls for putting devices into different power states.
This ena0les the 2! to put devices into low&power states 0ased on application usage.
Processor power %anage%ent While the 2! is idle 0ut not sleeping, it will use commands
descri0ed 0( AC'% to put processors in low&power states.
5evice and processor perfor%ance %anage%ent While the s(stem is active, 2!'M will
transition devices and processors into different performance states, defined 0( AC'%, to achieve a
desira0le 0alance 0etween performance and energ( conservation goals as well as other environmental
re:uirements =for e/ample, visi0ilit( and acoustics>.
Configuration @ Plug and Pla) AC'% specifies information used to enumerate and configure
mother0oard devices. This information is arranged hierarchicall( so when events such as docking and
undocking take place, the 2! has precise, a priori knowledge of which devices are affected 0( the
event.
S)ste% 1vents AC'% provides a general event mechanism that can 0e used for s(stem events
such as thermal events, power management events, docking, device insertion and removal, and so on.
This mechanism is ver( fle/i0le in that it does not define specificall( how events are routed to the core
logic chip set.
<atter) %anage%ent ;atter( management polic( moves from the A'M ;%2! to the AC'% 2!.
An AC'%&compati0le 0atter( device needs either a !mart ;atter( su0s(stem interface, which is
controlled 0( the 2! directl( through the em0edded controller interface, or a Control Method ;atter(
interface. A Control Method ;atter( interface is completel( defined 0( AM1 control methods,
allowing an 2.M to choose an( t(pe of the 0atter( and an( kind of communication interface supported
0( AC'%. The 0atter( must compl( with the re:uirements of its interface, as descri0ed either herein or
in other applica0le standards. The 2! ma( choose to alter the 0ehavior of the 0atter(, for e/ample, 0(
ad#usting the 1ow ;atter( or ;atter( Warning trip point. When there are multiple 0atteries present, the
0atter( su0s(stem is not re:uired to perform an( s(nthesis of a Jcomposite 0atter(L from the data of
the separate 0atteries. %n cases where the 0atter( su0s(stem does not s(nthesiHe a Jcomposite 0atter(L
from the separate 0atter(Ms data, the 2! must provide that s(nthesis.
Ther%al %anage%ent !ince the 2! controls the power and performance states of devices and
processors, AC'% also addresses s(stem thermal management. %t provides a simple, scalea0le model
that allows 2.Ms to define thermal Hones, thermal indicators, and methods for cooling thermal Hones.
1%!edded Controller AC'% defines a standard hardware and software communications interface
0etween an 2! 0us enumerator and an em0edded controller. This allows an( 2! to provide a standard
0us enumerator that can directl( communicate with an em0edded controller in the s(stem, thus
allowing other drivers within the s(stem to communicate with and use the resources of s(stem
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 29
em0edded controllers. This in turn ena0les the 2.M to provide platform features that the 2! and
applications can use.
SM<us Controller AC'% defines a standard hardware and software communications interface
0etween an 2! 0us driver and an !M;us Controller. This allows an( 2! to provide a standard 0us
driver that can directl( communicate with !M;us devices in the s(stem. This in turn ena0les the 2.M
to provide platform features that the 2! and applications can use.
2!'MMs mission is to optimall( configure the platform and to optimall( manage the s(stemMs power,
performance, and thermal status given the userMs preferences and while supporting 2! imposed Gualit( of
!ervice =G2!> F usa0ilit( goals. To achieve these goals, AC'% re:uires that once an AC'% compliant
platform is in AC'% mode, the platformMs hardware, firmware, or other non&2! software %ust not
manipulate the platformMs configuration, power, performance, and thermal control interfaces independentl(
of 2!'M. 2!'M alone is responsi0le for coordinating the configuration, power management, performance
management, and thermal control polic( of the s(stem. Manipulation of these interfaces independentl( of
2!'M undermines the purpose of 2!'MFAC'% and ma( adversel( impact the s(stemMs configuration,
power, performance, and thermal polic( goals. There are two e/ceptions to this re:uirement. The first is in
the case of the possi0ilit( of damage to a s(stem from an e/cessive thermal conditions where an AC'%
compati0le 2! is present and 2!'M latenc( is insufficient to remed( an adverse thermal condition. %n this
case, the platform ma( e/ercise a failsafe thermal control mechanism that reduces the performance of a
s(stem component to avoid damage. %f this occurs, the platform must notif( 2!'M of the performance
reduction if the reduction is of significant duration =in other words, if the duration of reduced performance
could adversel( impact 2!'MMs power or performance control polic( & operating s(stem vendors can
provide guidance in this area>. The second e/ception is the case where the platform contains Active cooling
devices 0ut does not contain 'assive cooling temperature trip points or controls,. %n this case, a hardware
0ased Active cooling mechanism ma( 0e implemented without impacting 2!'MMs goals. An( platform that
re:uires !oth active and passive cooling must allow 2!'M to manage the platform thermals via AC'%
defined active and passive cooling interfaces.
4.1 System Power Management
,nder 2!'M, the 2! directs all s(stem and device power state transitions. .mplo(ing user preferences and
knowledge of how devices are 0eing used 0( applications, the 2! puts devices in and out of low&power
states. -evices that are not 0eing used can 0e turned off. !imilarl(, the 2! uses information from
applications and user settings to put the s(stem as a whole into a low& power state. The 2! uses AC'% to
control power state transitions in hardware.
4.2 Power States
5rom a user&visi0le level, the s(stem can 0e thought of as 0eing in one of the states in the following
diagram<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
28 Advanced Configuration and 'ower %nterface !pecification
,- -*ech
Off
+egacy
.a/e
&vent
,0 1S02 -
.or/ing
,3 -
Sleeping
S4
S-
S5
S3
Po#er
6ail(re$
Po#er Off
,5 1S72 -
Soft Off
BIOS
Routine
C0
D0
D3
D5
D-
*o"e%
D0
D3
D5
D-
!DD
D0
D3
D5
D-
CDRO*
C5
C3
Cn
Performance
State Px
Throttling
C0
CP8
6igure #-+ ;lo!al S)ste% Power States and Transitions
!ee section 2.2, J$lo0al !(stem !tate -efinitions,L for detailed definitions of these states.
%n general use, computers alternate 0etween the Working and !leeping states. %n the Working state, the
computer is used to do work. ,ser&mode application threads are dispatched and running. %ndividual devices
can 0e in low&power =-x> states and processors can 0e in low&power =Cx> states if the( are not 0eing used.
An( device the s(stem turns off 0ecause it is not activel( in use can 0e turned on with short latenc(. =What
JshortL means depends on the device. An 1C- displa( needs to come on in su0&second times, while it is
generall( accepta0le to wait a few seconds for a printer to wake.>
The net effect of this is that the entire machine is functional in the Working state. Darious Working su0&
states differ in speed of computation, power used, heat produced, and noise produced. Tuning within the
Working state is largel( a0out trade&offs among speed, power, heat, and noise.
When the computer is idle or the user has pressed the power 0utton, the 2! will put the computer into one
of the sleeping =!x> states. No user&visi0le computation occurs in a sleeping state. The sleeping su0&states
differ in what events can arouse the s(stem to a Working state, and how long this takes. When the machine
must awaken to all possi0le events or do so ver( :uickl(, it can enter onl( the su0&states that achieve a
partial reduction of s(stem power consumption. @owever, if the onl( event of interest is a user pushing on a
switch and a latenc( of minutes is allowed, the 2! could save all s(stem conte/t into an ND! file and
transition the hardware into the !" sleeping state. %n this state, the machine draws almost Hero power and
retains s(stem conte/t for an ar0itrar( period of time =(ears or decades if needed>.
The other states are used less often. Computers that support legac( ;%2! power management interfaces
0oot in the 1egac( state and transition to the Working state when an AC'% 2! loads. A s(stem without
legac( support =for e/ample, a 3%!C s(stem> transitions directl( from the Mechanical 2ff state to the
Working state. ,sers t(picall( put computers into the Mechanical 2ff state 0( flipping the computerMs
mechanical switch or 0( unplugging the computer.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 26
4.2.1 Power Button
%n legac( s(stems, the power 0utton t(picall( either forces the machine into !oft 2ff or Mechanical 2ff or,
on a laptop, forces it to some sleeping state. No allowance is made for user polic( =such as the user wants
the machine to Jcome onL in less than 4 second with all conte/t as it was when the user turned the machine
JoffL>, s(stem alert functions =such as the s(stem 0eing used as an answering machine or fa/ machine>, or
application function =such as saving a user file>.
%n an 2!'M s(stem, there are two switches. 2ne is to transition the s(stem to the Mechanical 2ff state. A
mechanism to stop current flow is re:uired for legal reasons in some #urisdictions =for e/ample, in some
.uropean countries>. The other is the JmainL power 0utton. This is in some o0vious place =for e/ample,
0eside the ke(0oard on a laptop>. ,nlike legac( onFoff 0uttons, all it does is send a re:uest to the s(stem.
What the s(stem does with this re:uest depends on polic( issues derived from user preferences, user
function re:uests, and application data.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3 Advanced Configuration and 'ower %nterface !pecification
4.2.2 Platform Power Management Characteristics
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 34
4.2.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
32 Advanced Configuration and 'ower %nterface !pecification
Mobile PC
Mo0ile 'Cs will continue to have aggressive power management functionalit(. $oing to 2!'MFAC'% will
allow enhanced power savings techni:ues and more refined user policies.
Aspects of mo0ile 'C power management in the AC'% specification are thermal management =see section
44, JThermal ManagementL> and the em0edded controller interface =see section 42, JAC'% .m0edded
Controller %nterface !pecificationL>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 33
4.2.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3" Advanced Configuration and 'ower %nterface !pecification
4.2.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3*
Desktop PCs
'ower&managed desktops will 0e of two t(pes, though the first t(pe will migrate to the second over time.
3rdinar) 8;reen PC.L @ere, new appliance functions are not the issue. The machine is reall(
onl( used for productivit( computations. At least initiall(, such machines can get 0( with ver( minimal
function. %n particular, the( need the normal AC'% timers and controls, 0ut donMt need to support
ela0orate sleeping states, and so on. The(, however, do need to allow the 2! to put as man( of their
devicesFresources as possi0le into device stand0( and device off states, as independentl( as possi0le =to
allow for ma/imum compute speed with minimum power wasted on unused devices>. !uch 'Cs will
also need to support wake from the sleeping state 0( means of a timer, 0ecause this allows
administrators to force them to turn on #ust 0efore people are to show up for work.
Ho%e PC. Computers are moving into home environments where the( are used in entertainment
centers and to perform tasks like answering the phone. A home 'C needs all of the functionalit( of the
ordinar( green 'C. %n fact, it has all of the AC'% power functionalit( of a laptop e/cept for docking
and lid events =and need not have an( legac( power management>. Note that there is also a thermal
management aspect to a home 'C, as a home 'C user wants the s(stem to run as :uietl( as possi0le,
often in a thermall( constrained environment.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3+ Advanced Configuration and 'ower %nterface !pecification
4.2.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 39
Multiprocessor and Server PCs
'erhaps surprisingl(, server machines often get the largest a0solute power savings. Wh(R ;ecause the(
have the largest hardware configurations and 0ecause itMs not practical for some0od( to hit the off switch
when the( leave at night.
5a) Mode. %n da( mode, servers are power&managed much like a corporate ordinar( green 'C,
sta(ing in the Working state all the time, 0ut putting unused devices into low&power states whenever
possi0le. ;ecause servers can 0e ver( large and have, for e/ample, man( disk spindles, power
management can result in large savings. 2!'M allows careful tuning of when to do this, thus making it
worka0le.
0ight Mode. %n night mode, servers look like home 'Cs. The( sleep as deepl( as the( can and are
still a0le to wake and answer service re:uests coming in over the network, phone links, and so on,
within specified latencies. !o, for e/ample, a print server might go into deep sleep until it receives a
print #o0 at 3 A.M., at which point it wakes in perhaps less than 3 seconds, prints the #o0, and then
goes 0ack to sleep. %f the print re:uest comes over the 1AN, then this scenario depends on an
intelligent 1AN adapter that can wake the s(stem in response to an interesting received packet.
4.3 Device Power Management
This section descri0es AC'%&compati0le device power management. The AC'% device power states are
introduced, the controls and information an AC'%&compati0le 2! needs to perform device power
management are discussed, the wake operation devices use to wake the computer from a sleeping state is
descri0ed, and an e/ample of AC'%&compati0le device management using a modem is given.
4.3.1 Power Management Standards
To manage power of all the devices in the s(stem, the 2! needs standard methods for sending commands to
a device. These standards define the operations used to manage power of devices on a particular %F2
interconnect and the power states that devices can 0e put into. -efining these standards for each %F2
interconnect creates a 0aseline level of power management support the 2! can utiliHe. %ndependent
@ardware Dendors =%@Ds> do not have to spend e/tra time writing software to manage power of their
hardware, 0ecause simpl( adhering to the standard gains them direct 2! support. 5or 2! vendors, the %F2
interconnect standards allow the power management code to 0e centraliHed in the driver for each %F2
interconnect. 5inall(, %F2 interconnect&driven power management allows the 2! to track the states of all
devices on a given %F2 interconnect. When all the devices are in a given state =or e/ample, -3 & off>, the 2!
can put the entire %F2 interconnect into the power suppl( mode appropriate for that state =for e/ample, -3 &
off>.
%F2 interconnect&level power management specifications are written for a num0er of 0uses including<
'C%
'C% ./press
Card;us
,!;
%... 436"
4.3.2 Device Power States
To unif( nomenclature and provide consistent 0ehavior across devices, standard definitions are used for the
power states of devices. $enerall(, these states are defined in terms of the following criteria<
Power consu%ption. @ow much power the device uses.
5evice context @ow much of the conte/t of the device is retained 0( the hardware.
5evice driver. What the device driver must do to restore the device to full( on.
"estore latenc). @ow long it takes to restore the device to full( on.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
38 Advanced Configuration and 'ower %nterface !pecification
More specificall(, power management specifications for each class of device =for e/ample, modem,
network adapter, hard disk, and so on> more precisel( define the power states and power polic( for the
class. !ee section 2.3, J-evice 'ower !tate -efinitions,L for the detailed description of the four general
device power states =-&-3>.
4.3.3 Device Power State Defnitions
The device power state definitions are device&independent, 0ut classes of devices on a 0us must support
some consistent set of power&related characteristics. 5or e/ample, when the 0us&specific mechanism to set
the device power state to a given level is invoked, the actions a device might take and the specific sorts of
0ehaviors the 2! can assume while the device is in that state will var( from device t(pe to device t(pe. 5or
a full( integrated device power management s(stem, these class&specific power characteristics must also 0e
standardiHed<
5evice Power State Characteristics .ach class of device has a standard definition of target
power consumption levels, state&change latencies, and conte/t loss.
Mini%u% 5evice Power Capa!ilities .ach class of device has a minimum standard set of power
capa0ilities.
5evice 6unctional Characteristics .ach class of device has a standard definition of what su0set
of device functionalit( or features is availa0le in each power state =for e/ample, the net card can
receive, 0ut cannot transmitK the sound card is full( functional e/cept that the power amps are off, and
so on>.
5evice :akeup Characteristics .ach class of device has a standard definition of its wake
polic(.
The Microsoft -evice Class 'ower Management specifications define these power state characteristics for
each class of device.
4.4 Controlling Device Power
AC'% interfaces provides control and information needed to perform device power management. AC'%
interfaces descri0e to 2!'M the capa0ilities of all the devices it controls. %t also gives the 2! the control
methods used to set the power state or get the power status for each device. 5inall(, it has a general scheme
for devices to wake the machine.
0oteH 2ther 0uses enumerate some devices on the main 0oard. 5or e/ample, 'C% devices are reported
through the standard 'C% enumeration mechanisms. 'ower management of these devices is handled
through their own 0us specification =in this case, 'C%>. All other devices on the main 0oard are handled
through AC'% !pecificall(, the AC'% ta0le lists legac( devices that cannot 0e reported through their own
0us specification, the root of each 0us in the s(stem, and devices that have additional power management or
configuration options not covered 0( their own 0us specification.
5or more detailed information see section 9, J'ower and 'erformance Management.L
4.4.1 Getting Device Power Capabilities
As the 2! enumerates devices in the s(stem, it gets information a0out the power management features that
the device supports. The -ifferentiated -efinition ;lock given to the 2! 0( the ;%2! descri0es ever(
device handled 0( AC'%. This description contains the following information<
A description of what power resources =power planes and clock sources> the device needs in each
power state that the device supports. 5or e/ample, a device might need a high power 0us and a clock in
the - state 0ut onl( a low&power 0us and no clock in the -2 state.
A description of what power resources a device needs in order to wake the machine =or none to
indicate that the device does not support wake>. The 2! can use this information to infer what device
and s(stem power states from which the device can support wake.
The optional control method the 2! can use to set the power state of the device and to get and set
resources.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 36
%n addition to descri0ing the devices handled 0( AC'%, the ta0le lists the power planes and clock sources
themselves and the control methods for turning them on and off. 5or detailed information, see section 9,
J'ower and 'erformance Management.L
4.4.2 Setting Device Power States
2!'M uses the !et 'ower !tate operation to put a device into one of the four power states.
When a device is put in a lower power state, it configures itself to draw as little power from the 0us as
possi0le. The 2! tracks the state of all devices on the 0us, and will put the 0us in the 0est power state 0ased
on the current device re:uirements on that 0us. 5or e/ample, if all devices on a 0us are in the -3 state, the
2! will send a command to the 0us control chip set to remove power from the 0us =thus putting the 0us in
the -3 state>. %f a particular 0us supports a low&power suppl( state, the 2! puts the 0us in that state if all
devices are in the -4 or -2 state. Whatever power state a device is in, the 2! must 0e a0le to issue a !et
'ower !tate command to resume the device.
0oteH The device does not need to have power to do this. The 2! must turn on power to the device 0efore
it can send commands to the device.
2!'M also uses the !et 'ower !tate operation to ena0le power management features such as wake
=descri0ed in section 9, J'ower and 'erformance Management.L>.
When a device is to 0e set in a particular power state using the AC'% interface, the 2! first decides which
power resources will 0e used and which can 0e turned off. The 2! tracks all the devices on a given power
resource. When all the devices on a resource have 0een turned off, the 2! turns off that power resource 0(
running a control method. %f a power resource is turned off and one of the devices on that resource needs to
0e turned on, the 2! first turns on the power resource using a control method and then signals the device to
turn on. The time that the 2! must wait for the power resource to sta0iliHe after turning it on or off is
descri0ed in the description ta0le. The 2! uses the time 0ase provided 0( the 'ower Management Timer to
measure these time intervals.
2nce the power resources have 0een switched, the 2! e/ecutes the appropriate control method to put the
device in that power state. Notice that this might not mean that power is removed from the device. %f other
active devices are sharing a power resource, the power resources will remain on.
4.4.3 Getting Device Power Status
2!'M uses the $et 'ower !tatus operation to determine the current power configuration =states and
features>, as well as the status of an( 0atteries supported 0( the device. The device can signal an !C% to
inform the 2! of changes in power status. 5or e/ample, a device can trigger an interrupt to inform the 2!
that the 0atter( has reached low power level.
-evices use the AC'% event model to signal power status changes =for e/ample, 0atter( status changes> to
2!'M. The platform signals events to the 2! via the !C% interrupt. An !C% interrupt status 0it is set to
indicate the event to the 2!. The 2! runs the control method associated with the event. This control
method signals to the 2! which device has changed.
AC'% supports two t(pes of 0atteries< 0atteries that report onl( 0asic 0atter( status information and
0atteries that support the !mart ;atter( !(stem %mplementers 5orum !mart ;atter( !pecification. 5or
0atteries that report onl( 0asic 0atter( status information =such as total capacit( and remaining capacit(>,
the 2! uses control methods from the 0atter(Ms description ta0le to read this information. To read status
information for !mart ;atteries, the 2! can use a standard !mart ;atter( driver that directl( interfaces to
!mart ;atteries through the appropriate 0us enumerator.
4.4.4 Waking the Computer
The wake operation ena0les devices to wake the computer from a sleeping power state. This operation must
not depend on the C', 0ecause the C', will not 0e e/ecuting instructions.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
" Advanced Configuration and 'ower %nterface !pecification
The 2! ensures an( 0ridges 0etween the device and the core logic are in the lowest power state in which
the( can still forward the wake signal. When a device with wake ena0led decides to wake the machine, it
sends the defined signal on its 0us. ;us 0ridges must forward this signal to upstream 0ridges using the
appropriate signal for that 0us. Thus, the signal eventuall( reaches the core chip set =for e/ample, an AC'%
chip set>, which in turn wakes the machine.
;efore putting the machine in a sleeping power state, the 2! determines which devices are needed to wake
the machine 0ased on application re:uests, and then ena0les wake on those devices in a device and 0us
specific manner.
The 2! ena0les the wake feature on devices 0( setting that deviceMs !C% .na0le 0it. The location of this 0it
is listed in the deviceMs entr( in the description ta0le. 2nl( devices that have their wake feature ena0led can
wake the machine. The 2! keeps track of the power states that the wake devices support, and keeps the
machine in a power state in which the wake can still wake the machine
4
=0ased on capa0ilities reported in
the description ta0le>.
When the computer is in the !leeping state and a wake device decides to wake the machine, it signals to the
AC'% chip set. The !C% status 0it corresponding to the device waking the machine is set, and the AC'% chip
set resumes the machine. After the 2! is running again, it clears the 0it and handles the event that caused
the wake. The control method for this event then uses the Notif( command to tell the 2! which device
caused the wake.
Note< ;esides using AC'% mechanism to ena0le a particular device to wake the s(stem, an AC'% platform
must also 0e a0le to record and report the wake source to 2!'M. When a s(stem is woken from certain
states =such as the !" state>, it ma( start out in non&AC'% mode. %n this case, the !C% status 0it ma( 0e
cleared when AC'% mode is re&entered. @owever the platform must still attempt to record the wake source
for retrieval 0( 2!'M at a later point.
Note< Although the a0ove description e/plains how a device can wake the s(stem, note that a device can
also 0e put into a low power state during the ! s(stem state, and that this device ma( generate a wake
signal in the ! state as the following e/ample illustrates.
4
!ome 2! policies ma( re:uire the 2! to put the machine into a glo0al s(stem state for which the device
can no longer wake the s(stem. !uch as when a s(stem has ver( low 0atter( power.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "4
4.4.5 Example: Modem Device Power Management
To illustrate how these power management methods function in AC'%, consider an integrated modem. =This
e/ample is greatl( simplified for the purposes of this discussion.> The power states of a modem are defined
as follows =this is an e/cerpt from the Modem -evice Class 'ower Management !pecification><
5$ Modem controller on
'hone interface on
!peaker on
Can 0e on hook or off hook
Can 0e waiting for answer
5+ Modem controller in low&power mode =conte/t retained 0( device>
'hone interface powered 0( phone line or in low&power mode
!peaker off
Must 0e on hook
5& !ame as 5#
5# Modem controller off =conte/t lost>
'hone interface powered 0( phone line or off
!peaker off
2n hook
The power polic( for the modem is defined as follows<
5# 5$ C2M port opened
5$' 5+ 5# C2M port closed
5$ 5+ Modem put in answer mode
5+ 5$ Application re:uests dial or the phone rings while the modem is in answer mode
The wake polic( for the modem is ver( simple< When the phone rings and wake is ena0led, wake the
machine.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"2 Advanced Configuration and 'ower %nterface !pecification
;ased on that polic(, the modem and the C2M port to which it is attached can 0e implemented in hardware
as shown in 5igure 3&2. This is #ust an e/ample for illustrating features of AC'%. This e/ample is not
intended to descri0e how 2.Ms should 0uild hardware.
S
w
itc
h
e
d
p
o
w
e
r
S
w
itc
h
e
d
p
o
w
e
r
ACPI core
chip set Phone
interface
Modem
controller
I/O
Control
Phone
line
PR! PR"
RI
A#$
PR!%$&
PR"%$&
M'M%'!
M'M%'(
I/O
COM port
)*ART+
I/O
COM%'(
6igure #-& 1xa%ple Mode% and C3M Port Hardware
0oteH Although not shown a0ove, each discrete part has some isolation logic so that the part is isolated
when power is removed from it. %solation logic controls are implemented as power resources in the AC'%
-ifferentiated -escription ;lock so that devices are isolated as power planes are se:uenced off.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "3
4.4.5.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"" Advanced Configuration and 'ower %nterface !pecification
Obtaining the Modem Capabilities
The 2! determines the capa0ilities of this modem when it enumerates the modem 0( reading the modemMs
entr( in the -ifferentiated -efinition ;lock. %n this case, the entr( for the modem would report<
The device supports 5$, 5+, and 5#<
5$ re:uires 'W34 and 'W32 as power resources
5+ re:uires 'W34 as a power resource
=5# implicitl( re:uires no power resources>
To wake the machine, the modem needs no power resources =impl(ing it can wake the machine from 5$,
5+, and 5#>
Control methods for setting power state and resources
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "*
4.4.5.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"+ Advanced Configuration and 'ower %nterface !pecification
Setting the Modem Power State
While the 2! is running =$ state>, it switches the modem to different power states according to the power
polic( defined for modems.
When an application opens the C2M port, the 2! turns on the modem 0( putting it in the - state. Then if
the application puts the modem in answer mode, the 2! puts the modem in the -4 state to wait for the call.
To make this state transition, the AC'% first checks to see what power resources are no longer needed. %n
this case, 'W32 is not needed. Then it checks to make sure no other device in the s(stem re:uires the use
of the 'W32 power resource. %f the resource is no longer needed, the 2!'M uses the C255 control method
associated with that power resource in the -ifferentiated -efinition ;lock to turn off the 'W32 power
plane. This control method sends the appropriate commands to the core chip set to stop asserting the
'W32C.N line. Then, 2!'M runs a control method =C'!4> provided in the modemMs entr( to put the
device in the -4 state. This control method asserts the M-MC-4 signal that tells the modem controller to
go into a low&power mode.
2!'M does not alwa(s turn off power resources when a given device is put in a lower power state. 5or
e/ample, assume that the 'W34 power plane also powers an active line printer =1'T> port. !uppose the
user terminates the modem application, causing the C2M port to 0e closed, and therefore causing the
modem to 0e shut off =state -3>. As alwa(s, 2!'M checks to see which power resources are no longer
needed. ;ecause the 1'T port is still active, 'W34 is in use. 2!'M does not turn off the 'W34 resource.
%t continues the state transition process 0( running the modemMs control method to switch the device to the
-3 power state. The control method causes the M-MC-3 line to 0e asserted. The modem controller now
turns off all its ma#or functions so that it draws little power, if an(, from the 'W34 line. ;ecause the C2M
port is closed, the same se:uence of events will take place to put it in the -3 state. Notice that these
registers might not 0e in the device itself. 5or e/ample, the control method could read the register that
controls M-MC-3.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "9
4.4.5.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"8 Advanced Configuration and 'ower %nterface !pecification
Obtaining the Modem Power Status
%ntegrated modems have no 0atteriesK the onl( power status information for the device is the power state of
the modem. To determine the modemMs current power state =-&-3>, 2!'M runs a control method =C'!C>
supplied in the modemMs entr( in the -ifferentiated -efinition ;lock. This control method reads from the
necessar( registers to determine the modemMs power state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "6
4.4.5.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
* Advanced Configuration and 'ower %nterface !pecification
Waking the Computer
As indicated in the modem capa0ilities, this modem can wake the machine from an( device power state.
;efore putting the computer in a sleep state, the 2! ena0les wake on an( devices that applications have
re:uested to 0e a0le to wake the machine. Then, it chooses the lowest sleeping state that can still provide
the power resources necessar( to allow all ena0led wake devices to wake the machine. Ne/t, the 2! puts
each of those devices in the appropriate power state, and puts all other devices in the -3 state. %n this case,
the 2! puts the modem in the -3 state 0ecause it supports wake from that state. 5inall(, the 2! saves a
resume vector and puts the machine into a sleep state through an AC'% register.
Waking the computer via modem starts with the modemMs phone interface asserting its ring indicate =3%>
line when it detects a ring on the phone line. This line is routed to the core chip set to generate a wake
event. The chip set then wakes the s(stem and the hardware will eventuall( passes control 0ack to the 2!
=the wake mechanism differs depending on the sleeping state>. After the 2! is running, it puts the device in
the - state and 0egins handling interrupts from the modem to process the event.
4.5 Processor Power Management
To further save power in the Working state, the 2! puts the C', into low&power states =C4, C2, and C3>
when the 2! is idle. %n these low&power states, the C', does not run an( instructions, and wakes when an
interrupt, such as the 2! schedulerMs timer interrupt, occurs.
The 2! determines how much time is 0eing spent in its idle loop 0( reading the AC'% 'ower Management
Timer. This timer runs at a known, fi/ed fre:uenc( and allows the 2! to precisel( determine idle time.
-epending on this idle time estimate, the 2! will put the C', into different :ualit( low&power states
=which var( in power and latenc(> when it enters its idle loop.
The C', states are defined in detail in section 8, J'rocessor 'ower and 'erformance !tate Configuration
and Control.L
4.6 Device and Processor Performance States
This section descri0es the concept of device and processor performance states. -evice and processor
performance states ='/ states> are power consumption and capa0ilit( states within the activeFe/ecuting
states, C for processors and - for devices. 'erformance states allow 2!'M to make tradeoffs 0etween
performance and energ( conservation. -evice and processor performance states have the greatest impact
when the states invoke different device and processor efficienc( levels as opposed to a linear scaling of
performance and energ( consumption. !ince performance state transitions occur in the activeFe/ecuting
device states, care must 0e taken to ensure that performance state transitions do not adversel( impact the
s(stem.
./amples of device performance states include<
A hard drive that provides levels of ma/imum throughput that correspond to levels of power
consumption.
An 1C- panel that supports multiple 0rightness levels that correspond to levels of power
consumption.
A graphics component that scales performance 0etween 2- and 3- drawing modes that
corresponds to levels of power consumption.
An audio su0s(stem that provides multiple levels of ma/imum volume that correspond to levels of
ma/imum power consumption.
A -irect&3-3AM
TM
controller that provides multiple levels of memor( throughput performance,
corresponding to multiple levels of power consumption, 0( ad#usting the ma/imum 0andwidth
throttles.
'rocessor performance states are descri0ed in !ection 8, J'rocessor 'ower and 'erformance !tate
Configuration and Control.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *4
4.7 Confguration and Plug and Play
%n addition to power management, AC'% interfaces provide controls and information that ena0le 2!'M to
configure the re:uired resources of mother0oard devices along with their d(namic insertion and removal.
AC'% -efinition ;locks, including the -ifferentiated !(stem -escription Ta0le =-!-T> and !econdar(
!(stem -escription Ta0les =!!-Ts>, descri0e mother0oard devices in a hierarchical format called the AC'%
namespace. The 2! enumerates mother0oard devices simpl( 0( reading through the AC'% Namespace
looking for devices with hardware %-s.
.ach device enumerated 0( AC'% includes AC'%&defined o0#ects in the AC'% Namespace that report the
hardware resources that the device could occup(, an o0#ect that reports the resources that are currentl(
used 0( the device, and o0#ects for configuring those resources. The information is used 0( the 'lug and
'la( 2! =2!'M> to configure the devices.
AC'% is used primaril( to enumerate and configure mother0oard devices that do not have other hardware
standards for enumeration and configuration. 5or e/ample, 'C% devices on the mother0oard need not 0e
enumerated 0( AC'%K 'lug and 'la( information for these devices need not 0e included in the A'C%
Namespace. @owever, power management information and insertionFremoval control for these devices can
still appear in the namespace if the devicesM power management andFor insertionFremoval is to 0e controlled
0( 2!'M via AC'%&defined interfaces.
0oteH When preparing to 0oot a computer, the ;%2! onl( needs to configure 0oot devices. This includes
0oot devices descri0ed in the AC'% s(stem description ta0les as well as devices that are controlled through
other standards.
4.7.1 Device Confguration Example: Confguring the Modem
3eturning to the modem device e/ample a0ove, the 2! will find the modem and load a driver for it when
the 2! finds it in the -!-T. This ta0le will have control methods that give the 2! the following
information<
The device can use %3G 3, %F2 358&355 or %3G ", %F2 2.8&2.5
The device is currentl( using %3G 3, %F2 358&355
The 2! configures the modemMs hardware resources using 'lug and 'la( algorithms. %t chooses one of the
supported configurations that does not conflict with an( other devices. Then, 2!'M configures the device
for those resources 0( running a control method supplied in the modemMs section of the -ifferentiated
-efinition ;lock. This control method will write to an( %F2 ports or memor( addresses necessar( to
configure the device to the given resources.
4.7.2 NUMA Nodes
!(stems emplo(ing a Non ,niform Memor( Access =N,MA> architecture contain collections of hardware
resources including processors, memor(, and %F2 0uses, that comprise what is commonl( known as a
JN,MA nodeL. 'rocessor accesses to memor( or %F2 resources within the local N,MA node is generall(
faster than processor accesses to memor( or %F2 resources outside of the local N,MA node. AC'% defines
interfaces that allow the platform to conve( N,MA node topolog( information to 2!'M 0oth staticall( at
0oot time and d(namicall( at run time as resources are added or removed from the s(stem.
4.8 System Events
AC'% includes a general event model used for 'lug and 'la(, Thermal, and 'ower Management events.
There are two registers that make up the event model< an event status register and an event ena0le register.
When an event occurs, the core logic sets a 0it in the status register to indicate the event. %f the
corresponding 0it in the ena0le register is set, the core logic will assert the !C% to signal the 2!. When the
2! receives this interrupt, it will run the control methods corresponding to an( 0its set in the event status
register. These control methods use AM1 commands to tell the 2! what event occurred.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*2 Advanced Configuration and 'ower %nterface !pecification
5or e/ample, assume a machine has all of its 'lug and 'la(, Thermal, and 'ower Management events
connected to the same pin in the core logic. The event status and event ena0le registers would onl( have
one 0it each< the 0it corresponding to the event pin.
When the computer is docked, the core logic sets the status 0it and signals the !C%. The 2!, seeing the
status 0it set, runs the control method for that 0it. The control method checks the hardware and determines
the event was a docking event =for e/ample>. %t then signals to the 2! that a docking event has occurred,
and can tell the 2! specificall( where in the device hierarch( the new devices will appear.
!ince the event model registers are generaliHed, the( can descri0e man( different platform
implementations. The single pin model a0ove is #ust one e/ample. Another design might have 'lug and
'la(, Thermal, and 'ower Management events wired to three different pins so there would 0e three status
0its =and three ena0le 0its>. Set another design might have ever( individual event wired to its own pin and
status 0it. This design, at the opposite e/treme from the single pin design, allows ver( comple/ hardware,
(et ver( simple control methods. Countless variations in wiring up events are possi0le. @owever, note that
care must 0e taken to ensure that if events share a signal that the event that generated the signal can 0e
determined in the corresponding event handling control method allowing the proper device notification to
0e sent.
4.9 Battery Management
;atter( management polic( moves from the A'M ;%2! to the AC'%&compati0le 2!. ;atteries must
compl( with the re:uirements of their associated interfaces, as descri0ed either herein or in other applica0le
standards. The 2! ma( choose to alter the 0ehavior of the 0atter(, for e/ample, 0( ad#usting the 1ow
;atter( or ;atter( Warning trip point. When there are multiple 0atteries present, the 0atter( su0s(stem is
not re:uired to perform an( s(nthesis of a Jcomposite 0atter(L from the data of the separate 0atteries. %n
cases where the 0atter( su0s(stem does not s(nthesiHe a Jcomposite 0atter(L from the separate 0atter(Us
data, the 2! must provide that s(nthesis.
An AC'%&compati0le 0atter( device needs either a !mart ;atter( su0s(stem interface or a Control Method
;atter( interface.
Smart )attery is controlled 0( the 2! directl( through the em0edded controller =.C>. 5or more
information a0out the AC'% .m0edded Controller !M;us interface, see section 42.6, J!M;us @ost
Controller %nterface via .m0edded Controller.L 5or additional information a0out the !mart ;atter(
su0s(stem interface, see section 4.4, J!mart ;atter( !u0s(stems.L
Control (et1od )attery is completel( accessed 0( AM1 code control methods, allowing the 2.M
to choose an( t(pe of 0atter( and an( kind of communication interface supported 0( AC'%. 5or more
information a0out the Control Method ;atter( %nterface, see section 4.2, JControl Method ;atteries.L
This section descri0es concepts common to all 0atter( t(pes.
4.9.1 Battery Communications
;oth the !mart ;atter( and Control Method ;atter( interfaces provide a mechanism for the 2! to :uer(
information from the platformMs 0atter( s(stem. This information ma( include full charged capacit(, present
0atter( capacit(, rate of discharge, and other measures of the 0atter(Ms condition. All 0atter( s(stem t(pes
must provide notification to the 2! when there is a change such as inserting or removing a 0atter(, or when
a 0atter( starts or stops discharging. !mart ;atteries and some Control Method ;atteries are also a0le to
give notifications 0ased on changes in capacit(. !mart 0atteries provide e/tra information such as estimated
run&time, information a0out how much power the 0atter( is a0le to provide, and what the run&time would
0e at a predetermined rate of consumption.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *3
4.9.2 Battery Capacity
.ach 0atter( must report its designed capacit(, latest full&charged capacit(, and present remaining capacit(.
3emaining capacit( decreases during usage, and it also changes depending on the environment. Therefore,
the 2! must use latest full&charged capacit( to calculate the 0atter( percentage. %n addition the 0atter(
s(stem must report warning and low 0atter( levels at which the user must 0e notified and the s(stem
transitioned to a sleeping state. !ee 5igure 3&3 for the relation of these five values.
A s(stem ma( use either rate and capacit( VmAFmAhW or power and energ( VmWFmWhW for the unit of
0atter( information calculation and reporting. Mi/ing VmAW and VmWW is not allowed on a s(stem.
O$M designed initial capacit, for warning
O$M designed initial capacit, for low
-ast full charged capacit,
'esigned capacit,
Present remaining capacit,
6igure #-# "eporting <atter) Capacit)
4.9.3 Battery Gas Gauge
At the most 0asic level, the 2! calculates 3emaining ;atter( 'ercentage VXW using the following formula<
Re%aining Battery Percentage9:; <
Battery Re%aining Capacity 9%Ah$%.h;
+ast 6(ll Charge" Capacity 9%Ah$%.h;
= 300
Control Method ;atter( also reports the 'resent -rain 3ate VmA or mWW for calculating the remaining
0atter( life. At the most 0asic level, 3emaining ;atter( life is calculated 0( following formula<
Re%aining Battery +ife 9h;<
Battery Re%aining Capacity 9%Ah$%.h;
Battery Present Drain Rate 9%A$%.;

!mart ;atteries also report the present rate of drain, 0ut since the( can directl( report the estimated run&
time, this function should 0e used instead as it can more accuratel( account for variations specific to the
0atter(.
4.9.4 Low Battery Levels
A s(stem has an 2.M&designed initial capacit( for warning, initial capacit( for low, and a critical 0atter(
level or flag. The values for warning and low represent the amount of energ( or 0atter( capacit( needed 0(
the s(stem to take certain actions. The critical 0atter( level or flag is used to indicate when the 0atteries in
the s(stem are completel( drained. 2!'M can determine independent warning and low 0atter( capacit(
values 0ased on the 2.M&designed levels, 0ut cannot set these values lower than the 2.M&designed
values, as shown in the figure 0elow
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*" Advanced Configuration and 'ower %nterface !pecification

arning
-ow
.ull
Critical
O$M/designed initial capacit, for warning )minimum+
O$M/designed initial capacit, for low )minimum+
-ast full charged capacit,
OSPM/selected low 0atter,
capacit,
OSPM/selected low 0atter, warning capacit,
O$M/defined Batter, Critical flag
.
$
6igure #-( Low <atter) and :arning
.ach Control Method ;atter( in a s(stem reports the 2.M&designed initial warning capacit( and 2.M&
designed initial low capacit( as well as a flag to report when that 0atter( has reached or is 0elow its critical
energ( level. ,nlike Control Method ;atteries, !mart ;atteries are not necessaril( specific to one particular
machine t(pe, so the 2.M&designed warning, low, and critical levels are reported separatel( in a !mart
;atter( Ta0le descri0ed in section *.2.43.
The ta0le 0elow descri0es how these values should 0e set 0( the 2.M and interpreted 0( the 2!.
Ta!le #-+ Low <atter) Levels
Level 5escription
:arning When the total availa0le energ( =mWh> or capacit( =mAh> in the 0atteries falls 0elow this
level, the 2! will notif( the user through the ,%. This value should allow for a few minutes
of run&time 0efore the J1owL level is encountered so the user has time to wrap up an(
important work, change the 0atter(, or find a power outlet to plug the s(stem in.
Low This value is an estimation of the amount of energ( or 0atter( capacit( re:uired 0( the
s(stem to transition to an( supported sleeping state. When the 2! detects that the total
availa0le 0atter( capacit( is less than this value, it will transition the s(stem to a user
defined s(stem state =!4&!*>. %n most situations this should 0e !" so that s(stem state is not
lost if the 0atter( eventuall( 0ecomes completel( empt(. The design of the 2! should
consider that users of a multiple 0atter( s(stem ma( remove one or more of the 0atteries in
an attempt replace or charge it. This might result in the remaining capacit( falling 0elow the
J1owL level not leaving sufficient 0atter( capacit( for the 2! to safel( transition the s(stem
into the sleeping state. Therefore, if the 0atteries are discharging simultaneousl(, the action
might need to 0e initiated at the point when 0oth 0atteries reach this level.
Critical The Critical 0atter( state indicates that all availa0le 0atteries are discharged and do not
appear to 0e a0le to suppl( power to run the s(stem an( longer. When this occurs, the 2!
must attempt to perform an emergenc( shutdown as descri0ed 0elow.
5or a smart 0atter( s(stem, this would t(picall( occur when all 0atteries reach a capacit( of
, 0ut an 2.M ma( choose to put a larger value in the !mart ;atter( Ta0le to provide an
e/tra margin of safel(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ **
Level 5escription
5or a Control Method ;atter( s(stem with multiple 0atteries, the flag is reported per
0atter(. %f an( 0atter( in the s(stem is in a criticall( low state and is still providing power to
the s(stem =in other words, the 0atter( is discharging>, the s(stem is considered to 0e in a
critical energ( state. The C;!T control method is re:uired to return the Critical flag on a
discharging 0atter( onl( when all 0atteries have reached a critical stateK the AC'% ;%2! is
otherwise re:uired to switch to a non&critical 0atter(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*+ Advanced Configuration and 'ower %nterface !pecification
4.9.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *9
Emergency Shutdown
3unning until all 0atteries in a s(stem are critical is not a situation that should 0e encountered normall(,
since the s(stem should 0e put into a sleeping state when the 0atter( 0ecomes low. %n the case that this does
occur, the 2! should take steps to minimiHe an( damage to s(stem integrit(. The emergenc( shutdown
procedure should 0e designed to minimiHe 0ad effects 0ased on the assumption that power ma( 0e lost at
an( time. 5or e/ample, if a hard disk is spun down, the 2! should not tr( to spin it up to write an( data,
since spinning up the disk and attempting to write data could potentiall( corrupt files if the write were not
completed. .ven if a disk is spun up, the decision to attempt to save even s(stem settings data 0efore
shutting down would have to 0e evaluated since reverting to previous settings might 0e less harmful than
having the potential to corrupt the settings if power was lost halfwa( through the write operation.
4.9.5 Battery Calibration
The reported capacit( of man( 0atteries generall( degrade over time, providing less run time for the user.
@owever, it is possi0le with man( 0atter( s(stems to provide more usea0le runtime on an old 0atter( if a
cali0ration or conditioning c(cle is run occasionall(. The user has t(picall( 0een a0le to perform a
cali0ration c(cle either 0( going into the ;%2! setup menu, or 0( running a custom driver and cali0ration
application provided 0( the 2.M. The cali0ration process t(picall( takes several hours, and the laptop
must 0e plugged in during this time. %deall( the application that controls this should make this as good of a
user e/perience as possi0le, for e/ample allowing the user to schedule the s(stem to wake up and perform
the cali0ration at some time when the s(stem will not 0e in use. !ince the cali0ration user e/perience does
not need to 0e different from s(stem to s(stem it makes sense for this service to 0e provided 0( the 2!'M.
.%n this wa( 2!'M can provide a common e/perience for end users and eliminate the need for 2.Ms to
develop custom 0atter( cali0ration software.
%n order for 2!'M to perform generic 0atter( cali0ration, generic interfaces to control the two 0asic
cali0ration functions are re:uired. These functions are defined in section 4.2.2.* and 4.2.2.+. 5irst, there
is a means to detect when it would 0e 0eneficial to cali0rate the 0atter(. !econd there is a means to
perform that cali0ration c(cle. ;oth of those functions ma( 0e implemented 0( dedicated hardware such as
a 0atter( controller chip, 0( firmware in the em0edded controller, 0( the ;%2!, or 0( 2!'M. 5rom here on
an( function implemented through AM1, whether or not the AM1 code relies on hardware, will 0e referred
to as JAM1 controlledL since the interface is the same whether the AM1 passes control to the hardware or
not.
-etection of when cali0ration is necessar( can 0e implemented 0( hardware or AM1 code and 0e reported
through the C;M- method. Alternatel(, the C;M- method ma( simpl( report the num0er of c(cles 0efore
cali0ration should 0e performed and let the 2! attempt to count the c(cles. A counter implemented 0( the
hardware or the ;%2! will generall( 0e more accurate since the 0atteries can 0e used without the 2!
running, 0ut in some cases, a s(stem designer ma( opt to simplif( the hardware or ;%2! implementation.
When cali0ration is desira0le and the user has scheduled the cali0ration to occur, the cali0ration c(cle can
0e AM1 controlled or 2!'M controlled. 2!'M can onl( implement a ver( simple algorithm since it
doesnMt have knowledge of the specifics of the 0atter( s(stem. %t will simpl( discharge the 0atter( until it
:uits discharging, then charge it until it :uits charging. %n the case where the AC adapter cannot 0e
controlled through the C;MC, it will prompt the user to unplug the AC adapter and reattach it after the
s(stem powers off. %f the cali0ration c(cle is controlled 0( AM1, the 2! will initiate the cali0ration c(cle
0( calling C;MC. That method will either give control to the hardware, or will control the cali0ration c(cle
itself. %f the control of the cali0ration c(cle is implemented entirel( in AM1 code, the ;%2! ma( avoid
continuousl( running AM1 code 0( having the initial call to C;MC start the c(cle, set some state flags, and
then e/it. Control of later parts of the c(cle can 0e accomplished 0( putting code that checks these state
flags in the 0atter( event handler =CG//, C1//, or C.//>.
-etails of the control methods for this interface are defined in section 4.2.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*8 Advanced Configuration and 'ower %nterface !pecification
4.10
Thermal Management
AC'% allows the 2! to pla( a role in the thermal management of the s(stem while maintaining the
platformMs a0ilit( to mandate cooling actions as necessar(. %n the passive cooling mode, 2!'M can make
cooling decisions 0ased on application load on the C', as well as the thermal heuristics of the s(stem.
2!'M can also gracefull( shutdown the computer in case of high temperature emergencies.
The AC'% thermal design is 0ased around regions called thermal Hones. $enerall(, the entire 'C is one
large thermal Hone, 0ut an 2.M can partition the s(stem into several logical thermal Hones if necessar(.
5igure 3&* is an e/ample mo0ile 'C diagram that depicts a single thermal Hone with a central processor as
the thermal&coupled device. %n this e/ample, the whole note0ook is covered as one large thermal Hone. This
note0ook uses one fan for active cooling and the C', for passive cooling.
.12 PIC3 PITs3
'MA3 RTC3 $IO3 444
CP8
CP8$
*e%ory$
PCI Bri"ge
."2
*SB
.!2 BM
I'$
SIO2
COMs3
-PT3
.'C3
ACPI
$PROM
5raphics
$m0edded
Controller
'
R
A
M
-
"
'
R
A
M
PCI/PCI
Bridge
-
A
&
M
P
$
5
&6RAM
+CD
-PT
COM
7''
!
*SB
Port !
CRT
#e,0oard
PS/"
Ports
Mouse
Docking
7''
1
.''
Momentar,
Thermal
Zone
'PR1
'PR!
P
-
-
Fan
(Actie !ooling"
(Passie !ooling"
6igure #-A Ther%al Ione
The following sections are an overview of the thermal control and cooling characteristics of a computer.
5or some thermal implementation e/amples on an AC'% platform, see section 44.*, JThermal ?one
%nterface 3e:uirements.L
4.10.1 Active and Passive Cooling Modes
AC'% defines two cooling modes, Active and 'assive<
Passive cooling. 2! reduces the power consumption of devices at the cost of s(stem performance
to reduce the temperature of the machine.
Active cooling. 2! increases the power consumption of the s(stem =for e/ample, 0( turning on a
fan> to reduce the temperature of the machine.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *6
These two cooling modes are inversel( related to each other. Active cooling re:uires increased power to
reduce the heat within the s(stem while 'assive cooling re:uires reduced power to decrease the
temperature. The effect of this relationship is that Active cooling allows ma/imum s(stem performance, 0ut
it ma( create undesira0le fan noise, while 'assive cooling reduces s(stem performance, 0ut is inherentl(
:uiet.
4.10.2 Performance vs. Energy Conservation
A ro0ust 2!'M implementation provides the means for the end user to conve( to 2!'M a preference =or a
level of preference> for either performance or energ( conservation. Allowing the end user to choose this
preference is most critical to mo0ile s(stem users where ma/imiHing s(stem run&time on a 0atter( charge
often has higher priorit( over realiHing ma/imum s(stem performance.
A userMs preference for performance corresponds to the Active cooling mode while a userMs preference for
energ( conservation corresponds to the 'assive cooling mode. AC'% defines an interface to conve( the
cooling mode to the platform. Active cooling can 0e performed with minimal 2!'M thermal polic(
intervention. 5or e/ample, the platform indicates through thermal Hone parameters that crossing a thermal
trip point re:uires a fan to 0e turned on. 'assive cooling re:uires 2!'M thermal polic( to manipulate
device interfaces that reduce performance to reduce thermal Hone temperature.
4.10.3 Acoustics (Noise)
Active cooling mode generall( implies that fans will 0e used to cool the s(stem and fans var( in their
audi0le output. 5an noise can 0e :uite undesira0le given the loudness of the fan and the am0ient noise
environment. %n this case, the end userMs ph(sical re:uirement for fan silence ma( override the preference
for either performance or energ( conservation.
A userMs desire for fan silence corresponds to the 'assive cooling mode. Accordingl(, a userMs desire for fan
silence also means a preference for energ( conservation.
5or more information on thermal management and e/amples of platform settings for active and passive
cooling, see section 44, JThermal Management.L
4.10.4 Multiple Thermal Zones
The 0asic thermal management model defines one thermal Hone, 0ut in order to provide e/tended thermal
control in a comple/ s(stem, AC'% specifies a multiple thermal Hone implementation. ,nder a multiple
thermal Hone model, 2!'M will independentl( manage several thermal&coupled devices and a designated
thermal Hone for each thermal&coupled device, using Active andFor 'assive cooling methods availa0le to
each thermal Hone. .ach thermal Hone can have more than one 'assive and Active cooling device.
5urthermore, each Hone might have uni:ue or shared cooling resources. %n a multiple thermal Hone
configuration, if one Hone reaches a critical state then 2!'M must shut down the entire s(stem.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+ Advanced Configuration and 'ower %nterface !pecification
5 ACPI Hardware Specifcation
AC'% defines standard interface mechanisms that allow an AC'%&compati0le 2! to control and
communicate with an AC'%&compati0le hardware platform. This section descri0es the hardware aspects of
AC'%.
AC'% defines JhardwareL as a programming model and its 0ehavior. AC'% strives to keep much of the
e/isting legac( programming model the sameK however, to meet certain feature goals, designated features
conform to a specific addressing and programming scheme. @ardware that falls within this categor( is
referred to as Jfi/ed.L
Although AC'% strives to minimiHe these changes, hardware engineers should read this section carefull( to
understand the changes needed to convert a legac(&onl( hardware model to an AC'%F1egac( hardware
model or an AC'%&onl( hardware model.
AC'% classifies hardware into two categories< 5i/ed or $eneric. @ardware that falls within the fi/ed
categor( meets the programming and 0ehavior specifications of AC'%. @ardware that falls within the
generic categor( has a wide degree of fle/i0ilit( in its implementation.
5.1 Fixed Hardware Programming Model
;ecause of the changes needed for migrating legac( hardware to the fi/ed categor(, AC'% limits the
features specified 0( fi/ed hardware. 5i/ed hardware features are defined 0( the following criteria<
'erformance sensitive features
5eatures that drivers re:uire during wake
5eatures that ena0le catastrophic 2! software failure recover(
AC'% defines register&0ased interfaces to fi/ed hardware. C', clock control and the power management
timer are defined as fi/ed hardware to reduce the performance impact of accessing this hardware, which
will result in more :uickl( reducing a thermal condition or e/tending 0atter( life. %f this logic were allowed
to reside in 'C% configuration space, for e/ample, several la(ers of drivers would 0e called to access this
address space. This takes a long time and will either adversel( affect the power of the s(stem =when tr(ing
to enter a low&power state> or the accurac( of the event =when tr(ing to get a time stamp value>.
Access to fi/ed hardware 0( 2!'M allows 2!'M to control the wake process without having to load the
entire 2!. 5or e/ample, if 'C% configuration space access is needed, the 0us enumerator is loaded with all
drivers used 0( the enumerator. -efining these interfaces in fi/ed hardware at addresses with which 2!'M
can communicate without an( other driverMs assistance, allows 2!'M to gather information prior to
making a decision as to whether it continues loading the entire 2! or puts it 0ack to sleep.
%f elements of the 2! fail, it ma( 0e possi0le for 2!'M to access address spaces that need no driver
support. %n such a situation, 2!'M will attempt to honor fi/ed power 0utton re:uests to transition the
s(stem to the $2 state. %n the case where 2!'M event handler is no longer a0le to respond to power 0utton
events, the power 0utton override feature provides a 0ack&up mechanism to unconditionall( transition the
s(stem to the soft&off state.
5.1.1 Functional Fixed Hardware
AC'% defines the fi/ed hardware low&level interfaces as a means to conve( to the s(stem 2.M the
minimum interfaces necessar( to achieve a level of capa0ilit( and :ualit( for mother0oard configuration
and s(stem power management. Additionall(, the definition of these interfaces, as well as others defined in
this specification, conve(s to 2! Dendors =2!Ds> developing AC'%&compati0le operating s(stems, the
necessar( interfaces that operating s(stems must manipulate to provide ro0ust support for s(stem
configuration and power management.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +4
While the definition of low&level hardware interfaces defined 0( AC'% 4. afforded 2!'M
implementations a certain level of sta0ilit(, controls for e/isting and emerging diverse C', architectures
cannot 0e accommodated 0( this model as the( can re:uire a se:uence of hardware manipulations
intermi/ed with native C', instructions to provide the AC'%&defined interface function. %n this case, an
AC'%&defined fi/ed hardware interface can 0e functionall( implemented 0( the C', manufacturer through
an e:uivalent com0ination of 0oth hardware and software and is defined 0( AC'% as 5unctional 5i/ed
@ardware.
%n %A&32&0ased s(stems, functional fi/ed hardware can 0e accommodated in an 2! independent manner 0(
using !(stem Management Mode =!MM> 0ased s(stem firmware. ,nfortunatel(, the nature of !MM&0ased
code makes this t(pe of 2! independent implementation difficult if not impossi0le to de0ug. As such, this
implementation approach is not recommended. %n some cases, 5unctional 5i/ed @ardware implementations
ma( re:uire coordination with other 2! components. As such, an 2! independent implementation ma( not
0e via0le.
2!&specific implementations of functional fi/ed hardware can 0e implemented using technical information
supplied 0( the C', manufacturer. The downside of this approach is that functional fi/ed hardware support
must 0e developed for each 2!. %n some cases, the C', manufacturer ma( provide a software component
providing this support. %n other cases support for the functional fi/ed hardware ma( 0e developed directl(
0( the 2! vendor.
The hardware register definition was e/panded, in AC'% 2., to allow registers to e/ist in address spaces
other than the !(stem %F2 address space. This is accomplished through the specification of an address space
%- in the register definition =see section *.2.3.4, J$eneric Address !tructure,L for more information>. :hen
specificall) directed !) the CP2 %anufacturer' the s(stem firmware ma( define an interface as
functional fi/ed hardware 0( suppl(ing a special address space identifier, )fi%edH6 (5%9)), in the address
space %- field for register definitions. %t is emphasiHed that functional fi/ed hardware definitions ma( 0e
declared in the AC'% s(stem firmware onl) as indicated !) the CP2 Manufacturer for specific interfaces
as the use of functional fi/ed hardware re:uires specific coordination with the 2! vendor.
2nl( certain AC'%&defined interfaces ma( 0e implemented using functional fi/ed hardware and onl( when
the interfaces are common across machine designs for e/ample, s(stems sharing a common C',
architecture that does not support fi/ed hardware implementation of an AC'%&defined interface. 2.Ms are
cautioned not to anticipate that functional fi/ed hardware support will 0e provided 0( 2!'M differentl( on
a s(stem&0(&s(stem 0asis. The use of functional fi/ed hardware carries with it a reliance on 2! specific
software that must 0e considered. 2.Ms should consult 2! vendors to ensure that specific functional fi/ed
hardware interfaces are supported 0( specific operating s(stems.
5.2 Generic Hardware Programming Model
Although the fi/ed hardware programming model re:uires hardware registers to 0e defined at specific
address locations, the generic hardware programming model allows hardware registers to reside in most
address spaces and provides s(stem 2.Ms with a wide degree of fle/i0ilit( in the implementation of
specific functions in hardware. 2!'M directl( accesses the fi/ed hardware registers, 0ut relies on 2.M&
provided AC'% Machine 1anguage =AM1> code to access generic hardware registers.
AM1 code allows the 2.M to provide the means for 2!'M to control a generic hardware featureMs control
and event logic.
The section entitled JAC'% !ource 1anguage 3eferenceL descri0es the AC'% !ource 1anguage =A!1>Pa
programming language that 2.Ms use to create AM1. The A!1 language provides man( of the operators
found in common o0#ect&oriented programming languages, 0ut it has 0een optimiHed to ena0le the
description of platform power management and configuration hardware. An A!1 compiler converts A!1
source code to AM1, which is a ver( compact machine language that the AC'% AM1 code interpreter
e/ecutes.
AM1 does two things<
A0stracts the hardware from 2!'M
;uffers 2.M code from the different 2! implementations
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+2 Advanced Configuration and 'ower %nterface !pecification
2ne goal of AC'% is to allow the 2.M Jvalue addedL hardware to remain 0asicall( unchanged in an AC'%
configuration. 2ne attri0ute of value&added hardware is that it is all implemented differentl(. To ena0le
2!'M to e/ecute properl( on different t(pes of value added hardware, AC'% defines higher level Jcontrol
methodsL that it calls to perform an action. The 2.M provides AM1 code, which is associated with control
methods, to 0e e/ecuted 0( 2!'M. ;( providing AM1 code, generic hardware can take on almost an(
form.
Another important goal of AC'% is to provide 2! independence. To do this, the 2.M AM1 code has to
e/ecute the same under an( AC'%&compati0le 2!. AC'% allows for this 0( making the AM1 code
interpreter part of 2!'M. This allows 2!'M to take care of s(nchroniHing and 0locking issues specific to
each particular 2!.
The generic feature model is represented in the following 0lock diagram. %n this model the generic feature
is descri0ed to 2!'M through AM1 code. This description takes the form of an o0#ect that sits in the AC'%
Namespace associated with the hardware to which it is adding value.

;eneric 1vent
Logic
Control
1vents
ACPI 5river
and AML-
Code Interpreter
;eneric
Control
Logic
AML
Code
"ds
;P 1vent Status
;eneric Child
1vent Status
6igure (-+ ;eneric Hardware 6eature Model
As an e/ample of a generic hardware control feature, a platform might 0e designed such that the %-.
@--Ms -3 state has value&added hardware to remove power from the drive. The %-. drive would then have
a reference to the AM1 Power"esource o0#ect =which controls the value added power plane> in its
namespace, and associated with that o0#ect would 0e control methods that 2!'M invokes to control the -3
state of the drive<
DPS$. A control method to se:uence the %-. drive to the - state.
DPS#. A control method to se:uence the %-. drive to the -3 state.
DPSC. A control method that returns the status of the %-. drive =on or off>.
The control methods under this o0#ect provide an a0straction la(er 0etween 2!'M and the hardware.
2!'M understands how to control power planes =turn them on or off or to get their status> through its
defined Power"esource o0#ect, while the hardware has platform&specific AM1 code =contained in the
appropriate control methods> to perform the desired function. %n this e/ample, the platform would descri0e
its hardware to the AC'% 2! 0( writing and placing the AM1 code to turn the hardware off within the C'!3
control method. This ena0les the following se:uence<
When 2!'M decides to place the %-. drive in the -3 state, it calls the %-. driver and tells it to place the
drive into the -3 state =at which point the driver saves the deviceMs conte/t>.
When the %-. driver returns control, 2!'M places the drive in the -3 state.
2!'M finds the o0#ect associated with the @-- and then finds within that o0#ect an( AM1 code associated
with the -3 state.
2!'M e/ecutes the appropriate C'!3 control method to control the value&added JgenericL hardware to
place the @-- into an even lower power state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +3
As an e/ample of a generic event feature, a platform might have a docking capa0ilit(. %n this case, it will
want to generate an event. Notice that all AC'% events generate an !C%, which can 0e mapped to an(
sharea0le s(stem interrupt. %n the case of docking, the event is generated when a docking has 0een detected
or when the user re:uests to undock the s(stem. This ena0les the following se:uence<
2!'M responds to the !C% and calls the AM1 code event handler associated with that generic event. The
AC'% ta0le associates the hardware event with the AM1 code event handler.
The AM1&code event handler collects the appropriate information and then e/ecutes an AM1 Notif(
command to indicate to 2!'M that a particular 0us needs re&enumeration.
The following sections descri0e the fi/ed and generic hardware feature set of AC'%. These sections ena0le
a reader to understand the following<
Which hardware registers are re:uired or optional when an AC'% feature, concept or interface is
re:uired 0( a design guide for a platform class
@ow to design fi/ed hardware features
@ow to design generic hardware features
The AC'% .vent Model
5.3 Diagram Legends
The hardware section uses simplified logic diagrams to represent how certain aspects of the hardware are
implemented. The following s(m0ols are used in the logic diagrams to represent programming 0its.
Write&onl( control 0it
.na0le, control or status 0it
!tick( status 0it
88
Guer( value
The half round s(m0ol with an inverted JDL represents a write&onl( control 0it. This 0it has the 0ehavior
that it generates its control function when it is set. 3eads to write&onl( 0its are treated as ignore 0( software
=the 0it position is masked off and ignored>.
The round s(m0ol with an JAL represents a programming 0it. As an ena0le or control 0it, software setting
or clearing this 0it will result in the 0it 0eing read as set or clear =unless otherwise noted>. As a status 0it it
directl( represents the value of the signal.
The s:uare s(m0ol represents a stick( status 0it. A stick( status 0it is set 0( the level =not edge> of a
hardware signal =active high or active low>. The 0it is onl( cleared 0( software writing a J4L to its 0it
position.
The rectangular s(m0ol represents a :uer( value from the em0edded controller. This is the value the
em0edded controller returns to the s(stem software upon a :uer( command in response to an !C% event.
The :uer( value is associated with the event control method that is scheduled to e/ecute upon an em0edded
controller event.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+" Advanced Configuration and 'ower %nterface !pecification
5.4 Register Bit Notation
Throughout this section there are logic diagrams that reference 0its within registers. These diagrams use a
notation that easil( references the register name and 0it position. The notation is as follows<
$egistername.)it
$egistername contains the name of the register as it appears in this specification
)it contains a Hero&0ased decimal value of the 0it position.
5or e/ample, the !1'C.N 0it resides in the 'M4/CCNT register 0it 43 and would 0e represented in
diagram notation as<
SLP_EN
PM1x_CNT.13
5.5 The ACPI Hardware Model
The AC'% hardware model is defined to allow 2!'M to se:uence the platform 0etween the various glo0al
s(stem states =$&$3> as illustrated in the following figure 0( manipulating the defined interfaces. When
first powered on, the platform finds itself in the glo0al s(stem state $3 or JMechanical 2ff.L This state is
defined as one where power consumption is ver( close to HeroPthe power plug has 0een removedK
however, the real&time clock device still runs off a 0atter(. The $3 state is entered 0( an( power failure,
defined as accidental or user&initiated power loss.
The $3 state transitions into either the $ working state or the 1egac( state depending on what the
platform supports. %f the platform is an AC'%&onl( platform, then it allows a direct 0oot into the $
working state 0( alwa(s returning the status 0it !C%C.N set =4> =for more information, see section ".9.2.*,
J1egac(FAC'% !elect and the !C% %nterruptL>. %f the platform supports 0oth legac( and AC'% operations
=which is necessar( for supporting a non&AC'% 2!>, then it would alwa(s 0oot into the 1egac( state
=illustrated 0( returning the !C%C.N clear =>>. %n either case, a transition out of the $3 state re:uires a total
0oot of 2!'M.
The 1egac( s(stem state is the glo0al state where a non&AC'% 2! e/ecutes. This state can 0e entered from
either the $3 JMechanical 2ff,L the $2 J!oft 2ff,L or the $ JWorkingL states onl( if the hardware
supports 0oth 1egac( and AC'% modes. %n the 1egac( state, the AC'% event model is disa0led =no !C%s are
generated> and the hardware uses legac( power management and configuration mechanisms. While in the
1egac( state, an AC'%&compliant 2! can re:uest a transition into the $ working state 0( performing an
AC'% mode re:uest. 2!'M performs this transition 0( writing the AC'%C.NA;1. value to the
!M%CCM-, which generates an event to the hardware to transition the platform into AC'% mode. When
hardware has finished the transition, it sets the !C%C.N 0it and returns control 0ack to 2!'M. While in the
$ Jworking state,L 2!'M can re:uest a transition to 1egac( mode 0( writing the AC'%C-%!A;1. value
to the !M%CCM- register, which results in the hardware going into legac( mode and resetting the !C%C.N
0it 12W =for more information, see section ".9.2.*, J1egac(FAC'% !elect and the !C% %nterruptL>.
The $ JWorkingL state is the normal operating environment of an AC'% machine. %n this state different
devices are d(namicall( transitioning 0etween their respective power states =-, -4, -2 or -3> and
processors are d(namicall( transitioning 0etween their respective power states =C, C4, C2 or C3>. %n this
state, 2!'M can make a polic( decision to place the platform into the s(stem $4 JsleepingL state. The
platform can onl( enter a single sleeping state at a time =referred to as the glo0al $4 state>K however, the
hardware can provide up to four s(stem sleeping states that have different power and e/it latencies
represented 0( the !4, !2, !3, or !" states. When 2!'M decides to enter a sleeping state it picks the most
appropriate sleeping state supported 0( the hardware =2! polic( e/amines what devices have ena0led wake
events and what sleeping states these support>. 2!'M initiates the sleeping transition 0( ena0ling the
appropriate wake events and then programming the !1'CTS'/ field with the desired sleeping state and
then setting the !1'C.N/ 0it. The s(stem will then enter a sleeping stateK when one of the ena0led wake
events occurs, it will transition the s(stem 0ack to the working state =for more information, see section 4*,
JWaking and !leepingL>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +*
Another glo0al state transition option while in the $ JworkingL state is to enter the $2 Jsoft offL or the $3
Jmechanical offL state. These transitions represent a controlled transition that allows 2!'M to 0ring the
s(stem down in an orderl( fashion =unloading applications, closing files, and so on>. The polic( for these
t(pes of transitions can 0e associated with the AC'% power 0utton, which when pressed generates an event
to the power 0utton driver. When 2!'M is finished preparing the operating environment for a power loss,
it will either generate a pop&up message to indicate to the user to remove power, in order to enter the $3
JMechanical 2ffL state, or it will initiate a $2 Jsoft&offL transition 0( writing the value of the !* Jsoft offL
s(stem state to the !1'CTS'/ register and setting the !1'C.N 0it.
The $4 sleeping state is represented 0( four possi0le sleeping states that the hardware can support. .ach
sleeping state has different power and wake latenc( characteristics. The sleeping state differs from the
working state in that the userMs operating environment is froHen in a low&power state until awakened 0( an
ena0led wake event. No work is performed in this state, that is, the processors are not e/ecuting
instructions. .ach s(stem sleeping state has re:uirements a0out who is responsi0le for s(stem conte/t and
wake se:uences =for more information, see section 4*, Waking and !leepingL>.
The $2 Jsoft offL state is an 2! initiated s(stem shutdown. This state is initiated similar to the sleeping
state transition =!1'CTS'/ is set to the !* value and setting the !1'C.N 0it initiates the se:uence>.
./iting the $2 soft&off state re:uires re0ooting the s(stem. %n this case, an AC'%&onl( machine will re&enter
the $ state directl( =hardware returns the !C%C.N 0it set>, while an AC'%F1egac( machine transitions to
the 1egac( state =!C%C.N 0it is clear>.
S4BIOS>6
S4BIOS>R&?
ACPI>DISAB+&
1SCI>&@<02
,- -*ech
Off
+egacy
Boot
1SCI>&@<02
+egacy
Boot
1SCI>&@<02
ACPI>&@AB+&
1SCI>&@<32
+egacy
S+P>TAP'<S7
an"
S+P>&@
or
P.RBT@>OR
.a/e
&vent
C0
,0 1S02 -
.or/ing
,3 -
Sleeping
S4
S-
S5
S3
Po#er
6ail(re$
Po#er Off
ACPI
Boot
1SCI>&@<32
ACPI
Boot
1SCI>&@<32
,5 1S72 -
Soft Off
S+P>TAP'<1S3-S42
an"
S+P>&@
D0
D3
D5
D-
*o"e%
D0
D3
D5
D-
!DD
D0
D3
D5
D-
CDRO*
BIOS
Routine
C5
C3
Cn
Performance
State Px
Throttling
C0
CP8
6igure (-& ;lo!al States and Their Transitions
The AC'% architecture defines mechanisms for hardware to generate events and control logic to implement
this 0ehavior model. .vents are used to notif( 2!'M that some action is needed, and control logic is used
0( 2!'M to cause some state transition. AC'%&defined events are JhardwareL or JinterruptL events. A
hardware event is one that causes the hardware to unconditionall( perform some operation. 5or e/ample,
an( wake event will se:uence the s(stem from a sleeping state =!4, !2, !3, and !" in the glo0al $4 state> to
the $ working state =see 5igure 4*&4>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
++ Advanced Configuration and 'ower %nterface !pecification
An interrupt event causes the e/ecution of an event handler =AM1 code or an AC'%&aware driver>, which
allows the software to make a polic( decision 0ased on the event. 5or AC'% fi/ed&feature events, 2!'M or
an AC'%&aware driver acts as the event handler. 5or generic logic events 2!'M will schedule the e/ecution
of an 2.M&supplied AM1 control method associated with the event.
5or legac( s(stems, an event normall( generates an 2!&transparent interrupt, such as a !(stem
Management %nterrupt, or !M%. 5or AC'% s(stems the interrupt events need to generate an 2!&visi0le
interrupt that is sharea0leK edge&st(le interrupts will not work. @ardware platforms that want to support
0oth legac( operating s(stems and AC'% s(stems support a wa( of re&mapping the interrupt events 0etween
!M%s and !C%s when switching 0etween AC'% and legac( models. This is illustrated in the following 0lock
diagram.
Po#er Plane
Control
5eneric Space
,+B+ STBA
Ti%er
P.RBT@
+ID
T!R*
DOCK
STS>C!,
RI
S*I Arbiter
Sleep$.a/e
State %achine
S*IB
SCIB
+egacy Only &vent +ogic
ACPI$+egacy &vent +ogic
ACPI Only &vent +ogic
S*I &vents
SCI$S*I &vents
'ec
1
!
CP8 Cloc/
Control
Device
Traps
Device I"le
Ti%ers
8ser
Interface
Ther%al
+ogic
!ar"#are
&vents
RTC
SCI%$&
ACPI$+egacy ,eneric Control 6eat(res
ACPI$+egacy 6i'e" Control 6eat(res
.a/e-(p &vents
P* Ti%er
SCI Arbiter
6igure (-# 1xa%ple 1vent Structure for a Legac)@ACPI Co%pati!le 1vent Model
This e/ample logic illustrates the event model for a sample platform that supports 0oth legac( and AC'%
event models. This e/ample platform supports a num0er of e/ternal events that are power&related =power
0utton, 1%- openFclose, thermal, ring indicate> or 'lug and 'la(&related =dock, status change>. The logic
represents the three different t(pes of events<
3S Transparent 1vents. These events represent 2.M&specific functions that have no 2! support
and use software that can 0e operated in an 2!&transparent fashion =that is, !M%s>.
Interrupt 1vents. These events represent features supported 0( AC'%&compati0le operating
s(stems, 0ut are not supported 0( legac( operating s(stems. When a legac( 2! is loaded, these events
are mapped to the transparent interrupt =!M%Y in this e/ample>, and when in AC'% mode the( are
mapped to an 2!&visi0le sharea0le interrupt =!C%Y>. This logic is represented 0( routing the event
logic through the decoder that routes the events to the !M%Y ar0iter when the !C%C.N 0it is cleared, or
to the !C%Y ar0iter when the !C%C.N 0it is set.
Hardware events. These events are used to trigger the hardware to initiate some hardware
se:uence such as waking, resetting, or putting the machine to sleep unconditionall(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +9
%n this e/ample, the legac( power management event logic is used to determine deviceFs(stem activit( or
idleness 0ased on device idle timers, device traps, and the glo0al stand0( timer. 1egac( power management
models use the idle timers to determine when a device should 0e placed in a low&power state 0ecause it is
idlePthat is, the device has not 0een accessed for the programmed amount of time. The device traps are
used to indicate when a device in a low&power state is 0eing accessed 0( 2!'M. The glo0al stand0( timer
is used to determine when the s(stem should 0e allowed to go into a sleeping state 0ecause it is idlePthat
is, the user interface has not 0een used for the programmed amount of time.
These legac( idle timers, trap monitors, and glo0al stand0( timer are not used 0( 2!'M in the AC'% mode.
This work is handled 0( different software structures in an AC'%&compati0le 2!. 5or e/ample, the driver
model of an AC'%&compati0le 2! is responsi0le for placing its device into a low&power state =-4, -2, or
-3> and transitioning it 0ack to the 2n state =-> when needed. And 2!'M is responsi0le for determining
when the s(stem is idle 0( profiling the s(stem =using the 'M Timer> and other knowledge it gains through
its operating structure environment =which will var( from 2! to 2!>. When the s(stem is placed into the
AC'% mode, these events no longer generate !M%s, as 2!'M handles this function. These events are
disa0led through some 2.M&proprietar( method.
2n the other hand, man( of the hardware events are shared 0etween the AC'% and legac( models =docking,
the power 0utton, and so on> and this t(pe of interrupt event changes to an !C% event when ena0led for
AC'%. The AC'% 2! will generate a re:uest to the platformMs hardware =;%2!> to enter into the AC'%
mode. The ;%2! sets the !C%C.N 0it to indicate that the s(stem has successfull( entered into the AC'%
mode, so this is a convenient mechanism to map the desired interrupt =!M% or !C%> for these events =as
shown in 5igure "&3>.
The AC'% architecture specifies some dedicated hardware not found in the legac( hardware model< the
power management timer ='M Timer>. This is a free running timer that the AC'% 2! uses to profile s(stem
activit(. The fre:uenc( of this timer is e/plicitl( defined in this specification and must 0e implemented as
descri0ed.
Although the AC'% architecture reuses most legac( hardware as is, it does place restrictions on where and
how the programming model is generated. %f used, all fi/ed hardware features are implemented as
descri0ed in this specification so that 2!'M can directl( access the fi/ed hardware feature registers.
$eneric hardware features are manipulated 0( AC'% control methods residing in the AC'% Namespace.
These interfaces can 0e ver( fle/i0leK however, their use is limited 0( the defined AC'% control methods
=for more information, see section 6, JAC'% -evices and -evice !pecific 20#ectsL>. $eneric hardware
usuall( controls power planes, 0uffer isolation, and device reset resources. Additionall(, JchildL interrupt
status 0its can 0e accessed via generic hardware interfacesK however, the( have a JparentL interrupt status
0it in the $'C!T! register. AC'% defines seven address spaces that ma( 0e accessed 0( generic hardware
implementations. These include<
!(stem %F2 space
!(stem memor( space
'C% configuration space
.m0edded controller space
!(stem Management ;us =!M;us> space
CM2!
'C% ;A3 Target
$eneric hardware power management features can 0e implemented accessing spare %F2 ports residing in
an( of these address spaces. The AC'% specification defines an optional em0edded controller and !M;us
interfaces needed to communicate with these associated address spaces.
5.5.1 Hardware Reserved Bits
AC'% hardware registers are designed such that reserved 0its alwa(s return Hero, and data writes to them
have no side affects. 2!'M implementations must write Heros to reserved 0its in ena0le and status registers
and preserve 0its in control registers, and the( will treat these 0its as ignored.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+8 Advanced Configuration and 'ower %nterface !pecification
5.5.2 Hardware Ignored Bits
AC'% hardware registers are designed such that ignored 0its are undefined and are ignored 0( software.
@ardware&ignored 0its can return Hero or one. When software reads a register with ignored 0its, it masks off
ignored 0its prior to operating on the result. When software writes to a register with ignored 0it fields, it
preserves the ignored 0it fields.
5.5.3 Hardware Write-Only Bits
AC'% hardware defines a num0er of write&onl( control 0its. These 0its are activated 0( software writing a 4
to their 0it position. 3eads to write&onl( 0it positions generate undefined results. ,pon reads to registers
with write&onl( 0its, software masks out all write&onl( 0its.
5.5.4 Cross Device Dependencies
Cross -evice -ependenc( is a condition in which an operation to a device interferes with the operation of
other unrelated devices, or allows other unrelated devices to interfere with its 0ehavior. This condition is
not supporta0le and can cause platform failures. AC'% provides no support for cross device dependencies
and suggests that devices 0e designed to not e/hi0it this 0ehavior. The following two e/amples descri0e
cross device dependencies<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +6
5.5.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9 Advanced Configuration and 'ower %nterface !pecification
Example 1: Related Device Interference
This e/ample illustrates a cross device dependenc( where a device interferes with the proper operation of
other unrelated devices. -evice A has a dependenc( that when it is 0eing configured it 0locks all accesses
that would normall( 0e targeted for -evice ;. Thus, the device driver for -evice ; cannot access -evice ;
while -evice A is 0eing configuredK therefore, it would need to s(nchroniHe access with the driver for
-evice A. @igh performance, multithreaded operating s(stems cannot perform this kind of s(nchroniHation
without seriousl( impacting performance.
To further illustrate the point, assume that -evice A is a serial port and -evice ; is a hard drive controller.
%f these devices demonstrate this 0ehavior, then when a software driver configures the serial port, accesses
to the hard drive need to 0lock. This can onl( 0e done if the hard disk driver s(nchroniHes access to the disk
controller with the serial driver. Without this s(nchroniHation, hard drive data will 0e lost when the serial
port is 0eing configured.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 94
5.5.4.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
92 Advanced Configuration and 'ower %nterface !pecification
Example 2: Unrelated Device Interference
This e/ample illustrates a cross&device dependenc( where a device demonstrates a 0ehavior that allows
other unrelated devices to interfere with its proper operation. -evice A e/hi0its a programming 0ehavior
that re:uires atomic 0ack&to&0ack write accesses to successfull( write to its registersK if an( other platform
access is a0le to 0reak 0etween the 0ack&to&0ack accesses, then the write to -evice A is unsuccessful. %f the
-evice A driver is una0le to generate atomic 0ack&to&0ack accesses to its device, then it relies on software
to s(nchroniHe accesses to its device with ever( other driver in the s(stemK then a device cross dependenc(
is created and the platform is prone to -evice A failure.
5.6 ACPI Hardware Features
This section descri0es the different hardware features defined 0( the AC'% interface. These features are
categoriHed as the following<
5i/ed @ardware 5eatures
$eneric @ardware 5eatures
5i/ed hardware features reside in a num0er of the AC'%&defined address spaces at the locations descri0ed
0( the AC'% programming model. $eneric hardware features reside in one of four address spaces =s(stem
%F2, s(stem memor(, 'C% configuration, em0edded controller, or serial device %F2 space> and are descri0ed
0( the AC'% Namespace through the declaration of AM1 control methods.
5i/ed hardware features have e/act definitions for their implementation. Although man( fi/ed hardware
features are optional, if implemented the( must 0e implemented as descri0ed since 2!'M manipulates the
registers of fi/ed hardware devices and e/pects the defined 0ehavior. 5unctional fi/ed hardware provides
functional e:uivalents of the fi/ed hardware feature interfaces as descri0ed in section ".4.4, J5unctional
5i/ed @ardware.L
$eneric hardware feature implementation is fle/i0le. This logic is controlled 0( 2.M&supplied AM1 code
=for more information, see section *, JAC'% !oftware 'rogramming ModelL>, which can 0e written to
support a wide variet( of hardware. Also, AC'% provides specialiHed control methods that provide
capa0ilities for specialiHed devices. 5or e/ample, the Notif( command can 0e used to notif( 2!'M from a
generic hardware event handler =control method> that a docking or thermal event has taken place. A good
understanding of this section and section * of this specification will give designers a good understanding of
how to design hardware to take full advantage of an AC'%&compati0le 2!.
Notice that the generic features are listed for illustration onl(, the AC'% specification can support man(
t(pes of hardware not listed.
Ta!le (-+ 6eature@Progra%%ing Model Su%%ar)
6eature 0a%e 5escription Progra%%ing Model
'ower Management Timer 2"&0it or 32&0it free running timer. 5i/ed @ardware 5eature Control
1ogic
'ower ;utton ,ser pushes 0utton to switch the
s(stem 0etween the working and
sleeping states.
5i/ed @ardware .vent and
Control 1ogic or $eneric
@ardware .vent and 1ogic
!leep ;utton ,ser pushes 0utton to switch the
s(stem 0etween the working and
sleeping state.
5i/ed @ardware .vent and
Control 1ogic or $eneric
@ardware .vent and 1ogic
'ower ;utton 2verride ,ser se:uence =press the power
0utton for " seconds> to turn off a
hung s(stem.
3eal Time Clock Alarm 'rogrammed time to wake the
s(stem.
2ptional 5i/ed @ardware .vent
2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 93
6eature 0a%e 5escription Progra%%ing Model
!leepFWake Control 1ogic 1ogic used to transition the s(stem
0etween the sleeping and working
states.
5i/ed @ardware Control and
.vent 1ogic
.m0edded Controller
%nterface
AC'% .m0edded Controller protocol
and interface, as descri0ed in section
42, JAC'% .m0edded Controller
%nterface !pecification.L
$eneric @ardware .vent 1ogic,
must reside in the general&
purpose register 0lock
1egac(FAC'% !elect !tatus 0it that indicates the s(stem is
using the legac( or AC'% power
management model =!C%C.N>.
5i/ed @ardware Control 1ogic
1id switch ;utton used to indicate whether the
s(stemMs lid is open or closed =mo0ile
s(stems onl(>.
$eneric @ardware .vent 5eature
C4 'ower !tate 'rocessor instruction to place the
processor into a low&power state.
'rocessor %!A
C2 'ower Control 1ogic to place the processor into a
C2 power state.
5i/ed @ardware Control 1ogic
C3 'ower Control 1ogic to place the processor into a
C3 power state.
5i/ed @ardware Control 1ogic
Thermal Control 1ogic to generate thermal events at
specified trip points.
$eneric @ardware .vent and
Control 1ogic =!ee description of
thermal logic in section 3.4,
JThermal Management.L>
-evice 'ower Management Control logic for switching 0etween
different device power states.
$eneric @ardware control logic
AC Adapter 1ogic to detect the insertion and
removal of the AC adapter.
$eneric @ardware event logic
-ockingFdevice insertion
and removal
1ogic to detect device insertion and
removal events.
$eneric @ardware event logic
5.7 ACPI Register Model
AC'% hardware resides in one of si/ address spaces<
!(stem %F2
!(stem memor(
'C% configuration
!M;us
.m0edded controller
5unctional 5i/ed @ardware
-ifferent implementations will result in different address spaces 0eing used for different functions. The
AC'% specification consists of fi/ed hardware registers and generic hardware registers. 5i/ed hardware
registers are re:uired to implement AC'%&defined interfaces. The generic hardware registers are needed for
an( events generated 0( value&added hardware.
2
3TC wakeup alarm is re:uired, the fi/ed hardware feature status 0it is optional.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9" Advanced Configuration and 'ower %nterface !pecification
AC'% defines register 0locks. An AC'%&compati0le s(stem provides an AC'% ta0le =the 5A-T, 0uilt in
memor( at 0oot&up> that contains a list of pointers to the different fi/ed hardware register 0locks used 0(
2!'M. The 0its within these registers have attri0utes defined for the given register 0lock. The t(pes of
registers that AC'% defines are<
!tatusF.na0le 3egisters =for events>
Control 3egisters
%f a register 0lock is of the statusFena0le t(pe, then it will contain a register with status 0its, and a
corresponding register with ena0le 0its. The status and ena0le 0its have an e/act implementation definition
that needs to 0e followed =unless otherwise noted>, which is illustrated 0( the following diagram<
Status Bit
$na0le Bit
$9ent Input
$9ent Output
6igure (-( <lock 5iagra% of a Status@1na!le Cell
Notice that the status 0it, which hardware sets 0( the .vent %nput 0eing set in this e/ample, can onl( 0e
cleared 0( software writing a 4 to its 0it position. Also, the ena0le 0it has no effect on the setting or
resetting of the status 0itK it onl( determines if the !.T status 0it will generate an J.vent 2utput,L which
generates an !C% when set if its ena0le 0it is set.
AC'% also defines register groupings. A register grouping consists of two register 0locks, with two pointers
to two different 0locks of registers, where each 0it location within a register grouping is fi/ed and cannot
0e changed. The 0its within a register grouping, which have fi/ed 0it positions, can 0e split 0etween the
two register 0locks. This allows the 0its within a register grouping to reside in either or 0oth register 0locks,
facilitating the a0ilit( to map 0its within several different chips to the same register thus providing the
programming model with a single register grouping 0it structure.
2!'M treats a register grouping as a single registerK 0ut located in multiple places. To read a register
grouping, 2!'M will read the JAL register 0lock, followed 0( the J;L register 0lock, and then will
logicall( J23L the two results together =the !1'CTS' field is an e/ception to this rule>. 3eserved 0its, or
unused 0its within a register 0lock alwa(s return Hero for reads and have no side effects for writes =which is
a re:uirement>.
The !1'CTS'/ field can 0e different for each register grouping. The respective sleeping o0#ect BC!x
contains a !1'CTS'a and a !1'CTS'0 field. That is, the o0#ect returns a package with two integer values
of &9 in it. 2!'M will alwa(s write the !1'CTS'a value to the JAL register 0lock followed 0( the
!1'CTS'0 value within the field to the J;L register 0lock. All other 0it locations will 0e written with the
same value. Also, 2!'M does not read the !1'CTS'/ value 0ut throws it awa(.
Register Bloc: A
Register Bloc: B
B
it d
B
it c
B
it 0
B
it a
B
it e
Register
5rouping
6igure (-A 1xa%ple 6ixed Hardware 6eature "egister ;rouping
As an e/ample, the a0ove diagram represents a register grouping consisting of register 0lock A and register
0lock 0. ;its JaL and JdL are implemented in register 0lock ; and register 0lock A returns a Hero for these
0it positions. ;its J0L, JcL and JeL are implemented in register 0lock A and register 0lock ; returns a Hero
for these 0it positions. All reserved or ignored 0its return their defined AC'% values.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9*
When accessing this register grouping, 2!'M must read register 0lock a, followed 0( reading register
0lock 0. 2!'M then does a logical 23 of the two registers and then operates on the results.
When writing to this register grouping, 2!'M will write the desired value to register group A followed 0(
writing the same value to register group ;.
AC'% defines the following fi/ed hardware register 0locks. .ach register 0lock gets a separate pointer from
the 5A-T. These addresses are set 0( the 2.M as static resources, so the( are never changedP2!'M
cannot re&map AC'% resources. The following register 0locks are defined<
PM!a%$6T%B-#
PM!0%$6T%B-#
PM" Control Bloc:
PMTimer Bloc:
Processor Bloc:
Register ,ro(pings Register Bloc/s
PM!a%STS
PM!a%$&
PM! $6T 5rouping
PM! C&T 5rouping
PM!a%C&T%B-#
PM!0%C&T%B-#
PM!0%STS
PM!0%$&
PM!a%C&T
PM!0%C&T
PM"%C&T%B-# PM"%C&T
PM%TMR%B-# PM%TMR
P%B-#
P%C&T
P%-6-"
P%-6-(
Registers
5P$1%B-#
5P$!%B-#
5P$1%STS
5P$1%$&
5P$!%STS
5P$!%$&
5eneral Purpose $9ent 1
Bloc:
5eneral Purpose $9ent !
Bloc:
6igure (-- "egister <locks versus "egister ;roupings
The 'M4 .DT grouping consists of the 'M4aC.DT and 'M40C.DT register 0locks, which contain the
fi/ed hardware feature event 0its. .ach event register 0lock =if implemented> contains two registers< a
status register and an ena0le register. .ach register grouping has a defined 0it position that cannot 0e
changedK however, the 0it can 0e implemented in either register 0lock =A or ;>. The A and ; register 0locks
for the events allow chipsets to var( the partitioning of events into two or more chips. 5or read operations,
2!'M will generate a read to the associated A and ; registers, 23 the two values together, and then
operate on this result. 5or write operations, 2!'M will write the value to the associated register in 0oth
register 0locks. Therefore, there are two rules to follow when implementing event registers<
3eserved or unimplemented 0its alwa(s return Hero =control or ena0le>.
Writes to reserved or unimplemented 0its have no affect.
The 'M4 CNT grouping contains the fi/ed hardware feature control 0its and consists of the
'M4aCCNTC;1E and 'M40CCNTC;1E register 0locks. .ach register 0lock is associated with a single
control register. .ach register grouping has a defined 0it position that cannot 0e changedK however, the 0it
can 0e implemented in either register 0lock =A or ;>. There are two rules to follow when implementing
CNT registers<
3eserved or unimplemented 0its alwa(s return Hero =control or ena0le>.
Writes to reserved or unimplemented 0its have no affect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9+ Advanced Configuration and 'ower %nterface !pecification
The 'M2CCNTC;1E register 0lock currentl( contains a single 0it for the ar0iter disa0le function. The
general&purpose event register contains the event programming model for generic features. All generic
events, #ust as fi/ed events, generate !C%s. $eneric event status 0its can reside an(whereK however, the top&
level generic event resides in one of the general&purpose register 0locks. An( generic feature event status
not in the general&purpose register space is considered a child or si0ling status 0it, whose parent status 0it is
in the general&purpose event register space. Notice that it is possi0le to have N levels of general&purpose
events prior to hitting the $'. event status.
$eneral&purpose event registers are descri0ed 0( two register 0locks< The $'.C;1E or the $'.4C;1E.
.ach register 0lock is pointed to separatel( from within the 5A-T. .ach register 0lock is further 0roken
into two registers< $'./C!T! and $'./C.N. The status and ena0le registers in the general&purpose event
registers follow the event model for the fi/ed hardware event registers.
5.7.1 ACPI Register Summary
The following ta0les summariHe the AC'% registers<
Ta!le (-& PM+ 1vent "egisters
"egister SiBe ><)tes? Address >relative to register !lock?
'M4aC!T! 'M4C.DTC1.NF2 T'M4aC.DTC;1E )
'M4aC.N 'M4C.DTC1.NF2 T'M4aC.DTC;1E )Z'M4C.DTC1.NF2
'M40C!T! 'M4C.DTC1.NF2 T'M40C.DTC;1E )
'M40C.N 'M4C.DTC1.NF2 T'M40C.DTC;1E )Z'M4C.DTC1.NF2
Ta!le (-# PM+ Control "egisters
"egister SiBe ><)tes? Address >relative to register !lock?
'M4CCNTa 'M4CCNTC1.N T'M4aCCNTC;1E )
'M4CCNT0 'M4CCNTC1.N T'M40CCNTC;1E )
Ta!le (-( PM& Control "egister
"egister SiBe ><)tes? Address >relative to register !lock?
'M2CCNT 'M2CCNTC1.N T'M2CCNTC;1E )
Ta!le (-A PM Ti%er "egister
"egister SiBe ><)tes? Address >relative to register !lock?
'MCTM3 'MCTM3C1.N T'MCTM3C;1E )
Ta!le (-- Processor Control "egisters
"egister SiBe ><)tes? Address >relative to register !lock?
'CCNT " .ither T'C;1E) or specified 0( the 'TC o0#ect =!ee section 8.3.4, C'TC
V'rocessor Throttling ControlW.L>
'C1D12 4 T'C;1E)Z"h
'C1D13 4 T'C;1E)Z*h
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 99
Ta!le (-. ;eneral-Purpose 1vent "egisters
"egister SiBe ><)tes? Address >relative to register !lock?
$'.C!T! $'.C1.NF2 T$'.C;1E)
$'.C.N $'.C1.NF2 T$'.C;1E)Z$'.C1.NF2
$'.4C!T! $'.4C1.NF2 T$'.4C;1E)
$'.4C.N $'.4C1.NF2 T$'.4C;1E)Z$'.4C1.NF2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
98 Advanced Configuration and 'ower %nterface !pecification
5.7.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 96
PM1 Event Registers
The 'M4 event register grouping contains two register 0locks< the 'M4aC.DTC;1E is a re:uired register
0lock when the following AC'% interface categories are re:uired 0( a class specific platform design guide<
'ower management timer controlFstatus
'rocessor power state controlFstatus
$lo0al 1ock related interfaces
'ower or !leep 0utton =fi/ed register interfaces>
!(stem power state controls =sleepingFwake control>
The 'M40C.DTC;1E is an optional register 0lock. .ach register 0lock has a uni:ue 32&0it pointer in the
5i/ed AC'% Ta0le =5A-T> to allow the 'M4 event 0its to 0e partitioned 0etween two chips. %f the
'M40C.DTC;1E is not supported, its pointer contains a value of Hero in the 5A-T.
.ach register 0lock in the 'M4 event grouping contains two registers that are re:uired to 0e the same siHe<
the 'M4/C!T! and 'M4/C.N =where / can 0e JaL or J0L>. The length of the registers is varia0le and is
descri0ed 0( the 'M4C.DTC1.N field in the 5A-T, which indicates the total length of the register 0lock
in 0(tes. @ence if a length of J"L is given, this indicates that each register contains two 0(tes of %F2 space.
The 'M4 event register 0lock has a minimum siHe of " 0(tes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8 Advanced Configuration and 'ower %nterface !pecification
5.7.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 84
PM1 Control Registers
The 'M4 control register grouping contains two register 0locks< the 'M4aCCNTC;1E is a re:uired
register 0lock when the following AC'% interface categories are re:uired 0( a class specific platform design
guide<
!C%F!M% routing controlFstatus for power management and general&purpose events
'rocessor power state controlFstatus
$lo0al 1ock related interfaces
!(stem power state controls =sleepingFwake control>
The 'M40CCNTC;1E is an optional register 0lock. .ach register 0lock has a uni:ue 32&0it pointer in the
5i/ed AC'% Ta0le =5A-T> to allow the 'M4 event 0its to 0e partitioned 0etween two chips. %f the
'M40CCNTC;1E is not supported, its pointer contains a value of Hero in the 5A-T.
.ach register 0lock in the 'M4 control grouping contains a single register< the 'M4/CCNT. The length of
the register is varia0le and is descri0ed 0( the 'M4CCNTC1.N field in the 5A-T, which indicates the total
length of the register 0lock in 0(tes. The 'M4 control register 0lock must have a minimum siHe of 2 0(tes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
82 Advanced Configuration and 'ower %nterface !pecification
5.7.1.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 83
PM2 Control Register
The 'M2 control register is contained in the 'M2CCNTC;1E register 0lock. The 5A-T contains a length
varia0le for this register 0lock ='M2CCNTC1.N> that is e:ual to the siHe in 0(tes of the 'M2CCNT register
=the onl( register in this register 0lock>. This register 0lock is optional, if not supported its 0lock pointer
and length contain a value of Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8" Advanced Configuration and 'ower %nterface !pecification
5.7.1.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8*
PM Timer Register
The 'M timer register is contained in the 'MCTM3C;1E register 0lock, which is a re:uired register 0lock
when the power management timer controlFstatus AC'% interface categor( is re:uired 0( a class specific
platform design guide.
This register 0lock contains the register that returns the running value of the power management timer. The
5A-T also contains a length varia0le for this register 0lock ='MCTM3C1.N> that is e:ual to the siHe in
0(tes of the 'MCTM3 register =the onl( register in this register 0lock>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8+ Advanced Configuration and 'ower %nterface !pecification
5.7.1.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 89
Processor Control Block (P_BLK)
There is an optional processor control register 0lock for each processor in the s(stem. As this is a
homogeneous feature, all processors must have the same level of support. The AC'% 2! will revert to the
lowest common denominator of processor control 0lock support. The processor control 0lock contains the
processor control register ='CCNT&a 32&0it performance control configuration register>, and the 'C1D12
and 'C1D13 C', sleep state control registers. The 32&0it 'CCNT register controls the 0ehavior of the
processor clock logic for that processor, the 'C1D12 register is used to place the C', into the C2 state, and
the 'C1D13 register is used to place the processor into the C3 state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
88 Advanced Configuration and 'ower %nterface !pecification
5.7.1.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 86
General-Purpose Event Registers
The general&purpose event registers contain the root level events for all generic features. To facilitate the
fle/i0ilit( of partitioning the root events, AC'% provides for two different general&purpose event 0locks<
$'.C;1E and $'.4C;1E. These are separate register 0locks and are not a register grouping, 0ecause
there is no need to maintain an orthogonal 0it arrangement. Also, each register 0lock contains its own
length varia0le in the 5A-T, where $'.C1.N and $'.4C1.N represent the length in 0(tes of each
register 0lock.
.ach register 0lock contains two registers of e:ual length< $'./C!T! and $'./C.N =where / is or 4>.
The length of the $'.C!T! and $'.C.N registers is e:ual to half the $'.C1.N. The length of the
$'.4C!T! and $'.4C.N registers is e:ual to half the $'.4C1.N. %f a generic register 0lock is not
supported then its respective 0lock pointer and 0lock length values in the 5A-T ta0le contain Heros. The
$'.C1.N and $'.4C1.N do not need to 0e the same siHe.
5.7.2 Fixed Hardware Features
This section descri0es the fi/ed hardware features defined 0( AC'%.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
6 Advanced Configuration and 'ower %nterface !pecification
5.7.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 64
Power Management Timer
The AC'% specification re:uires a power management timer that provides an accurate time value used 0(
s(stem software to measure and profile s(stem idleness =along with other tasks>. The power management
timer provides an accurate time function while the s(stem is in the working =$> state. To allow software to
e/tend the num0er of 0its in the timer, the power management timer generates an interrupt when the last 0it
of the timer changes =from to 4 or 4 to >. AC'% supports either a 2"&0it or 32&0it power management
timer. The 'M Timer is accessed directl( 0( 2!'M, and its programming model is contained in fi/ed
register space. The programming model can 0e partitioned in up to three different register 0locks. The event
0its are contained in the 'M4C.DT register grouping, which has two register 0locks, and the timer value
can 0e accessed through the 'MCTM3C;1E register 0lock. A 0lock diagram of the power management
timer is illustrated in the following figure<
PMTMR%PM$
TMR%$&
PM!x%$&41
(4;<=;>; M7?
// ">/("
TMR%6A-
PM%TMR41/"(/1/(!
TMR%STS
PM!x%STS41
">/("/0it
Counter
Bits)"(/(!/1+
6igure (-. Power Manage%ent Ti%er
The power management timer is a 2"&0it or 32&0it fi/ed rate free running count&up timer that runs off a
3.*96*"* M@H clock. The AC'% 2! checks the 5A-T to determine whether the 'M Timer is a 32&0it or 2"&
0it timer. The programming model for the 'M Timer consists of event logic, and a read port to the counter
value. The event logic consists of an event status and ena0le 0it. The status 0it is set an( time the last 0it of
the timer =0it 23 or 0it 34> goes from set to clear or clear to set. %f the TM3C.N 0it is set, then the setting of
the TM3C!T! will generate an AC'% event in the 'M4C.DT register grouping =referred to as
'MTM3C'M. in the diagram>. The event logic is onl( used to emulate a larger timer.
2!'M uses the read&onl( TM3CDA1 field =in the 'M TM3 register grouping> to read the current value of
the timer. 2!'M never assumes an initial value of the TM3CDA1 fieldK instead, it reads an initial
TM3CDA1 upon loading 2!'M and assumes that the timer is counting. %t is allowa0le to stop the Timer
when the s(stem transitions out of the working =$F!> state. The onl( timer reset re:uirement is that the
timer functions while in the working state.
The 'M TimerMs programming model is implemented as a fi/ed hardware feature to increase the accurac(
of reading the timer.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
62 Advanced Configuration and 'ower %nterface !pecification
5.7.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 63
Console Buttons
AC'% defines user&initiated events to re:uest 2!'M to transition the platform 0etween the $ working
state and the $4 sleeping, $2 soft off and $3 mechanical off states. AC'% also defines a recommended
mechanism to unconditionall( transition the platform from a hung $ working state to the $2 soft&off state.
AC'% operating s(stems use power 0utton events to determine when the user is present. As such, these
AC'% events are associated with 0uttons in the AC'% specification.
The AC'% specification supports two 0utton models<
A single&0utton model that generates an event for 0oth sleeping and entering the soft&off state. The
function of the 0utton can 0e configured using 2!'M ,%.
A dual&0utton model where the power 0utton generates a soft&off transition re:uest and a sleeping
0utton generates a sleeping transition re:uest. The t(pe of 0utton implies the function of the 0utton.
Control of these 0utton events is either through the fi/ed hardware programming model or the generic
hardware programming model =control method 0ased>. The fi/ed hardware programming model has the
advantage that 2!'M can access the 0utton at an( time, including when the s(stem is crashed. %n a crashed
s(stem with a fi/ed hardware power 0utton, 2!'M can make a J0estL effort to determine whether the
power 0utton has 0een pressed to transition to the s(stem to the soft&off state, 0ecause it doesnMt re:uire the
AM1 interpreter to access the event 0its.
5.7.2.2.1 Power Button
The power 0utton logic can 0e used in one of two models< single 0utton or dual 0utton. %n the single&0utton
model, the user 0utton acts as 0oth a power 0utton for transitioning the s(stem 0etween the $ and $2
states and a sleeping 0utton for transitioning the s(stem 0etween the $ and $4 states. The action of the
user pressing the 0utton is determined 0( software polic( or user settings. %n the dual&0utton model, there
are separate 0uttons for sleeping and power control. Although the 0uttons still generate events that cause
software to take an action, the function of the 0utton is now dedicated< the sleeping 0utton generates a
sleeping re:uest to 2!'M and the power 0utton generates a waking re:uest.
!upport for a power 0utton is indicated 0( a com0ination of the 'W3C;,TT2N flag and the power 0utton
device o0#ect, as shown in the following<
Ta!le (-/ Power <utton Support
Indicated Support P:"D<2TT30 6lag Power <utton 5evice 3!Cect
5i/ed hardware power 0utton Clear A0sent
Control method power 0utton !et 'resent
The power 0utton can also have an additional capa0ilit( to unconditionall( transition the s(stem from a
hung working state to the $2 soft&off state. %n the case where 2!'M event handler is no longer a0le to
respond to power 0utton events, the power 0utton override feature provides a 0ack&up mechanism to
unconditionall( transition the s(stem to the soft&off state. This feature can 0e used when the platform
doesnMt have a mechanical off 0utton, which can also provide this function. AC'% defines that holding the
power 0utton active for four seconds or longer will generate a power 0utton override event.
5.7.2.2.1.1 Fixed Power Button
PRBT&8
PRBT&%$&
PM!x%$&4@
PRBT&%STS
PM!x%STS4@
'e0ounce
-ogic
PRBT&$9ent
PRBT&
O9er/ride
PRBT&
Statemachine
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
6" Advanced Configuration and 'ower %nterface !pecification
6igure (-/ 6ixed Power <utton Logic
The fi/ed hardware power 0utton has its event programming model in the 'M4/C.DTC;1E. This logic
consists of a single ena0le 0it and stick( status 0it. When the user presses the power 0utton, the power
0utton status 0it ='W3;TNC!T!> is unconditionall( set. %f the power 0utton ena0le 0it ='W3;TNC.N> is
set and the power 0utton status 0it is set ='W3;TNC!T!> due to a 0utton press while the s(stem is in the
$ state, then an !C% is generated. 2!'M responds to the event 0( clearing the 'W3;TNC!T! 0it. The
power 0utton logic provides de0ounce logic that sets the 'W3;TNC!T! 0it on the 0utton press Jedge.L
While the s(stem is in the $4 or $2 glo0al states =!4, !2, !3, !" or !* states>, an( further power 0utton
press after the 0utton press that transitioned the s(stem into the sleeping state unconditionall( sets the
power 0utton status 0it and wakes the s(stem, regardless of the value of the power 0utton ena0le 0it. 2!'M
responds 0( clearing the power 0utton status 0it and waking the s(stem.
5.7.2.2.1.2 Control Method Power Button
The power 0utton programming model can also use the generic hardware programming model. This allows
the power 0utton to reside in an( of the generic hardware address spaces =for e/ample, the em0edded
controller> instead of fi/ed space. %f the power 0utton is implemented using generic hardware, then the
2.M needs to define the power 0utton as a device with an C@%- o0#ect value of J'N'CC,L which then
identifies this device as the power 0utton to 2!'M. The AM1 event handler then generates a Notif(
command to notif( 2!'M that a power 0utton event was generated. While the s(stem is in the working
state, a power 0utton press is a user re:uest to transition the s(stem into either the sleeping =$4> or soft&off
state =$2>. %n these cases, the power 0utton event handler issues the Notif( command with the device
specific code of /8. This indicates to 2!'M to pass control to the power 0utton driver ='N'CC> with
the knowledge that a transition out of the $ state is 0eing re:uested. ,pon waking from a $4 sleeping
state, the AM1 event handler generates a notif( command with the code of /2 to indicate it was
responsi0le for waking the s(stem.
The power 0utton device needs to 0e declared as a device within the AC'% Namespace for the platform and
onl( re:uires an C@%-. An e/ample definition follows.
This e/ample A!1 code performs the following<
Creates a device named J'W3;L and associates the 'lug and 'la( identifier =through the C@%-
o0#ect> of J'N'CC.L
The 'lug and 'la( identifier associates this device o0#ect with the power 0utton driver.
Creates an operational region for the control method power 0uttonMs programming model< !(stem
%F2 space at /2.
5ields that are not accessed are written as Heros. These status 0its clear upon writing a 4 to their 0it
position, therefore preserved would fail in this case.
Creates a field within the operational region for the power 0utton status 0it =called ';'>. %n this
case the power 0utton status 0it is a child of the general&purpose event status 0it . When this 0it is
set, it is the responsi0ilit( of the A!1&code to clear it =2!'M clears the general&purpose status
0its>. The address of the status 0it is /2. =0it at address /2>.
Creates an additional status 0it called ';W for the power 0utton wake event. This is the ne/t 0it
and its ph(sical address would 0e /2.4 =0it 4 at address /2>.
$enerates an event handler for the power 0utton that is connected to 0it of the general&purpose
event status register . The event handler does the following<
Clears the power 0utton status 0it in hardware =writes a one to it>.
Notifies 2!'M of the event 0( calling the Notif( command passing the power 0utton o0#ect and
the device specific event indicator /8.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 6*
// Define a control method power button
Device(\_SB.PWRB)
!ame(_"#D$ %#S&#D('P!P()()*))
!ame(_PRW$ Pac+a,e()($ (-./)
0perationRe,ion(\P"0$ S12tem#0$ (-3(($ (-4)
5ield(\P"0$ B1te&cc$ !o6oc+$ Write&27ero2)
PBP$ 4$ // 2leep/off re8ue2t
PBW$ 4 // wa+eup re8ue2t
/
/ // end of power button device ob9ect
Scope(\_:P%) // Root level event handler2
;ethod(_6(() // u2e2 bit ( of :P(_S<S re,i2ter
#f(\PBP)
Store(0ne$ \PBP) // clear power button 2tatu2
!otif1(\_SB.PWRB$ (-=() // !otif1 0S of event
/
#f(\PBW)
Store(0ne$ \PBW)
!otif1(\_SB.PWRB$ (-3)
/
/ // end of _6(( handler
/ // end of \_:P% 2cope
5.7.2.2.1.3 Power Button Override
The AC'% specification also allows that if the user presses the power 0utton for more than four seconds
while the s(stem is in the working state, a hardware event is generated and the s(stem will transition to the
soft&off state. This hardware event is called a power 0utton override. %n reaction to the power 0utton
override event, the hardware clears the power 0utton status 0it ='W3;TNC!T!>.
5.7.2.2.2 Sleep Button
When using the two 0utton model, AC'% supports a second 0utton that when pressed will re:uest 2!'M to
transition the platform 0etween the $ working and $4 sleeping states. !upport for a sleep 0utton is
indicated 0( a com0ination of the !1..'C;,TT2N flag and the sleep 0utton device o0#ect<
Ta!le (-, Sleep <utton Support
Indicated Support SL11PD<2TT30 6lag Sleep <utton 5evice 3!Cect
No sleep 0utton !et A0sent
5i/ed hardware sleep 0utton Clear A0sent
Control method sleep 0utton !et 'resent
5.7.2.2.2.1 Fixed Hardware Sleeping Button
S-PBT&8
S-PBT&%$&
PM!x%$&4=
S-PBT&%STS
PM!x%STS4=
'e0ounce
-ogic
S-PBT& $9ent
S-PBT&
State machine
6igure (-, 6ixed Hardware Sleep <utton Logic
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
6+ Advanced Configuration and 'ower %nterface !pecification
The fi/ed hardware sleep 0utton has its event programming model in the 'M4/C.DTC;1E. This logic
consists of a single ena0le 0it and stick( status 0it. When the user presses the sleep 0utton, the sleep 0utton
status 0it =!1';TNC!T!> is unconditionall( set. Additionall(, if the sleep 0utton ena0le 0it =!1';TNC.N>
is set, and the sleep 0utton status 0it is set =!1';TNC!T!, due to a 0utton press> while the s(stem is in the
$ state, then an !C% is generated. 2!'M responds to the event 0( clearing the !1';TNC!T! 0it. The
sleep 0utton logic provides de0ounce logic that sets the !1';TNC!T! 0it on the 0utton press Jedge.L
While the s(stem is sleeping =in either the !, !4, !2, !3 or !" states>, an( further sleep 0utton press =after
the 0utton press that caused the s(stem transition into the sleeping state> sets the sleep 0utton status 0it
=!1';TNC!T!> and wakes the s(stem if the !1'C.N 0it is set. 2!'M responds 0( clearing the sleep
0utton status 0it and waking the s(stem.
5.7.2.2.2.2 Control Method Sleeping Button
The sleep 0utton programming model can also use the generic hardware programming model. This allows
the sleep 0utton to reside in an( of the generic hardware address spaces =for e/ample, the em0edded
controller> instead of fi/ed space. %f the sleep 0utton is implemented via generic hardware, then the 2.M
needs to define the sleep 0utton as a device with an C@%- o0#ect value of J'N'C.L, which then
identifies this device as the sleep 0utton to 2!'M. The AM1 event handler then generates a Notif(
command to notif( 2!'M that a sleep 0utton event was generated. While in the working state, a sleep
0utton press is a user re:uest to transition the s(stem into the sleeping =$4> state. %n these cases the sleep
0utton event handler issues the Notif( command with the device specific code of /8. This will indicate to
2!'M to pass control to the sleep 0utton driver ='N'C.> with the knowledge that the user is re:uesting
a transition out of the $ state. ,pon waking&up from a $4 sleeping state, the AM1 event handler generates
a Notif( command with the code of /2 to indicate it was responsi0le for waking the s(stem.
The sleep 0utton device needs to 0e declared as a device within the AC'% Namespace for the platform and
onl( re:uires an C@%-. An e/ample definition is shown 0elow.
The AM1 code 0elow does the following<
Creates a device named J!1';L and associates the 'lug and 'la( identifier =through the C@%-
o0#ect> of J'N'C..L
The 'lug and 'la( identifier associates this device o0#ect with the sleep 0utton driver.
Creates an operational region for the control method sleep 0uttonMs programming model< !(stem
%F2 space at /24.
5ields that are not accessed are written as J4sL =these status 0its clear upon writing a J4L to their
0it position, hence preserved would fail in this case>.
Creates a field within the operational region for the sleep 0utton status 0it =called ';'>. %n this
case the sleep 0utton status 0it is a child of the general&purpose status 0it . When this 0it is set it
is the responsi0ilit( of the AM1 code to clear it =2!'M clears the general&purpose status 0its>. The
address of the status 0it is /24. =0it at address /24>.
Creates an additional status 0it called ';W for the sleep 0utton wake event. This is the ne/t 0it
and its ph(sical address would 0e /24.4 =0it 4 at address /24>.
$enerates an event handler for the sleep 0utton that is connected to 0it of the general&purpose
status register . The event handler does the following<
Clears the sleep 0utton status 0it in hardware =writes a J4L to it>.
Notifies 2!'M of the event 0( calling the Notif( command passing the sleep 0utton o0#ect and
the device specific event indicator /8.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 69
// Define a control method 2leep button
Device(\_SB.S6PB)
!ame(_"#D$ %#S&#D('P!P()(%*))
!ame(_PRW$ Pac+a,e()(-(4$ (-(./)
0perationRe,ion(\Boo$ S12tem#0$ (-3(4$ (-4)
5ield(\Boo$ B1te&cc$ !o6oc+$ Write&27ero2)
SBP$ 4$ // 2leep re8ue2t
SBW$ 4 // wa+eup re8ue2t
/ // end of field definition
/
Scope(\_:P%) // Root level event handler2
;ethod(_6(4) // u2e2 bit 4 of :P(_S<S re,i2ter
#f(\SBP)
Store(0ne$ \SBP) // clear 2leep button 2tatu2
!otif1(\_SB.S6PB$ (-=() // !otif1 0S of event
/
#f(\SBW)
Store(0ne$ \SBW)
!otif1(\_SB.S6PB$ (-3)
/
/ // end of _6(4 handler
/ // end of \_:P% 2cope
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
68 Advanced Configuration and 'ower %nterface !pecification
5.7.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 66
5.7.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4 Advanced Configuration and 'ower %nterface !pecification
Sleeping/Wake Control
The sleepingFwake logic consists of logic that will se:uence the s(stem into the defined low&power
hardware sleeping state =!4&!"> or soft&off state =!*> and will wake the s(stem 0ack to the working state
upon a wake event. Notice that the !";%2! state is entered in a different manner =for more information, see
section 4*.4.".2, JThe !";%2! TransitionL>.
S-P%$&
PM!x%C&T4S>4!(
A#%STS
PM!x%STS4S14!;
Sleeping
S-P%TAP2(
PM!x%C&T4S>4B!1/!"C
.a/e(p$
Sleep
+ogic
DORD or all
a:e
$9ents
PRBT&%OR
6igure (-+$ Sleeping@:ake Logic
The logic is controlled via two 0it fields< !leep .na0le =!1'C.N> and !leep T(pe =!1'CTS'/>. The t(pe
of sleep state desired is programmed into the !1'CTS'/ field and upon assertion of the !1'C.N the
hardware will se:uence the s(stem into the defined sleeping state. 2!'M gets values for the !1'CTS'/
field from the BC!x o0#ects defined in the static definition 0lock. %f the o0#ect is missing 2!'M assumes the
hardware does not support that sleeping state. 'rior to entering the desired sleeping state, 2!'M will read
the designated BC!x o0#ect and place this value in the !1'CTS' field.
Additionall( AC'% defines a fail&safe 2ff protocol called the Jpower 0utton override,L which allows the
user to initiate an 2ff se:uence in the case where the s(stem software is no longer a0le to recover the
s(stem =the s(stem has hung>. AC'% defines that this se:uence 0e initiated 0( the user pressing the power
0utton for over " seconds, at which point the hardware unconditionall( se:uences the s(stem to the 2ff
state. This logic is represented 0( the 'W3;TNC23 signal coming into the sleep logic.
While in an( of the sleeping states =$4>, an ena0led JWakeL event will cause the hardware to se:uence the
s(stem 0ack to the working state =$>. The JWake !tatusL 0it =WAEC!T!> is provided for 2!'M to Jspin&
onL after setting the !1'C.NF!1'CTS' 0it fields. When waking from the !4 sleeping state, e/ecution
control is passed 0acked to 2!'M immediatel(, whereas when waking from the !2&!* states e/ecution
control is passed to the ;%2! software =e/ecution 0egins at the C',Ms reset vector>. The WAEC!T! 0it
provides a mechanism to separate 2!'MMs sleeping and waking code during an !4 se:uence. When the
hardware has se:uenced the s(stem into the sleeping state =defined here as the processor is no longer a0le
to e/ecute instructions>, an( ena0led wake event is allowed to set the WAEC!T! 0it and se:uence the
s(stem 0ack on =to the $ state>. %f the s(stem does not support the !4 sleeping state, the WAEC!T! 0it
can alwa(s return Hero.
&%f more than a single sleeping state is supported, then the sleepingFwake logic is re:uired to 0e a0le to
d(namicall( se:uence 0etween the different sleeping states. This is accomplished 0( waking the s(stemK
2!'M programs the new sleep state into the !1'CTS' field, and then sets the !1'C.N 0itIplacing the
s(stem again in the sleeping state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 44
5.7.2.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
42 Advanced Configuration and 'ower %nterface !pecification
5.7.2.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 43
Real Time Clock Alarm
%f implemented, the 3eal Time Clock =3TC> alarm must generate a hardware wake event when in the
sleeping state. The 3TC can 0e programmed to generate an alarm. An ena0led 3TC alarm can 0e used to
generate a wake event when the s(stem is in a sleeping state. AC'% provides for additional hardware to
support 2!'M in determining that the 3TC was the source of the wake event< the 3TCC!T! and 3TCC.N
0its. Although these 0its are optional, if supported the( must 0e implemented as descri0ed here.
%f the 3TCC!T! and 3TCC.N 0its are not supported, 2!'M will attempt to identif( the 3TC as a possi0le
wake sourceK however, it might miss certain wake events. %f implemented, the 3TC wake feature is re:uired
to work in the following sleeping states< !4&!3. !" wake is optional and supported through the 3TCC!"
flag within the 5A-T =if set, then the platform supports 3TC wake in the !" state>
3
.
When the 3TC generates a wake event the 3TCC!T! 0it will 0e set. %f the 3TCC.N 0it is set, an 3TC
hardware power management event will 0e generated =which will wake the s(stem from a sleeping state,
provided the 0atter( low signal is not asserted>.
Real Time Cloc:
)RTC+
RTCa:e/up
$9ent
RTC%$&
PM!x%$&4!1
RTC%STS
PM!x%STS4!1
6igure (-++ "TC Alar%
The 3TC wake event status and ena0le 0its are an optional fi/ed hardware feature and a flag within the
5A-T =5%AC3TC> indicates if the register 0its are to 0e used 0( 2!'M. %f the 3TC wake event status and
ena0le 0its are implemented in fi/ed hardware, 2!'M can determine if the 3TC was the source of the wake
event without loading the entire 2!. This also gives the platform the capa0ilit( of indicating an 3TC wake
source without consuming a $'. 0it, as would 0e re:uired if 3TC wake was not implemented using the
fi/ed hardware 3TC feature. %f the fi/ed hardware feature event 0its are not supported, then 2!'M will
attempt to determine this 0( reading the 3TCMs status field. %f the platform implements the 3TC fi/ed
hardware feature, and this hardware consumes resources, the C5%A method can 0e used to correlate these
resources with the fi/ed hardware. !ee section +.2.", JC5%A =5i/ed 3egister 3esource 'rovideL, for details.
2!'M supports enhancements over the e/isting 3TC device =which onl( supports a 66 (ear date and 2"&
hour alarm>. 2ptional e/tensions are provided for the following features<
5a) Alar%. The -ASCA13M field points to an optional CM2! 3AM location that selects the
da( within the month to generate an 3TC alarm.
Month Alar%. The M2NCA13M field points to an optional CM2! 3AM location that selects
the month within the (ear to generate an 3TC alarm.
Centenar) 7alue. The C.NT field points to an optional CM2! 3AM location that represents the
centenar( value of the date =thousands and hundreds of (ears>.
The 3TCC!T! 0it ma( 0e set through the 3TC interrupt =%3G8 in %A&'C architecture s(stems>. 2!'M will
insure that the periodic and update interrupt sources are disa0led prior to sleeping. This allows the 3TCMs
interrupt pin to serve as the source for the 3TCC!T! 0it generation. Note however that if the 3TC interrupt
pin is used for 3TCC!T! generation, the 3TCC!T! 0it value ma( not 0e accurate when waking from !". %f
this value is accurate when waking from !", the platform should set the !"C3TCC!T!CDA1%- flag, so that
2!'M can utiliHe the 3TCC!T! information.
3
Notice that the $2F!* Jsoft offL and the $3 Jmechanical offL states are not sleeping states. The 2! will
disa0le the 3TCC.N 0it prior to entering the $2F!* or $3 states regardless.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4" Advanced Configuration and 'ower %nterface !pecification
Ta!le (-+$ Alar% 6ield 5ecodings within the 6A5T
6ield 7alue
Address >Location? in "TC CM3S
"AM >Must !e <ank $?
-ASCA13M .ight 0it value that can represent /4&/34
da(s in ;C- or /4&/45 da(s in 0inar(.
;its + and 9 of this field are treated as
%gnored 0( software. The 3TC is initialiHed
such that this field contains a JdonMt careL
value when the ;%2! switches from legac(
to AC'% mode. A donMt care value can 0e an(
unused value =not /4&/34 ;C- or /4&
/45 he/> that the 3TC reverts 0ack to a 2"
hour alarm.
The -ASCA13M field in the 5A-T will
contain a non&Hero value that represents
an offset into the 3TCMs CM2! 3AM
area that contains the da( alarm value. A
value of Hero in the -ASCA13M field
indicates that the da( alarm feature is not
supported.
M2NCA13M .ight 0it value that can represent 4&42
months in ;C- or /4&/C months in
0inar(. The 3TC is initialiHed such that this
field contains a donMt care value when the
;%2! switches from legac( to AC'% mode. A
JdonMt careL value can 0e an( unused value
=not 4&42 ;C- or /4&/C he/> that the 3TC
reverts 0ack to a 2" hour alarm andFor 34 da(
alarm>.
The M2NCA13M field in the 5A-T
will contain a non&Hero value that
represents an offset into the 3TCMs
CM2! 3AM area that contains the
month alarm value. A value of Hero in
the M2NCA13M field indicates that the
month alarm feature is not supported. %f
the month alarm is supported, the da(
alarm function must also 0e supported.
C.NT,3S 8&0it ;C- or 0inar( value. This value
indicates the thousand (ear and hundred (ear
=Centenar(> varia0les of the date in ;C- =46
for this centur(, 2 for the ne/t> or 0inar(
=/43 for this centur(, /4" for the ne/t>.
The C.NT,3S field in the 5A-T will
contain a non&Hero value that represents
an offset into the 3TCMs CM2! 3AM
area that contains the Centenar( value
for the date. A value of Hero in the
C.NT,3S field indicates that the
Centenar( value is not supported 0( this
3TC.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4*
5.7.2.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4+ Advanced Configuration and 'ower %nterface !pecification
5.7.2.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 49
Legacy/ACPI Select and the SCI Interrupt
As mentioned previousl(, power management events are generated to initiate an interrupt or hardware
se:uence. AC'% operating s(stems use the !C% interrupt handler to respond to events, while legac( s(stems
use some t(pe of transparent interrupt handler to respond to these events =that is, an !M% interrupt handler>.
AC'%&compati0le hardware can choose to support 0oth legac( and AC'% modes or #ust an AC'% mode.
1egac( hardware is needed to support these features for non&AC'%&compati0le operating s(stems. When
the AC'% 2! loads, it scans the ;%2! ta0les to determine that the hardware supports AC'%, and then if the
it finds the !C%C.N 0it reset =indicating that AC'% is not ena0led>, issues an AC'% activate command to the
!M% handler through the !M% command port. The ;%2! acknowledges the switching to the AC'% model of
power management 0( setting the !C%C.N 0it =this 0it can also 0e used to switch over the event mechanism
as illustrated 0elow><
'ec
1
!
Power
Management
$9ent -ogic
SCI%$&
PM!x%C&T41
SMI%$6&T
SCI%$6&T
Sharea0le
Interrupt
6igure (-+& Power Manage%ent 1vents to SMI@SCI Control Logic
The interrupt events =those that generate !M%s in legac( mode and !C%s in AC'% mode> are sent through a
decoder controlled 0( the !C%C.N 0it. 5or legac( mode this 0it is reset, which routes the interrupt events to
the !M% interrupt logic. 5or AC'% mode this 0it is set, which routes interrupt events to the !C% interrupt
logic. This 0it alwa(s returns set for AC'%&compati0le hardware that does not support a legac( power
management mode =in other words, the 0it is wired to read as J4L and ignore writes>.
The !C% interrupt is defined to 0e a sharea0le interrupt and is connected to an 2! visi0le interrupt that uses
a sharea0le protocol. The 5A-T has an entr( that indicates what interrupt the !C% interrupt is mapped to
=see section *.2.+, J!(stem -escription Ta0le @eaderL>.
%f the AC'% platform supports 0oth legac( and AC'% modes, it has a register that generates a hardware
event =for e/ample, !M% for %A&'C processors>. 2!'M uses this register to make the hardware switch in
and out of AC'% mode. Within the 5A-T are three values that signif( the address =!M%CCM-> of this port
and the data value written to ena0le the AC'% state =AC'%C.NA;1.>, and to disa0le the AC'% state
=AC'%C-%!A;1.>.
To transition an AC'%F1egac( platform from the 1egac( mode to the AC'% mode the following would
occur<
AC'% driver checks that the !C%C.N 0it is Hero, and that it is in the 1egac( mode.
2!'M does an 2,T to the !M%CCM- port with the data in the AC'%C.NA;1. field of the
5A-T.
2!'M polls the !C%C.N 0it until it is sampled as !.T.
To transition an AC'%F1egac( platform from the AC'% mode to the 1egac( mode the following would
occur<
AC'% driver checks that the !C%C.N 0it is one, and that it is in the AC'% mode.
2!'M does an 2,T to the !M%CCM- port with the data in the AC'%C-%!A;1. field of the
5A-T.
2!'M polls the !C%C.N 0it until it is sampled as 3.!.T.
'latforms that onl( support AC'% alwa(s return a 4 for the !C%C.N 0it. %n this case 2!'M skips the
1egac( to AC'% transition stated a0ove.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
48 Advanced Configuration and 'ower %nterface !pecification
5.7.2.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 46
5.7.2.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
44 Advanced Configuration and 'ower %nterface !pecification
Processor Control
The AC'% specification defines several processor controls including power state control, throttling control,
and performance state control. !ee !ection 8, J'rocessor 'ower and 'erformance !tate Configuration and
Control,L for a complete description of the processor controls.
5.7.3 Fixed Hardware Registers
The fi/ed hardware registers are manipulated directl( 0( 2!'M. The following sections descri0e fi/ed
hardware features under the programming model. 2!'M owns all the fi/ed hardware resource registersK
these registers cannot 0e manipulated 0( AM1 code. 3egisters are accessed with an( width up to its register
width =0(te granular>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 444
5.7.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
442 Advanced Configuration and 'ower %nterface !pecification
PM1 Event Grouping
The 'M4 .vent $rouping has a set of 0its that can 0e distri0uted 0etween two different register 0locks.
This allows these registers to 0e partitioned 0etween two chips, or all placed in a single chip. Although the
0its can 0e split 0etween the two register 0locks =each register 0lock has a uni:ue pointer within the
5A-T>, the 0it positions are maintained. The register 0lock with unimplemented 0its =that is, those
implemented in the other register 0lock> alwa(s returns Heros, and writes have no side effects.
5.7.3.1.1 PM1 Status Registers
Re,i2ter 6ocation> ?P;4a_%@<_B6A / P;4b_%@<_B6AB S12tem #/0 or ;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> P;4_%@<_6%! / 3
The 'M4 status registers contain the fi/ed hardware feature status 0its. The 0its can 0e split 0etween two
registers< 'M4aC!T! or 'M40C!T!. .ach register grouping can 0e at a different 32&0it aligned address and
is pointed to 0( the 'M4aC.DTC;1E or 'M40C.DTC;1E. The values for these pointers to the register
space are found in the 5A-T. Accesses to the 'M4 status registers are done through 0(te or word accesses.
5or AC'%Flegac( s(stems, when transitioning from the legac( to the $ working state this register is
cleared 0( ;%2! prior to setting the !C%C.N 0it =and thus passing control to 2!'M>. 5or AC'% onl(
platforms =where !C%C.N is alwa(s set>, when transitioning from either the mechanical off =$3> or soft&off
state to the $ working state this register is cleared prior to entering the $ working state.
This register contains optional features ena0led or disa0led within the 5A-T. %f the 5A-T indicates that the
feature is not supported as a fi/ed hardware feature, then software treats these 0its as ignored.
Ta!le (-++ PM+ Status "egisters 6ixed Hardware 6eature Status <its
<it 0a%e 5escription
TM3C!T! This is the timer carr( status 0it. This 0it gets set an( time the 23
rd
F34
st

0it of a 2"F32&0it counter changes =whenever the M!; changes from
clear to set or set to clear. While TM3C.N and TM3C!T! are set, an
interrupt event is raised.
4&3 3eserved 3eserved
" ;MC!T! This is the 0us master status 0it. This 0it is set an( time a s(stem 0us
master re:uests the s(stem 0us, and can onl( 0e cleared 0( writing a J4L
to this 0it position. Notice that this 0it reflects 0us master activit(, not
C', activit( =this 0it monitors an( 0us master that can cause an
incoherent cache for a processor in the C3 state when the 0us master
performs a memor( transaction>.
Ta!le (-++ PM+ Status "egisters 6ixed Hardware 6eature Status <its (continued)
<it 0a%e 5escription
* $;1C!T! This 0it is set when an !C% is generated due to the ;%2! wanting the
attention of the !C% handler. ;%2! will have a control 0it =somewhere
within its address space> that will raise an !C% and set this 0it. This 0it is
set in response to the ;%2! releasing control of the $lo0al 1ock and
having seen the pending 0it set.
+&9 3eserved 3eserved. These 0its alwa(s return a value of Hero.
8 'W3;TNC!T! This optional 0it is set when the 'ower ;utton is pressed. %n the s(stem
working state, while 'W3;TNC.N and 'W3;TNC!T! are 0oth set, an
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 443
<it 0a%e 5escription
interrupt event is raised. %n the sleeping or soft&off state, a wake event is
generated when the power 0utton is pressed =regardless of the
'W3;TNC.N 0it setting>. This 0it is onl( set 0( hardware and can onl(
0e reset 0( software writing a J4L to this 0it position.
AC'% defines an optional mechanism for unconditional transitioning a
s(stem that has stopped working from the $ working state into the $2
soft&off state called the power 0utton override. %f the 'ower ;utton is
held active for more than four seconds, this 0it is cleared 0( hardware
and the s(stem transitions into the $2F!* !oft 2ff state
=unconditionall(>.
!upport for the power 0utton is indicated 0( the 'W3C;,TT2N flag in
the 5A-T 0eing reset =Hero>. %f the 'W3C;,TT2N flag is set or a
power 0utton device o0#ect is present in the AC'% Namespace, then this
0it field is ignored 0( 2!'M.
%f the power 0utton was the cause of the wake =from an !4&!" state>,
then this 0it is set prior to returning control to 2!'M.
6 !1';TNC!T! This optional 0it is set when the sleep 0utton is pressed. %n the s(stem
working state, while !1';TNC.N and !1';TNC!T! are 0oth set, an
interrupt event is raised. %n the sleeping or soft&off states a wake event is
generated when the sleeping 0utton is pressed and the !1';TNC.N 0it
is set. This 0it is onl( set 0( hardware and can onl( 0e reset 0( software
writing a J4L to this 0it position.
!upport for the sleep 0utton is indicated 0( the !1'C;,TT2N flag in
the 5A-T 0eing reset =Hero>. %f the !1'C;,TT2N flag is set or a sleep
0utton device o0#ect is present in the AC'% Namespace, then this 0it field
is ignored 0( 2!'M.
%f the sleep 0utton was the cause of the wake =from an !4&!" state>, then
this 0it is set prior to returning control to 2!'M.
Ta!le (-++ PM+ Status "egisters 6ixed Hardware 6eature Status <its (continued)
<it 0a%e 5escription
4 3TCC!T! This optional 0it is set when the 3TC generates an alarm =asserts the 3TC
%3G signal>. Additionall(, if the 3TCC.N 0it is set then the setting of the
3TCC!T! 0it will generate a power management event =an !C%, !M%, or
resume event>. This 0it is onl( set 0( hardware and can onl( 0e reset 0(
software writing a J4L to this 0it position.
%f the 3TC was the cause of the wake =from an !4&!3 state>, then this 0it
is set prior to returning control to 2!'M. %f the 3TCC!" flag within the
5A-T is set, and the 3TC was the cause of the wake from the !" state>,
then this 0it is set prior to returning control to 2!'M.
44 %gnore This 0it field is ignored 0( software.
42&43 3eserved 3eserved. These 0its alwa(s return a value of Hero.
4" 'C%.A'CWAE.C!T!
This 0it is re:uired for chipsets that implement 'C% ./press. This 0it is
set 0( hardware to indicate that the s(stem woke due to a 'C% ./press
wakeup event. A 'C% ./press wakeup event is defined as the 'C%
./press WAE.Y pin 0eing active , one or more of the 'C% ./press ports
0eing in the 0eacon state, or receipt of a 'C% ./press 'M. message at a
root port. This 0it should onl( 0e set when one of these events causes the
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
44" Advanced Configuration and 'ower %nterface !pecification
<it 0a%e 5escription
s(stem to transition from a non&! s(stem power state to the ! s(stem
power state. This 0it is set independent of the state of the
'C%.A'CWAE.C-%! 0it.
!oftware writes a 4 to clear this 0it. %f the WAE.Y pin is still active
during the write, one or more 'C% ./press ports is in the 0eacon state or
the 'M. message received indication has not 0een cleared in the root
port, then the 0it will remain active =i.e. all inputs to this 0it are level&
sensitive>.
Note< This 0it does not itself cause a wake event or prevent entr( to a
sleeping state. Thus if the 0it is 4 and the s(stem is put into a sleeping
state, the s(stem will not automaticall( wake.
4* WAEC!T! This 0it is set when the s(stem is in the sleeping state and an ena0led
wake event occurs. ,pon setting this 0it s(stem will transition to the
working state. This 0it is set 0( hardware and can onl( 0e cleared 0(
software writing a J4L to this 0it position.
5.7.3.1.2 PM1 Enable Registers
Re,i2ter 6ocation> ?P;4a_%@<_B6A / P;4b_%@<_B6AB D P;4_%@<_6%! / 3 S12tem #/0 or
;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> P;4_%@<_6%! / 3
The 'M4 ena0le registers contain the fi/ed hardware feature ena0le 0its. The 0its can 0e split 0etween two
registers< 'M4aC.N or 'M40C.N. .ach register grouping can 0e at a different 32&0it aligned address and
is pointed to 0( the 'M4aC.DTC;1E or 'M40C.DTC;1E. The values for these pointers to the register
space are found in the 5A-T. Accesses to the 'M4 .na0le registers are done through 0(te or word
accesses.
5or AC'%Flegac( s(stems, when transitioning from the legac( to the $ working state the ena0les are
cleared 0( ;%2! prior to setting the !C%C.N 0it =and thus passing control to 2!'M>. 5or AC'%&onl(
platforms =where !C%C.N is alwa(s set>, when transitioning from either the mechanical off =$3> or soft&off
state to the $ working state this register is cleared prior to entering the $ working state.
This register contains optional features ena0led or disa0led within the 5A-T. %f the 5A-T indicates that the
feature is not supported as a fi/ed hardware feature, then software treats the ena0le 0its as write as Hero.
Ta!le (-+& PM+ 1na!le "egisters 6ixed Hardware 6eature 1na!le <its
<it 0a%e 5escription
TM3C.N This is the timer carr( interrupt ena0le 0it. When this 0it is set then an
!C% event is generated an(time the TM3C!T! 0it is set. When this 0it
is reset then no interrupt is generated when the TM3C!T! 0it is set.
4&" 3eserved 3eserved. These 0its alwa(s return a value of Hero.
* $;1C.N The glo0al ena0le 0it. When 0oth the $;1C.N 0it and the $;1C!T!
0it are set, an !C% is raised.
+&9 3eserved 3eserved
8 'W3;TNC.N This optional 0it is used to ena0le the setting of the 'W3;TNC!T! 0it
to generate a power management event =!C% or wake>. The
'W3;TNC!T! 0it is set an(time the power 0utton is asserted. The
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 44*
<it 0a%e 5escription
ena0le 0it does not have to 0e set to ena0le the setting of the
'W3;TNC!T! 0it 0( the assertion of the power 0utton =see
description of the power 0utton hardware>.
!upport for the power 0utton is indicated 0( the 'W3C;,TT2N flag
in the 5A-T 0eing reset =Hero>. %f the 'W3C;,TT2N flag is set or a
power 0utton device o0#ect is present in the AC'% Namespace, then
this 0it field is ignored 0( 2!'M.
6 !1';TNC.N This optional 0it is used to ena0le the setting of the !1';TNC!T! 0it
to generate a power management event =!C% or wake>. The
!1';TNC!T! 0it is set an(time the sleep 0utton is asserted. The
ena0le 0it does not have to 0e set to ena0le the setting of the
!1';TNC!T! 0it 0( the active assertion of the sleep 0utton =see
description of the sleep 0utton hardware>.
!upport for the sleep 0utton is indicated 0( the !1'C;,TT2N flag in
the 5A-T 0eing reset =Hero>. %f the !1'C;,TT2N flag is set or a sleep
0utton device o0#ect is present in the AC'% Namespace, then this 0it
field is ignored 0( 2!'M.
4 3TCC.N This optional 0it is used to ena0le the setting of the 3TCC!T! 0it to
generate a wake event. The 3TCC!T! 0it is set an( time the 3TC
generates an alarm.
44&43 3eserved 3eserved. These 0its alwa(s return a value of Hero.
4" 'C%.A'CWAE.C-%! This 0it is re:uired for chipsets that implement 'C% ./press. This 0it
disa0les the inputs to the 'C%.A'CWAE.C!T! 0it in the 'M4 !tatus
register from waking the s(stem. Modification of this 0it has no impact
on the value of the 'C%.A'CWAE.C!T! 0it.
4* 3eserved 3eserved. These 0its alwa(s return a value of Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
44+ Advanced Configuration and 'ower %nterface !pecification
5.7.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 449
PM1 Control Grouping
The 'M4 Control $rouping has a set of 0its that can 0e distri0uted 0etween two different registers. This
allows these registers to 0e partitioned 0etween two chips, or all placed in a single chip. Although the 0its
can 0e split 0etween the two register 0locks =each register 0lock has a uni:ue pointer within the 5A-T>, the
0it positions specified here are maintained. The register 0lock with unimplemented 0its =that is, those
implemented in the other register 0lock> returns Heros, and writes have no side effects.
5.7.3.2.1 PM1 Control Registers
Re,i2ter 6ocation> ?P;4a_)!<_B6A / P;4b_)!<_B6AB S12tem #/0 or ;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> P;4_)!<_6%!
The 'M4 control registers contain the fi/ed hardware feature control 0its. These 0its can 0e split 0etween
two registers< 'M4aCCNT or 'M40CCNT. .ach register grouping can 0e at a different 32&0it aligned
address and is pointed to 0( the 'M4aCCNTC;1E or 'M40CCNTC;1E. The values for these pointers to
the register space are found in the 5A-T. Accesses to 'M4 control registers are accessed through 0(te and
word accesses.
This register contains optional features ena0led or disa0led within the 5A-T. %f the 5A-T indicates that the
feature is not supported as a fi/ed hardware feature, then software treats these 0its as ignored.
Ta!le (-+# PM+ Control "egisters 6ixed Hardware 6eature Control <its
<it 0a%e 5escription
!C%C.N !elects the power management event to 0e either an !C% or !M% interrupt for
the following events. When this 0it is set, then power management events will
generate an !C% interrupt. When this 0it is reset power management events
will generate an !M% interrupt. %t is the responsi0ilit( of the hardware to set or
reset this 0it. 2!'M alwa(s preserves this 0it position.
4 ;MC31- When set, this 0it allows the generation of a 0us master re:uest to cause an(
processor in the C3 state to transition to the C state. When this 0it is reset,
the generation of a 0us master re:uest does not affect an( processor in the C3
state.
2 $;1C31! This write&onl( 0it is used 0( the AC'% software to raise an event to the ;%2!
software, that is, generates an !M% to pass e/ecution control to the ;%2! for
%A&'C platforms. ;%2! software has a corresponding ena0le and status 0it to
control its a0ilit( to receive AC'% events =for e/ample, ;%2!C.N and
;%2!C!T!>. The $;1C31! 0it is set 0( 2!'M to indicate a release of the
$lo0al 1ock and the setting of the pending 0it in the 5AC! memor( structure.
3&8 3eserved 3eserved. These 0its are reserved 0( 2!'M.
6 %gnore !oftware ignores this 0it field.
4&42 !1'CTS'/ -efines the t(pe of sleeping state the s(stem enters when the !1'C.N 0it is
set to one. This 3&0it field defines the t(pe of hardware sleep state the s(stem
enters when the !1'C.N 0it is set. The BC!x o0#ect contains 3&0it 0inar(
values associated with the respective sleeping state =as descri0ed 0( the
o0#ect>. 2!'M takes the two values from the BC!x o0#ect and programs each
value into the respective !1'CTS'/ field.
43 !1'C.N This is a write&onl( 0it and reads to it alwa(s return a Hero. !etting this 0it
causes the s(stem to se:uence into the sleeping state associated with the
!1'CTS'/ fields programmed with the values from the BC!x o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
448 Advanced Configuration and 'ower %nterface !pecification
<it 0a%e 5escription
4"&4* 3eserved 3eserved. This field alwa(s returns Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 446
5.7.3.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
42 Advanced Configuration and 'ower %nterface !pecification
5.7.3.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 424
Power Management Timer (PM_TMR)
Re,i2ter 6ocation> ?P;_<;R_B6AB S12tem #/0 or ;emor1 Space
Default @alue> ((h
&ttribute> ReadE0nl1
SiCe> F3 bit2
This read&onl( register returns the current value of the power management timer ='M timer>. The 5A-T
has a flag called TM3CDA1C.AT that an 2.M sets to indicate a 32&0it 'M timer or reset to indicate a 2"&
0it 'M timer. When the last 0it of the timer toggles the TM3C!T! 0it is set. This register is accessed as 32
0its.
This register contains optional features ena0led or disa0led within the 5A-T. %f the 5A-T indicates that the
feature is not supported as a fi/ed hardware feature, then software treats these 0its as ignored.
Ta!le (-+( PM Ti%er <its
<it 0a%e 5escription
&23 TM3CDA1 This read&onl( field returns the running count of the power management
timer. This is a 2"&0it counter that runs off a 3.*96*"*&M@H clock and counts
while in the ! working s(stem state. The starting value of the timer is
undefined, thus allowing the timer to 0e reset =or not> 0( an( transition to the
! state from an( other state. The timer is reset =to an( initial value>, and then
continues counting until the s(stemMs 4".34848 M@H clock is stopped upon
entering its !x state. %f the clock is restarted without a reset, then the counter
will continue counting from where it stopped.
2"&34 .CTM3CDA1 This read&onl( field returns the upper eight 0its of a 32&0it power management
timer. %f the hardware supports a 32&0it timer, then this field will return the
upper eight 0itsK if the hardware supports a 2"&0it timer then this field returns
all Heros.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
422 Advanced Configuration and 'ower %nterface !pecification
5.7.3.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 423
PM2 Control (PM2_CNT)
Re,i2ter 6ocation> ?P;3_)!<_B6AB S12tem #/0$ S12tem ;emor1$ or
5unctional 5i-ed "ardware Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> P;3_)!<_6%!
This register 0lock is naturall( aligned and accessed 0ased on its length. 5or AC'% 4. this register is 0(te
aligned and accessed as a 0(te.
This register contains optional features ena0led or disa0led within the 5A-T. %f the 5A-T indicates that the
feature is not supported as a fi/ed hardware feature, then software treats these 0its as ignored.
Ta!le (-+A PM& Control "egister <its
<it 0a%e 5escription
A3;C-%! This 0it is used to ena0le and disa0le the s(stem ar0iter. When this 0it is
C1.A3 the s(stem ar0iter is ena0led and the ar0iter can grant the 0us to other
0us masters. When this 0it is !.T the s(stem ar0iter is disa0led and the default
C', has ownership of the s(stem.
2!'M clears this 0it when using the C, C4 and C2 power states.
) 3eserved 3eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
42" Advanced Configuration and 'ower %nterface !pecification
5.7.3.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 42*
5.7.3.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
42+ Advanced Configuration and 'ower %nterface !pecification
Processor Register Block (P_BLK)
This optional register 0lock is used to control each processor in the s(stem. There is one uni:ue processor
register 0lock per processor in the s(stem. 5or more information a0out controlling processors and control
methods that can 0e used to control processors, see section 8, J'rocessor 'ower and 'erformance !tate
Configuration and Control.L This register 0lock is -W23- aligned and the conte/t of this register 0lock is
not maintained across !3 or !" sleeping states, or the !* soft&off state.
5.7.3.5.1 Processor Control (P_CNT): 32
Re,i2ter 6ocation> %ither ?P_B6AB> S12tem #/0 Space
or 2pecified b1 _P<) 0b9ect> S12tem #/0$ S12tem ;emor1$ or
5unctional 5i-ed "ardware Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> F3 bit2
This register is accessed as a -W23-. The C1ECDA1 field is where the dut( setting of the throttling
hardware is programmed as descri0ed 0( the -,TSCW%-T@ and -,TSC255!.T values in the 5A-T.
!oftware treats all other C1ECDA1 0its as ignored =those not used 0( the dut( setting value>.
Ta!le (-+- Processor Control "egister <its
<it 0a%e 5escription
&3 C1ECDA1 'ossi0le locations for the clock throttling value.
" T@TC.N This 0it ena0les clock throttling of the clock as set in the C1ECDA1 field.
T@TC.N 0it must 0e reset 12W when changing the C1ECDA1 field =changing
the dut( setting>.
*&34 C1ECDA1 'ossi0le locations for the clock throttling value.
5.7.3.5.2 Processor LVL2 Register (P_LVL2): 8
Re,i2ter 6ocation> %ither ?P_B6AB D .> S12tem #/0 Space
or 2pecified b1 _)S< 0b9ect> S12tem #/0$ S12tem ;emor1$ or
5unctional 5i-ed "ardware Space
Default @alue> ((h
&ttribute> ReadE0nl1
SiCe> = bit2
This register is accessed as a 0(te.
Ta!le (-+. Processor L7L& "egister <its
<it 0a%e 5escription
&9 'C1D12 3eads to this register return all HerosK writes to this register have no effect. 3eads
to this register also generate an Jenter a C2 power stateL to the clock control
logic.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 429
5.7.3.5.3 Processor LVL3 Register (P_LVL3): 8
Re,i2ter 6ocation> %ither ?P_B6AB D G> S12tem #/0 Space
or 2pecified b1 _)S< 0b9ect> S12tem #/0$ S12tem ;emor1$ or
5unctional 5i-ed "ardware Space
Default @alue> ((h
&ttribute> ReadE0nl1
SiCe> = bit2
This register is accessed as a 0(te.
Ta!le (-+/ Processor L7L# "egister <its
<it 0a%e 5escription
&9 'C1D13 3eads to this register return all HerosK writes to this register have no effect. 3eads
to this register also generate an Jenter a C3 power stateL to the clock control
logic.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
428 Advanced Configuration and 'ower %nterface !pecification
5.7.3.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 426
Reset Register
The optional AC'% reset mechanism specifies a standard mechanism that provides a complete s(stem reset.
When implemented, this mechanism must reset the entire s(stem. This includes processors, core logic, all
0uses, and all peripherals. 5rom an 2!'M perspective, asserting the reset mechanism is the logical
e:uivalent to power c(cling the machine. ,pon gaining control after a reset, 2!'M will perform actions in
like manner to a cold 0oot.
The reset mechanism is implemented via an 8&0it register descri0ed 0( 3.!.TC3.$ in the 5A-T =alwa(s
accessed via the natural alignment and siHe descri0ed in 3.!.TC3.$>. To reset the machine, software will
write a value =indicated in 3.!.TCDA1,. in 5A-T> to the reset register. The 3.!.TC3.$ field in the
5A-T indicates the location of the reset register.
The reset register ma( e/ist onl( in %F2 space, Memor( space, or in 'C% Configuration space on a function
in 0us . Therefore, the AddressC!paceC%- value in 3.!.TC3.$ must 0e set to %F2 space, Memor( space,
or 'C% Configuration space =with a 0us num0er of >. As the register is onl( 8 0its, 3egisterC;itCWidth
must 0e 8 and 3egisterC;itC2ffset must 0e .
The s(stem must reset immediatel( following the write to this register. 2!'M assumes that the processor
will not e/ecute 0e(ond the write instruction. 2!'M should e/ecute spin loops on the C',s in the s(stem
following a write to this register.
5.7.4 Generic Hardware Registers
AC'% provides a mechanism that allows a uni:ue piece of Jvalue addedL hardware to 0e descri0ed to
2!'M in the AC'% Namespace. There are a num0er of rules to 0e followed when designing AC'%&
compati0le hardware.
'rogramming 0its can reside in an( of the defined generic hardware address spaces =s(stem %F2, s(stem
memor(, 'C% configuration, em0edded controller, or !M;us>, 0ut the top&level event 0its are contained in
the general&purpose event registers. The general&purpose event registers are pointed to 0( the $'.C;1E
and $'.4C;1E register 0locks, and the generic hardware registers can 0e in an( of the defined AC'%
address spaces. A deviceMs generic hardware programming model is descri0ed through an associated o0#ect
in the AC'% Namespace, which specifies the 0itMs function, location, address space, and address location.
The programming model for devices is normall( 0roken into status and control functions. !tatus 0its are
used to generate an event that allows 2!'M to call a control method associated with the pending status 0it.
The called control method can then control the hardware 0( manipulating the hardware control 0its or 0(
investigating child status 0its and calling their respective control methods. AC'% re:uires that the top level
JparentL event status and ena0le 0its reside in either the $'.C!T! or $'.4C!T! registers, and JchildL
event status 0its can reside in generic address space.
The e/ample 0elow illustrates some of these concepts. The top diagram shows how the logic is partitioned
into two chips< a chipset and an em0edded controller.
The chipset contains the interrupt logic, performs the power 0utton =which is part of the fi/ed
register space, and is not discussed here>, the lid switch =used in porta0les to indicate when the
clam shell lid is open or closed>, and the 3%Y function =which can 0e used to wake a sleeping
s(stem>.
The em0edded controller chip is used to perform the AC power detect and dockFundock event
logic. Additionall(, the em0edded controller supports some s(stem management functions using
an 2!&transparent interrupt in the em0edded controller =represented 0( the .AT!M%Y signal>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
43 Advanced Configuration and 'ower %nterface !pecification
5Px%R$5
Bloc:
ACPI/Compati0le
Chip Set
Momentar,
Momentar,
PRBT&8
+ID
S#itch
Po#er
B(tton
-I'8
$m0edded
Controller
@
$C%CS8
$ETSMI8
$ETPM$8
AC8
$
m
0
e
d
d
e
d
C
o
n
tro
lle
r In
te
rfa
c
e
$C%STS
5P%STS41
$C%$&
5P%$&41
Other SCI
sources
SCI8
Sharea0le
Interrupt
AC%STS
$141
'OC#%STS
P14>14!
'OC#8
RI8
$ETPM$8
RI%STS
5P%STS4!
RI%$&
5P%$&4!
RI8
AC8
'OC#8
$ETPM$8 $ETPM$8
-I'%STS
5P%STS4"
-I'%$&
5P%$&4"
-I'
-I'%PO-
S((4"
$ETSMI8
SMI/onl,
sources $ETSMI8
$ETSMI8
SMI Onl,
$9ents
'e0ounce
'oc:ing
Chip
'OC#8
(>
(;
6igure (-+# 1xa%ple of ;eneral-Purpose vs ;eneric Hardware 1vents
At the top level, the generic events in the $'.xC!T! register are the<
.m0edded controller interrupt, which contains two :uer( events< one for AC detection and one for
docking =the docking :uer( event has a child interrupt status 0it in the docking chip>.
3ing indicate status =used for waking the s(stem>.
1id status.
The em0edded controller event status 0it =.CC!T!> is used to indicate that one of two :uer( events is
active.
A :uer( event is generated when the ACY signal is asserted. The em0edded controller returns a
:uer( value of 3" =an( 0(te num0er can 0e used> upon a :uer( command in response to this eventK
2!'M will then schedule for e/ecution the control method associated with :uer( value 3".
Another :uer( event is for the docking chip that generates a docking event. %n this case, the em0edded
controller will return a :uer( value of 3* upon a :uer( command from s(stem software responding to an
!C% from the em0edded controller. 2!'M will then schedule the control method associated with the :uer(
value of 3* to 0e e/ecuted, which services the docking event.
5or each of the status 0its in the $'.xC!T! register, there is a corresponding ena0le 0it in the $'.xC.N
register. Notice that the child status 0its do not necessaril( need ena0le 0its =see the -2CEC!T! 0it>.
The lid logic contains a control 0it to determine if its status 0it is set when the 1%- is open =1%-C'21 is set
and 1%- is set> or closed =1%-C'21 is clear and 1%- is clear>. This control 0it resides in generic %F2 space
=in this case, 0it 2 of s(stem %F2 space 33h> and would 0e manipulated with a control method associated
with the lid o0#ect.
As with fi/ed hardware events, 2!'M will clear the status 0its in the $'.x register 0locks. @owever, AM1
code clears all si0ling status 0its in the generic hardware.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 434
$eneric hardware features are controlled 0( 2.M supplied control methods, encoded in AM1. AC'%
provides 0oth an event and control model for development of these features. The AC'% specification also
provides specific control methods for notif(ing 2!'M of certain power management and 'lug and 'la(
events. !ection *, JAC'% !oftware 'rogramming Model,L provides information on the t(pes of hardware
functionalit( that support the different t(pes of su0s(stems. The following is a list of features supported 0(
AC'%. The list is not intended to 0e complete or comprehensive.
-evice insertionFe#ection =for e/ample, docking, device 0a(, AFC adapter>
;atteries
"
'latform thermal su0s(stem
Turning onFoff power resources
Mo0ile lid %nterface
.m0edded controller
!(stem indicators
2.M&specific wake events
'lug and 'la( configuration
"
AC'% operating s(stems assume the use of the !mart ;atter( !(stem %mplementers 5orum defined
standard for 0atteries, called the J!mart ;atter( !pecificationL =!;!>. AC'% provides a set of control
methods for use 0( 2.Ms that use a proprietar( Jcontrol methodL 0atter( interface.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
432 Advanced Configuration and 'ower %nterface !pecification
5.7.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 433
General-Purpose Event Register Blocks
AC'% supports up to two general&purpose register 0locks as descri0ed in the 5A-T =see section *, JAC'%
!oftware 'rogramming ModelL> and an ar0itrar( num0er of additional $'. 0locks descri0ed as devices
within the AC'% namespace. .ach register 0lock contains two registers< an ena0le and a status register.
.ach register 0lock is 32&0it aligned. .ach register in the 0lock is accessed as a 0(te. %t is up to the specific
design to determine if these 0its retain their conte/t across sleeping or soft&off states. %f the( lose their
conte/t across a sleeping or soft&off state, then ;%2! resets the respective ena0le 0it prior to passing control
to the 2! upon waking.
5.7.4.1.1 General-Purpose Event 0 Register Block
This register 0lock consists of two registers< The $'.C!T! and the $'.C.N registers. .ach registerMs
length is defined to 0e half the length of the $'. register 0lock, and is descri0ed in the AC'% 5A-TMs
$'.C;1E and $'.C;1EC1.N operators. 2!'M owns the general&purpose event resources and these
0its are onl( manipulated 0( 2!'MK AM1 code cannot access the general&purpose event registers.
%t is envisioned that chipsets will contain $'. event registers that provide $'. input pins for various
events.
The platform designer would then wire the $'.s to the various value&added event hardware and the AM1
code would descri0e to 2!'M how to utiliHe these events. As such, there will 0e the case where a platform
has $'. events that are not wired to an(thing =the( are present in the chip set>, 0ut are not utiliHed 0( the
platform and have no associated AM1 code. %n such, cases these event pins are to 0e tied inactive such that
the corresponding !C% status 0it in the $'. register is not set 0( a floating input pin.
5.7.4.1.1.1 General-Purpose Event 0 Status Register
Re,i2ter 6ocation> ?:P%(_S<SB S12tem #/0 or S12tem ;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> :P%(_B6A_6%!/3
The general&purpose event status register contains the general&purpose event status 0its in 0ank Hero of
the general&purpose registers. .ach availa0le status 0it in this register corresponds to the 0it with the same
0it position in the $'.C.N register. .ach availa0le status 0it in this register is set when the event is
active, and can onl( 0e cleared 0( software writing a J4L to its respective 0it position. 5or the general&
purpose event registers, unimplemented 0its are ignored 0( 2!'M.
.ach status 0it can optionall( wake the s(stem if asserted when the s(stem is in a sleeping state with its
respective ena0le 0it set. 2!'M accesses $'. registers through 0(te accesses =regardless of their length>.
5.7.4.1.1.2 General-Purpose Event 0 Enable Register
Re,i2ter 6ocation> ?:P%(_%!B S12tem #/0 or S12tem ;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> :P%(_B6A_6%!/3
The general&purpose event ena0le register contains the general&purpose event ena0le 0its. .ach availa0le
ena0le 0it in this register corresponds to the 0it with the same 0it position in the $'.C!T! register. The
ena0le 0its work similarl( to how the ena0le 0its in the fi/ed&event registers are defined< When the ena0le
0it is set, then a set status 0it in the corresponding status 0it will generate an !C% 0it. 2!'M accesses $'.
registers through 0(te accesses =regardless of their length>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
43" Advanced Configuration and 'ower %nterface !pecification
5.7.4.1.2 General-Purpose Event 1 Register Block
This register 0lock consists of two registers< The $'.4C!T! and the $'.4C.N registers. .ach registerMs
length is defined to 0e half the length of the $'.4 register 0lock, and is descri0ed in the AC'% 5A-TMs
$'.4C;1E and $'.4C;1EC1.N operators.
5.7.4.1.2.1 General-Purpose Event 1 Status Register
Re,i2ter 6ocation> ?:P%4_S<SB S12tem #/0 or S12tem ;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> :P%4_B6A_6%!/3
The general &purpose event 4 status register contains the general&purpose event status 0its. .ach availa0le
status 0it in this register corresponds to the 0it with the same 0it position in the $'.4C.N register. .ach
availa0le status 0it in this register is set when the event is active, and can onl( 0e cleared 0( software
writing a J4L to its respective 0it position. 5or the general&purpose event registers, unimplemented 0its are
ignored 0( the operating s(stem.
.ach status 0it can optionall( wake the s(stem if asserted when the s(stem is in a sleeping state with its
respective ena0le 0it set.
2!'M accesses $'. registers through 0(te accesses =regardless of their length>.
5.7.4.1.2.2 General-Purpose Event 1 Enable Register
Re,i2ter 6ocation> ?:P%4_%!B S12tem #/0 or S12tem ;emor1 Space
Default @alue> ((h
&ttribute> Read/Write
SiCe> :P%4_B6A_6%!/3
The general&purpose event 4 ena0le register contains the general&purpose event ena0le. .ach availa0le
ena0le 0it in this register corresponds to the 0it with the same 0it position in the $'.4C!T! register. The
ena0le 0its work similarl( to how the ena0le 0its in the fi/ed&event registers are defined< When the ena0le
0it is set, a set status 0it in the corresponding status 0it will generate an !C% 0it.
2!'M accesses $'. registers through 0(te accesses =regardless of their length>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 43*
5.7.4.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
43+ Advanced Configuration and 'ower %nterface !pecification
Example Generic Devices
This section points out generic devices with specific AC'% driver support.
5.7.4.2.1 Lid Switch
The 1id switch is an optional feature present in most Jclam shellL st(le mo0ile computers. %t can 0e used 0(
the 2! as polic( input for sleeping the s(stem, or for waking the s(stem from a sleeping state. %f used, then
the 2.M needs to define the lid switch as a device with an C@%- o0#ect value of JC'N'C-L, which
identifies this device as the lid switch to 2!'M. The 1id device needs to contain a control method that
returns its status. The 1id event handler AM1 code reconfigures the lid hardware =if it needs to> to generate
an event in the other direction, clear the status, and then notif( 2!'M of the event.
./ample hardware and A!1 code is shown 0elow for such a design.
-I'%PO-
-I'%STS
@ ms
'e0ounce
Momentar, &ormall,
Open push 0utton
6igure (-+( 1xa%ple ;eneric Address Space Lid Switch Logic
This logic will set the 1id status 0it when the 0utton is pressed or released =depending on the 1%-C'21
0it>.
The A!1 code 0elow defines the following<
An operational region where the lid polarit( resides in address space !(stem address space in
registers /24.
A field operator to allow AM1 code to access this 0it< 'olarit( control 0it =1%-C'21> is called
1'21 and is accessed at /24..
A device named BC!;.1%- with the following<
A 'lug and 'la( identifier J'N'C-L that associates 2!'M with this o0#ect.
-efines an o0#ect that specifies a change in the lidMs status 0it can wake the s(stem from the !"
sleep state and from all higher sleep states =!4, !2, or !3>.
The lid switch event handler that does the following<
-efines the lid status 0it =1%-C!T!> as a child of the general&purpose event register 0it 4.
-efines the event handler for the lid =onl( event handler on this status 0it> that does the following<
5lips the polarit( of the 1'21 0it =to cause the event to 0e generated on the opposite
condition>.
$enerates a notif( to the 2! that does the following<
'asses the BC!;.1%- o0#ect.
%ndicates a device specific event =notif( value /8>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 439
// Define a 6id 2witch
0perationRe,ion(\P"0$ S12tem#0$ (-3(4$ (-4)
5ield(\P"0$ B1te&cc$ !o6oc+$ Pre2erve)
6P06$ 4 // 6id polarit1 control bit
/
Device(\_SB.6#D)
!ame(_"#D$ %#S&#D('P!P()(D*))
;ethod(_6#D)Return(6P06)/
!ame(_PRW$ Pac+a,e(3)
4$ // bit 4 of :P% to enable 6id wa+eup
(-(./ // can wa+eup from S. 2tate
)
/
Scope(\_:P%) // Root level event handler2
;ethod(_6(4) // u2e2 bit 4 of :P(_S<S re,i2ter
!ot(6P06$ 6P06) // 5lip the lid polarit1 bit
!otif1(6#D$ (-=() // !otif1 0S of event
/
/
5.7.4.2.2 Embedded Controller
AC'% provides a standard interface that ena0les AM1 code to define and access generic logic in Jem0edded
controller space.L This supports current computer models where much of the value added hardware is
contained within the em0edded controller while allowing the AM1 code to access this hardware in an
a0stracted fashion.
The em0edded controller is defined as a device and must contain a set num0er of control methods<
C@%- with a value of 'N'C6 to associate this device with the AC'%Ms em0edded controllerMs
driver.
CC3! to return the resources 0eing consumed 0( the em0edded controller.
C$'. that returns the general&purpose event 0it that this em0edded controller is wired to.
Additionall( the em0edded controller can support up to 2** generic events per em0edded controller,
referred to as :uer( events. These :uer( event handles are defined within the em0edded controllerMs device
as control methods. An e/ample of defining an em0edded controller device is shown 0elow<
Device(%)()
// PnP #D
!ame(_"#D$ %#S&#D('P!P()(H*))
// Return2 the ')urrent Re2ource2* of %)
!ame(_)RS$
Re2ource<emplate()
#0(Decode4I$ (-I3$ (-I3$ ($ 4)
#0(Decode4I$ (-II$ (-II$ ($ 4)
/)
// Define that the %) S)# i2 bit ( of the :P_S<S re,i2ter
!ame(_:P%$ () // embedded controller i2 wired to bit ( of :P%
0perationRe,ion(\%)($ %mbedded)ontrol$ ($ (-55)
5ield(%)($ B1te&cc$ 6oc+$ Pre2erve)
// 5ield definition2
/
;ethod(J(()../
;ethod(J55)../
/
5or more information on the em0edded controller, see section 42, JAC'% .m0edded Controller %nterface
!pecification.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
438 Advanced Configuration and 'ower %nterface !pecification
5.7.4.2.3 Fan
AC'% has a device driver to control fans =active cooling devices> in platforms. A fan is defined as a device
with the 'lug and 'la( %- of J'N'C;.L %t should then contain a list power resources used to control the
fan.
5or more information, see section 6, JAC'% -evices and -evice !pecific 20#ects.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 436
6 ACPI Software Programming Model
AC'% defines a hardware register interface that an AC'%&compati0le 2! uses to control core power
management features of a machine, as descri0ed in section ", JAC'% @ardware !pecification.L AC'% also
provides an a0stract interface for controlling the power management and configuration of an AC'% s(stem.
5inall(, AC'% defines an interface 0etween an AC'%&compati0le 2! and the s(stem ;%2!.
To give hardware vendors fle/i0ilit( in choosing their implementation, AC'% uses ta0les to descri0e s(stem
information, features, and methods for controlling those features. These ta0les list devices on the s(stem
0oard or devices that cannot 0e detected or power managed using some other hardware standard, plus their
capa0ilities as descri0ed in section 3, J2verview.L The( also list s(stem capa0ilities such as the sleeping
power states supported, a description of the power planes and clock sources availa0le in the s(stem,
0atteries, s(stem indicator lights, and so on. This ena0les 2!'M to control s(stem devices without needing
to know how the s(stem controls are implemented.
Topics covered in this section are<
The AC'% s(stem description ta0le architecture is defined, and the role of 2.M&provided
definition 0locks in that architecture is discussed.
The concept of the AC'% Namespace is discussed.
6.1 Overview of the System Description Table Architecture
The 3oot !(stem -escription 'ointer =3!-'> structure is located in the s(stemMs memor( address space
and is setup 0( the platform firmware. This structure contains the address of the ./tended !(stem
-escription Ta0le =3!-T>, which references other description ta0les that provide data to 2!'M, suppl(ing
it with knowledge of the 0ase s(stemMs implementation and configuration =see 5igure *&4>.
- o c a t e d i n s , s t e m F s m e m o r , a d d r e s s s p a c e
$ x t e n d e d S , s t e m
' e s c r i p t i o n T a 0 l e
7 e a d e r
C S D T
E n t r y
E n t r y
. . .
E n t r y
. . .
R o o t S , s t e m
' e s c r i p t i o n P o i n t e r
7 e a d e r
S i g
c o n t e n t s
7 e a d e r
S i g
c o n t e n t s
R S D P T R
P o i n t e r
P o i n t e r
6igure A-+ "oot S)ste% 5escription Pointer and Ta!le
All s(stem description ta0les start with identical headers. The primar( purpose of the s(stem description
ta0les is to define for 2!'M various industr(&standard implementation details. !uch definitions ena0le
various portions of these implementations to 0e fle/i0le in hardware re:uirements and design, (et still
provide 2!'M with the knowledge it needs to control hardware directl(.
The ./tended !(stem -escription Ta0le =3!-T> points to other ta0les in memor(. Alwa(s the first ta0le, it
points to the 5i/ed AC'% -escription ta0le =5A-T>. The data within this ta0le includes various fi/ed&length
entries that descri0e the fi/ed AC'% features of the hardware. The 5A-T ta0le alwa(s refers to the
-ifferentiated !(stem -escription Ta0le =-!-T>, which contains information and descriptions for various
s(stem features. The relationship 0etween these ta0les is shown in 5igure *&2.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4" Advanced Configuration and 'ower %nterface !pecification
'e9ice I/O
'e9ice Memor,
PCI configuration
$m0edded Controller space
.irmware ACPI
Control Structure
a:e 6ector
Shared -oc:
6ACS
,P'>B+K
P*5'>B+K
'ifferentiated S,stem
'escription Ta0le
7eader
DSDT
-ifferentiated
-efinition
;lock
P*3'>B+K
.ixed ACPI
'escription Ta0le
7eader
6ACP
Static info
-ocated in
port space
O$M/Specific
ACPI
'ri9er
Software
7ardware
.IRM
'S'T
B-#s
...
6igure A-& 5escription Ta!le Structures
2!'M finds the 3!-' structure as descri0ed in section *.2.*.4 =J5inding the 3!-' on %A&'C
!(stemsL> or section *.2.*.2 =J5inding the 3!-' on .5% .na0led !(stemsL>.
When 2!'M locates the structure, it looks at the ph(sical address for the 3oot !(stem -escription Ta0le or
the ./tended !(stem -escription Ta0le. The 3oot !(stem -escription Ta0le starts with the signature
J3!-TL, while the ./tended !(stem -escription Ta0le starts with the signature JA!-TL. These ta0les
contain one or more ph(sical pointers to other s(stem description ta0les that provide various information
a0out the s(stem. As shown in 5igure *&4, there is alwa(s a ph(sical address in the 3oot !(stem
-escription Ta0le for the 5i/ed AC'% -escription ta0le =5A-T>.
When 2!'M follows a ph(sical pointer to another ta0le, it e/amines each ta0le for a known signature.
;ased on the signature, 2!'M can then interpret the implementation&specific data within the description
ta0le.
The purpose of the 5A-T is to define various static s(stem information related to configuration and power
management. The 5i/ed AC'% -escription Ta0le starts with the J5AC'L signature. The 5A-T descri0es the
implementation and configuration details of the AC'% hardware registers on the platform.
5or a specification of the AC'% @ardware 3egister ;locks ='M4aC.DTC;1E, 'M40C.DTC;1E,
'M4aCCNTC;1E, 'M40CCNTC;1E, 'M2CCNTC;1E, 'MCTM3C;1E, $'C;1E, $'4C;1E, and one
or more 'C;1Es>, see section ".9, JAC'% 3egister Model.L The 'M4aC.DTC;1E, 'M40C.DTC;1E,
'M4aCCNTC;1E, 'M40CCNTC;1E, 'M2CCNTC;1E, and 'MCTM3C;1E 0locks are for controlling
low&level AC'% s(stem functions.
The $'.C;1E and $'.4C;1E 0locks provide the foundation for an interrupt&processing model for
Control Methods. The 'C;1E 0locks are for controlling processor features.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4"4
;esides AC'% @ardware 3egister implementation information, the 5A-T also contains a ph(sical pointer to
the -ifferentiated !(stem -escription Ta0le =-!-T>. The -!-T contains a -efinition ;lock named the
-ifferentiated -efinition ;lock for the -!-T that contains implementation and configuration information
2!'M can use to perform power management, thermal management, or 'lug and 'la( functionalit( that
goes 0e(ond the information descri0ed 0( the AC'% hardware registers.
A -efinition ;lock contains information a0out hardware implementation details in the form of a
hierarchical namespace, data, and control methods encoded in AM1. 2!'M JloadsL or JunloadsL an entire
definition 0lock as a logical unit. The -ifferentiated -efinition ;lock is alwa(s loaded 0( 2!'M at 0oot
time and cannot 0e unloaded.
-efinition ;locks can either define new s(stem attri0utes or, in some cases, 0uild on prior definitions. A
-efinition ;lock can 0e loaded from s(stem memor( address space. 2ne use of a -efinition ;lock is to
descri0e and distri0ute platform version changes.
-efinition 0locks ena0le wide variations of hardware platform implementations to 0e descri0ed to the
AC'%&compati0le 2! while confining the variations to reasona0le 0oundaries. -efinition 0locks ena0le
simple platform implementations to 0e e/pressed 0( using a few well&defined o0#ect names. %n theor(, it
might 0e possi0le to define a 'C% configuration space&like access method within a -efinition ;lock, 0(
0uilding it from %F2 space, 0ut that is not the goal of the -efinition ;lock specification. !uch a space is
usuall( defined as a J0uilt inL operator.
!ome operators perform simple functions and others encompass comple/ functions. The power of the
-efinition ;lock comes from its a0ilit( to allow these operations to 0e glued together in numerous wa(s, to
provide functionalit( to 2!'M. The operators present are intended to allow man( useful hardware designs
to 0e AC'%&e/pressed, not to allow all hardware designs to 0e e/pressed.
6.1.1 Address Space Translation
!ome platforms ma( contain 0ridges that perform translations as %F2 andFor Memor( c(cles pass through
the 0ridges. This translation can take the form of the addition or su0traction of an offset. 2r it can take the
form of a conversion from %F2 c(cles into Memor( c(cles and 0ack again. When translation takes place, the
addresses placed on the processor 0us 0( the processor during a read or write c(cle are not the same
addresses that are placed on the %F2 0us 0( the %F2 0us 0ridge. The address the processor places on the
processor 0us will 0e known here as the processor&relative address. And the address that the 0ridge places
on the %F2 0us will 0e known as the 0us&relative address. ,nless otherwise noted, all addresses used within
this section are processor&relative addresses.
5or e/ample, consider a platform with two root 'C% 0uses. The platform designer has several choices. 2ne
solution would 0e to split the 4+&0it %F2 space into two parts, assigning one part to the first root 'C% 0us
and one part to the second root 'C% 0us. Another solution would 0e to make 0oth root 'C% 0uses decode the
entire 4+&0it %F2 space, mapping the second root 'C% 0usMs %F2 space into memor( space. %n this second
scenario, when the processor needs to read from an %F2 register of a device underneath the second root 'C%
0us, it would need to perform a memor( read within the range that the root 'C% 0us 0ridge is using to map
the %F2 space.
0oteH %ndustr( standard 'Cs do not provide address space translations 0ecause of historical compati0ilit(
issues.
6.2 ACPI System Description Tables
This section specifies the structure of the s(stem description ta0les<
3oot !(stem -escription 'ointer =3!-'>
!(stem -escription Ta0le @eader
3oot !(stem -escription Ta0le =3!-T>
5i/ed AC'% -escription Ta0le =5A-T>
5irmware AC'% Control !tructure =5AC!>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4"2 Advanced Configuration and 'ower %nterface !pecification
-ifferentiated !(stem -escription Ta0le =-!-T>
!econdar( !(stem -escription Ta0le =!!-T>
Multiple A'%C -escription Ta0le =MA-T>
!mart ;atter( Ta0le =!;!T>
./tended !(stem -escription Ta0le =A!-T>
.m0edded Controller ;oot 3esources Ta0le =.C-T>
!(stem 1ocalit( -istance %nformation Ta0le =!1%T>
!(stem 3esource Affinit( Ta0le =!3AT>
All numeric values from the a0ove ta0les, 0locks, and structures are alwa(s encoded in little endian format.
!ignature values are stored as fi/ed&length strings.
6.2.1 Reserved Bits and Fields
5or future e/pansion, all data items marked as reser2ed in this specification have strict meanings. This
section lists software re:uirements for reser2ed fields. Notice that the list contains terms such as AC'%
ta0les and AM1 code defined later in this section of the specification.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4"3
6.2.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4"" Advanced Configuration and 'ower %nterface !pecification
Reserved Bits and Software Components
2.M implementations of software and AM1 code return the 0it value of for all reserved 0its in
AC'% ta0les or in other software values, such as resource descriptors.
5or all reserved 0its in AC'% ta0les and registers, 2!'M implementations must<
%gnore all reserved 0its that are read.
'reserve reserved 0it values of readFwrite data items =for e/ample, 2!'M writes 0ack reserved 0it
values it reads>.
Write Heros to reserved 0its in write&onl( data items.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4"*
6.2.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4"+ Advanced Configuration and 'ower %nterface !pecification
Reserved Values and Software Components
2.M implementations of software and AM1 code return onl( defined values and do not return
reserved values.
2!'M implementations write onl( defined values and do not write reserved values.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4"9
6.2.1.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4"8 Advanced Configuration and 'ower %nterface !pecification
Reserved Hardware Bits and Software Components
!oftware ignores all reserved 0its read from hardware ena0le or status registers.
!oftware writes Hero to all reserved 0its in hardware ena0le registers.
!oftware ignores all reserved 0its read from hardware control and status registers.
!oftware preserves the value of all reserved 0its in hardware control registers 0( writing 0ack read
values.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4"6
6.2.1.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4* Advanced Configuration and 'ower %nterface !pecification
Ignored Hardware Bits and Software Components
!oftware handles ignored 0its in AC'% hardware registers the same wa( it handles reserved 0its in
these same t(pes of registers.
6.2.2 Compatibility
All versions of the AC'% ta0les must maintain 0ackward compati0ilit(. To accomplish this, modifications of
the ta0les consist of redefinition of previousl( reserved fields and values plus appending data to the 4.
ta0les. Modifications of the AC'% ta0les re:uire that the version num0ers of the modified ta0les 0e
incremented. The length field in the ta0les includes all additions and the checksum is maintained for the
entire length of the ta0le.
6.2.3 Address Format
Addresses used in the AC'% 4. s(stem description ta0les were e/pressed as either s(stem memor( or %F2
space. This was targeted at the %A&32 environment. Newer architectures re:uire addressing mechanisms
0e(ond that defined in AC'% 4.. To support these architectures AC'% must support +"&0it addressing and it
must allow the placement of control registers in address spaces other than !(stem %F2.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4*4
6.2.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4*2 Advanced Configuration and 'ower %nterface !pecification
Generic Address Structure
The $eneric Address !tructure =$A!> provides the platform with a ro0ust means to descri0e register
locations. This structure, descri0ed 0elow =Ta0le *&4>, is used to e/press register addresses within ta0les
defined 0( AC'% .
Ta!le A-+ ;eneric Address Structure >;AS?
6ield
<)te
Length
<)te
3ffset 5escription
AddressC!paceC%- 4 The address space where the data structure or register e/ists.
-efined values are<
!(stem Memor(
4 !(stem %F2
2 'C% Configuration !pace
3 .m0edded Controller
" !M;us
* to /9. I 3eserved
/95 5unctional 5i/ed @ardware
/8 to /;5 I 3eserved
/C to /55 I 2.M -efined
3egisterC;itCWidth 4 4 The siHe in 0its of the given register. When addressing a data
structure, this field must 0e Hero.
3egisterC;itC2ffset 4 2 The 0it offset of the given register at the given address. When
addressing a data structure, this field must 0e Hero.
AccessC!iHe 4 3 !pecifies access siHe.
,ndefined =legac( reasons>
4 ;(te access
2 Word access
3 -word access
" Gword access
Address 8 " The +"&0it address of the data structure or register in the given
address space =relative to the processor>. =!ee 0elow for
specific formats.>
Ta!le A-& Address Space 6or%at
Address Space 6or%at
I!(stem Memor( The +"&0it ph(sical memor( address =relative to the processor> of the register. 32&
0it platforms must have the high -W23- set to .
4I!(stem %F2 The +"&0it %F2 address =relative to the processor> of the register. 32&0it platforms
must have the high -W23- set to .
2I'C% Configuration
!pace
'C% Configuration space addresses must 0e confined to devices on 'C% !egment
$roup , 0us . This restriction e/ists to accommodate access to fi/ed hardware
prior to 'C% 0us enumeration. The format of addresses are defined as follows<
:3"5 Location 5escription
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4*3
Address Space 6or%at
@ighest W23- 3eserved =must 0e >
N 'C% -evice num0er on 0us
N 'C% 5unction num0er
1owest W23- 2ffset in the configuration space header
5or e/ample< 2ffset 23h of 5unction 2 on device 9 on 0us segment would 0e
represented as< /9223.
/95I5unctional
5i/ed @ardware
,se of $A! fields other than AddressC!paceC%- is specified 0( the C',
manufacturer. The use of functional fi/ed hardware carries with it a reliance on 2!
specific software that must 0e considered. 2.Ms should consult 2! vendors to
ensure that specific functional fi/ed hardware interfaces are supported 0( specific
operating s(stems.
6.2.4 Universal Uniform Identifers (UUID)
,,%-s =,niversall( ,ni:ue %-entifiers>, also known as $,%-s =$lo0all( ,ni:ue %-entifiers> are 428 0it
long values that e/tremel( likel( to 0e different from all other ,,%-s generated until 3" A.-. ,,%-s are
used to distinguish 0etween callers of A!1 methods, such as C-!M and C2!C.
The format of 0oth the 0inar( and string representations of ,,%-s along with an algorithm to generate
them is specified in %!2F%.C 44*98<466+ and can 0e found as part of the -istri0uted Computing
.nvironment 4.4< 3emote 'rocedure Call specification, which can 0e downloaded from here<
http<FFwww.opengroup.orgFpu0licationsFcatalogFc9+.htm.
6.2.5 Root System Description Pointer (RSDP)
-uring 2! initialiHation, 2!'M must o0tain the 3oot !(stem -escription 'ointer =3!-'> structure from
the platform. When 2!'M locates the 3oot !(stem -escription 'ointer =3!-'> structure, it then locates
the 3oot !(stem -escription Ta0le =3!-T> or the ./tended 3oot !(stem -escription Ta0le =A!-T> using
the ph(sical s(stem address supplied in the 3!-'.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4*" Advanced Configuration and 'ower %nterface !pecification
6.2.5.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4**
Finding the RSDP on IA-PC Systems
2!'M finds the 3oot !(stem -escription 'ointer =3!-'> structure 0( searching ph(sical memor( ranges
on 4+&0(te 0oundaries for a valid 3oot !(stem -escription 'ointer structure signature and checksum match
as follows<
The first 4 E; of the ./tended ;%2! -ata Area =.;-A>. 5or .%!A or MCA s(stems, the .;-A
can 0e found in the two&0(te location "<.h on the ;%2! data area.
The ;%2! read&onl( memor( space 0etween .h and 55555h.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4*+ Advanced Configuration and 'ower %nterface !pecification
6.2.5.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4*9
Finding the RSDP on EFI Enabled Systems
%n ./tensi0le 5irmware %nterface =.5%> ena0led s(stems =for e/ample, %tanium
TM
&0ased platforms> a pointer
to the 3!-' structure e/ists within the .5% !(stem Ta0le. The 2! loaderMs .5% image is provided a pointer
to the .5% !(stem Ta0le at invocation. The 2! loader must retrieve the pointer to the 3!-' structure from
the .5% !(stem ta0le and conve( the pointer to 2!'M, using an 2! dependent data structure, as part of the
hand off of control from the 2! loader to the 2!.
The 2! loader locates the pointer to the 3!-' structure 0( e/amining the .5% configuration ta0le within
the .5% s(stem ta0le. .5% configuration ta0le entries consist of $lo0all( ,ni:ue %dentifier =$,%->Fta0le
pointer pairs. The .5% 4. specification defines a $,%- for AC'%. An .5% configuration ta0le entr( that
matches this $,%- points to an AC'% 4.&compati0le 3!-' structure =AC'% 4. $,%->.
The .5% $,%- for a pointer to the current revision 3!-' structure is< 88+8.894&."54&44d3&;C22&
8C93C8884.
The 2! loader for an AC'%&compati0le 2! will search for an 3!-' structure pointer using the current
revision $,%- first and if it finds one, will use the corresponding 3!-' structure pointer. %f the $,%- is
not found then the 2! loader will search for the 3!-' structure pointer using the AC'% 4. version $,%-.
The 2! loader must retrieve the pointer to the 3!-' structure from the .5% !(stem Ta0le !efore assuming
platform control via the .5% ./it;oot!ervices interface. !ee the .5% specification for more information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4*8 Advanced Configuration and 'ower %nterface !pecification
6.2.5.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4*6
RSDP Structure
The revision num0er contained within the structure indicates the siHe of the ta0le structure.
Ta!le A-# "oot S)ste% 5escription Pointer Structure
6ield
<)te
Length
<)te
3ffset 5escription
!ignature 8 J3!- 'T3 L =Notice that this signature must contain a trailing
0lank character.>
Checksum 4 8 This is the checksum of the fields defined in the AC'% 4.
specification. This includes onl( the first 2 0(tes of this ta0le,
0(tes to 46, including the checksum field. These 0(tes must sum
to Hero.
2.M%- + 6 An 2.M&supplied string that identifies the 2.M.
3evision 4 4* The revision of this structure. 1arger revision num0ers are
0ackward compati0le to lower revision num0ers. The AC'% version
4. revision num0er of this ta0le is Hero. The current value for this
field is 2.
3sdtAddress " 4+ 32 0it ph(sical address of the 3!-T.
1ength " 2 The length of the ta0le, in 0(tes, including the header, starting from
offset . This field is used to record the siHe of the entire ta0le.
AsdtAddress 8 2" +" 0it ph(sical address of the A!-T.
./tended
Checksum
4 32 This is a checksum of the entire ta0le, including 0oth checksum
fields.
3eserved 3 33 3eserved field
6.2.6 System Description Table Header
All s(stem description ta0les 0egin with the structure shown in Ta0le *&". The !ignature field determines
the content of the s(stem description ta0le. !(stem description ta0le signatures defined 0( this specification
are listed in Ta0le *&*.
Ta!le A-( 51SC"IPTI30DH1A51" 6ields
6ield
<)te
Length
<)te
3ffset 5escription
!ignature " The A!C%% string representation of the ta0le identifier. Notice that
if 2!'M finds a signature in a ta0le that is not listed in Ta0le *&*,
2!'M ignores the entire ta0le =it is not loaded into AC'%
namespace>K 2!'M ignores the ta0le even though the values in
the 1ength and Checksum fields are correct.
1ength " " The length of the ta0le, in 0(tes, including the header, starting
from offset . This field is used to record the siHe of the entire
ta0le.
3evision 4 8 The revision of the structure corresponding to the signature field
for this ta0le. 1arger revision num0ers are 0ackward compati0le to
lower revision num0ers with the same signature.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4+ Advanced Configuration and 'ower %nterface !pecification
6ield
<)te
Length
<)te
3ffset 5escription
Checksum 4 6 The entire ta0le, including the checksum field, must add to Hero to
0e considered valid.
2.M%- + 4 An 2.M&supplied string that identifies the 2.M.
2.M Ta0le %- 8 4+ An 2.M&supplied string that the 2.M uses to identif( the
particular data ta0le. This field is particularl( useful when
defining a definition 0lock to distinguish definition 0lock
functions. The 2.M assigns each dissimilar ta0le a new 2.M
Ta0le %-.
2.M 3evision " 2" An 2.M&supplied revision num0er. 1arger num0ers are assumed
to 0e newer revisions.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the %- for the A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
5or 2.Ms, good design practices will ensure consistenc( when assigning 2.M%- and 2.M Ta0le %-
fields in an( ta0le. The intent of these fields is to allow for a 0inar( control s(stem that support services can
use. ;ecause man( support functions can 0e automated, it is useful when a tool can programmaticall(
determine which ta0le release is a compati0le and more recent revision of a prior ta0le on the same 2.M%-
and 2.M Ta0le %-.
Ta0les *&* and *&+ contain the s(stem description ta0le signatures defined 0( this specification. These
s(stem description ta0les ma( 0e defined 0( AC'% =Ta0le *&*> or reserved 0( AC'% and declared 0( other
industr( specifications =Ta0le *&+>. This allows 2! and platform specific ta0les to 0e defined and pointed to
0( the 3!-TFA!-T as needed. 5or ta0les defined 0( other industr( specifications, the AC'% specification
acts as gatekeeper to avoid collisions in ta0le signatures. To help avoid signature collisions, ta0le signatures
will 0e reserved 0( the AC'% promoters and posted independentl( of this specification in AC'% errata and
clarification documents on the AC'% We0 site. 3e:uests to reserve a "&0(te alphanumeric ta0le signature
should 0e sent to the email address infoLacpiinfo and should include the purpose of the ta0le and
reference url to a document that descri0es the ta0le format.
Ta!le A-A 51SC"IPTI30DH1A51" Signatures for ta!les defined !) ACPI
Signature 5escription "eference
JA'%CL Multiple A'%C -escription Ta0le !ection *.2.44.", JMultiple A'%C -escription
Ta0leL
J-!-TL -ifferentiated !(stem -escription Ta0le !ection *.2.44.4, J-ifferentiated !(stem
-escription Ta0leL
J.C-TL .m0edded Controller ;oot 3esources Ta0le !ection *.2.4", J.m0edded Controller ;oot
3esources Ta0leL
L5AC'L 5i/ed AC'% -escription Ta0le =5A-T> !ection *.2.6, J5i/ed AC'% -escription Ta0leL
J5AC!L 5irmware AC'% Control !tructure !ection *.2.4, J5irmware AC'% Control
!tructureL
J2.M/L 2.M !pecific %nformation Ta0les 2.M !pecific ta0les. All ta0le signatures
starting with J2.ML are reserved for 2.M
use.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4+4
Signature 5escription "eference
J'!-TL 'ersistent !(stem -escription Ta0le !ection *.2.44.3, J'ersistent !(stem
-escription Ta0leL
J3!-TL 3oot !(stem -escription Ta0le !ection *.2.9, J3oot !(stem -escription
Ta0leL
J!;!TL !mart ;atter( !pecification Ta0le !ection *.2 43, J!mart ;atter( Ta0leL
J!1%TL !(stem 1ocalit( -istance %nformation Ta0le !ection *.2.4+, J!(stem 1ocalit( -istance
%nformation Ta0leL
J!3ATL !(stem 3esource Affinit( Ta0le !ection *.2.4*, J!(stem 3esource Affinit(
Ta0leL
J!!-TL !econdar( !(stem -escription Ta0le !ection *.2.44.2, J!econdar( !(stem
-escription Ta0leL
JA!-TL ./tended !(stem -escription Ta0le !ection *.2.8, J./tended !(stem -escription
Ta0leL
Ta!le A-- 51SC"IPTI30DH1A51" Signatures for ta!les reserved !) ACPI
Signature 5escription "eference
J;22TL !imple ;oot 5lag Ta0le Microsoft !imple ;oot 5lag !pecification
http<FFwww.microsoft.comF@W-.DF
desinitFsimpC0ios.htm
JC'.'L Corrected 'latform .rror 'olling Ta0le -%$+" Corrected 'latform .rror 'olling
!pecification
http<FFwww.dig+".orgFspecifications
J-;$'L -e0ug 'ort Ta0le Microsoft -e0ug 'ort !pecification
http<FFwww.microsoft.comF@W-.DF'1AT52
3MFpcdesignF13Fde0ugspec.asp
J.T-TL .vent Timer -escription Ta0le %A&'C Multimedia Timers !pecification. This
signature has 0een superseded 0( J@'.TL and
is now o0solete.
J@'.TL %A&'C @igh 'recision .vent Timer Ta0le %A&'C @igh 'recision .vent Timer
!pecification.
http<FFwww.intel.comFla0sFplatcompFhpetFhpets
pec.htm
JMC5$L 'C% ./press memor( mapped configuration
space 0ase address -escription Ta0le
'C% 5irmware !pecification, 3evision 3.
http<FFpcisig.com
J!'C3L !erial 'ort Console 3edirection Ta0le Microsoft !erial 'ort Console 3edirection
Ta0le
http<FFwww.microsoft.comF@W-.DF'1AT52
3MFserverFheadlessF!'C3.asp
J!'M%L !erver 'latform Management %nterface Ta0le ftp<FFdownload.intel.comFdesignFserversFipmiF%
'M%v2Crev4C.pdf
JTC'AL Trusted Computing 'latform Alliance
Capa0ilities Ta0le
http<FFwww.trustedpc.org TC'A 'C !pecific
%mplementation !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4+2 Advanced Configuration and 'ower %nterface !pecification
Signature 5escription "eference
JW-3TL Watchdog 3esource Ta0le
3e:uirements for @ardware Watchdog Timers
!upported 0( Windows & -esign !pecification
http<FFwww.microsoft.comFwhdcFs(stemFC.CF
hw&wdt.msp/
6.2.7 Root System Description Table (RSDT)
2!'M locates that 3oot !(stem -escription Ta0le 0( following the pointer in the 3!-' structure. The
3!-T, shown in Ta0le *&9, starts with the signature O3!-TM followed 0( an arra( of ph(sical pointers to
other s(stem description ta0les that provide various information on other standards defined on the current
s(stem. 2!'M e/amines each ta0le for a known signature. ;ased on the signature, 2!'M can then
interpret the implementation&specific data within the ta0le.
'latforms provide the 3!-T to ena0le compati0ilit( with AC'% 4. operating s(stems. The A!-T,
descri0ed in the ne/t section, supersedes 3!-T functionalit(.
Ta!le A-. "oot S)ste% 5escription Ta!le 6ields >"S5T?
6ield
<)te
Length
<)te
3ffse
t 5escription
@eader
!ignature " O3!-T.M !ignature for the 3oot !(stem -escription Ta0le.
1ength " " 1ength, in 0(tes, of the entire 3!-T. The length implies the
num0er of .ntr( fields =n> at the end of the ta0le.
3evision 4 8 4
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ 5or the 3!-T, the ta0le %- is the manufacture model %-. This
field must match the 2.M Ta0le %- in the 5A-T.
2.M 3evision " 2" 2.M revision of 3!-T ta0le for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the %- for the A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
.ntr( "[n 3+ An arra( of 32&0it ph(sical addresses that point to other
-.!C3%'T%2NC@.A-.3s. 2!'M assumes at least the
-.!C3%'T%2NC@.A-.3 is addressa0le, and then can further
address the ta0le 0ased upon its 1ength field.
6.2.8 Extended System Description Table (XSDT)
The A!-T provides identical functionalit( to the 3!-T 0ut accommodates ph(sical addresses of
-.!C3%'T%2N @.A-.3s that are larger than 32&0its. Notice that 0oth the A!-T and the 3!-T can 0e
pointed to 0( the 3!-' structure. An AC'%&compati0le 2! must use the A!-T if present.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4+3
Ta!le A-/ 1xtended S)ste% 5escription Ta!le 6ields >=S5T?
6ield
<)te
Length
<)te
3ffse
t 5escription
@eader
!ignature " OA!-TM. !ignature for the ./tended !(stem -escription Ta0le.
1ength " " 1ength, in 0(tes, of the entire ta0le. The length implies the
num0er of .ntr( fields =n> at the end of the ta0le.
3evision 4 8 4
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ 5or the A!-T, the ta0le %- is the manufacture model %-. This
field must match the 2.M Ta0le %- in the 5A-T.
2.M 3evision " 2" 2.M revision of A!-T ta0le for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les
containing -efinition ;locks, this is the %- for the A!1
Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
.ntr( 8[n 3+ An arra( of +"&0it ph(sical addresses that point to other
-.!C3%'T%2NC@.A-.3s. 2!'M assumes at least the
-.!C3%'T%2NC@.A-.3 is addressa0le, and then can
further address the ta0le 0ased upon its 1ength field.
6.2.9 Fixed ACPI Description Table (FADT)
The 5i/ed AC'% -escription Ta0le =5A-T> defines various fi/ed hardware AC'% information vital to an
AC'%&compati0le 2!, such as the 0ase address for the following hardware registers 0locks<
'M4aC.DTC;1E, 'M40C.DTC;1E, 'M4aCCNTC;1E, 'M40CCNTC;1E, 'M2CCNTC;1E,
'MCTM3C;1E, $'.C;1E, and $'.4C;1E.
The 5A-T also has a pointer to the -!-T that contains the -ifferentiated -efinition ;lock, which in turn
provides varia0le information to an AC'%&compati0le 2! concerning the 0ase s(stem design.
All fields in the 5A-T that provide hardware addresses provide processor&relative ph(sical addresses.
Ta!le A-, 6ixed ACPI 5escription Ta!le >6A5T? 6or%at
6ield
<)te
Length
<)te
3ffse
t 5escription
@eader
!ignature " O5AC'M. !ignature for the 5i/ed AC'% -escription Ta0le.
1ength " " 1ength, in 0(tes, of the entire 5A-T.
3evision 4 8 "
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4+" Advanced Configuration and 'ower %nterface !pecification
6ield
<)te
Length
<)te
3ffse
t 5escription
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ 5or the 5A-T, the ta0le %- is the manufacture model %-. This field
must match the 2.M Ta0le %- in the 3!-T.
2.M 3evision " 2" 2.M revision of 5A-T for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the %- for the A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
5%3MWA3.CCT31 " 3+ 'h(sical memor( address =&" $;> of the 5AC!, where 2!'M and
5irmware e/change control information. !ee section *.2.+, J3oot
!(stem -escription Ta0le,L for a description of the 5AC!.
-!-T " " 'h(sical memor( address =&" $;> of the -!-T.
3eserved 4 "" AC'% 4. defined this offset as a field named %NTCM2-.1, which
was eliminated in AC'% 2.. 'latforms should set this field to Hero
0ut field values of one are also allowed to maintain compati0ilit(
with AC'% 4..
'referredC'MC'rofile 4 "* This field is set 0( the 2.M to conve( the preferred power
management profile to 2!'M. 2!'M can use this field to set
default power management polic( parameters during 2!
installation.
5ield Dalues<
,nspecified
4 -esktop
2 Mo0ile
3 Workstation
" .nterprise !erver
* !2@2 !erver
+ Appliance 'C
9 'erformance !erver
)9 3eserved
!C%C%NT 2 "+ !(stem vector the !C% interrupt is wired to in 82*6 mode. 2n
s(stems that do not contain the 82*6, this field contains the $lo0al
!(stem interrupt num0er of the !C% interrupt. 2!'M is re:uired to
treat the AC'% !C% interrupt as a shara0le, level, active low
interrupt.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4+*
6ield
<)te
Length
<)te
3ffse
t 5escription
!M%CCM- " "8 !(stem port address of the !M% Command 'ort. -uring AC'% 2!
initialiHation, 2!'M can determine that the AC'% hardware
registers are owned 0( !M% =0( wa( of the !C%C.N 0it>, in which
case the AC'% 2! issues the AC'%C.NA;1. command to the
!M%CCM- port. The !C%C.N 0it effectivel( tracks the ownership
of the AC'% hardware registers. 2!'M issues commands to the
!M%CCM- port s(nchronousl( from the 0oot processor. This field
is reserved and must 0e Hero on s(stem that does not support
!(stem Management mode.
AC'%C.NA;1. 4 *2 The value to write to !M%CCM- to disa0le !M% ownership of the
AC'% hardware registers. The last action !M% does to relin:uish
ownership is to set the !C%C.N 0it. -uring the 2! initialiHation
process, 2!'M will s(nchronousl( wait for the transfer of !M%
ownership to complete, so the AC'% s(stem releases !M%
ownership as :uickl( as possi0le. This field is reserved and must 0e
Hero on s(stems that do not support 1egac( Mode.
AC'%C-%!A;1. 4 *3 The value to write to !M%CCM- to re&ena0le !M% ownership of the
AC'% hardware registers. This can onl( 0e done when ownership
was originall( ac:uired from !M% 0( 2!'M using
AC'%C.NA;1.. An 2! can hand ownership 0ack to !M% 0(
relin:uishing use to the AC'% hardware registers, masking off all
!C% interrupts, clearing the !C%C.N 0it and then writing
AC'%C-%!A;1. to the !M%CCM- port from the 0oot processor.
This field is reserved and must 0e Hero on s(stems that do not
support 1egac( Mode.
!";%2!C3.G 4 *" The value to write to !M%CCM- to enter the !";%2! state. The
!";%2! state provides an alternate wa( to enter the !" state where
the firmware saves and restores the memor( conte/t. A value of
Hero in !";%2!C5 indicates !";%2!C3.G is not supported. =!ee
Ta0le *&42.>
'!TAT.CCNT 4 ** %f non&Hero, this field contains the value 2!'M writes to the
!M%CCM- register to assume processor performance state control
responsi0ilit(.
'M4aC.DTC;1E " *+ !(stem port address of the 'M4a .vent 3egister ;lock. !ee section
".9.3.4, J'M4 .vent $rouping,L for a hardware description la(out
of this register 0lock. This is a re:uired field. This field is
superseded 0( the AC'M4aC.DTC;1E field.
'M40C.DTC;1E " + !(stem port address of the 'M40 .vent 3egister ;lock. !ee section
".9.3.4, J'M4 .vent $rouping,L for a hardware description la(out
of this register 0lock. This field is optionalK if this register 0lock is
not supported, this field contains Hero. This field is superseded 0(
the AC'M40C.DTC;1E field.
'M4aCCNTC;1E " +" !(stem port address of the 'M4a Control 3egister ;lock. !ee
section ".9.3.2, J'M4 Control $rouping,L for a hardware
description la(out of this register 0lock. This is a re:uired field.
This field is superseded 0( the AC'M4aCCNTC;1E field.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4++ Advanced Configuration and 'ower %nterface !pecification
6ield
<)te
Length
<)te
3ffse
t 5escription
'M40CCNTC;1E " +8 !(stem port address of the 'M40 Control 3egister ;lock. !ee
section ".9.3.2, J'M4 Control $rouping,L for a hardware
description la(out of this register 0lock. This field is optionalK if
this register 0lock is not supported, this field contains Hero. This
field is superseded 0( the AC'M40CCNTC;1E field.
'M2CCNTC;1E " 92 !(stem port address of the 'M2 Control 3egister ;lock. !ee
section ".9.3.", J'M2 Control ='M2CCNT>,L for a hardware
description la(out of this register 0lock. This field is optionalK if
this register 0lock is not supported, this field contains Hero. This
field is superseded 0( the AC'M2CCNTC;1E field.
'MCTM3C;1E " 9+ !(stem port address of the 'ower Management Timer Control
3egister ;lock. !ee section ".9.3.3, J'ower Management Timer
='MCTM3>,L for a hardware description la(out of this register
0lock. This is a re:uired field. This field is superseded 0( the
AC'MCTM3C;1E field.
$'.C;1E " 8 !(stem port address of $eneral&'urpose .vent 3egister ;lock.
!ee section ".9.".4, J$eneral&'urpose .vent 3egister ;locks,L for a
hardware description of this register 0lock. This is an optional fieldK
if this register 0lock is not supported, this field contains Hero. This
field is superseded 0( the AC$'.C;1E field.
$'.4C;1E " 8" !(stem port address of $eneral&'urpose .vent 4 3egister ;lock.
!ee section ".9.".4, J$eneral&'urpose .vent 3egister ;locks,L for a
hardware description of this register 0lock. This is an optional fieldK
if this register 0lock is not supported, this field contains Hero. This
field is superseded 0( the AC$'.4C;1E field.
'M4C.DTC1.N 4 88 Num0er of 0(tes decoded 0( 'M4aC.DTC;1E and, if supported,
'M40C .DTC;1E. This value is ".
'M4CCNTC1.N 4 86 Num0er of 0(tes decoded 0( 'M4aCCNTC;1E and, if supported,
'M40CCNTC;1E. This value is 2.
'M2CCNTC1.N 4 6 Num0er of 0(tes decoded 0( 'M2CCNTC;1E. !upport for the
'M2 register 0lock is optional. %f supported, this value is 4. %f not
supported, this field contains Hero.
'MCTM3C1.N 4 64 Num0er of 0(tes decoded 0( 'MCTM3C;1E. This fieldMs value
must 0e ".
$'.C;1EC1.N 4 62 Num0er of 0(tes decoded 0( $'.C;1E. The value is a non&
negative multiple of 2.
$'.4C;1EC1.N 4 63 Num0er of 0(tes decoded 0( $'.4C;1E. The value is a non&
negative multiple of 2.
$'.4C;A!. 4 6" 2ffset within the AC'% general&purpose event model where $'.4
0ased events start.
C!TCCNT 4 6* %f non&Hero, this field contains the value 2!'M writes to the
!M%CCM- register to indicate 2! support for the CC!T o0#ect and
C !tates Changed notification.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4+9
6ield
<)te
Length
<)te
3ffse
t 5escription
'C1D12C1AT 2 6+ The worst&case hardware latenc(, in microseconds, to enter and e/it
a C2 state. A value ) 4 indicates the s(stem does not support a
C2 state.
'C1D13C1AT 2 68 The worst&case hardware latenc(, in microseconds, to enter and e/it
a C3 state. A value ) 4 indicates the s(stem does not support a
C3 state.
51,!@C!%?. 2 4 %f W;%ND-\, the value of this field is the num0er of flush strides
that need to 0e read =using cachea0le addresses> to completel( flush
dirt( lines from an( processorMs memor( caches. Notice that the
value in 51,!@C!T3%-. is t(picall( the smallest cache line width
on an( of the processorMs caches =for more information, see the
51,!@C!T3%-. field definition>. %f the s(stem does not support a
method for flushing the processorMs caches, then 51,!@C!%?. and
W;%ND- are set to Hero. Notice that this method of flushing the
processor caches has limitations, and W;%ND-\4 is the preferred
wa( to flush the processors caches. This value is t(picall( at least 2
times the cache siHe. The ma/imum allowed value for
51,!@C!%?. multiplied 0( 51,!@C!T3%-. is 2 M; for a
t(pical ma/imum supported cache siHe of 4 M;. 1arger cache siHes
are supported using W;%ND-\4.
This value is ignored if W;%ND-\4.
This field is maintained for AC'% 4. processor compati0ilit( on
e/isting s(stems. 'rocessors in new AC'%&compati0le s(stems are
re:uired to support the W;%ND- function and indicate this to
2!'M 0( setting the W;%ND- field \ 4.
51,!@C!T3%-. 2 42 %f W;%ND-\, the value of this field is the cache line width, in
0(tes, of the processorMs memor( caches. This value is t(picall( the
smallest cache line width on an( of the processorMs caches. 5or
more information, see the description of the 51,!@C!%?. field.
This value is ignored if W;%ND-\4.
This field is maintained for AC'% 4. processor compati0ilit( on
e/isting s(stems. 'rocessors in new AC'%&compati0le s(stems are
re:uired to support the W;%ND- function and indicate this to
2!'M 0( setting the W;%ND- field \ 4.
-,TSC255!.T 4 4" The Hero&0ased inde/ of where the processorMs dut( c(cle setting is
within the processorMs 'CCNT register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
4+8 Advanced Configuration and 'ower %nterface !pecification
6ield
<)te
Length
<)te
3ffse
t 5escription
-,TSCW%-T@ 4 4* The 0it width of the processorMs dut( c(cle setting value in the
'CCNT register. .ach processorMs dut( c(cle setting allows the
software to select a nominal processor fre:uenc( 0elow its a0solute
fre:uenc( as defined 0(<
T@T1C.N \ 4
;5 [ -CF=2
-,TSCW%-T@
>
Where<
;5I;ase fre:uenc(
-CI-ut( c(cle setting
When T@T1C.N is , the processor runs at its a0solute ;5. A
-,TSCW%-T@ value of indicates that processor dut( c(cle is
not supported and the processor continuousl( runs at its 0ase
fre:uenc(.
-ASCA13M 4 4+ The 3TC CM2! 3AM inde/ to the da(&of&month alarm value. %f
this field contains a Hero, then the 3TC da( of the month alarm
feature is not supported. %f this field has a non&Hero value, then this
field contains an inde/ into 3TC 3AM space that 2!'M can use to
program the da( of the month alarm. !ee section ".9.2.", J3eal
Time Clock Alarm,L for a description of how the hardware works.
M2NCA13M 4 49 The 3TC CM2! 3AM inde/ to the month of (ear alarm value. %f
this field contains a Hero, then the 3TC month of the (ear alarm
feature is not supported. %f this field has a non&Hero value, then this
field contains an inde/ into 3TC 3AM space that 2!'M can use to
program the month of the (ear alarm. %f this feature is supported,
then the -ASCA13M feature must 0e supported also.
C.NT,3S 4 48 The 3TC CM2! 3AM inde/ to the centur( of data value =hundred
and thousand (ear decimals>. %f this field contains a Hero, then the
3TC centenar( feature is not supported. %f this field has a non&Hero
value, then this field contains an inde/ into 3TC 3AM space that
2!'M can use to program the centenar( field.
%A'CC;22TCA3C@ 2 46 %A&'C ;oot Architecture 5lags. !ee Ta0le *&44 for a description of
this field.
3eserved 4 444 Must 0e .
5lags " 442 5i/ed feature flags. !ee Ta0le *&4 for a description of this field.
3.!.TC3.$ 42 44+ The address of the reset register represented in $eneric Address
!tructure format =!ee section ".9.3.+, J3eset 3egister,L for a
description of the reset mechanism.>
0ote< 2nl( !(stem %F2 space, !(stem Memor( space and 'C%
Configuration space =0us Y> are valid for values for
AddressC!paceC%-. Also, 3egisterC;itCWidth must 0e 8 and
3egisterC;itC2ffset must 0e .
3.!.TCDA1,. 4 428 %ndicates the value to write to the 3.!.TC3.$ port to reset the
s(stem. =!ee section ".9.3.+, J3eset 3egister,L for a description of
the reset mechanism.>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 4+6
6ield
<)te
Length
<)te
3ffse
t 5escription
3eserved 3 426 Must 0e .
AC5%3MWA3.CCT31 8 432 +"0it ph(sical address of the 5AC!.
AC-!-T 8 4" +"0it ph(sical address of the -!-T.
AC'M4aC.DTC;1E 42 4"8 ./tended address of the 'M4a .vent 3egister ;lock, represented in
$eneric Address !tructure format. !ee section ".9.3.4, J'M4 .vent
$rouping,L for a hardware description la(out of this register 0lock.
This is a re:uired field.
AC'M40C.DTC;1E 42 4+ ./tended address of the 'M40 .vent 3egister ;lock, represented
in $eneric Address !tructure format. !ee section ".9.3.4, J'M4
.vent $rouping,L for a hardware description la(out of this register
0lock. This field is optionalK if this register 0lock is not supported,
this field contains Hero.
AC'M4aCCNTC;1E 42 492 ./tended address of the 'M4a Control 3egister ;lock, represented
in $eneric Address !tructure format. !ee section ".9.3.2, J'M4
Control $rouping,L for a hardware description la(out of this
register 0lock. This is a re:uired field.
AC'M40CCNTC;1E 42 48" ./tended address of the 'M40 Control 3egister ;lock, represented
in $eneric Address !tructure format. !ee section ".9.3.2, J'M4
Control $rouping,L for a hardware description la(out of this
register 0lock. This field is optionalK if this register 0lock is not
supported, this field contains Hero.
AC'M2CCNTC;1E 42 46+ ./tended address of the 'ower Management 2 Control 3egister
;lock, represented in $eneric Address !tructure format. !ee
section ".9.3.", J'M2 Control ='M2CCNT>,L for a hardware
description la(out of this register 0lock. This field is optionalK if
this register 0lock is not supported, this field contains Hero.
AC'MCTM3C;1E 42 28 ./tended address of the 'ower Management Timer Control
3egister ;lock, represented in $eneric Address !tructure format.
!ee section ".9.3.3, J'ower Management Timer ='MCTM3>,L for a
hardware description la(out of this register 0lock. This is a re:uired
field.
AC$'.C;1E 42 22 ./tended address of the $eneral&'urpose .vent 3egister ;lock,
represented in $eneric Address !tructure format. !ee section *.2.8,
J5i/ed AC'% -escription Ta0le,L for a hardware description of this
register 0lock. This is an optional fieldK if this register 0lock is not
supported, this field contains Hero.
AC$'.4C;1E 42 232 ./tended address of the $eneral&'urpose .vent 4 3egister ;lock,
represented in $eneric Address !tructure format. !ee section *.2.8,
J5i/ed AC'% -escription Ta0le,L for a hardware description of this
register 0lock. This is an optional fieldK if this register 0lock is not
supported, this field contains Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
49 Advanced Configuration and 'ower %nterface !pecification
Ta!le A-+$ 6ixed ACPI 5escription Ta!le 6ixed 6eature 6lags
6ACP - 6lag
<it
Length
<it
3ffset 5escription
W;%ND- 4 'rocessor properl( implements a functional e:uivalent to the
W;%ND- %A&32 instruction.
%f set, signifies that the W;%ND- instruction correctl( flushes the
processor caches, maintains memor( coherenc(, and upon
completion of the instruction, all caches for the current processor
contain no cached data other than what 2!'M references and
allows to 0e cached. %f this flag is not set, the AC'% 2! is
responsi0le for disa0ling all AC'% features that need this function.
This field is maintained for AC'% 4. processor compati0ilit( on
e/isting s(stems. 'rocessors in new AC'%&compati0le s(stems are
re:uired to support this function and indicate this to 2!'M 0(
setting this field.
W;%ND-C51,!@ 4 4 %f set, indicates that the hardware flushes all caches on the
W;%ND- instruction and maintains memor( coherenc(, 0ut does
not guarantee the caches are invalidated. This provides the
complete semantics of the W;%ND- instruction, and provides
enough to support the s(stem sleeping states. %f neither of the
W;%ND- flags is set, the s(stem will re:uire 51,!@C!%?. and
51,!@C!T3%-. to support sleeping states. %f the 51,!@
parameters are also not supported, the machine cannot support
sleeping states !4, !2, or !3.
'32CCC4 4 2 A one indicates that the C4 power state is supported on all
processors.
'C1D12C,' 4 3 A Hero indicates that the C2 power state is configured to onl( work
on a uniprocessor =,'> s(stem. A one indicates that the C2 power
state is configured to work on a ,' or multiprocessor =M'> s(stem.
'W3C;,TT2N 4 " A Hero indicates the power 0utton is handled as a fi/ed feature
programming modelK a one indicates the power 0utton is handled as
a control method device. %f the s(stem does not have a power
0utton, this value would 0e J4L and no sleep 0utton device would
0e present.
%ndependent of the value of this field, the presence of a power
0utton device in the namespace indicates to 2!'M that the power
0utton is handled as a control method device.
!1'C;,TT2N 4 * A Hero indicates the sleep 0utton is handled as a fi/ed feature
programming modelK a one indicates the sleep 0utton is handled as
a control method device.
%f the s(stem does not have a sleep 0utton, this value would 0e J4L
and no sleep 0utton device would 0e present.
%ndependent of the value of this field, the presence of a sleep 0utton
device in the namespace indicates to 2!'M that the sleep 0utton is
handled as a control method device.
5%AC3TC 4 + A Hero indicates the 3TC wake status is supported in fi/ed register
spaceK a one indicates the 3TC wake status is not supported in fi/ed
register space.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 494
6ACP - 6lag
<it
Length
<it
3ffset 5escription
3TCC!" 4 9 %ndicates whether the 3TC alarm function can wake the s(stem
from the !" state. The 3TC must 0e a0le to wake the s(stem from
an !4, !2, or !3 sleep state. The 3TC alarm can optionall( support
waking the s(stem from the !" state, as indicated 0( this value.
TM3CDA1C.AT 4 8 A Hero indicates TM3CDA1 is implemented as a 2"&0it value. A
one indicates TM3CDA1 is implemented as a 32&0it value. The
TM3C!T! 0it is set when the most significant 0it of the TM3CDA1
toggles.
-CECCA' 4 6 A Hero indicates that the s(stem cannot support docking. A one
indicates that the s(stem can support docking. Notice that this flag
does not indicate whether or not a docking station is currentl(
presentK it onl( indicates that the s(stem is capa0le of docking.
3.!.TC3.$C!,' 4 4 %f set, indicates the s(stem supports s(stem reset via the 5A-T
3.!.TC3.$ as descri0ed in section ".9. 3.+, J3eset 3egister.L
!.A1.-CCA!. 4 44 !(stem T(pe Attri0ute. %f set indicates that the s(stem has no
internal e/pansion capa0ilities and the case is sealed.
@.A-1.!! 4 42 !(stem T(pe Attri0ute. %f set indicates the s(stem cannot detect the
monitor or ke(0oard F mouse devices.
C',C!WC!1' 4 43 %f set, indicates to 2!'M that a processor native instruction must
0e e/ecuted after writing the !1'CTS'/ register.
'C%C.A'CWAE 4 4" %f set, indicates the platform supports the 'C%.A'CWAE.C!T! 0it
in the 'M4 !tatus register and the 'C%.A'CWAE.C.N 0it in the
'M4 .na0le register.
,!.C'1AT523MCC1
2CE
4 4*
A value of one indicates that 2!'M should use a platform provided
timer to drive an( monotonicall( non&decreasing counters, such as
2!'M performance counter services. Which particular platform
timer will 0e used is 2!'M specific, however, it is recommended
that the timer used is 0ased on the following algorithm< %f the
@'.T is e/posed to 2!'M, 2!'M should use the @'.T.
2therwise, 2!'M will use the AC'% power management timer. A
value of one indicates that the platform is known to have a
correctl( implemented AC'% power management timer.
A platform ma( choose to set this flag if a internal processor clock
=or clocks in a multi&processor configuration> cannot provide
consistent monotonicall( non&decreasing counters.
Note< %f a value of Hero is present, 2!'M ma( ar0itraril( choose to
use an internal processor clock or a platform timer clock for these
operations. That is, a Hero does not impl( that 2!'M will
necessaril( use the internal processor clock to generate a
monotonicall( non&decreasing counter to the s(stem.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
492 Advanced Configuration and 'ower %nterface !pecification
6ACP - 6lag
<it
Length
<it
3ffset 5escription
!"C3TCC!T!CDA1%- 4 4+
A one indicates that the contents of the 3TCC!T! flag is valid
when waking the s(stem from !".
!ee Ta0le "&44 I 'M4 !tatus 3egisters 5i/ed @ardware 5eature
!tatus ;its for more information. !ome e/isting s(stems do not
relia0l( set this input toda(, and this 0it allows 2!'M to
differentiate correctl( functioning platforms from platforms with
this errata.
3.M2T.C'2W.3C2
NCCA'A;1.
4 49
A one indicates that the platform is compati0le with remote power
on.
That is, the platform supports 2!'M leaving $'. wake events
armed prior to an !* transition. !ome e/isting platforms do not
relia0l( transition to !* with wake events ena0led =for e/ample, the
platform ma( immediatel( generate a spurious wake event after
completing the !* transition>. This flag allows 2!'M to
differentiate correctl( functioning platforms from platforms with
this t(pe of errata.
523C.C
A'%CCC1,!T.3CM2
-.1
4 48
A one indicates that all local A'%Cs must 0e configured for the
cluster destination model when delivering interrupts in logical
mode.
%f this 0it is set, then logical mode interrupt deliver( operation ma(
0e undefined until 2!'M has moved all local A'%Cs to the cluster
model.
Note that the cluster destination model doesnMt appl( to %tanium
processor local !A'%Cs. This 0it is intended for /A'%C 0ased
machines that re:uire the cluster destination model even when 8 or
fewer local A'%Cs are present in the machine.
523C.CA'%CC'@S!%
CA1C-.!T%NAT%2NC
M2-.
4 46 A one indicates that all local /A'%Cs must 0e configured for
ph(sical destination mode. %f this 0it is set, interrupt deliver(
operation in logical destination mode is undefined. 2n machines
that contain fewer than 8 local /A'%Cs or that do not use the
/A'%C architecture, this 0it is ignored.
3eserved 42 2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 493
6.2.9.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
49" Advanced Configuration and 'ower %nterface !pecification
Preferred PM Profle System Types
The following descriptions of preferred power management profile s(stem t(pes are to 0e used as a guide
for setting the 'referredC'MC'rofile field in the 5A-T. 2!'M can use this field to set default power
management polic( parameters during 2! installation.
5esktop. A single user, full featured, stationar( computing device that resides on or near an individualMs
work area. Most often contains one processor. Must 0e connected to AC power to function. This device is
used to perform work that is considered mainstream corporate or home computing =for e/ample, word
processing, %nternet 0rowsing, spreadsheets, and so on>.
Mo!ile. A single&user, full&featured, porta0le computing device that is capa0le of running on 0atteries or
other power storage devices to perform its normal functions. Most often contains one processor. This
device performs the same task set as a desktop. @owever it ma( have limitations dues to its siHe, thermal
re:uirements, andFor power source life.
:orkstation. A single&user, full&featured, stationar( computing device that resides on or near an
individualMs work area. 2ften contains more than one processor. Must 0e connected to AC power to
function. This device is used to perform large :uantities of computations in support of such work as
CA-FCAM and other graphics&intensive applications.
1nterprise Server. A multi&user, stationar( computing device that fre:uentl( resides in a separate, often
speciall( designed, room. Will almost alwa(s contain more than one processor. Must 0e connected to AC
power to function. This device is used to support large&scale networking, data0ase, communications, or
financial operations within a corporation or government.
S3H3 Server. A multi&user, stationar( computing device that fre:uentl( resides in a separate area or room
in a small or home office. Ma( contain more than one processor. Must 0e connected to AC power to
function. This device is generall( used to support all of the networking, data0ase, communications, and
financial operations of a small office or home office.
Appliance PC. A device specificall( designed to operate in a low&noise, high&availa0ilit( environment such
as a consumerMs living rooms or famil( room. Most often contains one processor. This categor( also
includes home %nternet gatewa(s, We0 pads, set top 0o/es and other devices that support AC'%. Must 0e
connected to AC power to function. Normall( the( are sealed case st(le and ma( onl( perform a su0set of
the tasks normall( associated with toda(Ms personal computers.
Perfor%ance Server A multi&user stationar( computing device that fre:uentl( resides in a separate, often
speciall( designed room. Will often contain more than one processor. Must 0e connected to AC power to
function. This device is used in an environment where power savings features are willing to 0e sacrificed
for 0etter performance and :uicker responsiveness.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 49*
6.2.9.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
49+ Advanced Configuration and 'ower %nterface !pecification
System Type Attributes
This set of flags is used 0( the 2! to assist in determining assumptions a0out power and device
management. These flags are read at 0oot time and are used to make decisions a0out power management
and device settings. 5or e/ample, a s(stem that has the !.A1.-CCA!. 0it set ma( take a ver( aggressive
low noise polic( toward thermal management. %n another e/ample an 2! might not load video, ke(0oard or
mouse drivers on a @.A-1.!! s(stem.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 499
6.2.9.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
498 Advanced Configuration and 'ower %nterface !pecification
IA-PC Boot Architecture Flags
This set of flags is used 0( an 2! to guide the assumptions it can make in initialiHing hardware on %A&'C
platforms. These flags are used 0( an 2! at 0oot time =0efore the 2! is capa0le of providing an operating
environment suita0le for parsing the AC'% namespace> to determine the code paths to take during 0oot. %n
%A&'C platforms with reduced legac( hardware, the 2! can skip code paths for legac( devices if none are
present. 5or e/ample, if there are no %!A devices, an 2! could skip code that assumes the presence of these
devices and their associated resources. These flags are used independentl( of the AC'% namespace. The
presence of other devices must 0e descri0ed in the AC'% namespace as specified in section +,
JConfiguration.L These flags pertain onl( to %A&'C platforms. 2n other s(stem architectures, the entire
field should 0e set to .
Ta!le A-++ 6ixed ACPI 5escription Ta!le <oot Architecture 6lags
<33TDA"CH
<it
length
<it
offset 5escription
1.$ACSC-.D%C.! 4 %f set, indicates that the mother0oard supports user&visi0le
devices on the 1'C or %!A 0us. ,ser&visi0le devices are devices
that have end&user accessi0le connectors =for e/ample, 1'T
port>, or devices for which the 2! must load a device driver so
that an end&user application can use a device. %f clear, the 2!
ma( assume there are no such devices and that all devices in the
s(stem can 0e detected e/clusivel( via industr( standard device
enumeration mechanisms =including the AC'% namespace>.
8"2 4 4 %f set, indicates that the mother0oard contains support for a port
+ and +" 0ased ke(0oard controller, usuall( implemented as an
8"2 or e:uivalent micro&controller.
D$A Not 'resent 4 2 %f set, indicates to 2!'M that it must not 0lindl( pro0e the D$A
hardware =that responds to MM%2 addresses Ah&;5555h
and %2 ports 3;h&3;;h and 3Ch&3-5h> that ma( cause
machine check on this s(stem. %f clear, indicates to 2!'M that it
is safe to pro0e the D$A hardware..
3eserved 43 3 Must 0e .
6.2.10 Firmware ACPI Control Structure (FACS)
The 5irmware AC'% Control !tructure =5AC!> is a structure in readFwrite memor( that the ;%2! reserves
for AC'% usage. This structure is passed to an AC'%&compati0le 2! using the 5A-T. 5or more information
a0out the 5A-T 5%3MWA3.CCT31 field, see section *.2.6, J5i/ed AC'% -escription Ta0le =5A-T>.L
The ;%2! aligns the 5AC! on a +"&0(te 0oundar( an(where within the s(stemMs memor( address space.
The memor( where the 5AC! structure resides must not 0e reported as s(stem Address3angeMemor( in
the s(stem address map. 5or e/ample, the .82 address map reporting interface would report the region as
Address3ange3eserved. 5or more information a0out s(stem address map reporting interfaces, see
section 4", J!(stem Address Map %nterfaces.L
Ta!le A-+& 6ir%ware ACPI Control Structure >6ACS?
6ield
<)te
Length
<)te
3ffset 5escription
!ignature " O5AC!M
1ength " " 1ength, in 0(tes, of the entire 5irmware AC'% Control
!tructure. This value is +" 0(tes or larger.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 496
6ield
<)te
Length
<)te
3ffset 5escription
@ardware !ignature " 8 The value of the s(stemMs Jhardware signatureL at last 0oot.
This value is calculated 0( the ;%2! on a 0est effort 0asis to
indicate the 0ase hardware configuration of the s(stem such
that different 0ase hardware configurations can have different
hardware signature values. 2!'M uses this information in
waking from an !" state, 0( comparing the current hardware
signature to the signature values saved in the non&volatile sleep
image. %f the values are not the same, 2!'M assumes that the
saved non&volatile image is from a different hardware
configuration and cannot 0e restored.
5irmwareCWakingC
Dector
" 42 This field is superseded 0( the AC5irmwareCWakingCDector
field.
The 32&0it address field where 2!'M puts its waking vector.
;efore transitioning the s(stem into a glo0al sleeping state,
2!'M fills in this field with the ph(sical memor( address of
an 2!&specific wake function. -uring '2!T, the platform
firmware first checks if the value of the
AC5irmwareCWakingCDector field is non&Hero and if so
transfers control to 2!'M as outlined in the
AC5irmwareCWakingCvector field description 0elow. %f the
AC5irmwareCWakingCDector field is Hero then the platform
firmware checks the value of this field and if it is non&Hero,
transfers control to the specified address.
2n 'Cs, the wake function address is in memor( 0elow 4 M;
and the control is transferred while in real mode. 2!'MMs
wake function restores the processorsM conte/t.
5or %A&'C platforms, the following e/ample shows the
relationship 0etween the ph(sical address in the 5irmware
Waking Dector and the real mode address the ;%2! #umps to.
%f, for e/ample, the ph(sical address is /423"*, then the
;%2! must #ump to real mode address /423"</*. %n
general this relationship is
3eal&mode address \
'h(sical address))" < 'h(sical address and /5
Notice that on %A&'C platforms, A2 must 0e ena0led when
the ;%2! #umps to the real mode address derived from the
ph(sical address stored in the 5irmware Waking Dector.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
48 Advanced Configuration and 'ower %nterface !pecification
Ta!le A-+& 6ir%ware ACPI Control Structure >6ACS? (continued)
6ield
<)te
Length
<)te
3ffset 5escription
$lo0alC1ock " 4+ This field contains the $lo0al 1ock used to s(nchroniHe access
to shared hardware resources 0etween the 2!'M environment
and an e/ternal controller environment =for e/ample, the !M%
environment>. This lock is owned e/clusivel( 0( either 2!'M
or the firmware at an( one time. When ownership of the lock is
attempted, it might 0e 0us(, in which case the re:uesting
environment e/its and waits for the signal that the lock has
0een released. 5or e/ample, the $lo0al 1ock can 0e used to
protect an em0edded controller interface such that onl( 2!'M
or the firmware will access the em0edded controller interface
at an( one time. !ee section *.2.4.4, J$lo0al 1ock,L for more
information on ac:uiring and releasing the $lo0al 1ock.
5lags " 2 5irmware control structure flags. !ee Ta0le *&43 for a
description of this field.
AC5irmwareCWakin
gCDector
8 2" +"&0it ph(sical address of 2!'MMs Waking Dector.
;efore transitioning the s(stem into a glo0al sleeping state,
2!'M fills in this field with the ph(sical memor( address of
an 2!&specific wake function. -uring '2!T, the platform
firmware checks if the value of this field is non&Hero and if so
transfers control to 2!'M 0( #umping to this address. 'rior to
transferring control, the e/ecution environment must 0e
configured as follows<
Memor( address translation F paging and interrupts must 0e
disa0led.
5or %A 32&0it platforms, a "$; flat address space for all
segment registers and .51A$!.%5 set to .
5or +"&0it %tanium
TM
&0ased platforms, the processor must have
psr.i, psr.it, psr.dt, and psr.rt set to . !ee the Intel? Itani'm
TM

Arc1itect're Software De2eloper@s (an'al for more
information.
%f this field is Hero then 2!'M checks the
5irmwareCWakingCDector field as outlined a0ove.
Dersion 4 32 4IDersion of this ta0le
3eserved 34 33 This value is Hero.
Ta!le A-+# 6ir%ware Control Structure 6eature 6lags
6ACS M 6lag
<it
Length
<it
3ffset 5escription
!";%2!C5 4 %ndicates whether the platform supports !";%2!C3.G. %f
!";%2!C3.G is not supported, 2!'M must 0e a0le to save
and restore the memor( state in order to use the !" state.
3eserved 34 4 The value is Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 484
6.2.10.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
482 Advanced Configuration and 'ower %nterface !pecification
Global Lock
The purpose of the AC'% $lo0al 1ock is to provide mutual e/clusion 0etween the host 2! and the 32M
;%2!. The $lo0al 1ock is a 32&0it =-W23-> value in readFwrite memor( located within the 5AC! and is
accessed and updated 0( 0oth the 2! environment and the !M% environment in a defined manner to
provide an e/clusive lock. Note< this is not a pointer to the $lo0al 1ock, it is the act'al memor( location
of the lock. The 5AC! and $lo0al 1ock ma( 0e located an(where in ph(sical memor(.
;( convention, this lock is used to ensure that while one environment is accessing some hardware, the
other environment is not. ;( this convention, when ownership of the lock fails 0ecause the other
environment owns it, the re:uesting environment sets a JpendingL state within the lock, e/its its attempt to
ac:uire the lock, and waits for the owning environment to signal that the lock has 0een released 0efore
attempting to ac:uire the lock again. When releasing the lock, if the pending 0it in the lock is set after the
lock is released, a signal is sent via an interrupt mechanism to the other environment to inform it that the
lock has 0een released. -uring interrupt handling for the Jlock releasedL event within the corresponding
environment, if the lock ownership were still desired an attempt to ac:uire the lock would 0e made. %f
ownership is not ac:uired, then the environment must again set JpendingL and wait for another Jlock
releaseL signal.
The ta0le 0elow shows the encoding of the $lo0al 1ock -W23- in memor(.
Ta!le A-+( ;lo!al Lock Structure within the 6ACS
6ield
<it
Length
<it
3ffset 5escription
'ending 4 Non&Hero indicates that a re:uest for ownership of the
$lo0al 1ock is pending.
2wned 4 4 Non&Hero indicates that the $lo0al 1ock is 2wned.
3eserved 3 2 3eserved for future use.
The following code se:uence is used 0( 0oth 2!'M and the firmware to ac:uire ownership of the $lo0al
1ock. %f non&Hero is returned 0( the function, the caller has 0een granted ownership of the $lo0al 1ock and
can proceed. %f Hero is returned 0( the function, the caller has not 0een granted ownership of the $lo0al
1ock, the JpendingL 0it has 0een set, and the caller must wait until it is signaled 0( an interrupt event that
the lock is availa0le 0efore attempting to ac:uire access again.
Note< %n the e/amples that follow, the J$lo0al1ockL varia0le is a pointer that has 0een previousl(
initialiHed to point to the 32&0it $lo0al 1ock location within the 5AC!.
&c8uire:lobal6oc+>
mov ec-$ :lobal6oc+ K ec- L &ddre22 of :lobal 6oc+ in 5&)S
ac84(> mov ea-$ Mec-N K :et current value of :lobal 6oc+
mov ed-$ ea-
and ed-$ not 4 K )lear pendin, bit
bt2 ed-$ 4 K )hec+ and 2et owner bit
adc ed-$ ( K #f owned$ 2et pendin, bit
loc+ cmp-ch, dword ptrMec-N$ ed- K &ttempt to 2et new value
9nC 2hort ac84( K #f not 2et$ tr1 a,ain
cmp dl$ F K Wa2 it ac8uired or mar+ed pendin,O
2bb ea-$ ea- K ac8uired L E4$ pendin, L (
ret
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 483
<he followin, code 2e8uence i2 u2ed b1 0SP; and the firmware to relea2e owner2hip of the
:lobal 6oc+. #f nonECero i2 returned$ the caller mu2t rai2e the appropriate event to the
other environment to 2i,nal that the :lobal 6oc+ i2 now free. Dependin, on the
environment$ thi2 2i,nalin, i2 done b1 2ettin, the either the :B6_R6S or B#0S_R6S within
their re2pective hardware re,i2ter 2pace2. <hi2 2i,nal onl1 occur2 when the other
environment attempted to ac8uire owner2hip while the loc+ wa2 owned.
Relea2e:lobal6oc+>
mov ec-$ :lobal6oc+ K ec- L &ddre22 of :lobal 6oc+ in 5&)S
rel4(> mov ea-$ Mec-N K :et current value of :lobal 6oc+
mov ed-$ ea-
and ed-$ not (Fh K )lear owner and pendin, field
loc+ cmp-ch, dword ptrMec-N$ ed- K &ttempt to 2et it
9nC 2hort rel4( K #f not 2et$ tr1 a,ain
and ea-$ 4 K Wa2 pendin, 2etO
K #f one i2 returned (we were pendin,) the caller mu2t 2i,nal that the
K loc+ ha2 been relea2ed u2in, either :B6_R6S or B#0S_R6S a2 appropriate
ret
Although using the $lo0al 1ock allows various hardware resources to 0e shared, it is important to notice
that its usage when there is ownership contention could entail a significant amount of s(stem overhead as
well as waits of an indeterminate amount of time to ac:uire ownership of the $lo0al 1ock. 5or this reason,
implementations should tr( to design the hardware to keep the re:uired usage of the $lo0al 1ock to a
minimum.
The $lo0al 1ock is re:uired whenever a logical register in the hardware is shared. 5or e/ample, if 0it is
used 0( AC'% =2!'M> and 0it 4 of the same register is used 0( !M%, then access to that register needs to 0e
protected under the $lo0al 1ock, ensuring that the registerMs contents do not change from underneath one
environment while the other is making changes to it. !imilarl( if the entire register is shared, as the case
might 0e for the em0edded controller interface, access to the register needs to 0e protected under the $lo0al
1ock.
6.2.11 Defnition Blocks
A -efinition ;lock consists of data in AM1 format =see section *." J-efinition ;lock .ncodingL> and
contains information a0out hardware implementation details in the form of AM1 o0#ects that contain data,
AM1 code, or other AM1 o0#ects. The top&level organiHation of this information after a definition 0lock is
loaded is name&tagged in a hierarchical namespace.
2!'M JloadsL or JunloadsL an entire definition 0lock as a logical unit. 2!'M will load a definition 0lock
either as a result of e/ecuting the AM1 Load>? or LoadTa!le>? operator or encountering a ta0le definition
during initialiHation. -uring initialiHation, 2!'M loads the -ifferentiated !(stem -escription Ta0le
=-!-T>, which contains the -ifferentiated -efinition ;lock, using the -!-T pointer retrieved from the
5A-T. 2!'M will load other definition 0locks during initialiHation as a result of encountering !econdar(
!(stem -escription Ta0le =!!-T> definitions in the 3!-TFA!-T. The -!-T and !!-T are descri0ed in
the following sections.
As mentioned, the AM1 Load>? and LoadTa!le>? operators make it possi0le for a -efinition ;lock to load
other -efinition ;locks, either staticall( or d(namicall(, where the( in turn can either define new s(stem
attri0utes or, in some cases, 0uild on prior definitions. Although this gives the hardware the a0ilit( to var(
widel( in implementation, it also confines it to reasona0le 0oundaries. %n some cases, the -efinition ;lock
format can descri0e onl( specific and well&understood variances. %n other cases, it permits implementations
to 0e e/pressi0le onl( 0( means of a specified set of J0uilt inL operators. 5or e/ample, the -efinition ;lock
has 0uilt in operators for %F2 space.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
48" Advanced Configuration and 'ower %nterface !pecification
%n theor(, it might 0e possi0le to define something like 'C% configuration space in a -efinition ;lock 0(
0uilding it from %F2 space, 0ut that is not the goal of the definition 0lock. !uch a space is usuall( defined as
a J0uilt inL operator.
!ome AM1 operators perform simple functions, and others encompass comple/ functions. The power of
the -efinition 0lock comes from its a0ilit( to allow these operations to 0e glued together in numerous
wa(s, to provide functionalit( to 2!'M.
The AM1 operators defined in this specification are intended to allow man( useful hardware designs to 0e
easil( e/pressed, not to allow all hardware designs to 0e e/pressed.
Note< To accommodate addressing 0e(ond 32 0its, the integer t(pe was e/panded to +" 0its in AC'% 2.,
see section 49.2.*, JA!1 -ata T(pesL. ./isting AC'% definition 0lock implementations ma( contain an
inherent assumption of a 32&0it integer width. Therefore, to maintain 0ackwards compati0ilit(, 2!'M uses
the 3evision field, in the header portion of s(stem description ta0les containing -efinition ;locks, to
determine whether integers declared within the -efinition ;lock are to 0e evaluated as 32&0it or +"&0it
values. A 3evision field value greater than or e:ual to 2 signifies that integers declared within the
-efinition ;lock are to 0e evaluated as +"&0it values. The A!1 writer specifies the value for the -efinition
;lock ta0le headerMs 3evision field via the A!1 -efinition;lockMs Compliance$e2ision field. !ee section
49.*.2+, J-efinition;lock =-eclare -efinition ;lock>L, for more information. %t is the responsi0ilit( of the
A!1 writer to ensure the -efinition ;lockMs compati0ilit( with the corresponding integer width when
setting the Compliance$e2ision field.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 48*
6.2.11.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
48+ Advanced Configuration and 'ower %nterface !pecification
Diferentiated System Description Table (DSDT)
The -ifferentiated !(stem -escription Ta0le =-!-T> is part of the s(stem fi/ed description. The -!-T is
comprised of a s(stem description ta0le header followed 0( data in -efinition ;lock format. This
-efinition ;lock is like all other -efinition ;locks, with the e/ception that it cannot 0e unloaded. !ee
section *.2.44, J-efinition ;locks,L for a description of -efinition ;locks.
Ta!le A-+A 5ifferentiated S)ste% 5escription Ta!le 6ields >5S5T?
6ield
<)te
Length
<)te
3ffset 5escription
@eader
!ignature " O-!-T.M !ignature for the -ifferentiated !(stem -escription
Ta0le.
1ength " " 1ength, in 0(tes, of the entire -!-T =including the header>.
3evision 4 8 2
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ The manufacture model %-.
2.M 3evision " 2" 2.M revision of -!-T for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- for the A!1 Compiler.
Creator 3evision " 32 3evision num0er of the A!1 Compiler.
-efinition ;lock n 3+ n 0(tes of AM1 code =see section *.", J-efinition ;lock
.ncodingL>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 489
6.2.11.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
488 Advanced Configuration and 'ower %nterface !pecification
Secondary System Description Table (SSDT)
!econdar( !(stem -escription Ta0les =!!-T> are a continuation of the -!-T. The !!-T is comprised of a
s(stem description ta0le header followed 0( data in -efinition ;lock format. There can 0e multiple !!-Ts
present. 2!'M first loads the -!-T and then loads each !!-T. This allows the 2.M to provide the 0ase
support in one ta0le and add smaller s(stem options in other ta0les. 5or e/ample, the 2.M might put
d(namic o0#ect definitions into a secondar( ta0le such that the firmware can construct the d(namic
information at 0oot without needing to edit the static -!-T. A !!-T can onl( rel( on the -!-T 0eing
loaded prior to it.
Ta!le A-+- Secondar) S)ste% 5escription Ta!le 6ields >SS5T?
6ield
<)te
Length
<)te
3ffset 5escription
@eader
!ignature " O!!-T.M !ignature for the !econdar( !(stem -escription Ta0le.
1ength " " 1ength, in 0(tes, of the entire !!-T =including the header>.
3evision 4 8 2
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ The manufacture model %-.
2.M 3evision " 2" 2.M revision of -!-T for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- for the A!1 Compiler.
Creator 3evision " 32 3evision num0er of the A!1 Compiler.
-efinition ;lock n 3+ n 0(tes of AM1 code =see section *." , J-efinition ;lock
.ncodingL>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 486
6.2.11.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
46 Advanced Configuration and 'ower %nterface !pecification
Persistent System Description Table (PSDT)
The ta0le signature, J'!-TL refers to the 'ersistent !(stem -escription Ta0le ='!-T> defined in the AC'%
4. specification. The '!-T was #udged to provide no specific 0enefit and as such has 0een deleted from
this version of the AC'% specification. 2!'M will evaluate a ta0le with the J'!-TL signature in like
manner to the evaluation of an !!-T as descri0ed in section *.2.44.2, J!econdar( !(stem -escription
Ta0le.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 464
6.2.11.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
462 Advanced Configuration and 'ower %nterface !pecification
Multiple APIC Description Table (MADT)
The AC'% interrupt model descri0es all interrupts for the entire s(stem in a uniform interrupt model
implementation. !upported interrupt models include the 'C&ATIcompati0le dual 82*6 interrupt controller
and, for %ntel processor&0ased s(stems, the %ntel Advanced 'rogramma0le %nterrupt Controller =A'%C> and
%ntel !treamlined Advanced 'rogramma0le %nterrupt Controller =!A'%C>. The choice of the interrupt
model=s> to support is up to the platform designer. The interrupt model cannot 0e d(namicall( changed 0(
the s(stem firmwareK 2!'M will choose which model to use and install support for that model at the time
of installation. %f a platform supports 0oth models, an 2! will install support for one model or the otherK it
will not mi/ models. Multi&0oot capa0ilit( is a feature in man( modern operating s(stems. This means that
a s(stem ma( have multiple operating s(stems or multiple instances of an 2! installed at an( one time.
'latform designers must allow for this.
This section descri0es the format of the Multiple A'%C -escription Ta0le =MA-T>, which provides 2!'M
with information necessar( for operation on s(stems with A'%C or !A'%C implementations.
AC'% represents all interrupts as JflatL values known as glo0al s(stem interrupts. Therefore to support
A'%Cs or !A'%Cs on an AC'%&ena0led s(stem, each used A'%C or !A'%C interrupt input must 0e mapped
to the glo0al s(stem interrupt value used 0( AC'%. !ee !ection *.2.42. $lo0al !(stem %nterrupts,L for a
description of $lo0al !(stem %nterrupts.
Additional support is re:uired to handle various multi&processor functions that A'%C or !A'%C
implementations might support =for e/ample, identif(ing each processorMs local A'%C %->.
All addresses in the MA-T are processor&relative ph(sical addresses.
Ta!le A-+. Multiple APIC 5escription Ta!le >MA5T? 6or%at
6ield
<)te
Length
<)te
3ffset 5escription
@eader
!ignature " OA'%C.M !ignature for the Multiple A'%C -escription Ta0le.
1ength " " 1ength, in 0(tes, of the entire MA-T.
3evision 4 8 2
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ 5or the MA-T, the ta0le %- is the manufacturer model %-.
2.M 3evision " 2" 2.M revision of MA-T for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the %- for the A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
1ocal A'%C
Address
" 3+ The 32&0it ph(sical address at which each processor can access
its local A'%C.
5lags " " Multiple A'%C flags. !ee Ta0le *&48 for a description of this
field.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 463
6ield
<)te
Length
<)te
3ffset 5escription
A'%C !tructureVnW P "" A list of A'%C structures for this implementation. This list will
contain all of the %F2 A'%C, %F2 !A'%C, 1ocal A'%C, 1ocal
!A'%C, %nterrupt !ource 2verride, Non&maska0le %nterrupt
!ource, 1ocal A'%C NM% !ource, 1ocal A'%C Address 2verride,
and 'latform %nterrupt !ources structures needed to support this
platform. These structures are descri0ed in the following sections.
Ta!le A-+/ Multiple APIC 6lags
Multiple APIC
6lags
<it
Length
<it
3ffset 5escription
'CATCC2M'AT 4 A one indicates that the s(stem also has a 'C&AT&compati0le
dual&82*6 setup. The 82*6 vectors must 0e disa0led =that is,
masked> when ena0ling the AC'% A'%C operation.
3eserved 34 4 This value is Hero.
%mmediatel( after the 5lags value in the MA-T is a list of A'%C structures that declare the A'%C features
of the machine. The first 0(te of each structure declares the t(pe of that structure and the second 0(te
declares the length of that structure.
Ta!le A-+, APIC Structure T)pes
7alue 5escription
'rocessor 1ocal A'%C
4 %F2 A'%C
2 %nterrupt !ource 2verride
3 Non&maska0le %nterrupt !ource =NM%>
" 1ocal A'%C NM% !tructure
* 1ocal A'%C Address 2verride !tructure
+ %F2 !A'%C
9 1ocal !A'%C
8 'latform %nterrupt !ources
6&429 3eserved. 2!'M skips structures of the reserved t(pe.
428&2** 3eserved for 2.M use
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
46" Advanced Configuration and 'ower %nterface !pecification
6.2.11.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 46*
Processor Local APIC
When using the A'%C interrupt model, each processor in the s(stem is re:uired to have a 'rocessor 1ocal
A'%C record and an AC'% 'rocessor o0#ect. 2!'M does not e/pect the information provided in this ta0le to
0e updated if the processor information changes during the lifespan of an 2! 0oot. While in the sleeping
state, processors are not allowed to 0e added, removed, nor can their A'%C %- or 5lags change. When a
processor is not present, the 'rocessor 1ocal A'%C information is either not reported or flagged as disa0led.
Ta!le A-&$ Processor Local APIC Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 'rocessor 1ocal A'%C structure
1ength 4 4 8
AC'% 'rocessor
%-
4 2 The 'rocessor%d for which this processor is listed in the AC'%
'rocessor declaration operator. 5or a definition of the 'rocessor
operator, see section 49.*.63, J'rocessor =-eclare 'rocessor>.L
A'%C %- 4 3 The processorMs local A'%C %-.
5lags " " 1ocal A'%C flags. !ee Ta0le *&24 for a description of this field.
Ta!le A-&+ Local APIC 6lags
LocalAPIC
6lags
<it
Length
<it
3ffset 5escription
.na0led 4 %f Hero, this processor is unusa0le, and the operating s(stem
support will not attempt to use it.
3eserved 34 4 Must 0e Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
46+ Advanced Configuration and 'ower %nterface !pecification
6.2.11.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 469
I/O APIC
%n an A'%C implementation, there are one or more %F2 A'%Cs. .ach %F2 A'%C has a series of interrupt
inputs, referred to as %NT%n, where the value of n is from to the num0er of the last interrupt input on the
%F2 A'%C. The %F2 A'%C structure declares which glo0al s(stem interrupts are uni:uel( associated with the
%F2 A'%C interrupt inputs. There is one %F2 A'%C structure for each %F2 A'%C in the s(stem. 5or more
information on glo0al s(stem interrupts see !ection *.2.42, J$lo0al !(stem %nterrupts.L
Ta!le A-&& I@3 APIC Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 4 %F2 A'%C structure
1ength 4 4 42
%F2 A'%C %- 4 2 The %F2 A'%CMs %-.
3eserved 4 3
%F2 A'%C Address " " The 32&0it ph(sical address to access this %F2 A'%C. .ach %F2
A'%C resides at a uni:ue address.
$lo0al !(stem
%nterrupt ;ase
" 8 The glo0al s(stem interrupt num0er where this %F2 A'%CMs
interrupt inputs start. The num0er of interrupt inputs is determined
0( the %F2 A'%CMs (ax $edir *ntry register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
468 Advanced Configuration and 'ower %nterface !pecification
6.2.11.7
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 466
Platforms with APIC and Dual 8259 Support
!(stems that support 0oth A'%C and dual 82*6 interrupt models must map glo0al s(stem interrupts &4* to
the 82*6 %3Gs &4*, e/cept where %nterrupt !ource 2verrides are provided =see section *.2.4.8, J%nterrupt
!ource 2verridesL>. This means that %F2 A'%C interrupt inputs &4* must 0e mapped to glo0al s(stem
interrupts &4* and have identical sources as the 82*6 %3Gs &4* unless overrides are used. This allows a
platform to support 2!'M implementations that use the A'%C model as well as 2!'M implementations
that use the 82*6 model =2!'M will onl( use one modelK it will not mi/ models>.
When 2!'M supports the 82*6 model, it will assume that all interrupt descriptors reporting glo0al s(stem
interrupts &4* correspond to 82*6 %3Gs. %n the 82*6 model all glo0al s(stem interrupts greater than 4* are
ignored. %f 2!'M implements A'%C support, it will ena0le the A'%C as descri0ed 0( the A'%C
specification and will use all reported glo0al s(stem interrupts that fall within the limits of the interrupt
inputs defined 0( the %F2 A'%C structures. 5or more information on hardware resource configuration see
section +, JConfiguration.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2 Advanced Configuration and 'ower %nterface !pecification
6.2.11.8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 24
Interrupt Source Overrides
%nterrupt !ource 2verrides are necessar( to descri0e variances 0etween the %A&'C standard dual 82*6
interrupt definition and the platformMs implementation.
%t is assumed that the %!A interrupts will 0e identit(&mapped into the first %F2 A'%C sources. Most e/isting
A'%C designs, however, will contain at least one e/ception to this assumption. The %nterrupt !ource
2verride !tructure is provided in order to descri0e these e/ceptions. %t is not necessar( to provide an
%nterrupt !ource 2verride for ever( %!A interrupt. 2nl( those that are not identit(&mapped onto the A'%C
interrupt inputs need 0e descri0ed.
0ote< This specification onl( supports overriding %!A interrupt sources.
5or e/ample, if (our machine has the %!A 'rogramma0le %nterrupt Timer ='%T> connected to %!A %3G ,
0ut in A'%C mode, it is connected to %F2 A'%C interrupt input 2, then (ou would need an %nterrupt !ource
2verride where the source entr( is OM and the $lo0al !(stem %nterrupt is O2.M
Ta!le A-&# Interrupt Source 3verride Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 2 %nterrupt !ource 2verride
1ength 4 4 4
;us 4 2 Constant, meaning %!A
!ource 4 3 ;us&relative interrupt source =%3G>
$lo0al !(stem
%nterrupt
" " The $lo0al !(stem %nterrupt that this 0us&relative interrupt source
will signal.
5lags 2 8 M'! %NT% flags. !ee Ta0le *&2" for a description of this field.
The M'! %NT% flags listed in Ta0le *&2" are identical to the flags used in Ta0le "&4 of the M'! version
4." specifications. The 'olarit( flags are the '2 0its and the Trigger Mode flags are the .1 0its.
Ta!le A-&( MPS I0TI 6lags
Local APIC -
6lags
<it
Length
<it
3ffset 5escription
'olarit( 2 'olarit( of the A'%C %F2 input signals<
Conforms to the specifications of the 0us
=5or e/ample, .%!A is active&low for level&triggered interrupts>
4 Active high
4 3eserved
44 Active low
Trigger Mode 2 2 Trigger mode of the A'%C %F2 %nput signals<
Conforms to specifications of the 0us
=5or e/ample, %!A is edge&triggered>
4 .dge&triggered
4 3eserved
44 1evel&triggered
3eserved 42 " Must 0e Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
22 Advanced Configuration and 'ower %nterface !pecification
%nterrupt !ource 2verrides are also necessar( when an identit( mapped interrupt input has a non&standard
polarit(.
0oteH Sou must have an interrupt source override entr( for the %3G mapped to the !C% interrupt if this %3G
is not identit( mapped. This entr( will override the value in !C%C%NT in 5A-T. 5or e/ample, if !C% is
connected to %3G 6 in '%C mode and %3G 6 is connected to %NT%N44 in A'%C mode, (ou should have 6 in
!C%C%NT in the 5A-T and an interrupt source override entr( mapping %3G 6 to %NT%N44.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 23
6.2.11.9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2" Advanced Configuration and 'ower %nterface !pecification
Non-Maskable Interrupt Sources (NMIs)
This structure allows a platform designer to specif( which %F2 =!>A'%C interrupt inputs should 0e ena0led
as non&maska0le. An( source that is non&maska0le will not 0e availa0le for use 0( devices.
Ta!le A-&A 0on-%aska!le Source Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 3 NM%
1ength 4 4 8
5lags 2 2 !ame as M'! %NT% flags
$lo0al !(stem
%nterrupt
" " The $lo0al !(stem %nterrupt that this NM% will signal.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2*
6.2.11.10
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2+ Advanced Configuration and 'ower %nterface !pecification
Local APIC NMI
This structure descri0es the 1ocal A'%C interrupt input =1%NTn> that NM% is connected to for each of the
processors in the s(stem where such a connection e/ists. This information is needed 0( 2!'M to ena0le
the appropriate local A'%C entr(.
.ach 1ocal A'%C NM% connection re:uires a separate 1ocal A'%C NM% structure. 5or e/ample, if the
platform has " processors with %- &3 and NM% is connected 1%NT4 for processor 3 and 2, two 1ocal A'%C
NM% entries would 0e needed in the MA-T.
Ta!le A-&- Local APIC 0MI Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 " 1ocal A'%C NM% !tructure
1ength 4 4 +
AC'% 'rocessor
%-
4 2 'rocessor %- corresponding to the %- listed in the processor
o0#ect. A value of /55 signifies that this applies to all processors
in the machine.
5lags 2 3 M'! %NT% flags. !ee Ta0le *&2" for a description of this field.
1ocal A'%C
1%NTY
4 * 1ocal A'%C interrupt input 1%NTn to which NM% is connected.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 29
6.2.11.11
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
28 Advanced Configuration and 'ower %nterface !pecification
Local APIC Address Override Structure
This optional structure supports +"&0it s(stems 0( providing an override of the ph(sical address of the local
A'%C in the MA-TMsta0le header, which is defined as a 32&0it field.
%f defined, 2!'M must use the address specified in this structure for all local A'%Cs =and local !A'%Cs>,
rather than the address contained in the MA-TMs ta0le header. 2nl( one 1ocal A'%C Address 2verride
!tructure ma( 0e defined.
Ta!le A-&. Local APIC Address 3verride Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 * 1ocal A'%C Address 2verride !tructure
1ength 4 4 42
3eserved 2 2 3eserved =must 0e set to Hero>
1ocal A'%C
Address
8 " 'h(sical address of 1ocal A'%C. 5or %tanium
TM
&0ased s(stems, this
field contains the starting address of the 'rocessor %nterrupt ;lock.
!ee the Intel? Itani'm
TM
Arc1itect're Software De2eloper@s
(an'al for more information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 26
6.2.11.12
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
24 Advanced Configuration and 'ower %nterface !pecification
I/O SAPIC Structure
The %F2 !A'%C structure is ver( similar to the %F2 A'%C structure. %f 0oth %F2 A'%C and %F2 !A'%C
structures e/ist for a specific A'%C %-, the information in the %F2 !A'%C structure must 0e used.
The %F2 !A'%C structure uses the %F2CA'%CC%- field as defined in the %F2 A'%C ta0le. The DectorC;ase
field remains unchanged 0ut has 0een moved. The %F2 A'%C address has 0een deleted. A new address and
reserved field have 0een added.
Ta!le A-&/ I@3 SAPIC Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 + %F2 !A'%C !tructure
1ength 4 4 4+
%F2 A'%C %- 4 2 %F2 !A'%C %-
3eserved 4 3 3eserved =must 0e Hero>
$lo0al !(stem
%nterrupt ;ase
" " The glo0al s(stem interrupt num0er where this %F2 !A'%CMs
interrupt inputs start. The num0er of interrupt inputs is determined
0( the %F2 !A'%CMs (ax $edir *ntry register.
%F2 !A'%C
Address
8 8 The +"&0it ph(sical address to access this %F2 !A'%C. .ach %F2
!A'%C resides at a uni:ue address.
%f defined, 2!'M must use the information contained in the %F2 !A'%C structure instead of the information
from the %F2 A'%C structure.
%f 0oth %F2 A'%C and an %F2 !A'%C structures e/ist in an MA-T, the 2.MF;%2! writer must prevent
Jmi/ingL %F2 A'%C and %F2 !A'%C addresses. This is done 0( ensuring that there are at least as man( %F2
!A'%C structures as %F2 A'%C structures and that ever( %F2 A'%C structure has a corresponding %F2 !A'%C
structure =same A'%C %->.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 244
6.2.11.13
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
242 Advanced Configuration and 'ower %nterface !pecification
Local SAPIC Structure
The 'rocessor local !A'%C structure is ver( similar to the processor local A'%C structure. When using the
!A'%C interrupt model, each processor in the s(stem is re:uired to have a 'rocessor 1ocal !A'%C record
and an AC'% 'rocessor o0#ect. 2!'M does not e/pect the information provided in this ta0le to 0e updated
if the processor information changes during the lifespan of an 2! 0oot. While in the sleeping state,
processors are not allowed to 0e added, removed, nor can their !A'%C %- or 5lags change. When a
processor is not present, the 'rocessor 1ocal !A'%C information is either not reported or flagged as
disa0led.
Ta!le A-&, Processor Local SAPIC Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 9 'rocessor 1ocal !A'%C structure
1ength 4 4 1ength of the 1ocal !A'%C !tructure in 0(tes.
AC'% 'rocessor
%-
4 2 2!'M associates the 1ocal !A'%C !tructure with a processor
o0#ect declared in the namespace using the Processor statement 0(
matching the processor o0#ectMs 'rocessor%- value with this field.
5or a definition of the 'rocessor o0#ect, see section 49.*.63,
J'rocessor =-eclare 'rocessor>.L
1ocal !A'%C %- 4 3 The processorMs local !A'%C %-
1ocal !A'%C
.%-
4 " The processorMs local !A'%C .%-
3eserved 3 * 3eserved =must 0e set to Hero>
5lags " 8 1ocal !A'%C flags. !ee Ta0le *&24 for a description of this field.
AC'% 'rocessor
,%- Dalue
" 42
2!'M associates the 1ocal !A'%C !tructure with a processor
o0#ect declared in the namespace using the 5evice statement, when
the C,%- child o0#ect of the processor device evaluates to a
numeric value, 0( matching the numeric value with this field.
AC'% 'rocessor
,%- !tring
)\4 4+
2!'M associates the 1ocal !A'%C !tructure with a processor
o0#ect declared in the namespace using the 5evice statement, when
the C,%- child o0#ect of the processor device evaluates to a string,
0( matching the string with this field. This value is stored as a null&
terminated A!C%% string.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 243
6.2.11.14
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
24" Advanced Configuration and 'ower %nterface !pecification
Platform Interrupt Source Structure
The 'latform %nterrupt !ource structure is used to communicate which %F2 !A'%C interrupt inputs are
connected to the platform interrupt sources.
'latform Management %nterrupts ='M%s> are used to invoke platform firmware to handle various events
=similar to !M% in %A&32>. The %ntel] %tanium
TM
architecture permits the %F2 !A'%C to send a vector value
in the interrupt message of the 'M% t(pe. This value is specified in the %F2 !A'%C Dector field of the
'latform %nterrupt !ources !tructure.
%N%T messages cause processors to soft reset.
%f a platform can generate an interrupt after correcting platform errors =e.g., single 0it error correction>, the
interrupt input line used to signal such corrected errors is specified 0( the $lo0al !(stem %nterrupt field in
the following ta0le. !ome s(stems ma( restrict the retrieval of corrected platform error information to a
specific processor. %n such cases, the firmware indicates the processor that can retrieve the corrected
platform error information through the 'rocessor %- and .%- fields in the structure 0elow. 2!'M is
re:uired to program the %F2 !A'%C redirection ta0le entries with the 'rocessor %-, .%- values specified 0(
the AC'% s(stem firmware. 2n platforms where the retrieval of corrected platform error information can 0e
performed on an( processor, the firmware indicates this capa0ilit( 0( setting the C'.% 'rocessor 2verride
flag in the 'latform %nterrupt !ource 5lags field of the structure 0elow. %f the C'.% 'rocessor 2verride 5lag
is set, 2!'M uses the processor specified 0( 'rocessor %-, and .%- fields of the structure 0elow onl( as a
target processor hint and the error retrieval can 0e performed on an( processor in the s(stem. @owever,
firmware is re:uired to specif( valid values in 'rocessor %-, .%- fields to ensure 0ackward compati0ilit(.
%f the C'.% 'rocessor 2verride flag is clear, 2!'M ma( re#ect a e#ection re:uest for the processor that is
targeted for the corrected platform error interrupt. %f the C'.% 'rocessor 2verride flag is set, 2!'M can
retarget the corrected platform error interrupt to a different processor when the target processor is e#ected.
Note that the CMAT o0#ect can return a 0uffer containing 'latform %nterrupt !ource !tructure entries. %t is
allowed for such an entr( to refer to a $lo0al !(stem %nterrupt that is alread( specified 0( a 'latform
%nterrupt !ource !tructure provided through the static MA-T ta0le, provided the value of platform
interrupt source flags are identical.
3efer to the %tanium
TM
'rocessor 5amil( !(stem A0straction 1a(er =!A1> !pecification for details on
handling the Corrected 'latform .rror %nterrupt.
Ta!le A-#$ Platfor% Interrupt Sources Structure
6ield
<)te
Length
<)te
3ffset 5escription
T(pe 4 8 'latform %nterrupt !ource structure
1ength 4 4 4+
5lags 2 2 M'! %NT% flags. !ee Ta0le *&2" for a description of this field.
%nterrupt T(pe 4 " 4 'M%
2 %N%T
3 Corrected 'latform .rror %nterrupt
All other values are reserved.
'rocessor %- 4 * 'rocessor %- of destination.
'rocessor .%- 4 + 'rocessor .%- of destination.
%F2 !A'%C
Dector
4 9 Dalue that 2!'M must use to program the vector field of the %F2
!A'%C redirection ta0le entr( for entries with the 'M% interrupt
t(pe.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 24*
6ield <)te
Length
<)te
3ffset 5escription
$lo0al !(stem
%nterrupt
" 8 The $lo0al !(stem %nterrupt that this platform interrupt will signal.
'latform
%nterrupt !ource
5lags
" 42 'latform %nterrupt !ource 5lags. !ee Ta0le *&34 for a description of
this field
Ta!le A-#+ Platfor% Interrupt Source 6lags
Platfor%
Interrupt Source
6lags
<it
Length
<it
3ffset 5escription
C'.% 'rocessor
2verride
4 When set, indicates that retrieval of error information is allowed
from an( processor and 2!'M is to use the information provided
0( the processor %-, .%- fields of the 'latform %nterrupt !ource
!tructure =Ta0le *&3> as a target processor hint.
3eserved 34 4 Must 0e Hero.
%NT%C $
.
.
.
23 %NT%C23
2" %NT%C &(
.
.
.
36 %NT%C4*

" %NT%C ($
.
*4 %NT%C44
.
** %NT%C23
2" input
%2A'%C
4+ input
%2A'%C
2" input
%2A'%C
$lo0al !(stem %nterrupt Dector
=ie AC'% 'n' %3GY >
%nterrupt %nput 1ines
on %2A'%C
O!(stem Dector ;aseM
reported in %2A'%C !truc
6igure A-# APICM;lo!al S)ste% Interrupts
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
24+ Advanced Configuration and 'ower %nterface !pecification
6.2.12 Global System Interrupts
$lo0al !(stem %nterrupts can 0e thought of as AC'% 'lug and 'la( %3G num0ers. The( are used to
virtualiHe interrupts in ta0les and in A!1 methods that perform resource allocation of interrupts. -o not
confuse glo0al s(stem interrupts with %!A %3Gs although in the case of the %A&'C 82*6 interrupts the(
correspond in a one&to&one fashion.
There are two interrupt models used in AC'%&ena0led s(stems.
The first model is the A'%C model. %n the A'%C model, the num0er of interrupt inputs supported 0( each
%F2 A'%C can var(. 2!'M determines the mapping of the $lo0al !(stem %nterrupts 0( determining how
man( interrupt inputs each %F2 A'%C supports and 0( determining the glo0al s(stem interrupt 0ase for each
%F2 A'%C as specified 0( the %F2 A'%C !tructure. 2!'M determines the num0er of interrupt inputs 0(
reading the Ma/ 3edirection register from the %F2 A'%C. The glo0al s(stem interrupts mapped to that %F2
A'%C 0egin at the glo0al s(stem interrupt 0ase and e/tending through the num0er of interrupts specified in
the Ma/ 3edirection register. This mapping is depicted in 5igure *&3.
There is e/actl( one %F2 A'%C structure per %F2 A'%C in the s(stem.
%3G
.
%3G3
.
%3G9
%38
.
%3G44
.
%3G4*
82*6 %!A %3Gs $lo0al !(stem %nterrupt Dector
=ie AC'% 'n' %3GY >
Master
82*6
!lave
82*6

8
4*
9
6igure A-( /&A,M;lo!al S)ste% Interrupts
The other interrupt model is the standard AT st(le mentioned a0ove which uses %!A %3Gs attached to a
master slave pair of 82*6 '%Cs. The s(stem vectors correspond to the %!A %3Gs. The %!A %3Gs and their
mappings to the 82*6 pair are part of the AT standard and are well defined. This mapping is depicted in
5igure *&".
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 249
6.2.13 Smart Battery Table (SBST)
%f the platform supports 0atteries as defined 0( the !mart ;atter( !pecification 4. or 4.4, then an !mart
;atter( Ta0le =!;!T> is present. This ta0le indicates the energ( level trip points that the platform re:uires
for placing the s(stem into the specified sleeping state and the suggested energ( levels for warning the user
to transition the platform into a sleeping state. Notice that while !mart ;atteries can report either in current
=mAFmAh> or in energ( =mWFmWh>, 2!'M must set them to operate in energ( =mWFmWh> mode so that
the energ( levels specified in the !;!T can 0e used. 2!'M uses these ta0les with the capa0ilities of the
0atteries to determine the different trip points. 5or more precise definitions of these levels, see section
3.6.3, J;atter( $as $auge.L
Ta!le A-#& S%art <atter) 5escription Ta!le >S<ST? 6or%at
6ield
<)te
Length
<)te
3ffset 5escription
@eader
!ignature " O!;!T.M !ignature for the !mart ;atter( -escription Ta0le.
1ength " " 1ength, in 0(tes, of the entire !;!T
3evision 4 8 4
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ 5or the !;!T, the ta0le %- is the manufacturer model %-.
2.M 3evision " 2" 2.M revision of !;!T for supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the %- for the A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
Warning .nerg(
1evel
" 3+ 2.M suggested energ( level in milliWatt&hours =mWh> at which
2!'M warns the user.
1ow .nerg( 1evel " " 2.M suggested platform energ( level in mWh at which 2!'M
will transition the s(stem to a sleeping state.
Critical .nerg(
1evel
" "" 2.M suggested platform energ( level in mWh at which 2!'M
performs an emergenc( shutdown.
6.2.14 Embedded Controller Boot Resources Table (ECDT)
This optional ta0le provides the processor&relative, translated resources of an .m0edded Controller. The
presence of this ta0le allows 2!'M to provide .m0edded Controller operation region space access 0efore
the namespace has 0een evaluated. %f this ta0le is not provided, the .m0edded Controller region space will
not 0e availa0le until the .m0edded Controller device in the AM1 namespace has 0een discovered and
enumerated. The availa0ilit( of the region space can 0e detected 0( providing a C3.$ method o0#ect
underneath the .m0edded Controller device.
Ta!le A-## 1%!edded Controller <oot "esources Ta!le 6or%at
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
248 Advanced Configuration and 'ower %nterface !pecification
6ield <)te
Length
<)te
3ffset 5escription
@eader
!ignature " O.C-T.M !ignature for the .m0edded Controller Ta0le.
1ength " " 1ength, in 0(tes, of the entire .m0edded Controller Ta0le
3evision 4 8 4
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-
2.M Ta0le %- 8 4+ 5or the .m0edded Controller Ta0le, the ta0le %- is the
manufacturer model %-.
2.M 3evision " 2" 2.M revision of .m0edded Controller Ta0le for supplied 2.M
Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the %- for the A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or ta0les containing
-efinition ;locks, this is the revision for the A!1 Compiler.
.CCC2NT321 42 3+ Contains the processor relative address, represented in $eneric
Address !tructure format, of the .m0edded Controller
CommandF!tatus register.
0ote< 2nl( !(stem %F2 space and !(stem Memor( space are
valid for values for AddressC!paceC%-.
.CC-ATA 42 "8 Contains the processor&relative address, represented in $eneric
Address !tructure format, of the .m0edded Controller -ata
register.
0ote< 2nl( !(stem %F2 space and !(stem Memor( space are
valid for values for AddressC!paceC%-.
,%- " + ,ni:ue %-I!ame as the value returned 0( the C,%- under the
device in the namespace that represents this em0edded
controller.
$'.C;%T 4 +" The 0it assignment of the !C% interrupt within the $'./C!T!
register of a $'. 0lock descri0ed in the 5A-T that the
em0edded controller triggers.
.CC%- Daria0le +* A!C%%, null terminated, string that contains a full( :ualified
reference to the name space o0#ect that is this em0edded
controller device =for e/ample, JBBC!;.'C%.%!A..CL>. Guotes
are omitted in the data field.
AC'% 2!'M implementations supporting .m0edded Controller devices must also support the .C-T. AC'%
4. 2!'M implementation will not recogniHe or make use of the .C-T. The following e/ample code
shows how to detect whether the .m0edded Controller operation regions are availa0le in a manner that is
0ackward compati0le with prior versions of AC'%F2!'M.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 246
Device(%)()
!ame(R%:)$0ne2)
;ethod(_R%:$3)
#f(6e8ual(&r,($ F))
Store(&r,4$ R%:))
/
/
/
;ethod(%)&@$()
#f(6e8ual(R%:)$0ne2))
#f(6,reater%8ual(_R%@$3))
Return(0ne)
/
%l2e
Return(7ero)
/
Return(R%:))
/
/
To detect the availa0ilit( of the region, call the .CAD method. 5or e/ample<
#f (\_SB.P)#(.%)(.%)&@())
...re,ion2 are available...
/
el2e
...re,ion2 are not available...
/
6.2.15 System Resource Afnity Table (SRAT)
This optional ta0le provides information that allows 2!'M to associate processors and memor( ranges,
including ranges of memor( provided 0( hot&added memor( devices, with s(stem localities F pro/imit(
domains. 2n N,MA platforms, !3AT information ena0les 2!'M to optimall( configure the operating
s(stem during a point in 2! initialiHation when evaluation of o0#ects in the AC'% Namespace is not (et
possi0le. 2!'M evaluates the !3AT onl( during 2! initialiHation.
Ta!le A-#( Static "esource Affinit) Ta!le 6or%at
6ield <)te
Length
<)te
3ffset
5escription
@eader
!ignature " O!3ATM. !ignature for the !(stem 3esource Affinit( Ta0le.
1ength " " 1ength, in 0(tes, of the entire !3AT. The length implies the
num0er of .ntr( fields at the end of the ta0le
3evision 4 8 2
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-.
2.M Ta0le %- 8 4+ 5or the !(stem 3esource Affinit( Ta0le, the ta0le %- is the
manufacturer model %-.
2.M 3evision " 2" 2.M revision of !(stem 3esource Affinit( Ta0le for supplied
2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le.
Creator 3evision " 32 3evision of utilit( that created the ta0le.
3eserved " 3+ 3eserved to 0e 4 for 0ackward compati0ilit(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
22 Advanced Configuration and 'ower %nterface !pecification
6ield <)te
Length
<)te
3ffset
5escription
3eserved 8 " 3eserved
!tatic 3esource
Allocation
!tructureVnW
&&& "8 A list of static resource allocation structures for the platform. !ee
section *.2.4*.4,L'rocessor 1ocal A'%CF!A'%C Affinit(
!tructureL and section *.2.4*.2 Memor( Affinit( !tructureL.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 224
6.2.15.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
222 Advanced Configuration and 'ower %nterface !pecification
Processor Local APIC/SAPIC Afnity Structure
The 'rocessor 1ocal A'%CF!A'%C Affinit( structure provides the association 0etween the A'%C %- or
!A'%C %-F.%- of a processor and the pro/imit( domain to which the processor 0elongs. Ta0le *&3*
provides the details of the 'rocessor 1ocal A'%CF!A'%C Affinit( structure.
Ta!le A-#A Processor Local APIC@SAPIC Affinit) Structure
6ield <)te
Length
<)te
3ffset
5escription
T(pe 4 'rocessor 1ocal A'%CF!A'%C Affinit( !tructure
1ength 4 4 4+
'ro/imit( -omain
V9<W
4 2 ;itV9<W of the pro/imit( domain to which the processor 0elongs.
A'%C %- 4 3 The processor local A'%C %-.
5lags " " 5lags I 'rocessor 1ocal A'%CF!A'%C Affinit( !tructure. !ee
Ta0le *&3+ for a description of this field.
1ocal !A'%C .%- 4 8 The processor local !A'%C .%-.
'ro/imit( -omain
V34<8W
3 6 ;itV34<8W of the pro/imit( domain to which the processor 0elongs.
3eserved " 42 3eserved
Ta!le A-#- 6lags M Processor Local APIC@SAPIC Affinit) Structure
6ield <it
Length
<it
3ffset
5escription
.na0led 4 %f clear, the 2!'M ignores the contents of the 'rocessor 1ocal
A'%CF!A'%C Affinit( !tructure. This allows s(stem firmware to
populate the !3AT with a static num0er of structures 0ut onl(
ena0le them as necessar(.
3eserved 34 4 Must 0e Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 223
6.2.15.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
22" Advanced Configuration and 'ower %nterface !pecification
Memory Afnity Structure
The Memor( Affinit( structure provides the following topolog( information staticall( to the operating
s(stem<
The association 0etween a range of memor( and the pro/imit( domain to which it 0elongs
%nformation a0out whether the range of memor( can 0e hot&plugged.
Ta0le *&39 provides the details of the Memor( Affinit( structure.
Ta!le A-#. Me%or) Affinit) Structure
6ield <)te
Length
<)te
3ffset
5escription
T(pe 4 4 Memor( Affinit( !tructure
1ength 4 4 "
'ro/imit( -omain " 2 %nteger that represents the pro/imit( domain to which the
processor 0elongs
3eserved 2 + 3eserved
;ase Address 1ow " 8 1ow 32 ;its of the ;ase Address of the memor( range
;ase Address @igh " 42 @igh 32 ;its of the ;ase Address of the memor( range
1ength 1ow " 4+ 1ow 32 ;its of the length of the memor( range.
1ength @igh " 2 @igh 32 ;its of the length of the memor( range.
3eserved " 2" 3eserved.
5lags " 28 5lags I Memor( Affinit( !tructure. %ndicates whether the region
of memor( is ena0led and can 0e hot plugged. -etails in !ee
Ta0le *&38.
3eserved 8 32 3eserved.
Ta!le A-#/ 6lags M Me%or) Affinit) Structure
6ield <it
Length
<it
3ffset
5escription
.na0led 4 %f clear, the 2!'M ignores the contents of the Memor( Affinit(
!tructure. This allows s(stem firmware to populate the !3AT with
a static num0er of structures 0ut onl( ena0le then as necessar(.
@ot 'lugga0le
*
4 4 The information conve(ed 0( this 0it depends on the value of the
.na0led 0it.
%f the .na0led 0it is set and the @ot 'lugga0le 0it is also set. The
s(stem hardware supports hot&add and hot&remove of this memor(
region
%f the .na0led 0it is set and the @ot 'lugga0le 0it is clear, the
s(stem hardware does not support hot&add or hot&remove of this
memor( region.
%f the .na0led 0it is clear, the 2!'M will ignore the contents of
the Memor( Affinit( !tructure
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 22*
6ield <it
Length
<it
3ffset
5escription
NonDolatile 4 2 %f set, the memor( region represents Non&Dolatile memor(
3eserved 26 3 Must 0e Hero.
6.2.16 System Locality Distance Information Table (SLIT)
This optional ta0le provides a matri/ that descri0es the relative distance =memor( latenc(> 0etween all
!(stem 1ocalities, which are also referred to as 'ro/imit( -omains. !(stems emplo(ing a Non ,niform
Memor( Access =N,MA> architecture contain collections of hardware resources including for e/ample,
processors, memor(, and %F2 0uses, that comprise what is known as a JN,MA nodeL. 'rocessor accesses
to memor( or %F2 resources within the local N,MA node is generall( faster than processor accesses to
memor( or %F2 resources outside of the local N,MA node.
The value of each .ntr(Vi,:W in the !1%T ta0le, where i represents a row of a matri/ and : represents a
column of a matri/, indicates the relative distances from !(stem 1ocalit( F 'ro/imit( -omain i to ever(
other !(stem 1ocalit( : in the s(stem =including itself>.
The i,: row and column values correlate to the value returned 0( the C'AM o0#ect in the AC'% namespace.
!ee section +.2.42, JC'AM ='ro/imit(>L for more information.
The entr( value is a one&0(te unsigned integer. The relative distance from !(stem 1ocalit( i to !(stem
1ocalit( : is the iD; E : entr( in the matri/, where N is the num0er of !(stem 1ocalities. ./cept for the
relative distance from a !(stem 1ocalit( to itself, each relative distance is stored twice in the matri/. This
provides the capa0ilit( to descri0e the scenario where the relative distances for the two directions 0etween
!(stem 1ocalities is different.
The diagonal elements of the matri/, the relative distances from a !(stem 1ocalit( to itself are normaliHed
to a value of 4. The relative distances for the non&diagonal elements are scaled to 0e relative to 4. 5or
e/ample, if the relative distance from !(stem 1ocalit( i to !(stem 1ocalit( : is 2.", a value of 2" is stored
in ta0le entr( iD;E : and in :D;E i, where N is the num0er of !(stem 1ocalities.
%f one localit( is unreacha0le from another, a value of 2** =/55> is stored in that ta0le entr(. -istance
values of &6 are reserved and have no meaning.
Ta!le A-#, SLIT 6or%at
6ield <)te
Length
<)te
3ffset
5escription
@eader
!ignature " O!1%TM. !ignature for the !(stem 1ocalit( -istance
%nformation Ta0le.
1ength " " 1ength, in 0(tes, of the entire !(stem 1ocalit( -istance
%nformation Ta0le.
3evision 4 8 4
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-.
2.M Ta0le %- 8 4+ 5or the !(stem 1ocalit( %nformation Ta0le, the ta0le %- is the
manufacturer model %-.
*
2n /8+&0ased platforms, the 2!'M uses the @ot 'lugga0le 0it to determine whether it should shift into
'A. mode to allow for insertion of hot&plug memor( with ph(sical addresses over " $;.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
22+ Advanced Configuration and 'ower %nterface !pecification
6ield <)te
Length
<)te
3ffset
5escription
2.M 3evision " 2" 2.M revision of !(stem 1ocalit( %nformation Ta0le for
supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or the -!-T,
3!-T, !!-T, and '!-T ta0les, this is the %- for the A!1
Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or the -!-T,
3!-T, !!-T, and '!-T ta0les, this is the revision for the
A!1 Compiler.
Num0er of !(stem
1ocalities
8 3+ %ndicates the num0er of !(stem 1ocalities in the s(stem.
.ntr(VWVW 4 "" Matri/ entr( =,>, contains a value of 4.
N
.ntr(VWVNum0er of
!(stem 1ocalities&4W
4 Matri/ entr( =, Num0er of !(stem 1ocalities&4>
.ntr(V4WVW 4 Matri/ entr( =4,>
NN NN
.ntr(VNum0er of
!(stem 1ocalities&4W
VNum0er of !(stem
1ocalities&4W
4 Matri/ entr( =Num0er of !(stem 1ocalities&4, Num0er of
!(stem 1ocalities&4>, contains a value of 4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 229
6.3 ACPI Namespace
5or all -efinition ;locks, the s(stem maintains a single hierarchical namespace that it uses to refer to
o0#ects. All -efinition ;locks load into the same namespace. Although this allows one -efinition ;lock to
reference o0#ects and data from another =thus ena0ling interaction>, it also means that 2.Ms must take care
to avoid an( naming collisions
+
. 2nl( an unload operation of a -efinition ;lock can remove names from
the namespace, so a name collision in an attempt to load a -efinition ;lock is considered fatal. The
contents of the namespace changes onl( on a load or unload operation.
The namespace is hierarchical in nature, with each name allowing a collection of names J0elowL it. The
following naming conventions appl( to all names<
All names are a fi/ed 32 0its.
The first 0(te of a name is inclusive of< OAMIO?M, OCM, =/"4I/*A, /*5>.
The remaining three 0(tes of a name are inclusive of< OAMIO?M, OMIO6M, OCM, =/"4I/*A, /3I
/36, /*5>.
;( convention, when an A!1 compiler pads a name shorter than " characters, it is done so with
trailing underscores =OCM>. !ee the language definition for AM1 Name!eg in !ection 4+, JAC'%
!ource 1anguage 3eference.L
Names 0eginning with OCM are reserved 0( this specification. -efinition ;locks can onl( use names
0eginning with OCM as defined 0( this specification.
A name proceeded with OBM causes the name to refer to the root of the namespace =OBM is not part of
the 32&0it fi/ed&length name>.
A name proceeded with O^M causes the name to refer to the parent of the current namespace =O^M is
not part of the 32&0it fi/ed&length name>.
./cept for names preceded with a OBM, the current namespace determines where in the namespace hierarch(
a name 0eing created goes and where a name 0eing referenced is found. A name is located 0( finding the
matching name in the current namespace, and then in the parent namespace. %f the parent namespace does
not contain the name, the search continues recursivel( upwards until either the name is found or the
namespace does not have a parent =the root of the namespace>. This indicates that the name is not found
9
.
An attempt to access names in the parent of the root will result in the name not 0eing found.
There are two t(pes of namespace paths< an a0solute namespace path =that is, one that starts with a OBM
prefi/>, and a relative namespace path =that is, one that is relative to the current namespace>. The
namespace search rules discussed a0ove, onl( appl( to single Name!eg paths, which is a relative
namespace path. 5or those relative name paths that contain multiple Name!egs or 'arent 'refi/es, O^M, the
search rules do not appl(. %f the search rules do not appl( to a relative namespace path, the namespace
o0#ect is looked up relative to the current namespace. 5or e/ample<
ABCD FFsearch rules appl(
^ABCD FFsearch rules do not appl(
XYZ.ABCD FFsearch rules do not appl(
\XYZ.ABCD FFsearch rules do not appl(
+
5or the most part, since the name space is hierarchical, t(picall( the 0ulk of a d(namic definition file will
load into a different part of the hierarch(. The root of the name space and certain locations where
interaction is 0eing designed are the areas in which e/tra care must 0e taken.
9
,nless the operation 0eing performed is e/plicitl( prepared for failure in name resolution, this is
considered an error and ma( cause the s(stem to stop working.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
228 Advanced Configuration and 'ower %nterface !pecification
All name references use a 32&0it fi/ed&length name or use a Name ./tension prefi/ to concatenate multiple
32&0it fi/ed&length name components together. This is useful for referring to the name of an o0#ect, such as
a control method, that is not in the scope of the current namespace.
The figure 0elow shows a sample of the AC'% namespace after a -ifferentiated -efinition ;lock has 0een
loaded.
P
$
d
d
Root
G%PR
CP*1
GPI'1
%STA
%O&
%O..
G%SB
PCI1
%7I'
%CRS
I'$1
%A'R
%PR1
G%5P$
%-1!
%$1"
%-1(
H Processor Tree
H Processor 1 o0Iect
H Power resource for I'$1
H Method to return status of power resourse
H Method to turn on power resourse
H Method to turn off power resourse
H S,stem 0us tree
H PCI 0us
H 'e9ice I'
H Current resources )PCI 0us num0er+
H I'$1 de9ice
H PCI de9ice 83 function 8
H Power resource reJuirements for '1
H 5eneral purpose e9ents )5P%STS+
H Method to handle le9el 5P%STS4!
H Method to handle edge 5P%STS4"
H Method to handle le9el 5P%STS4(
P
$
d
Pac:age
Processor O0Iect
Power Resource
O0Iect
Bus/'e9ice O0Iect
'ata O0Iect
Control Method )AM- code+
#e,
6igure A-A 1xa%ple ACPI 0a%eSpace
Care must 0e taken when accessing namespace o0#ects using a relative single segment name 0ecause of the
namespace search rules. An attempt to access a relative o0#ect recurses toward the root until the o0#ect is
found or the root is encountered. This can cause unintentional results. 5or e/ample, using the namespace
descri0ed in 5igure *.*, attempting to access a CC3! named o0#ect from within the BC!;C.'C%.%-. will
have different results depending on if an a0solute or relative path name is used. %f an a0solute pathname is
specified =BC!;C.'C%.%-..CC3!> an error will result since the o0#ect does not e/ist. Access using a
single segment name =CC3!> will actuall( access the BC!;C.'C%.CC3! o0#ect. Notice that the access will
occur successfull( with no errors.
6.3.1 Predefned Root Namespaces
The following namespaces are defined under the namespace root.
Ta!le A-($ 0a%espaces 5efined 2nder the 0a%espace "oot
0a%e 5escription
GD;P1 $eneral events in $'. register 0lock.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 226
0a%e 5escription
GDP" AC'% 4. 'rocessor Namespace. AC'% 4. re:uires all 'rocessor o0#ects to 0e defined
under this namespace. AC'% allows 'rocessor o0#ect definitions under the BC!;
namespace. 'latforms ma( maintain the BC'3 namespace for compati0ilit( with AC'% 4.
operating s(stems. An AC'%&compati0le namespace ma( define 'rocessor o0#ects in either
the BC!; or BC'3 scope 0ut not 0oth.
5or more information a0out defining 'rocessor o0#ects, see section 8, J'rocessor 'ower
and 'erformance !tate Configuration and Control.L
GDS< All -eviceF;us 20#ects are defined under this namespace.
GDSI !(stem indicator o0#ects are defined under this namespace. 5or more information a0out
defining s(stem indicators, see section 6.4, BC!4 !(stem %ndicators.L
GDTI AC'% 4. Thermal ?one namespace. AC'% 4. re:uires all Thermal ?one o0#ects to 0e
defined under this namespace. Thermal ?one o0#ect definitions ma( now 0e defined under
the BC!; namespace. AC'%&compati0le s(stems ma( maintain the BCT? namespace for
compati0ilit( with AC'% 4. operating s(stems. An AC'%&compati0le namespace ma(
define Thermal ?one o0#ects in either the BC!; or BCT? scope 0ut not 0oth.
5or more information a0out defining Thermal ?one o0#ects, see section 44, JThermal
Management.L
6.3.2 Objects
All o0#ects, e/cept locals, have a glo0al scope. 1ocal data o0#ects have a per&invocation scope and lifetime
and are used to process the current invocation from 0eginning to end.
The contents of o0#ects var( greatl(. Nevertheless, most o0#ects refer to data varia0les of an( supported
data t(pe, a control method, or s(stem software&provided functions.
6.4 Defnition Block Encoding
This section specifies the encoding used in a -efinition ;lock to define names =load time onl(>, o0#ects,
and packages. The -efinition ;lock is encoded as a stream from 0eginning to end. The lead 0(te in the
stream comes from the AM1 encoding ta0les shown in section 49, JAC'% !ource 1anguage =A!1>
3eference,L and signifies how to interpret some num0er of following 0(tes, where each following 0(te can
in turn signif( how to interpret some num0er of following 0(tes. 5or a full specification of the AM1
encoding, see section 49, JAC'% !ource 1anguage =A!1> 3eference.L
Within the stream there are two levels of data 0eing defined. 2ne is the packaging and o0#ect declarations
=load time>, and the other is an o0#ect reference =package contentsFrun&time>.
All encodings are such that the lead 0(te of an encoding signifies the t(pe of declaration or reference 0eing
made. The t(pe either has an implicit or e/plicit length in the stream. All e/plicit length declarations take
the form shown 0elow, where P3g,engt1 is the length of the inclusive length of the data for the operation.
+ea"Byte P/g+ength data444 +ea"Byte ...
Pkg#ength
6igure A-- AML 1ncoding
.ncodings of implicit length o0#ects either have fi/ed length encodings or allow for nested encodings that,
at some point, either result in an e/plicit or implicit fi/ed length.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
23 Advanced Configuration and 'ower %nterface !pecification
The P3g,engt1 is encoded as a series of 4 to " 0(tes in the stream with the most significant two 0its of 0(te
Hero, indicating how man( following 0(tes are in the P3g,engt1 encoding. The ne/t two 0its are onl( used
in one&0(te encodings, which allows for one&0(te encodings on a length up to /35. 1onger encodings,
which do not use these two 0its, have a ma/imum length of the following< two&0(te encodings of /555,
three&0(te encodings of /55555, and four&0(te length encodings of /555555555.
%t is fatal for a package length to not fall on a logical 0oundar(. 5or e/ample, if a package is contained in
another package, then 0( definition its length must 0e contained within the outer package, and similarl( for
a datum of implicit length.
At some point, the s(stem software decides to JloadL a -efinition ;lock. 1oading is accomplished when
the s(stem makes a pass over the data and populates the AC'% namespace and initialiHes o0#ects
accordingl(. The namespace for which population occurs is either from the c'rrent namespace location, as
defined 0( all nested packages or from the root if the name is preceded with OBM.
The first o0#ect present in a -efinition ;lock must 0e a named control method. This is the -efinition
;lockMs initialiHation control.
'ackages are o0#ects that contain an ordered reference to one or more o0#ects. A package can also 0e
considered a verte/ of an arra(, and an( o0#ect contained within a package can 0e another package. This
permits multidimensional arra(s of fi/ed or d(namic depths and vertices.
,nnamed o0#ects are used to populate the contents of named o0#ects. ,nnamed o0#ects cannot 0e created in
the Jroot.L ,nnamed o0#ects can 0e used as arguments in control methods.
Control method e/ecution ma( generate errors when creating o0#ects. This can occur if a Method that
creates named o0#ects 0locks and is reentered while 0locked. This will happen 0ecause all named o0#ects
have an a0solute path. This is true even if the o0#ect name specified is relative. 5or e/ample, the following
A!1 code segments are functionall( identical.
=4>
;ethod (D%&D$)
Scope (\_SB_.500)
!ame (B&R$) // Run time definition
/
/
=2>
Scope (\_SB_)
!ame (\_SB_. 500.B&R$) // 6oad time definition
/
Notice that in the a0ove e/ample the e/ecution of the -.A- method will alwa(s fail 0ecause the o0#ect
BC!;C.522.;A3 is created at load time.
6.5 Using the ACPI Control Method Source Language
2.Ms and ;%2! vendors write definition 0locks using the AC'% Control Method !ource language =A!1>
and use a translator to produce the 0(te stream encoding descri0ed in section *.", J-efinition ;lock
.ncodingL. 5or e/ample, the A!1 statements that produce the e/ample 0(te stream shown in that earlier
section are shown in the following A!1 e/ample. 5or a full specification of the A!1 statements, see section
49, JAC'% !ource 1anguage =A!1> 3eference.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 234
// &S6 %-ample
DefinitionBloc+ (
Pforboo+.amlP$ // 0utput 5ilename
PDSD<P$ // Si,nature
(-(3$ // DSD< )ompliance Revi2ion
P0%;P$ // 0%;#D
Pforboo+P$ // <&B6% #D
(-4((( // 0%; Revi2ion
)
// 2tart of definition bloc+
0perationRe,ion(\:#0$ S12tem#0$ (-43G$ (-4)
5ield(\:#0$ B1te&cc$ !o6oc+$ Pre2erve)
)<(4$ 4$
/
Scope(\_SB) // 2tart of 2cope
Device(P)#() // 2tart of device
PowerRe2ource(5%<($ ($ () // 2tart of pwr
;ethod (_0!)
Store (0ne2$ )<(4) // a22ert power
Sleep (F() // wait F(m2
/
;ethod (_055)
Store (7ero$ )<(4) // a22ert re2etQ
/
;ethod (_S<&)
Return ()<(4)
/
/ // end of power
/ // end of device
/ // end of 2cope
/ // end of definition bloc+
6.5.1 ASL Statements
A!1 is principall( a declarative language. A!1 statements declare o0#ects. .ach o0#ect has three parts, two
of which can 0e null<
0b9ect >L 0b9ect<1pe 5i-ed6i2t @ariable6i2t
&ixed,ist refers to a list of known length that supplies data that all instances of a given =b:ectType must
have. %t is written as =a, 0, c,>, where the num0er of arguments depends on the specific 20#ectT(pe, and
some elements can 0e nested o0#ects, that is =a, 0, =:, r, s, t>, d>. Arguments to a &ixed,ist can have default
values, in which case the( can 0e skipped. !ome 20#ectT(pes can have a null &ixed,ist.
Aariable,ist refers to a list, not of predetermined length, of child o0#ects that help define the parent. %t is
written as _/, (, H, aa, 00, cc`, where an( argument can 0e a nested o0#ect. 20#ectT(pe determines what
terms are legal elements of the Aariable,ist. !ome 20#ectT(pes can have a null varia0le list.
5or a detailed specification of the A!1 language, see section 49, JAC'% !ource 1anguage =A!1>
3eference.L 5or a detailed specification of the AC'% Control Method Machine 1anguage =AM1>, upon
which the output of the A!1 translator is 0ased, see section 48, JAC'% Machine 1anguage =AM1>
!pecification.L
6.5.2 Control Method Execution
The operating software will initiate well&defined control methods as necessar( to either interrogate or
ad#ust s(stem&level hardware state. This is called an invocation.
A control method can use other internal, or well defined, control methods to accomplish the task at hand,
which can include defined control methods provided 0( the operating software. %nterpretation of a Control
Method is not preemptive, 0ut it can 0lock. When a control method does 0lock, the operating software can
initiate or continue the e/ecution of a different control method. A control method can onl( assume that
access to glo0al o0#ects is e/clusive for an( period the control method does not 0lock.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
232 Advanced Configuration and 'ower %nterface !pecification
$lo0al o0#ects are those Name!pace o0#ects created at ta0le load time.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 233
6.5.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
23" Advanced Configuration and 'ower %nterface !pecification
Access to Objects and Operation Regions
Control Methods can reference an( o0#ects an(where in the Namespace as well as address spaces defined
in operation regions. Control methods must have e/clusive access to the an( address accessed via
2p3egions. Control methods do not directl( access an( other hardware registers, including the AC'%&
defined register 0locks. !ome of the AC'% registers, in the defined AC'% registers 0locks, are maintained on
0ehalf of control method e/ecution. 5or e/ample, the $'./C;1E is not directl( accessed 0( a control
method 0ut is used to provide an e/tensi0le interrupt handling model for control method invocation.
0oteH Accessing an 2p3egion ma( 0lock, even if the 2p3egion is not protected 0( a mute/. 5or e/ample,
0ecause of the slow nature of the em0edded controller, an em0edded controller 2p3egion field access ma(
0lock.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 23*
6.5.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
23+ Advanced Configuration and 'ower %nterface !pecification
6.5.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 239
Arguments
,p to seven arguments can 0e passed to a control method. .ach argument is an o0#ect which in turn could
0e a JpackageL st(le o0#ect that refers to other o0#ects. Access to the argument o0#ects is provided via the
A!1 ArgTer% =Arg+) language elements. The num0er of arguments passed to an( control method is fi/ed
and is defined when the control method package is created.
Method arguments can take one of the following forms<
4> An AC'% name or namepath that refers to a named o0#ect. This includes the 1ocalA and ArgA names.
%n this case, the o0#ect associated with the name is passed as the argument.
2> An AC'% name or namepath that refers to another control method. %n this case, the method is invoked
and the return value of the method is passed as the argument. A fatal error occurs if no o0#ect is
returned from the method. %f the o0#ect is not used after the method invocation it is automaticall(
deleted.
3> A valid A!1 e/pression. %n the case, the e/pression is evaluated and the o0#ect that results from this
evaluation is passed as the argument. %f this o0#ect is not used after the method invocation it is
automaticall( deleted.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
238 Advanced Configuration and 'ower %nterface !pecification
6.5.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 236
Method Calling Convention
The calling convention for control methods can 0est 0e descri0ed as call-by-reference-constant. %n this
convention, o0#ects passed as arguments are passed 0( JreferenceL, meaning that the( are not copied to new
o0#ects as the( are passed to the called control method =A calling convention that copies o0#ects or o0#ect
wrappers during a call is known as call-by-2al'e or call-by-copy>.
This call-by-reference-constant convention allows internal o0#ects to 0e shared across each method
invocation, therefore reducing the num0er of o0#ect copies that must 0e performed as well as the num0er of
0uffers that must 0e copied. This calling convention is appropriate to the low&level nature of the AC'%
su0s(stem within the kernel of the host operating s(stem where non&paged d(namic memor( is t(picall( at
a premium. The A!1 programmer must 0e aware of the calling convention and the related side effects.
@owever, unlike a pure call-by-reference convention, the a0ilit( of the called control method to modif(
arguments is e/tremel( limited. This reduces aliasing issues such as when a called method une/pectedl(
modifies a o0#ect or varia0le that has 0een passed as an argument 0( the caller. %n effect, the arguments that
are passed to control methods are passed as constants that cannot 0e modified e/cept under specific
controlled circumstances.
$enerall(, the o0#ects passed to a control method via the ArgA terms cannot 0e directl( written or modified
0( the called method. %n other words, when an ArgA term is used as a target operand in an A!1 statement,
the e/isting ArgA o0#ect is not modified. %nstead, the new o0#ect replaces the e/isting o0#ect and the ArgA
term effectivel( 0ecomes a 1ocalA term.
The onl( e/ception to the read&onl( argument rule is if an ArgA term contains an 20#ect 3eference created
via the $ef=f A!1 operator. %n this case, the use of the ArgA term as a target operand will cause an(
e/isting o0#ect stored at the AC'% name referred to 0( the $ef=f operation to 0e overwritten.
%n some limited cases, a new, writa0le o0#ect ma( 0e created that will allow a control method to change the
value of an ArgA o0#ect. These cases are limited to ;uffer and 'ackage o0#ects where the JvalueL of the
o0#ect is represented indirectl(. 5or ;uffers, a writa0le %nde/ or 5ield can 0e created that refers to the
original 0uffer data and will allow the called method to read or modif( the data. 5or 'ackages, a writa0le
%nde/ can 0e created to allow the called method to modif( the contents of individual elements of the
'ackage.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2" Advanced Configuration and 'ower %nterface !pecification
6.5.2.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2"4
Local Variables and Locally Created Data Objects
Control methods can access up to eight local data o0#ects. Access to the local data o0#ects have shorthand
encodings. 2n initial control method e/ecution, the local data o0#ects are N,11. Access to local o0#ects is
via the A!1 1ocalTerm language elements.
,pon control method e/ecution completion, one o0#ect can 0e returned that can 0e used as the result of the
e/ecution of the method. The JcallerL must either use the result or save it to a different o0#ect if it wants to
preserve it. !ee the description of the 3eturn A!1 operator for additional details
Name!pace o0#ects created within the scope of a method are d(namic. The( e/ist onl( for the duration of
the method e/ecution. The( are created when specified 0( the code and are destro(ed on e/it. A method
ma( create d(namic o0#ects outside of the current scope in the Name!pace using the scope operator or
using full path names. These o0#ects will still 0e destro(ed on method e/it. 20#ects created at load time
outside of the scope of the method are static. 5or e/ample<
Scope (\RS7)
!ame (B&R$ G) // )reate2 \RS7.B&R
;ethod (500$ 4)
Store (B&R$ )R%:) // 2ame effect a2 Store (\RS7.B&R$ )R%:)
!ame (B&R$ T) // )reate2 \RS7.500.B&R
Store (B&R$ DR%:) // 2ame effect a2 Store (\RS7.500.B&R$ DR%:
!ame (\RS7.500B$ F) // )reate2 \RS7.500B
/ // end method
/ // end 2cope
The o0#ect BAS?.;A3 is a static o0#ect created when the ta0le that contains the a0ove A!1 is loaded. The
o0#ect BAS?.522.;A3 is a d(namic o0#ect that is created when the Name (BAR, 7) statement in the 522
method is e/ecuted. The o0#ect BAS?.522; is a d(namic o0#ect created 0( the BAS?.522 method when
the Name (\XYZ.FOOB, 3) statement is e/ecuted. Notice that the BAS?.522; o0#ect is destro(ed after
the BAS?.522 method e/its.
6.6 ACPI Event Programming Model
The AC'% event programming model is 0ased on the !C% interrupt and $eneral&'urpose .vent =$'.>
register. AC'% provides an e/tensi0le method to raise and handle the !C% interrupt, as descri0ed in this
section.
6.6.1 ACPI Event Programming Model Components
The components of the AC'% event programming model are the following<
2!'M
5A-T
'M4aC!T!, 'M40C!T! and 'M4aC.N, 'M40C.N fi/ed register 0locks
$'.C;1E and $'.4C;1E register 0locks
$'. register 0locks defined in $'. 0lock devices
!C% interrupt
AC'% AM1 code general&purpose event model
AC'% device&specific model events
AC'% .m0edded Controller event model
The role of each component in the AC'% event programming model is descri0ed in the following ta0le.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2"2 Advanced Configuration and 'ower %nterface !pecification
Ta!le A-(+ ACPI 1vent Progra%%ing Model Co%ponents
Co%ponent 5escription
2!'M 3eceives all !C% interrupts raised =receives all !C% events>. .ither handles the
event or masks the event off and later invokes an 2.M&provided control method
to handle the event. .vents handled directl( 0( 2!'M are fi/ed AC'% eventsK
interrupts handled 0( control methods are general&purpose events.
5A-T !pecifies the 0ase address for the following fi/ed register 0locks on an AC'%&
compati0le platform< 'M4/C!T! and 'M4/C.N fi/ed registers and the
$'./C!T! and $'./C.N fi/ed registers.
'M4xC!T! and
'M4xC.N fi/ed
registers
'M4/C!T! 0its raise fi/ed AC'% events. While a 'M4/C!T! 0it is set, if the
matching 'M4/C.N 0it is set, the AC'% !C% event is raised.
$'.xC!T! and
$'.xC.N fi/ed
registers
$'./C!T! 0its that raise general&purpose events. 5or ever( event 0it implemented
in $'./C!T!, there must 0e a compara0le 0it in $'./C.N. ,p to 2*+
$'./C!T! 0its and matching $'./C.N 0its can 0e implemented. While a
$'./C!T! 0it is set, if the matching $'./C.N 0it is set, then the general&purpose
!C% event is raised.
!C% interrupt A level&sensitive, sharea0le interrupt mapped to a declared interrupt vector. The
!C% interrupt vector can 0e shared with other low&priorit( interrupts that have a
low fre:uenc( of occurrence.
AC'% AM1 code
general&purpose event
model
A model that allows 2.M AM1 code to use $'./C!T! events. This includes
using $'./C!T! events as JwakeL sources as well as other general service events
defined 0( the 2.M =J0utton pressed,L Jthermal event,L Jdevice presentFnot
present changed,L and so on>.
AC'% device&specific
model events
-evices in the AC'% namespace that have AC'%&specific device %-s can provide
additional event model functionalit(. %n particular, the AC'% em0edded controller
device provides a generic event model.
AC'% .m0edded
Controller event model
A model that allows 2.M AM1 code to use the response from the .m0edded
Controller Guer( command to provide general&service event defined 0( the 2.M.
6.6.2 Types of ACPI Events
At the direct AC'% hardware level, two t(pes of events can 0e signaled 0( an !C% interrupt<
5i/ed AC'% events
$eneral&purpose events
%n turn, the general&purpose events can 0e used to provide further levels of events to the s(stem. And, as in
the case of the em0edded controller, a well&defined second&level event dispatching is defined to make a
third t(pe of t(pical AC'% event. 5or the fle/i0ilit( common in toda(Ms designs, two first&level general&
purpose event 0locks are defined, and the em0edded controller construct allows a large num0er of
em0edded controller second&level event&dispatching ta0les to 0e supported. Then if needed, the 2.M can
also 0uild additional levels of event dispatching 0( using AM1 code on a general&purpose event to su0&
dispatch in an 2.M defined manner.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2"3
6.6.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2"" Advanced Configuration and 'ower %nterface !pecification
Fixed ACPI Event Handling
When 2!'M receives a fi/ed AC'% event, it directl( reads and handles the event registers itself. The
following ta0le lists the fi/ed AC'% events. 5or a detailed specification of each event, see section ", JAC'%
@ardware !pecification.L
Ta!le A-(& 6ixed ACPI 1vents
1vent Co%%ent
'ower
management
timer carr( 0it
set.
5or more information, see the description of the TM3C!T! and TM3C.N 0its of the
'M4/ fi/ed register 0lock in section ".9.3.4, J'M4 .vent $rouping,L as well as the
TM3CDA1 register in the 'MCTM3C;1E in section ".9.3.3, J'ower Management
Timer.L
'ower 0utton
signal
A power 0utton can 0e supplied in two wa(s. 2ne wa( is to simpl( use the fi/ed status
0it, and the other uses the declaration of an AC'% power device and AM1 code to
determine the event. 5or more information a0out the alternate&device 0ased power
0utton, see section ".9.2.2.4.2, Control Method 'ower ;utton.L
Notice that during the ! state, 0oth the power and sleep 0uttons merel( notif( 2!'M
that the( were pressed.
%f the s(stem does not have a sleep 0utton, it is recommended that 2!'M use the
power 0utton to initiate sleep operations as re:uested 0( the user.
!leep 0utton
signal
A sleep 0utton can 0e supplied in one of two wa(s. 2ne wa( is to simpl( use the fi/ed
status 0utton. The other wa( re:uires the declaration of an AC'% sleep 0utton device
and AM1 code to determine the event.
3TC alarm AC'%&defines an 3TC wake alarm function with a minimum of one&month granularit(.
The AC'% status 0it for the device is optional. %f the AC'% status 0it is not present, the
3TC status can 0e used to determine when an alarm has occurred. 5or more
information, see the description of the 3TCC!T! and 3TCC.N 0its of the 'M4/ fi/ed
register 0lock in section ".9.3.4, J'M4 .vent $rouping.L
Wake status The wake status 0it is used to determine when the sleeping state has 0een completed.
5or more information, see the description of the WAEC!T! and WAEC.N 0its of the
'M4/ fi/ed register 0lock in section ".9.3.4, J'M4 .vent $rouping.L
Ta!le A-(& 6ixed ACPI 1vents (continued)
1vent Co%%ent
!(stem 0us
master re:uest
The 0us&master status 0it provides feed0ack from the hardware as to when a 0us master
c(cle has occurred. This is necessar( for supporting the processor C3 power savings
state. 5or more information, see the description of the ;MC!T! 0it of the 'M4/ fi/ed
register 0lock in section ".9.3.4, J'M4 .vent $rouping.L
$lo0al release
status
This status is raised as a result of the $lo0al 1ock protocol, and is handled 0( 2!'M as
part of $lo0al 1ock s(nchroniHation. 5or more information, see the description of the
$;1C!T! 0it of the 'M4/ fi/ed register 0lock in section ".9.3.4, J'M4 .vent
$rouping.L 5or more information on $lo0al 1ock, see section *.2.4.4, J$lo0al 1ock.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2"*
6.6.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2"+ Advanced Configuration and 'ower %nterface !pecification
General-Purpose Event Handling
When 2!'M receives a general&purpose event, it either passes control to an AC'%&aware driver, or uses an
2.M&supplied control method to handle the event. An 2.M can implement up to 428 general&purpose
event inputs in hardware per $'. 0lock, each as either a level or edge event. %t is also possi0le to
implement a single 2*+&pin 0lock as long as itMs the onl( 0lock defined in the s(stem.
An e/ample of a general&purpose event is specified in section ", JAC'% @ardware !pecification,L where
.CC!T! and .CC.N 0its are defined to ena0le 2!'M to communicate with an AC'%&aware em0edded
controller device driver. The .CC!T! 0it is set when either an interface in the em0edded controller space
has generated an interrupt or the em0edded controller interface needs servicing. Notice that if a platform
uses an em0edded controller in the AC'% environment, then the em0edded controllerMs !C% output must 0e
directl( and e/clusivel( tied to a single $'. input 0it.
@ardware can cascade other general&purpose events from a 0it in the $'./C;1E through status and ena0le
0its in 2perational 3egions =%F2 space, memor( space, 'C% configuration space, or em0edded controller
space>. 5or more information, see the specification of the $eneral&'urpose .vent ;locks =$'./C;1E> in
section ".9.".4, J$eneral&'urpose .vent 3egister ;locks.L
2!'M manages the 0its in the $'./ 0locks directl(, although the source to those events is not directl(
known and is connected into the s(stem 0( control methods. When 2!'M receives a general&purpose event
=the event is from a $'./C;1E !T! 0it>, 2!'M does the following<
4. -isa0les the interrupt source =$'./C;1E .N 0it>.
2. %f an edge event, clears the status 0it.
3. 'erforms one of the following<
-ispatches to an AC'%&aware device driver.
Gueues the matching control method for e/ecution.
Manages a wake event using device C'3W o0#ects.
". %f a level event, clears the status 0it.
*. .na0les the interrupt source.
The 2.M AM1 code can perform 2.M&specific functions custom to each event the particular platform
might generate 0( e/ecuting a control method that matches the event. 5or $'. events, 2!'M will e/ecute
the control method of the name BC$'..CT++ where ++ is the he/ value format of the event that needs to 0e
handled and T indicates the event handling t(pe =T must 0e either O.M for an edge event or O1M for a le2el
event>. The event values for status 0its in $'.C;1E start at Hero =CT> and end at the =$'.C;1EC1.N
F 2> & 4. The event values for status 0its in $'.4C;1E start at $'.4C;A!. and end at $'.4C;A!. Z
=$'.4C;1EC1.N F 2> & 4. $'.C;1EC1.N, $'.4C;A!., and $'.4C;1EC1.N are all defined in the
5A-T.
5or 2!'M to manage the 0its in the $'./C;1E 0locks directl(<
.na0le 0its must 0e readFwrite.
!tatus 0its must 0e latching.
!tatus 0its must 0e readFclear, and cleared 0( writing a J4L to the status 0it.
6.6.2.2.1 Wake Events
An important use of the general&purpose events is to implement device wake events. The components of the
AC'% event programming model interact in the following wa(<
When a device asserts its wake signal, the general&purpose status event 0it used to track that
device is set.
While the corresponding general&purpose ena0le 0it is ena0led, the !C% interrupt is asserted.
%f the s(stem is sleeping, this will cause the hardware, if possi0le, to transition the s(stem into the
! state.
2nce the s(stem is running, 2!'M will dispatch the corresponding $'. handler.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2"9
The handler needs to determine which device o0#ect has signaled wake and performs a wake
Notif( command on the corresponding device o0#ect=s> that have asserted wake.
%n turn 2!'M will notif( 2!'M native driver=s> for each device that will wake its device to
service it.
.vents that wake ma( not 0e intermi/ed with non&wake =runtime> events on the same $'. input. The onl(
e/ception to this rule is made for the special devices 0elow. 2nl( the following devices are allowed to
utiliHe a single $'. for 0oth wake and runtime events<
4> ;utton -evices
'N'CC P 'ower ;utton -evice
'N'C- P 1id -evice
'N'C. P !leep ;utton -evice
2> 'C% ;us Wakeup .vent 3eporting ='M.>
'N'A3 P 'C% @ost ;ridge
All wake events that are not e/clusivel( tied to a $'. input =for e/ample, one input is shared for multiple
wake events> must have individual ena0le and status 0its in order to properl( handle the semantics used 0(
the s(stem.
6.6.2.2.2 Dispatching to an ACPI-Aware Device Driver
Certain device support, such as an em0edded controller, re:uires a dedicated $'. to service the device.
!uch $'.s are dispatched to native 2! code to 0e handled and not to the corresponding $'.&specific
control method.
%n the case of the em0edded controller, an 2!&native, AC'%&aware driver is given the $'. event for its
device. This driver services the em0edded controller device and determines when events are to 0e reported
0( the em0edded controller 0( using the Guer( command. When an em0edded controller event occurs, the
AC'%&aware driver dispatches the re:uests to other AC'%&aware drivers that have registered to handle the
em0edded controller :ueries or :ueues control methods to handle each event. %f there is no device driver to
handle specific :ueries, 2.M AM1 code can perform 2.M&specific functions that are customiHed to each
event on the particular platform 0( including specific control methods in the namespace to handle these
events. 5or an em0edded controller event, 2!'M will :ueue the control method of the name CG++. where
++ is the he/ format of the :uer( code. Notice that each em0edded controller device can have :uer( event
control methods.
!imilarl(, for an !M;us driver, if no driver registers for !M;us alarms, the !M;us driver will :ueue
control methods to handle these. Methods must 0e placed under the !M;us device with the name CGAA
where AA is the he/ format of the !M;us address of the device sending the alarm.
6.6.2.2.3 Queuing the Matching Control Method for Execution
When a general&purpose event is raised, 2!'M uses a naming convention to determine which control
method to :ueue for e/ecution and how the $'. .2% is to 0e handled. The $'./C!T! 0its in the
$'./C;1E are inde/ed with a num0er from through 55. The name of the control method to :ueue for an
event raised from an ena0le status 0it is alwa(s of the form BC$'..CTxx where xx is the event value and T
indicates the event .2% protocol to use =either edge or level>. The event values for status 0its in
$'.C;1E start at Hero =CT>, end at the =$'.C;1EC1.N F 2> & 4, and correspond to each status 0it
inde/ within $'.C;1E. The event values for status 0its in $'.4C;1E are offset 0( $'.C;A!. and
therefore start at $'.4C;A!. and end at $'.4C;A!. Z =$'.4C;1EC1.N F 2> & 4.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2"8 Advanced Configuration and 'ower %nterface !pecification
5or e/ample, suppose an 2.M supplies a wake event for a communications port and uses 0it " of the
$'.C!T! 0its to raise the wake event status. %n an 2.M&provided -efinition ;lock, there must 0e a
Method declaration that uses the name BC$'..C1" or B$'..C." to handle the event. An e/ample of a
control method declaration using such a name is the following<
;ethod (\_:P%._6(.) // :P% . level wa+e handler
!otif1 (\_SB.P)#0.)0;($ 3)
/
The control method performs whatever action is appropriate for the event it handles. 5or e/ample, if the
event means that a device has appeared in a slot, the control method might acknowledge the event to some
other hardware register and signal a change notif( re:uest of the appropriate device o0#ect. 2r, the cause of
the general&purpose event can result from more then one source, in which case the control method for that
event determines the source and takes the appropriate action.
When a general&purpose event is raised from the $'. 0it tied to an em0edded controller, the em0edded
controller driver uses another naming convention defined 0( AC'% for the em0edded controller driver to
determine which control method to :ueue for e/ecution. The :ueries that the em0edded controller driver
e/changes with the em0edded controller are num0ered from through 55, (ielding event codes 4 through
55. =A :uer( response of from the em0edded controller is reserved for Jno outstanding events.L> The
name of the control method to :ueue is alwa(s of the form CGxx where xx is the num0er of the :uer(
acknowledged 0( the em0edded controller. An e/ample declaration for a control method that handles an
em0edded controller :uer( is the following<
;ethod(_JF.) // embedded controller event for thermal
!otif1 (\_SB.<7(.<";4$ (-=()
/
When an !M;us alarm is handled 0( the !M;us driver, the !M;us driver uses a similar naming
convention defined 0( AC'% for the driver to determine the control method to :ueue for e/ecution. When
an alarm is received 0( the !M;us host controller, it generall( receives the !M;us address of the device
issuing the alarm and one word of data. 2n implementations that use !M;A1.3TY for notifications, onl(
the device address will 0e received. The name of the control method to :ueue is alwa(s of the form CGxx
where xx is the !M;us address of the device that issued the alarm. The !M;us address is 9 0its long
corresponding to he/ values through 95, although some addresses are reserved and will not 0e used. The
control method will alwa(s 0e :ueued with one argument that contains the word of data received with the
alarm. An e/ception is the case of an !M;us using !M;A1.3TY for notifications, in this case the
argument will 0e . An e/ample declaration for a control method that handles a !M;us alarm follows<
;ethod(_J4=$ 4) // <hermal 2en2or device at addre22 ((44 (((
// &r,( contain2 notification value (if an1)
// &r,( L ( if device 2upport2 onl1 S;B&6%R<Q
!otif1 (\_SB.<7(.<";4$ (-=()
/
6.6.2.2.4 Managing a Wake Event Using Device _PRW Objects
A deviceMs C'3W o0#ect provides the Hero&0ased 0it inde/ into the general&purpose status register 0lock to
indicate which general&purpose status 0it from either $'.C;1E or $'.4C;1E is used as the specific
deviceMs wake mask. Although the hardware must maintain individual device wake ena0le 0its, the s(stem
can have multiple devices using the same general&purpose event 0it 0( using 2.M&specific hardware to
provide second&level status and ena0le 0its. %n this case, the 2.M AM1 code is responsi0le for the second&
level ena0le and status 0its.
2!'M ena0les or disa0les the device wake function 0( ena0ling or disa0ling its corresponding $'. and 0(
e/ecuting its C'!W control method =which is used to take care of the second&level ena0les>. When the $'.
is asserted, 2!'M still e/ecutes the corresponding $'. control method that determines which device
wakes are asserted and notifies the corresponding device o0#ects. The native 2! driver is then notified that
its device has asserted wake, for which the driver powers on its device to service it.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2"6
%f the s(stem is in a sleeping state when the ena0led $'. 0it is asserted the hardware will transition the
s(stem into the ! state, if possi0le.
6.6.2.2.5 Determining the System Wake Source Using _Wxx Control
Methods
After a transition to the ! state, 2!'M ma( evaluate the C!W! o0#ect in the BC$'. scope to determine the
inde/ of the $'. that was the source of the transition event. When a single $'.s is shared among multiple
devices, the platform provides a CW// control method, where // is $'. inde/ as descri0ed in !ection
*.+.2.2.3, that allows the source device of the transition to 0e determined . %f implemented, the CW//
control method must e/ist in the BC$'. scope or in the scope of a $'. 0lock device.
%f CW// is implemented, either hardware or firmware must detect and save the source device as descri0ed
in !ection 9.3.*, JC!W! =!(stem Wake !ource>L. -uring invocation, the CW// control method determines
the source device and issues a 0otif)=Tdevice),/2> on the device that caused the s(stem to transition to
the ! state. %f the device uses a 0us&specific method of arming for wakeup, then the 0otif) must 0e issued
on the parent of the device that has a C'3W method. The CW// method must issue a
Notif(=Tdevice),/2> onl( to devices that contain a C'3W method within their device scope. 2!'MMs
evaluation of the C!W! and CW// o0#ects is indeterminate. As such, the platform must not rel( on C!W!
or CW// evaluation to clear an( hardware state, including $'./C!T! 0its, or to perform an( wakeup&
related actions.
%f the $'. inde/ returned 0( the C!W! o0#ect is onl( referenced 0( a single C'3W o0#ect in the s(stem, it
is implied that the device containing that C'3W is the wake source. %n this case, it is not necessar( for the
platform to provide a CW// method.
6.6.3 Device Object Notifcations
-uring normal operation, the platform needs to notif( 2!'M of various device&related events. These
notifications are accomplished using the Notif( operator, which indicates a target device, thermal Hone, or
processor o0#ect and a notification value that signifies the purpose of the notification. Notification values
from through /95 are common across all device o0#ect t(pes. Notification values of /C and a0ove are
reserved for definition 0( hardware vendors for hardware specific notifications. Notification values from
/8 to /;5 are device&specific and defined 0( each such device. 5or more information on the Notif(
operator, see section 49.*.8*, JNotif( =Notif(>.L
Ta!le A-(# 5evice 3!Cect 0otification 7alues
7alue 5escription
<us Check This notification is performed on a device o0#ect to indicate to 2!'M that it
needs to perform the 'lug and 'la( re&enumeration operation on the device tree starting
from the point where it has 0een notified. 2!'M will onl( perform this operation at 0oot,
and when notified. %t is the responsi0ilit( of the AC'% AM1 code to notif( 2!'M at an(
other times that this operation is re:uired. The more accuratel( and closer to the actual
device tree change the notification can 0e done, the more efficient the operating s(stemMs
response will 0eK however, it can also 0e an issue when a device change cannot 0e
confirmed. 5or e/ample, if the hardware cannot notice a device change for a particular
location during a s(stem sleeping state, it issues a ;us Check notification on wake to
inform 2!'M that it needs to check the configuration for a device change.
4 5evice Check ,sed to notif( 2!'M that the device either appeared or disappeared. %f
the device has appeared, 2!'M will re&enumerate from the parent. %f the device has
disappeared, 2!'M will invalidate the state of the device. 2!'M ma( optimiHe out re&
enumeration. %f C-CE is present, then Notif(=ob:ect,4> is assumed to indicate an undock
re:uest.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2* Advanced Configuration and 'ower %nterface !pecification
7alue 5escription
2 5evice :ake ,sed to notif( 2!'M that the device has signaled its wake event, and that
2!'M needs to notif( 2!'M native device driver for the device. This is onl( used for
devices that support C'3W.
3 1Cect "eJuest ,sed to notif( 2!'M that the device should 0e e#ected, and that 2!'M
needs to perform the 'lug and 'la( e#ection operation. 2!'M will run the C.7/ method.
" 5evice Check Light ,sed to notif( 2!'M that the device either appeared or
disappeared. %f the device has appeared, 2!'M will re&enumerate from the device itself,
not the parent. %f the device has disappeared, 2!'M will invalidate the state of the
device.
* 6reJuenc) Mis%atch ,sed to notif( 2!'M that a device inserted into a slot cannot 0e
attached to the 0us 0ecause the device cannot 0e operated at the current fre:uenc( of the
0us. 5or e/ample, this would 0e used if a user tried to hot&plug a 33 M@H 'C% device into
a slot that was on a 0us running at greater than 33 M@H.
+ <us Mode Mis%atch ,sed to notif( 2!'M that a device has 0een inserted into a slot or
0a( that cannot support the device in its current mode of operation. 5or e/ample, this
would 0e used if a user tried to hot&plug a 'C% device into a slot that was on a 0us
running in 'C%&A mode.
9 Power 6ault ,sed to notif( 2!'M that a device cannot 0e moved out of the -3 state
0ecause of a power fault.
8 Capa!ilities Check This notification is performed on a device o0#ect to indicate to
2!'M that it needs to re&evaluate the C2!C control method associated with the device.
6 5evice DPL5 Check ,sed to notif( 2!'M to reevaluate the C'1- o0#ect, as the
-eviceMs connection point has changed.
/A "eserved
/; S)ste% Localit) Infor%ation 2pdate -(namic reconfiguration of the s(stem ma(
cause e/isting relative distance information to change. The platform sends the !(stem
1ocalit( %nformation ,pdate notification to a point on a device tree to indicate to 2!'M
that it needs to invoke the C!1% o0#ects associated with the !(stem 1ocalities on the
device tree starting from the point notified.
/C&/95 "eserved
;elow are the notification values defined for specific AC'% devices. 5or more information concerning the
o0#ect&specific notification, see the section on the corresponding deviceFo0#ect.
Ta!le A-(( Control Method <atter) 5evice 0otification 7alues
Hex value 5escription
/8 <atter) Status Changed ,sed to notif( 2!'M that the Control Method ;atter( device
status has changed.
/84 <atter) Infor%ation Changed ,sed to notif( 2!'M that the Control Method ;atter(
device information has changed. This onl( occurs when a 0atter( is replaced.
/82 <atter) Maintenance 5ata Status 6lags Check ,sed to notif( 2!'M that the Control
Method ;atter( device 0atter( maintenance data status flags should 0e checked.
/83&/;5 "eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2*4
Ta!le A-(A Power Source 3!Cect 0otification 7alues
Hex value 5escription
/8 Power Source Status Changed. ,sed to notif( 2!'M that the power source status has
changed.
/84&/;5 "eserved
Ta!le A-(- Ther%al Ione 3!Cect 0otification 7alues
Hex value 5escription
/8 Ther%al Ione Status Changed ,sed to notif( 2!'M that the thermal Hone
temperature has changed.
/84 Ther%al Ione Trip points Changed ,sed to notif( 2!'M that the thermal Hone trip
points have changed.
/82 5evice Lists Changed ,sed to notif( 2!'M that the thermal Hone device lists =CA1/,
C'!1, CT?-> have changed.
/83 Ther%al "elationship Ta!le Changed ,sed to notif( 2!'M that values in the thermal
relationship ta0le have changed.
/8"&/;5 "eserved
Ta!le A-(. Control Method Power <utton 0otification 7alues
Hex value 5escription
/8 S$ Power <utton Pressed ,sed to notif( 2!'M that the power 0utton has 0een pressed
while the s(stem is in the ! state. Notice that when the 0utton is pressed while the
s(stem is in the !4&!" state, a -evice Wake notification must 0e issued instead.
/84&/;5 "eserved
Ta!le A-(/ Control Method Sleep <utton 0otification 7alues
Hex value 5escription
/8 S$ Sleep <utton Pressed ,sed to notif( 2!'M that the sleep 0utton has 0een pressed
while the s(stem is in the ! state. Notice that when the 0utton is pressed while the
s(stem is in the !4&!" state, a -evice Wake notification must 0e issued instead.
/84&/;5 "eserved
Ta!le A-(, Control Method Lid 0otification 7alues
Hex value 5escription
/8
Lid Status Changed ,sed to notif( 2!'M that the control method lid device status has
changed.
/84&/;5 "eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2*2 Advanced Configuration and 'ower %nterface !pecification
Ta!le A-A$ Processor 5evice 0otification 7alues
Hex value 5escription
/8
Perfor%ance Present Capa!ilities Changed. ,sed to notif( 2!'M that the num0er of
supported processor performance states has changed. This notification causes 2!'M to
re&evaluate the C''C o0#ect. !ee section 8, J'rocessor 'ower and 'erformance !tate
Configuration and Control,L for more information.
/84
C States Changed ,sed to notif( 2!'M that the num0er or t(pe of supported processor
C !tates has changed. This notification causes 2!'M to re&evaluate the CC!T o0#ect. !ee
section 8, J'rocessor 'ower and 'erformance !tate Configuration and Control,L for more
information.
/82 Throttling Present Capa!ilities Changed. ,sed to notif( 2!'M that the num0er of
supported processor throttling states has changed. This notification causes 2!'M to re&
evaluate the CT'C o0#ect. !ee section 8, J'rocessor 'ower and 'erformance !tate
Configuration and Control,L for more information.
/83&/;5 "eserved
Ta!le A-A+ 2ser Presence 5evice 0otification 7alues
Hex value 5escription
/8
2ser Presence Changed ,sed to notif( 2!'M that a meaningful change in user
presence has occurred, causing 2!'M to re&evaluate the C,'- o0#ect.
/84&/;5 "eserved
Ta!le A-A& A%!ient Light Sensor 5evice 0otification 7alues
Hex value 5escription
/8
ALS Illu%inance Changed ,sed to notif( 2!'M that a meaningful change in am0ient
light illuminance has occurred, causing 2!'M to re&evaluate the CA1% o0#ect.
/84
ALS Color Te%perature Changed ,sed to notif( 2!'M that a meaningful change in
am0ient light color temperature or chromacit( has occurred, causing 2!'M to re&
evaluate the CA1T andFor CA1C o0#ects.
/82 ALS "esponse Changed ,sed to notif( 2!'M that the set of points used to conve( the
am0ient light response has changed, causing 2!'M to re&evaluate the CA13 o0#ect.
/83&/;5 "eserved
6.6.4 Device Class-Specifc Objects
Most device o0#ects are controlled through generic o0#ects and control methods and the( have generic
device %-s. These generic o0#ects, control methods, and device %-s are specified in sections +, 9, 8, 6, 4,
and 44. !ection *.+.*, J-efined $eneric 20#ects and Control Methods,L lists all the generic o0#ects and
control methods defined in this specification.
@owever, certain integrated devices re:uire support for some device&specific AC'% controls. This section
lists these devices, along with the device&specific AC'% controls that can 0e provided.
!ome of these controls are for AC'%&aware devices and as such have 'lug and 'la( %-s that represent these
devices. The following ta0le lists the 'lug and 'la( %-s defined 0( the AC'% specification.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2*3
Ta!le A-A# ACPI 5evice I5s
Plug and
Pla) I5
5escription
'N'C8 ACPI Not declared in AC'% as a device. This %- is used 0( 2!'M for the hardware
resources consumed 0( the AC'% fi/ed register spaces, and the operation regions used 0(
AM1 code. %t represents the core AC'% hardware itself.
'N'A* ;eneric Container 5evice A device whose settings are totall( controlled 0( its AC'%
resource information, and otherwise needs no device or 0us&specific driver support. This
was originall( known as $eneric %!A ;us -evice. This %- should onl( 0e used for
containers that do not produce resources for consumption 0( child devices. An( s(stem
resources claimed 0( a 'N'A* deviceMs CC3! o0#ect must 0e consumed 0( the
container itself.
'N'A+ ;eneric Container 5evice This device 0ehaves e/actl( the same as the 'N'A*
device. This was originall( known as ./tended %F2 ;us. This %- should onl( 0e used for
containers that do not produce resources for consumption 0( child devices. An( s(stem
resources claimed 0( a 'N'A+ deviceMs CC3! o0#ect must 0e consumed 0( the
container itself.
'N'C6 1%!edded Controller 5evice A host em0edded controller controlled through an AC'%&
aware driver.
'N'CA Control Method <atter) A device that solel( implements the AC'% Control Method
;atter( functions. A device that has some other primar( function would use its normal
device %-. This %- is used when the devices primar( function is that of a 0atter(.
'N'C; 6an A device that causes cooling when JonL =- device state>.
Ta!le A-A# ACPI 5evice I5s (continued)
Plug and
Pla) I5
5escription
'N'CC Power <utton 5evice A device controlled through an AC'%&aware driver that provides
power 0utton functionalit(. This device is onl( needed if the power 0utton is not
supported using the fi/ed register space.
'N'C- Lid 5evice A device controlled through an AC'%&aware driver that provides lid status
functionalit(. This device is onl( needed if the lid state is not supported using the fi/ed
register space.
'N'C. Sleep <utton 5evice A device controlled through an AC'%&aware driver that provides
power 0utton functionalit(. This device is optional.
'N'C5 PCI Interrupt Link 5evice A device that allocates an interrupt connected to a 'C%
interrupt pin. !ee section +., JConfiguration,L for more details.
'N'C8 Me%or) 5evice This device is a memor( su0s(stem.
AC'%4 SM<us +$ Host Controller An !M;us host controller =!M;&@C> compati0le with the
em0edded controller&0ased !M;&@C interface =as specified in section 42.6, J!M;us
@ost Controller %nterface via .m0edded ControllerL> and implementing the !M;us 4.
!pecification.
AC'%2 S%art <atter) Su!s)ste% The !mart 0atter( !u0s(stem specified in section 4,
J'ower !ource -evices.L
AC'%3 AC 5evice The AC adapter specified in section 4, J'ower !ource -evices.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2*" Advanced Configuration and 'ower %nterface !pecification
Plug and
Pla) I5
5escription
AC'%" Module 5evice This device is a container o0#ect that acts as a 0us node in a namespace.
A Module -evice without an( of the CC3!, C'3! and C!3! methods 0ehaves the same
wa( as the $eneric Container -evices ='N'A* or 'N'A+>. %f the Module -evice
contains a CC3! method, onl( these resources descri0ed in the CC3! are availa0le for
consumption 0( its child devices. Also, the Module -evice can support C'3! and C!3!
methods if CC3! is supported.
AC'%* SM<us &$ Host Controller An !M;us host controller =!M;&@C compati0le with the
em0edded controller&0ased !M;&@C interface =as specified in section 42.6, J!M;us
@ost Controller %nterface via .m0edded ControllerL> and implementing the !M;us 2.
!pecification.
AC'%+ ;P1 <lock 5evice This device allows a s(stem designer to descri0e $'. 0locks
0e(ond the two that are descri0ed in the 5A-T.
AC'%9 Processor 5evice This device provides an alternative to declaring processors using the
Processor A!1 statement. !ee section 8.", J-eclaring 'rocessorsL, for more details.
AC'%8 A%!ient Light Sensor 5evice This device is an am0ient light sensor. !ee section 6.2,
JControl Method Am0ient 1ight !ensor -eviceL.
AC'%6 I@3xAPIC 5evice This device is an %F2 unit that complies with 0oth the A'%C and
!A'%C interrupt models.
AC'%A I@3 APIC 5evice This device is an %F2 unit that complies with the A'%C interrupt
model.
AC'%; I@3 SAPIC 5evice This device is an %F2 unit that complies with the !A'%C interrupt
model.
6.6.5 Defned Generic Objects and Control Methods
The following ta0le lists all of the AC'% namespace o0#ects defined in this specification and provides a
reference to the defining section of the specification. 20#ect names reserved 0( AC'% 0ut defined 0( other
specifications are also listed along with their corresponding specification reference.
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
CAC/ Thermal ?one o0#ect that returns active cooling polic( threshold values
in tenths of degrees Eelvin.
44.3.4
CA-3 -evice o0#ect that evaluates to a deviceMs address on its parent 0us. 5or
the displa( output device, this o0#ect returns a uni:ue %-. =;.*.4,
JCA-3 & 3eturn the ,ni:ue %- for this -evice.L>
+.4.4
CA1C 20#ect evaluates to current Am0ient 1ight Color Chromacit( 6.2."
CA1% The current am0ient light 0rightness in lu/ =lumen per s:uare meter>. 6.2.2
CA1N 3esource data t(pe reserved field name 49.4.8
CA1' Am0ient light sensor polling fre:uenc( in tenths of seconds. 6.2.+
CA13 3eturns a set of am0ient light 0rightness to displa( 0rightness mappings
that can 0e used 0( an 2! to cali0rate its am0ient light polic(.
6.2.*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2**
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
CA1T The current am0ient light color temperature in degrees Eelvin. 6.2.3
CA1x Thermal Hone o0#ect containing a list of cooling device o0#ects. 44.3.2
CA!% 3esource data t(pe reserved field name 49.4.8
C;A! 3esource data t(pe reserved field name 49.4.8
C;;N 'C% 0us num0er setup 0( the ;%2! +.*.*
C;C1 3eturns a 0uffer of 0(tes indicating list of 0rightness control levels
supported.
;.+.2
C;CM !ets the 0rightness level of the 0uilt&in displa( output device. ;.+.3
C;-N Correlates a docking station 0etween AC'% and legac( interfaces. +.*.3
C;5! Control method e/ecuted immediatel( following a wake event. 9.3.4
C;%5 Control Method ;atter( information o0#ect 4.2.2.4
C;1T 20#ect that conve(s userMs 0atter( level threshold preferences to
platform.
6.4.3
C;M 3esource data t(pe reserved field name 49.4.8
C;MC 'owers source o0#ect used to initiate 0atter( cali0ration c(cles or to
control the charger and whether or not a 0atter( is powering the s(stem.
4.2.2.9
C;M- 'ower source o0#ect that returns information a0out the 0atter(Ms
capa0ilities and current state in relation to 0atter( cali0ration and
charger control features.
4.2.2.+
C;GC 20#ect that returns current displa( 0rightness level. ;.+."
C;!T Control Method ;atter( status o0#ect 4.2.2.3
C;TM 3eturns estimated runtime at the present average rate of drain, or the
runtime at a specified rate.
4.2.2.*
C;T' !ets Control Method ;atter( trip point 4.2.2."
CC;A 'rovides the Configuration ;ase Address for a 'C% ./press host 0ridge 'C% 5irmware
!pecification,
3evision 3.
http<FFpcisig.com
CC%- -evice identification o0#ect that evaluates to a deviceMs 'lug and 'la(
Compati0le %- list.
+.4.2
CC3! -evice configuration o0#ect that specifies a deviceMs c'rrent resource
settings, or a control method that generates such an o0#ect.
+.2.4
CC3T Thermal Hone o0#ect that returns critical trip point in tenths of degrees
Eelvin.
44.3.3
CC!- 20#ect that conve(s C&!tate dependencies 8.".2.2
CC!T 'rocessor power state declaration o0#ect 8.".2.4
C-CE %ndicates that the device is a docking station. +.*.2
C-C! 3eturns the status of the displa( output device. ;.+.+
C--C 3eturns the .-%- for the displa( output device ;.+.*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2*+ Advanced Configuration and 'ower %nterface !pecification
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
C--N 20#ect that associates a logical software name =for e/ample, C2M4>
with a device.
+.4.3
C-.C 3esource data t(pe reserved field name 49.4.8
C-$! Control method used to :uer( the state of the output device. ;.+.9
C-%! -evice configuration control method that disa0les a device. +.2.2
C-MA 20#ect that specifies a deviceMs c'rrent resources for -MA transactions. +.2.3
C-2- Control method used to enumerate devices attached to the displa(
adapter.
;.".2
C-2! Control method used to ena0leFdisa0le displa( output switching. ;.".4
C-!M $eneric device control method o0#ect 6.4*.4
C-!! Control method used to set displa( device state. ;.+.8
C-!W !et up a device for device&onl( wake 9.2.4
C.// Control method e/ecuted as a result of a general&purpose event. *.+.2.2,
*.+.2.2.3
C.C Control Method used to define the offset address and Guer( value of an
!M;&@C defined within an em0edded controller device.
42.42
C.-1 -evice removal o0#ect that returns a packaged list of devices that are
dependent on a device.
+.3.4
C.7/ -evice insertionFremoval control method that e#ects a device. +.3.3
C.7- -evice removal o0#ect that evaluates to the name of a device o0#ect
upon which a device is dependent. Whenever the named device is
e#ected, the dependent device must receive an e#ection notification.
+.3.2
C5-. 20#ect that indicates the presence or a0sence of flopp( disks. 6.4.4
C5-% 20#ect that returns flopp( drive information. 6.4.2
C5-M Control method that changes the mode of flopp( drives. 6.4.3
C5%A 20#ect used to provide correlation 0etween the fi/ed hardware register
0locks defined in the 5A-T and the devices that implement these fi/ed
hardware registers.
+.2."
C$1 2!&defined $lo0al 1ock mute/ o0#ect *.9.4
C $1E %ndicates the need to ac:uire the $lo0al 1ock, must 0e ac:uired when
accessing the device.
+.*.9
C$'- Control method that returns which D$A device will 0e posted at 0oot ;."."
C$'. 4. $eneral&'urpose .vents root name space
2. 20#ect that returns the !C% interrupt within the $'/C!T! register
that is connected to the .C.
*.3.4
42.44
C$3A 3esource data t(pe reserved field name. 49.4.8
C$T5 %-. device control method to get the Advanced Technolog( Attachment
=ATA> task file needed to re&initialiHe the drive to 0oot up defaults.
6.6.4.4
C$TM %-. device control method to get the %-. controller timing information. 6.6.2.4.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2*9
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
C$!; 20#ect that provides the $lo0al !(stem %nterrupt ;ase for a hot&plugged
%F2 A'%C device.
+.2.*
C$T! Control method e/ecuted #ust prior to setting the sleep ena0le
=!1'C.N> 0it.
9.3.3
C@. 3esource data t(pe reserved field name 49.4.8
C@%- -evice identification o0#ect that evaluates to a deviceMs 'lug and 'la(
@ardware %-.
+.4."
C@2T 20#ect returns critical temperature when 2!'M enters !" 44.3."
C@'' An o0#ect that specifies the Cache&line siHe, 1atenc( timer, !.33
ena0le, and '.33 ena0le values to 0e used when configuring a 'C%
device inserted into a hot&plug slot or initial configuration of a 'C%
device at s(stem 0oot.
+.2.+
C@'A 20#ect that provides device parameters when configuring a 'C% device
inserted into a hot&plug slot or initial configuration of a 'C% device at
s(stem 0oot. !upersedes C@''.
+.2.9
C%5T %'M% %nterface T(pe %ntelligent 'latform
Management
%nterface
!pecification.
http<FFwww.intel.com
FdesignFserversFipmiF
inde/.htm
C%N% -evice initialiHation method that performs device specific initialiHation. +.*.4
C%NT 3esource data t(pe reserved field name 49.4.8
C%3C 'ower management o0#ect that signifies the device has a significant
inrush current draw.
9.2.42
C1// Control method e/ecuted as a result of a general&purpose event. *.+.2.2,
*.+.2.2.3
C1CE -evice insertionFremoval control method that locks or unlocks a device. +.3."
C1.N 3esource data t(pe reserved field name 49.4.8
C1%- 20#ect that returns the status of the 1id on a mo0ile s(stem. 6.".4
C11 3esource data t(pe reserved field name 49.4.8
CMA5 3esource data t(pe reserved field name 49.4.8
CMAT 20#ect evaluates to a 0uffer of MA-T A'%C !tructure entries. +.2.8
CMAA 3esource data t(pe reserved field name 49.4.8
CM.M 3esource data t(pe reserved field name 49.4.8
CM%5 3esource data t(pe reserved field name 49.4.8
CM%N 3esource data t(pe reserved field name 49.4.8
CM!$ !(stem indicator control that indicates messages are waiting. 6.4.2
CM1! 20#ect that provides a human reada0le description of a device in
multiple languages.
+.4.*
C255 'ower resource o0#ect that sets the resource off. 9.4.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2*8 Advanced Configuration and 'ower %nterface !pecification
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
C2N 'ower resource o0#ect that sets the resource on. 9.4.3
C2! 20#ect that evaluates to a string that identifies the operating s(stem. *.9.2
C2!C Conve( specific software support F capa0ilities to the platform allowing
the platform to configure itself appropriatel(.
+.2.6
C2!T 2!'M !tatus %ndication +.3.*
C'C1 'ower source o0#ect that contains a list of devices powered 0( a power
source.
4.3.2
C'CT 'rocessor performance control o0#ect 8.".".4
C'-C 'rocessor -river Capa0ilities 8.".4
C'%C Control method that conve(s interrupt model in use to the s(stem
firmware.
*.8.4
C'1- 20#ect that provides ph(sical location description information. +.4.+
C''C Control method used to determine num0er of performance states
currentl( supported 0( the platform.
8.".".3
C''. 20#ect provides polling interval to retrieve Corrected 'latform .rror
information
-%$+" Corrected
'latform .rror
'olling
!pecification.
http<FFwww.dig+".org
Fspecifications
C'3 AC'% 4. 'rocessor Namespace *.3.4
C'3 'ower management o0#ect that evaluates to the deviceMs power
re:uirements in the - device state =device full( on>.
9.2.9
C'34 'ower management o0#ect that evaluates to the deviceMs power
re:uirements in the -4 device state. 2nl( devices that can achieve the
defined -4 device state according to its given device class would suppl(
this level.
9.2.8
C'32 'ower management o0#ect that evaluates to the deviceMs power
re:uirements in the -2 device state. 2nl( devices that can achieve the
defined -2 device state according to its given device class would suppl(
this level.
9.2.6
C'3! -evice configuration o0#ect that specifies a deviceMs possible resource
settings, or a control method that generates such an o0#ect.
+.2.4
C'3T An o0#ect that specifies the 'C% interrupt 3outing Ta0le. +.2.44
C'3W 'ower management o0#ect that evaluates to the deviceMs power
re:uirements in order to wake the s(stem from a s(stem sleeping state.
9.2.4
C'! 'ower management control method that puts the device in the -
device state. =device full( on>.
9.2.2
C'!4 'ower management control method that puts the device in the -4
device state.
9.2.3
C'!2 'ower management control method that puts the device in the -2
device state.
9.2."
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2*6
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
C'!3 'ower management control method that puts the device in the -3
device state =device off>.
9.2.*
C'!C 'ower management o0#ect that evaluates to the deviceMs current power
state.
9.2.+
C'!- 20#ect that conve(s '&!tate dependencies 8.".".*
C'!1 Thermal Hone o0#ect that returns list of passive cooling device o0#ects. 44.3.*
C'!3 'ower source o0#ect that returns present power source device. 4.3.4
C'!! 20#ect indicates the num0er of supported processor performance states. 8.".".2
C'!D Thermal Hone o0#ect that returns 'assive trip point in tenths of degrees
Eelvin.
44.3.+
C'!W 'ower management control method that ena0les or disa0les the deviceMs
wake function.
9.2.44
C'TC 20#ect used to define a processor throttling control register. 8.".3.4
C'T! Control method used to notif( the platform of impending sleep
transition.
9.3.2
C'AM 20#ect used to descri0e pro/imit( domains within a machine. +.2.42
CGxx .m0edded Controller Guer( and !M;us Alarm control method *.+.2.2.3
C3;2 3esource data t(pe reserved field name 49.4.8
C3;W 3esource data t(pe reserved field name 49.4.8
C3.$ Notifies AM1 code of a change in the availa0ilit( of an operation
region.
+.*."
C3.D 3evision of the AC'% specification that 2!'M implements. *.9."
C3MD -evice insertionFremoval o0#ect that indicates that the given device is
remova0le.
+.3.+
C3N$ 3esource data t(pe reserved field name 49.4.8
C32M Control method used to get a cop( of the displa( devicesM 32M data. ;.".3
C3T 3esource T(pe field of the GWord!pace, -Word!pace or Word!pace
address descriptors
49.4.8
C3TD 20#ect indicates whether temperature values are relative or a0solute. 44.3.9
C3W 3esource data t(pe reserved field name 49.4.8
C! 'ower management package that defines s(stem BC! state mode. 9.3.".4
C!4 'ower management package that defines s(stem BC!4 state mode. 9.3.".2
C!2 'ower management package that defines s(stem BC!2 state mode. 9.3.".3
C!3 'ower management package that defines s(stem BC!3 state mode. 9.3."."
C!" 'ower management package that defines s(stem BC!" state mode. 9.3.".*
C!* 'ower management package that defines s(stem BC!* state mode. 9.3.".+
C!4- @ighest -&state supported 0( the device in the !4 state. 9.2.43
C!2- @ighest -&state supported 0( the device in the !2 state. 9.2.4"
C!3- @ighest -&state supported 0( the device in the !3 state. 9.2.4*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2+ Advanced Configuration and 'ower %nterface !pecification
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
C!"- @ighest -&state supported 0( the device in the !" state. 9.2.4+
C!W 1owest -&state supported 0( the device in the ! state which can wake
the device
9.2.49
C!4W 1owest -&state supported 0( the device in the !4 state which can wake
the s(stem
9.2.48
C!2W 1owest -&state supported 0( the device in the !2 state which can wake
the s(stem
9.2.46
C!3W 1owest -&state supported 0( the device in the !3 state which can wake
the s(stem
9.2.2
C!"W 1owest -&state supported 0( the device in the !" state which can wake
the s(stem
9.2.24
C!; !(stem 0us scope *.3.4
C!;! !mart ;atter( o0#ect that returns !mart ;atter( configuration. 4.4.2
C!C' Thermal Hone o0#ect that sets user cooling polic( =Active or 'assive>. 44.3.8
C!-- Control method that informs the platform of the t(pe of device attached
to a !ATA port.
6.6.3.3.4
C!.$ .valuates to the 'C% !egment $roup num0er. +.*.+
C!@3 3esource data t(pe reserved field name 49.4.8
C!% !(stem indicators scope 6.4
C!%? 3esource data t(pe reserved field name 49.4.8
C!1% 20#ect that provides updated distance information for a s(stem localit(. +.2.43
C!'- Control method used to update which video device will 0e posted at
0oot.
;.".*
C!3! -evice configuration control method that sets a deviceMs settings. +.2.4"
C!3D %'M% !pec 3evision %ntelligent 'latform
Management
%nterface
!pecification.
http<FFwww.intel.com
FdesignFserversFipmiF
inde/.htm
C!!T !(stem indicator control method that indicates the s(stem status. 6.4.4
C!TA 4. -evice insertionFremoval control method that returns a deviceMs
status.
2. 'ower resource o0#ect that evaluates to the current on or off state of
the 'ower 3esource.
+.3.9
9.4."
C!TM %-. device control method used to set the %-. controller transfer
timings.
6.6.2.4.2
C!T3 20#ect evaluates to a ,nicode string to descri0e a device. +.4.9
C!,N 20#ect that evaluates to the slot uni:ue %- num0er for a slot. +.4.8
C!W! 20#ect that returns the source event that caused the s(stem to wake. 9.3.*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2+4
Ta!le A-A( 5efined ;eneric 3!Cect and Control Methods
3!Cect 5escription "eference
CTC/ 3eserved for use 0( the A!1 compiler. 49.2.4.4
CTC4 Thermal Hone o0#ect that contains thermal constant for 'assive cooling. 44.3.6
CTC2 Thermal Hone o0#ect that contains thermal constant for 'assive cooling. 44.3.4
CTM' Thermal Hone o0#ect that returns current temperature in tenths of
degrees Eelvin.
44.3.44
CT'C 20#ect evaluates to the current num0er of supported throttling states. 8.".3.3
CT'T Control method invoked when a devicesM em0edded temperature sensor
crosses a temperature trip point.
44.3.42
CT3A 3esource data t(pe reserved field name 49.4.8
CT3! 3esource data t(pe reserved field name 49.4.8
CT3T 20#ect provides thermal relationship information 0etween platform
devices.
44.3.43
CT!- 20#ect that conve(s Throttling !tate dependencies 8.".3."
CT!5 T(pe&!pecific 5lags fields in a Word, -Word or GWord address space
descriptor
49.4.8
CT!' Thermal Hone o0#ect that contains thermal sampling period for 'assive
cooling.
44.3.4"
CT!T 20#ect returns minimum temperature separation for deviceMs
programma0le temperature trip points.
44.3.4*
CT!! 20#ect evaluates to a ta0le of support throttling states. 8.".3.2
CTT' 3esource data t(pe reserved field name 49.4.8
BCTT! Control method used to prepare to sleep and run once awakened 9.3.+
CTS' 3esource data t(pe reserved field name 49.4.8
CT? AC'% 4. thermal Hone scope *.3.4
CT?- 20#ect evaluates to a package of device names associated with a
Thermal ?one.
44.3.4+
CT?M 20#ect indicates the thermal Hone of which a device is a mem0er. 44.3.49
CT?' Thermal Hone polling fre:uenc( in tenths of seconds. 44.3.48
C,%- -evice identification o0#ect that specifies a deviceMs uni:ue persistent
%-, or a control method that generates it.
+.4.6
C,'C 20#ect provides ,!; port capa0ilities information.. 6.4"
C,'- 20#ect that returns user presence information. 6.49.4
C,'' 20#ect evaluates to user presence polling interval. 6.49.2
CD'2 3eturns 32&0it integer indicating the video post options. ;.".+
BCWAE 'ower management control method run once s(stem is awakened. 9.3.9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2+2 Advanced Configuration and 'ower %nterface !pecification
6.7 Predefned Objects
The AM1 interpreter of an AC'% compati0le operating s(stem supports the evaluation of a num0er of
predefined o0#ects. The o0#ects are considered J0uilt inL to the AM1 interpreter on the target operating
s(stem.
A list of predefined o0#ect names are shown in the following ta0le.
Ta!le A-AA Predefined 3!Cect 0a%es
0a%e 5escription
BC$1 $lo0al 1ock
BC2! Name of the operating s(stem
BC2!% 2perating !(stem %nterface support
BC3.D 3evision of the AC'% specification that 2!'M implements.
6.7.1 \_GL (Global Lock Mutex)
This predefined o0#ect is a Mute/ o0#ect that 0ehaves like a Mute/ as defined in section 49.*.96, JMute/
=-eclare !(nchroniHationFMute/ 20#ect>,L with the added 0ehavior that ac:uiring this Mute/ also ac:uires
the shared environment $lo0al 1ock defined in section *.2.4.4, J$lo0al 1ock.L This allows Control
Methods to e/plicitl( s(nchroniHe with the $lo0al 1ock if necessar(.
6.7.2 \_OSI (Operating System Interfaces)
This o0#ect provides the platform with the a0ilit( to :uer( 2!'M to determine the set of AC'% related
interfaces, 0ehaviors, or features that the operating s(stem supports.
The C2!% method has one argument and one return value. The argument is an 2! vendor defined string
representing a set of 2! interfaces and 0ehaviors or an AC'% defined string representing an operating
s(stem and an AC'% feature group of the form, J=SAendorString&&eat're4ro'pStringL.
S)ntax
_0S# (Interface)LB BooleanResult
Argu%ents
Interface< Strin, U Strin, 'E' Strin,
!pecifies the 2! interface F 0ehavior compati0ilit( string or the 5eature $roup !tring, as defined
in Ta0le *&*9, or the 2! Dendor !tring 'refi/&2! Dendor !pecific !tring. 2! Dendor !tring
'refi/es are defined in Ta0le *&*+.
"eturn 7alue
BooleanResult< DWord)on2t
A return value of / indicates that interface, 0ehavior, feature, is not supported.
A return value of /55555555 indicates that interface, 0ehavior, feature, is supported.
2!'M ma( indicate support for multiple 2! interface F 0ehavior strings if the operating s(stem supports
the 0ehaviors. 5or e/ample, a newer version of an operating s(stem ma( indicate support for strings from
all or some of the prior versions of that operating s(stem.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2+3
C2!% provides the platform with the a0ilit( to support new operating s(stem versions and their associated
features when the( 0ecome availa0le. 2!'M can choose to e/pose new functionalit( 0ased on the C2!%
argument string. That is, 2!'M can use the strings passed into C2!% to ensure compati0ilit( 0etween older
platforms and newer operating s(stems 0( maintaining known compati0le 0ehavior for a platform. As such,
it is recommended that C2!% 0e evaluated 0( the BC!;.%N% control method so that platform compati0le
0ehavior or features are availa0le earl( in operating s(stem initialiHation.
!ince feature group functionalit( ma( 0e dependent on 2!'M implementation, it ma( 0e re:uired that 2!
vendor&defined strings 0e checked 0efore feature group strings.
'latform developers should consult 2! vendor specific information for 2! vendor defined strings
representing a set of 2! interfaces and 0ehaviors. AC'% defined strings representing an operating s(stem
and an AC'% feature group are listed in the following ta0les.
Ta!le A-A- 3perating S)ste% 7endor Strings
3perating S)ste% 7endor String Prefix 5escription
J5ree;!-L 5ree ;!-
J@'&,AL @' ,ni/ 2perating .nvironment
J1inu/L $N,F1inu/ 2perating s(stem
J2penDM!L @' 2penDM! 2perating .nvironment
JWindowsL Microsoft Windows
Ta!le A-A. 6eature ;roup Strings
6eature ;roup String 5escription
JModule -eviceL 2!'M supports the declaration of module device =AC'%"> in the
namespace and will enumerate o0#ects under the module device scope.
J'rocessor -eviceL 2!'M supports the declaration of processors in the namespace using the
AC'%9 processor device @%-.
J3. Thermal ModelL 2!'M supports the e/tensions to the AC'% thermal model in 3evision
3..
J./tended Address !pace
-escriptorL
2!'M supports the ./tended Address !pace -escriptor
J3. C!C' ./tensionsL 2!'M evaluates C!C' with the additional acoustic limit and power limit
arguments defined in AC'% 3..
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2+" Advanced Configuration and 'ower %nterface !pecification
C2!% ./ample A!1 using 2! vendor defined string<
Scope (_SB) //Scope

!ame (<00S$ () // :lobal variable for t1pe of 0S.


// <hi2 method2 2et2 the P<00SP variable dependin, on the t1pe of 0S
// in2talled on the 212tem.
// <00S L 4 // Window2 H= V S%
// <00S L 3 // Window2 ;e.
// <00S L F // Window2 3((( 0S or above ver2ion.
// <00S L . // Window2 RP 0S or above ver2ion.
;ethod (_#!#)

#f ()ondRef0f (_0S#$6ocal())

#f (\_0S# (PWindow2 3((4P))

Store(.$ <00S)
/
/
%l2e

Store (\_0S$ local()


#f (6%8ual (local($ P;icro2oft Window2 !<P))

Store (F$ <00S)


/
%l2e#f (6%8ual (6ocal($ P;icro2oft Window2P))

Store (4$ <00S)


/
%l2e#f (6%8ual (6ocal($ P;icro2oft Window2;%>;illennium %ditionP))

Store (3$ <00S)


/
/
/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2+*
C2!% ./ample A!1 using an AC'% defined string<
Scope (_SB)
;ethod (_#!#)
#f ()ondRef0f (_0S#$6ocal())
#f (\_0S# (P;odule DeviceP))
//%-po2e P)# Root Brid,e under ;odule Device
6oad<able('0%;4P$ '0%;#DP$ '<able4P$$$)/
%l2e
// %-po2e P)# Root Brid,e under \_SB W 0S doe2 not 2upport ;odule Device
6oad<able('0%;4P$ '0%;#DP$ '<able3P$$$)/
/
%l2e
// Default Behavior
6oad<able('0%;4P$ '0%;#DP$ '<able3P$$$)/
/ //_#!# ;ethod
/ //_SB 2cope
DefinitionBloc+ (';D4SSD<.amlP$'0%;4P$(-(3$
'0%;#DP$ P<able4P$ ()
Scope(\_SB)
Device (\_SB.!0D()
!ame (_"#D$ P&)P#(((.P) // ;odule device
!ame (_X#D$ ()
!ame (_PRS$ Re2ource<emplate() ... /)
;ethod (_SRS$ 4) ... /
;ethod (_)RS$ () ... /
Device (P)#() // P)# Root Brid,e
!ame (_"#D$ %#S&#D(PP!P(&(FP))
!ame (_X#D$ ()
!ame (_BB!$ (-(()
!ame (_PRS$ Re2ource<emplate () .../)
/ // end of P)# Root Brid,e
/ // end of ;odule device
/ // end of \_SB Scope
/ // end of Definition Bloc+
DefinitionBloc+ (';D4SSD<.amlP$'0%;4P$(-(3$
'0%;#DP$ P<able3P$ ()
Scope(\_SB)
Device (P)#() // P)# Root Brid,e
!ame (_"#D$ %#S&#D(PP!P(&(FP))
!ame (_X#D$ ()
!ame (_BB!$ (-(()
!ame (_PRS$ Re2ource<emplate () .../)
/ // end of P)# Root Brid,e
/ // end of \_SB Scope
/ // end of Definition Bloc+
6.7.3 \_OS (OS Name Object)
This predefined o0#ect evaluates to a string that identifies the operating s(stem. %n ro0ust 2!'M
implementations, BC2! evaluates differentl( for each 2! release. This ma( allow AM1 code to
accommodate differences in 2!'M implementations. This value does not change with different revisions of
the AM1 interpreter.
6.7.4 \_REV (Revision Data Object)
This predefined o0#ect evaluates to the revision of the AC'% !pecification that the specified BC2!
implements as a -W23-. 1arger values are newer revisions of the AC'% specification.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2++ Advanced Configuration and 'ower %nterface !pecification
6.8 System Confguration Objects
6.8.1 _PIC Method
The BC'%C optional method is to report to the ;%2! the current interrupt model used 0( the 2!. This control
method returns nothing. The argument passed into the method signifies the interrupt model 2!'M has
chosen, '%C mode, A'%C mode, or !A'%C mode. Notice that calling this method is optional for 2!'M. %f
the method is never called, the ;%2! must assume '%C mode. %t is important that the ;%2! save the value
passed in 0( 2!'M for later use during wake operations.
DPIC>x?H
C'%C=> \) '%C Mode
C'%C=4> \) A'%C Mode
C'%C=2> \) !A'%C Mode
C'%C=3&n> \) 3eserved
7 Confguration
This section specifies the o0#ects 2!'M uses to configure devices. There are three t(pes of configuration
o0#ects<
-evice identification o0#ects associate platform devices with 'lug and 'la( %-s.
-evice configuration o0#ects declare and configure hardware resources and characteristics for
devices enumerated via AC'%.
-evice insertion and removal o0#ects provide mechanisms for handling d(namic insertion and
removal of devices.
This section also defines the AC'% deviceIresource descriptor formats. -eviceIresource descriptors are
used as parameters 0( some of the device configuration o0#ects.
7.1 Device Identifcation Objects
-evice identification o0#ects associate each platform device with a 'lug and 'la( device %- for each
device. All the device identification o0#ects are listed Ta0le +&4<
Ta!le --+ 5evice Identification 3!Cects
3!Cect 5escription
CA-3 20#ect that evaluates to a deviceMs address on its parent 0us.
CC%- 20#ect that evaluates to a deviceMs 'lug and 'la(&compati0le %- list.
C--N 20#ect that associates a logical software name =for e/ample, C2M4> with a device.
C@%- 20#ect that evaluates to a deviceMs 'lug and 'la( hardware %-.
CM1! 20#ect that provides a human reada0le description of a device in multiple languages.
C'1- 20#ect that provides ph(sical location description information.
C!,N 20#ect that evaluates to the slot&uni:ue %- num0er for a slot.
C!T3 20#ect that contains a ,nicode identifier for a device.
C,%- 20#ect that specifies a deviceMs uni:ue persistent %-, or a control method that generates it.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2+9
5or an( device that is not on an enumera0le t(pe of 0us =for e/ample, an %!A 0us>, 2!'M enumerates the
devicesM 'lug and 'la( %-=s> and the AC'% ;%2! must suppl( an C@%- o0#ect =plus an optional CC%-
o0#ect> for each device to ena0le 2!'M to do that. 5or devices on an enumera0le t(pe of 0us, such as a 'C%
0us, the AC'% s(stem must identif( which device on the enumera0le 0us is identified 0( a particular 'lug
and 'la( %-K the AC'% ;%2! must suppl( an CA-3 o0#ect for each device to ena0le this. A device o0#ect
must contain either an C@%- o0#ect or an CA-3 o0#ect, 0ut can contain 0oth.
%f an( of these o0#ects are implemented as control methods, these methods ma( depend on operation
regions. !ince the control methods ma( 0e evaluated 0efore an operation region provider 0ecomes
availa0le, the control method must 0e structured to e/ecute in the a0sence of the operation region provider.
=C3.$ methods notif( the ;%2! of the presence of operation region providers.> When a control method
cannot determine the current state of the hardware due to a lack of operation region provider, it is
recommended that the control method should return the condition that was true at the time that control
passed from the ;%2! to the 2!. =The control method should return a default, 0oot value>.
7.1.1 _ADR (Address)
This o0#ect is used to suppl( 2!'M with the address of a device on its parent 0us. An CA-3 o0#ect must
0e used when specif(ing the address of an( device on a 0us that has a standard enumeration algorithm =see
".9, JConfiguration and 'lug and 'la(L, for the situations when these devices do appear in the AC'% name
space>.
An CA-3 o0#ect can 0e used to provide capa0ilities to the specified address even if a device is not present.
This allows the s(stem to provide capa0ilities to a slot on the parent 0us.
2!'M infers the parent 0us from the location of the CA-3 o0#ectMs device package in the AC'%
namespace. 5or more information a0out the positioning of device packages in the AC'% namespace, see
section 49.*.28, J-eviceI-eclare ;usF-evice 'ackage.L
CA-3 o0#ect information must 0e static and can 0e defined for the following 0us t(pes listed in Ta0le +&2.
Ta!le --& DA5" 3!Cect <us T)pes
<2S Address encoding
.%!A .%!A slot num0er I5
5lopp( ;us -rive select values used for programming the flopp( controller to access the specified
%NT43 unit num0er. The CA-3 20#ects should 0e sorted 0ased on drive select encoding
from &3.
%-. Controller I'rimar( Channel, 4I!econdar( Channel
%-. Channel IMaster drive, 4I!lave drive
%ntel] @igh
-efinition Audio
@igh word I !-% =!erial -ata %n> %- of the codec that contains the function group.
1ow word I Node %- of the function group.
'C% @igh wordI-evice Y, 1ow wordI5unction Y. =for e/ample, device 3, function 2 is
/32>. To refer to all the functions on a device Y, use a function num0er of
5555>.
'CMC%A !ocket YK I5irst !ocket
'C CA3- !ocket YK I5irst !ocket
!erial ATA !ATA 'ort< @igh wordP3oot port Y, 1ow wordPport num0er off of a !ATA port
multiplier, or /5555 if no port multiplier attached. =5or e/ample, root port 2 would 0e
/25555. %f instead a port multiplier had 0een attached to root port 2, the ports
connected to the multiplier would 0e encoded /2, /24, etc.> The
value /55555555 is reserved.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
2+8 Advanced Configuration and 'ower %nterface !pecification
<2S Address encoding
!M;us 1owest !lave Address
,!; 3oot @,; 2nl( one child of the host controller. %t must have an CA-3 of . No other children or
values of CA-3 are allowed.
,!; 'orts 'ort num0er
7.1.2 _CID (Compatible ID)
This optional o0#ect is used to suppl( 2!'M with a deviceMs 'lug and 'la(&Compati0le -evice %-. ,se
CC%- o0#ects when a device has no other defined hardware standard method to report its compati0le %-s.
A CC%- o0#ect evaluates to either<
A single Compati0le -evice %-
A package of Compati0le -evice %-s for the device P in the order of preference, highest preference
first.
.ach Compati0le -evice %- must 0e either<
A valid @%- value =a 32&0it compressed .%!A t(pe %- or a string such as JAC'%"L>.
A string that uses a 0us&specific nomenclature. 5or e/ample, CC%- can 0e used to specif( the 'C% %-.
The format of a 'C% %- string is one of the following<
PCI\CC_ccss
PCI\CC_ccsspp
PCI\VEN_!DEV_""""!#$B#Y#_ssssssss!REV_rr
PCI\VEN_!DEV_""""!#$B#Y#_ssssssss
PCI\VEN_!DEV_""""!REV_rr
PCI\VEN_!DEV_""""
Where<
cc I he/adecimal representation of the Class Code 0(te
ss I he/adecimal representation of the !u0class Code 0(te
pp I he/adecimal representation of the 'rogramming %nterface 0(te
vvvv I he/adecimal representation of the Dendor %-
dddd I he/adecimal representation of the -evice %-
ssssssss I he/adecimal representation of the !u0s(stem %-
rr I he/adecimal representation of the 3evision 0(te
A compati0le %- retrieved from a CC%- o0#ect is onl( meaningful if it is a non&N,11 value.
./ample A!1<
Device (RS7)
!ame (_"#D$ %#S&#D (PP!P(F(FP)) // P) Ae1board )ontroller
!ame (_)#D$ %#S&#D (PP!P(F(BP))
/
7.1.3 _DDN (DOS Device Name)
This o0#ect is used to associate a logical name =for e/ample, C2M4> with a device. This name can 0e used
0( applications to connect to the device.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 2+6
7.1.4 _HID (Hardware ID)
This o0#ect is used to suppl( 2!'M with the deviceMs 'lug and 'la( hardware %-.
8
When descri0ing a
platform, use of an( C@%- o0#ects is optional. @owever, a C@%- o0#ect must 0e used to descri0e an( device
that will 0e enumerated 0( 2!'M. 2!'M onl( enumerates a device when no 0us enumerator can detect the
device %-. 5or e/ample, devices on an %!A 0us are enumerated 0( 2!'M. ,se the CA-3 o0#ect to descri0e
devices enumerated 0( 0us enumerators other than 2!'M.
A C@%- o0#ect evaluates to either a numeric 32&0it compressed .%!A t(pe %- or a string. %f a string, the
format must 0e an alphanumeric 'N' or AC'% %- with no asterisk or other leading characters.
A valid 'N' %- must 0e of the form '&&&QQQQ* where A is an uppercase letter and Y is a he/ digit. A
valid AC'% %- must 0e of the form '&)P#QQQQ* where Y is a he/ digit.
./ample A!1<
!ame (_"#D$ %#S&#D (PP!P()()P)) // )ontrolE;ethod Power Button
!ame (_"#D$ %#S&#D (P#!<(=((P)) // 5irmware "ub
!ame (_"#D$ P&)P#(((FP) // &) adapter device
7.1.5 _MLS (Multiple Language String)
The CM1! o0#ect provides 2!'M a human reada0le description of a device in multiple languages. This
information ma( 0e provided to the end user when the 2!'M is una0le to get an( other information a0out
this device. Although this functionalit( is also provided 0( the C!T3 o0#ect, CM1! e/pands that
functionalit( and provides vendors with the capa0ilit( to provide multiple strings in multiple languages.
The CM1! o0#ect evaluates to a package of packages. .ach su0&package consists of a 1anguage identifier
and corresponding unicode string for a given locale. !pecif(ing a language identifier allows 2!'M to
easil( determine if support for displa(ing the ,nicode string is availa0le. 2!'M can use this information
to determine whether or not to displa( the device string, or which string is appropriate for a userMs preferred
locale.
%t is assumed that 2!'M will alwa(s support the primar( .nglish locale to accommodate .nglish
em0edded in a non&.nglish string, such as a 0rand name.
%f 2!'M doesnMt support the specific su0&language %- it ma( choose to use the primar( language %- for
displa(ing device te/t.
The package is of the following format<
'ackage=> _ 'ackage=>_1anguage %-, ,nicode device description string`,
'ackage=>_1anguage %-, ,nicode device description string`,
N
`
1anguage %- <\ string <\ a string identif(ing the language. This string follows the format specified in
35C 3++. Additionall(, the following strings are supported<
,nicode device description string <\ ,nicode =,T5&4+> string . The ,nicode device description string
contains the language&specific description of the device corresponding to the 1anguage%-.
./ample A!1<
8
A 'lug and 'la( =.%!A> %- can 0e o0tained 0( sending e&mail to pnpidamicrosoft.com.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
29 Advanced Configuration and 'ower %nterface !pecification
Device (RS7)
!ame (_&DR$ (-(((3(((4)
!ame ( _;6S$ Pac+a,e() Pac+a,e(3)'en*$ Xnicode(P&);% 2uper D@D
controllerP)//)
/
%n addition to supporting the e/isting strings in 35C 3++, Ta0le +&3 lists aliases that are also supported.
Ta!le --# Additional Alias Strings
35C !tring !upported Alias !tring
Hh&@ans Hh&chs
Hh&@ant Hh&cht
7.1.6 _PLD (Physical Device Location)
This optional o0#ect is a method that conve(s to 2!'M a general description of the ph(sical location of a
deviceMs e/ternal connection point. The C'1- ma( 0e child o0#ect for an( AC'% Namespace o0#ect the
s(stem wants to descri0e. This information can 0e used 0( s(stem software to descri0e to the user which
specific connector or device input mechanism ma( 0e used for a given task or ma( need user intervention
for correct operation. The C'1- should onl( 0e evaluated when its parent device is present as indicated 0(
the deviceMs presence mechanism =i.e. C!TA or other>
An e/ternall( e/pose device connection point can reside on an( surface of a s(stemMs housing. The C'1-
method returns data to descri0e the general location of where the deviceMs connection point resides. 2ne
ph(sical device ma( have several connection points. A C'1- descri0es a single device connection point.
All data 0its are interpreted as though the user is facing the front of the s(stem. The data 0its also assume
that if the s(stem is capa0le of opening up like a laptop that the device ma( e/ist on the 0ase of the laptop
s(stem or on the lid. %n the case of the latter, the J1idL 0it =descri0ed 0elow> should 0e set indicating the
device connection point is on the lid. %f the device is on the lid, the description descri0es the deviceMs
connection point location when the s(stem is opened with the lid up. %f the device connection point is not
on the lid, then the description descri0es the deviceMs connection point location when the s(stem with the
lid closed.
The location of a device connection point ma( change as a result of the s(stem connecting or disconnecting
to a docking station or a port replicator. As such, Notif( event of t(pe /8 will cause 2!'M to re&evaluate
the C'1- o0#ect residing under the particular device notified. %f a platform is una0le to detect the change
of connecting or disconnecting to a docking station or port replicator, a C'1- o0#ect should not 0e used to
descri0e the device connection points that will change location after such an event.
This method returns a package containing, a single or multiple 0uffer entries. At least one 0uffer entr(
must 0e returned using the 0it definitions 0elow.
Arguments<
None

;uffer 3esult Code<
;it +< I 3evision. The current revision is /4K all other values are reserved.
;it 9 I %gnore Color. %f this 0it is set, the Color field is ignored, as the color is unknown.
;it 34<8 I Color I 2"0it 3$; value for the color of the device connection point.
;it "9<32 I Width< -escri0es, in millimeters, the width =widest point> of the device connection point.
;it +3<"8 I @eight< -escri0es, in millimeters, the height of the device connection.
;it +" I ,ser Disi0le< !et if the device connection point can 0e seen 0( the user.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 294
;it +* I -ock< !et if the device connection point resides in a docking station or port replicator.
;it ++ I 1id< !et if this device connection point resides on the lid of laptop s(stem.
;it +6<+9 I 'anel< -escri0es which panel surface of the s(stemMs housing the device connection point
resides on.
I Top
4 I ;ottom
2 I 1eft
3 I 3ight
" I 5ront
* I ;ack
+ I ,nknown =Dertical 'osition and @oriHontal 'osition will 0e ignored>
;it 94<9 I Dertical 'osition on the panel where the device connection point resides.
I ,pper
4 I Center
2 I 1ower
;it 93<92 I @oriHontal 'osition on the panel where the device connection point resides.
I 1eft
4 I Center
2 I 3ight
;it 99<9" I !hape< -escri0es the shape of the device connection point.
I 3ound
4 I 2val
2 I !:uare
3 I Dertical 3ectangle
" I @oriHontal 3ectangle
* I Dertical TrapeHoid
+ I @oriHontal TrapeHoid
9 I ,nknown
;it 98 I $roup 2rientation< if !et, indicates vertical grouping, otherwise horiHontal is assumed.
;it 8+<96 I $roup Token< ,ni:ue numerical value identif(ing a group.
;it 6"<89 I $roup 'osition< %dentifies this device connection pointMs position in the group =i.e. 4
st
, 2
nd
>
;it 6* I ;a(< !et if descri0ing a device in a 0a( or if device connection point is a 0a(.
;it 6+ I .#ecta0le< !et if the device is e#ecta0le. %ndicates e#ecta0ilit( in the a0sence of C.7/ o0#ects.
;it 69 I 2!'M .#ection re:uired< !et if 2!'M needs to 0e involved with e#ection process. ,ser&
operated ph(sical hardware e#ection is not possi0le. ;it 4*<68 I Ca0inet Num0er. 5or single ca0inet
s(stem, this field is alwa(s .
;it 443<4+ I Card cage Num0er. 5or single card cage s(stem, this field is alwa(s .
;it 429<44" I 3eserved, must contain a value of .
All additional 0uffer entries returned, ma( contain 2.M specific data, 0ut must 0egin in a _$,%-, data`
pair. These additional data ma( provide complimentar( ph(sical location information specific to certain
s(stems or class of machines.
;uffers 4 I N 3esult Code =2ptional><
;uffer 4 ;it 429< I $,%- 4
;uffer 2 ;it 429< I -ata 4
;uffer 3 ;it 429< I $,%- 2
;uffer " ;it 429< I -ata 2
NN
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
292 Advanced Configuration and 'ower %nterface !pecification
7.1.7 _STR (String)
The C!T3 o0#ect evaluates to a ,nicode string that ma( 0e used 0( an 2! to provide information to an end
user descri0ing the device. This information is particularl( valua0le when no other information is availa0le.
./ample A!1<
Device (RS7)
!ame (_&DR$ (-(((3(((4)
!ame (_S<R$ Xnicode (P&);% 2uper D@D controllerP))
/
Then, when all else fails, an 2! can use the info included in the C!T3 o0#ect to descri0e the hardware to
the user.
7.1.8 _SUN (Slot User Number)
C!,N is an o0#ect that evaluates to the slot&uni:ue %- num0er for a slot. C!,N is used 0( 2!'M ,% to
identif( slots for the user. 5or e/ample, this can 0e used for 0atter( slots, 'C% slots, 'CMC%A slots, or
swappa0le 0a( slots to inform the user of what devices are in each slot. C!,N evaluates to an integer that is
the num0er to 0e used in the user interface. This num0er is re:uired to 0e uni:ue among the slots of the
same t(pe. %t is also recommended that this num0er match the slot num0er printed on the ph(sical slot
whenever possi0le.
7.1.9 _UID (Unique ID)
This o0#ect provides 2!'M with a logical device %- that does not change across re0oots. This o0#ect is
optional, 0ut is re:uired when the device has no other wa( to report a persistent uni:ue device %-. The
C,%- must 0e uni:ue across all devices with either a common C@%- or CC%-. This is 0ecause a device
needs to 0e uni:uel( identified to the 2!'M, which ma( match on either a C@%- or a CC%- to identif( the
device. The uni:ueness match must 0e true regardless of whether the 2!'M uses the C@%- or the CC%-.
2!'M t(picall( uses the uni:ue device %- to ensure that the device&specific information, such as network
protocol 0inding information, is remem0ered for the device even if its relative location changes. 5or most
integrated devices, this o0#ect contains a uni:ue identifier.
A C,%- o0#ect evaluates to either a numeric value or a string.
7.2 Device Confguration Objects
This section descri0es o0#ects that provide 2!'M with device specific information and allow 2!'M to
configure device operation and resource utiliHation.
2!'M uses device configuration o0#ects to configure hardware resources for devices enumerated via AC'%.
-evice configuration o0#ects provide information a0out current and possi0le resource re:uirements, the
relationship 0etween shared resources, and methods for configuring hardware resources.
0oteH these o0#ects must onl( 0e provided for devices that cannot 0e configured 0( an( other hardware
standard such as 'C%, 'CMC%A, and so on.
When 2!'M enumerates a device, it calls C'3! to determine the resource re:uirements of the device. %t
ma( also call CC3! to find the current resource settings for the device. ,sing this information, the 'lug and
'la( s(stem determines what resources the device should consume and sets those resources 0( calling the
deviceMs C!3! control method.
%n AC'%, devices can consume resources =for e/ample, legac( ke(0oards>, provide resources =for e/ample,
a proprietar( 'C% 0ridge>, or do 0oth. ,nless otherwise specified, resources for a device are assumed to 0e
taken from the nearest matching resource a0ove the device in the device hierarch(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 293
!ome resources, however, ma( 0e shared amongst several devices. To descri0e this, devices that share a
resource =resource consumers> must use the e/tended resource descriptors =/9&/A> descri0ed in section
+.".3, J1arge 3esource -ata T(pe.L These descriptors point to a single device o0#ect =resource producer>
that claims the shared resource in its C'3!. This allows 2!'M to clearl( understand the resource
dependencies in the s(stem and move all related devices together if it needs to change resources.
5urthermore, it allows 2!'M to allocate resources onl( to resource producers when devices that consume
that resource appear.
The device configuration o0#ects are listed in Ta0le +&".
Ta!le --( 5evice Configuration 3!Cects
3!Cect 5escription
CC3! 20#ect that specifies a deviceMs c'rrent resource settings, or a control method that generates
such an o0#ect.
C-%! Control method that disa0les a device.
C-MA 20#ect that specifies a deviceMs c'rrent resources for -MA transactions.
C5%A 20#ect used to provide correlation 0etween the fi/ed&hardware register 0locks defined in the
5A-T and the devices that implement these fi/ed&hardware registers.
C$!; 20#ect that provides the $lo0al !(stem %nterrupt ;ase for a hot&plugged %F2 A'%C device.
C@'' 20#ect that specifies the cache&line siHe, latenc( timer, !.33 ena0le, and '.33 ena0le values
to 0e used when configuring a 'C% device inserted into a hot&plug slot or initial configuration
of a 'C% device at s(stem 0oot.
C@'A 20#ect that provides device parameters when configuring a 'C% device inserted into a hot&plug
slot or initial configuration of a 'C% device at s(stem 0oot. !upersedes C@''.
CMAT 20#ect that evaluates to a 0uffer of MA-T A'%C !tructure entries.
C2!C An o0#ect 2!'M evaluates to conve( specific software support F capa0ilities to the platform
allowing the platform to configure itself appropriatel(.
C'3! An o0#ect that specifies a deviceMs possible resource settings, or a control method that generates
such an o0#ect.
C'3T 20#ect that specifies the 'C% interrupt routing ta0le.
C'AM 20#ect that specifies a pro/imit( domain for a device.
C!1% 20#ect that provides updated distance information for a s(stem localit(.
C!3! Control method that sets a deviceMs settings.
7.2.1 _CRS (Current Resource Settings)
This re:uired o0#ect evaluates to a 0(te stream that descri0es the s(stem resources currentl( allocated to a
device. Additionall(, a 0us device must suppl( the resources that it decodes and can assign to its children
devices. %f a device is disa0led, then CC3! returns a valid resource template for the device, 0ut the actual
resource assignments in the return 0(te stream are ignored. %f the device is disa0led when CC3! is called, it
must remain disa0led.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
29" Advanced Configuration and 'ower %nterface !pecification
The format of the data contained in a CC3! o0#ect follows the formats defined in section +.", J3esource
-ata T(pes for AC'%,L a compati0le e/tension of the formats specified in the 'N';%2! specification.
6
The
resource data is provided as a series of data structures, with each of the resource data structures having a
uni:ue tag or identifier. The resource descriptor data structures specif( the standard 'C s(stem resources,
such as memor( address ranges, %F2 ports, interrupts, and -MA channels.
Arguments<
None
3esult Code<
;(te stream
7.2.2 _DIS (Disable)
This control method disa0les a device. When the device is disa0led, it must not 0e decoding an( hardware
resources. 'rior to running this control method, 2!'M will have alread( put the device in the -3 state.
When a device is disa0led via the C-%!, the C!TA control method for this device must return with the
-isa0led 0it set.
Arguments<
None
3esult Code<
None
7.2.3 _DMA (Direct Memory Access)
This optional o0#ect returns a 0(te stream in the same format as a CC3! o0#ect. C-MA is onl( defined
under devices that represent 0uses. %t specifies the ranges the 0us controller =0ridge> decodes on the child&
side of its interface. =This is analogous to the CC3! o0#ect, which descri0es the resources that the 0us
controller decodes on the parent&side of its interface.> An( ranges descri0ed in the resources of a C-MA
o0#ect can 0e used 0( child devices for -MA or 0us master transactions.
The C-MA o0#ect is onl( valid if a CC3! o0#ect is also defined. 2!'M must re&evaluate the C-MA o0#ect
after an C!3! o0#ect has 0een e/ecuted 0ecause the C-MA ranges resources ma( change depending on
how the 0ridge has 0een configured.
%f the C-MA o0#ect is not present for a 0us device, the 2! assumes that an( address placed on a 0us 0( a
child device will 0e decoded either 0( a device on the 0us or 0( the 0us itself, =in other words, all address
ranges can 0e used for -MA>.
5or e/ample, if a platform implements a 'C% 0us that cannot access all of ph(sical memor(, it has a C-MA
o0#ect under that 'C% 0us that descri0es the ranges of ph(sical memor( that can 0e accessed 0( devices on
that 0us.
A C-MA o0#ect is not meant to descri0e an( Jmap registerL hardware that is set up for each -MA
transaction. %t is meant onl( to descri0e the -MA properties of a 0us that cannot 0e changed without
reevaluating the C!3! method.
Arguments<
None
3esult Code<
;(te stream
C-MA ./ample A!1<
6
'lug and 'la( ;%2! !pecification Dersion 4.A, Ma( *, 466", Compa: Computer Corp., %ntel Corp.,
'hoeni/ Technologies 1td.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 29*
Device(BXS()

//
// <he _D;& method return2 a re2ource template de2cribin, the
// addre22e2 that are decoded on the child 2ide of thi2
// brid,e. <he contained re2ource de2criptor2 thu2 indicate
// the addre22 ran,e2 that bu2 ma2ter2 livin, below thi2
// brid,e can u2e to 2end acce22e2 throu,h the brid,e toward a
// de2tination el2ewhere in the 212tem (e.,. main memor1).
//
// #n our ca2e$ an1 bu2 ma2ter addre22e2 need to fall between
// ( and (-=((((((( and will have (-3(((((((( added a2 the1
// cro22 the brid,e. 5urthermore$ an1 childE2ide acce22e2
// fallin, into the ran,e claimed in our _)RS will be
// interpreted a2 a peerEtoEpeer traffic and will not be
// forwarded up2tream b1 the brid,e.
//
// 0ur up2tream addre22 decoder will onl1 claim one ran,e from
// (-3((((((( to (-Gfffffff in the _)RS. <herefore _D;&
// 2hould return two JW0RD;emor1 de2criptor2$ one de2cribin,
// the ran,e below and one de2cribin, the ran,e above thi2
// PpeerEtoEpeerP addre22 ran,e.
//
;ethod(_D;&$ Re2ource<emplate()

JW0RD;emor1(
Re2ource)on2umer$
Po2Decode$ // _D%)
;in5i-ed$ // _;#5
;a-5i-ed$ // _;&5
Prefetchable$ // _;%;
ReadWrite$ // _RW
($ // _:R&
($ // _;#!
(-4fffffff$ // _;&R
(-3(((((((($ // _<R&
(-3((((((($ // _6%!
$
$
$
)
JW0RD;emor1(
Re2ource)on2umer$
Po2Decode$ // _D%)
;in5i-ed$ // _;#5
;a-5i-ed$ // _;&5
Prefetchable$ // _;%;
ReadWrite$ // _RW
($ // _:R&
(-I((((((($ // _;#!
(-Tfffffff$ // _;&R
(-3(((((((($ // _<R&
(-3((((((($ // _6%!
$
$
$
)
/)
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
29+ Advanced Configuration and 'ower %nterface !pecification
7.2.4 _FIX (Fixed Register Resource Provider)
This optional o0#ect is used to provide a correlation 0etween the fi/ed&hardware register 0locks defined in
the 5A-T and the devices in the AC'% namespace that implement these fi/ed&hardware registers. This
o0#ect evaluates to a package of 'lug and 'la(&compati0le %-s =32&0it compressed .%!A t(pe %-s> that
correlate to the fi/ed&hardware register 0locks defined in the 5A-T. The device under which C5%A appears
pla(s a role in the implementation of the fi/ed&hardware =for e/ample, implements the hardware or decodes
the hardwareMs address>. C5%A conve(s to 2!'M whether a given device can 0e disa0led, powered off, or
should 0e treated speciall( 0( conve(ing its role in the implementation of the AC'% fi/ed&hardware register
interfaces. This o0#ect takes no arguments.
The CC3! o0#ect descri0es a deviceMs resources. That CC3! o0#ect ma( contain a superset of the resources
in the 5A-T, as the device ma( actuall( decode resources 0e(ond what the 5A-T re:uires. 5urthermore, in
a machine that performs translation of resources within %F2 0ridges, the processor&relative resources in the
5A-T ma( not 0e the same as the 0us&relative resources in the CC3!.
.ach of fields in the 5A-T has its own corresponding 'lug and 'la( %-, as shown 0elow<
'N'C2 & !M%CCM-
'N'C24 & 'M4aC.DTC;1E F AC 'M4aC.DTC;1E
'N'C22 & 'M40C.DTC;1E F AC'M40C.DTC;1E
'N'C23 & 'M4aCCNTC;1E F AC'M4aCCNTC;1E
'N'C2" & 'M40CCNTC;1E F AC 'M40CCNTC;1E
'N'C2* & 'M2CCNTC;1E F AC 'M2CCNTC;1E
'N'C2+ & 'MCTM3C;1E F AC 'MCTM3C;1E
'N'C29 & $'.C;1E F AC$'.C;1E
'N'C28 & $'.4C;1E F AC $'.4C;1E
'N'; I 5%A.-C3TC
'N';4 I 5%A.-C3TC
'N';2 I 5%A.-C3TC
./ample A!1 for C5%A usage<
Scope(\_SB)
Device(P)#() // Root P)# Bu2
!ame(_"#D$ %#S&#D(PP!P(&(FP)) // !eed _"#D for root device
!ame(_&DR$() // Device ( on thi2 bu2
;ethod (_)RS$() // !eed current re2ource2 for root device
// Return current re2ource2 for root brid,e (
/
!ame(_PR<$ Pac+a,e() // !eed P)# #RJ routin, for P)# brid,e
// Pac+a,e with P)# #RJ routin, table information
/)
!ame(_5#R$ Pac+a,e(4)
%#S&#D(PP!P()3GP)/ // P;3 control #D
)
Device (PR.() // #S&
!ame(_&DR$(-(((T(((()
!ame(_5#R$ Pac+a,e(4)
%#S&#D(PP!P()3(P)/ // S;# command port
)
Device (!S4T) // !S4T (!at. Semi F4T$ an &)P# part)
!ame(_"#D$ %#S&#D(PP!P()(3P))
!ame(_5#R$ Pac+a,e(F)
%#S&#D(PP!P()33P)$ // P;4b event #D
%#S&#D(PP!P()3.P)$ // P;4b control #D
%#S&#D(PP!P()3=P)/ // :P%4 #D
/
/ // end PR.(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 299
Device (PR.F) // P; )ontrol
!ame(_&DR$(-(((T(((F)
!ame(_5#R$ Pac+a,e(.)
%#S&#D(PP!P()34P)$ // P;4a event #D
%#S&#D(PP!P()3FP)$ // P;4a control #D
%#S&#D(PP!P()3IP)$ // P; <imer #D
%#S&#D(PP!P()3TP)/ // :P%( #D
)
/ // end PR.F
/ // end P)#(
/ // end 2cope SB
7.2.5 _GSB (Global System Interrupt Base)
C$!; is an optional o0#ect that evaluates to an integer that corresponds to the $lo0al !(stem %nterrupt ;ase
for the corresponding %F2 A'%C device. The %F2 A'%C device ma( either 0e 0us enumerated =e.g. as a 'C%
device> or enumerated in the name space as descri0ed in !ection 6.48,L%F2 A'%C -eviceL. An( %F2 A'%C
device that either supports hot&plug or is not descri0ed in the MA-T must contain a C$!; o0#ect.
%f the %F2 A'%C device also contains a CMAT o0#ect, 2!'M evaluates the C$!; o0#ect first 0efore
evaluating the CMAT o0#ect. ;( providing the $lo0al !(stem %nterrupt ;ase of the %F2 A'%C, this o0#ect
ena0les 2!'M to process onl( the CMAT entries that correspond to the %F2 A'%C device. !ee section +.2.8,
JCMAT =Multiple A'%C Ta0le .ntr(>L. !ince CMAT is allowed to potentiall( return all the MA-T entries
for the entire platform, C$!; is needed in the %F2 A'%C device scope to ena0le 2!'M to identif( the
entries that correspond to that device.
%f an %F2 A'%C device is activated 0( a device&specific driver, the ph(sical address used to access the %F2
A'%C will 0e e/posed 0( the driver and cannot 0e determined from the CMAT o0#ect. %n this case, 2!'M
cannot use the CMAT o0#ect to determine the $lo0al !(stem %nterrupt ;ase corresponding to the %F2 A'%C
device and hence re:uires the C$!; o0#ect.
Arguments<
None
3esults<
+"&0it value representing the $lo0al !(stem %nterrupt ;ase for the corresponding %F2A'%C device
as defined in !ection *.2.42, J$lo0al !(stem %nterruptsL.
./ample A!1 for C$!; usage for a non&'C% 0ased %F2 A'%C -evice<
Scope(\_SB)
Y
Device(&P#)) // #/0 &P#) Device
!ame(_"#D$ '&)P#(((H*) // &)P# #D for #/0 &P#)
!ame(_)RS$ Re2ource<emplate()
Y/) // onl1 one re2ource pointin, to #/0 &P#) re,i2ter ba2e
;ethod(_:SB)
Return ((-4() // :lobal S12tem #nterrupt Ba2e for #/0 &P#) 2tart2 at 4I
/
/ // end &P#)
/ // end 2cope SB
./ample A!1 for C$!; usage for a 'C%&0ased %F2 A'%C -evice<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
298 Advanced Configuration and 'ower %nterface !pecification
Scope(\_SB)
Device(P)#() // "o2t brid,e
!ame(_"#D$ %#S&#D(PP!P(&(FP)) // !eed _"#D for root device
!ame(_&DR$ ()
Device(P)#4) // #/0 &P#) P)# Device
!ame(_&DR$(-(((T(((()
;ethod(_:SB)
Return ((-4=) // :lobal S12tem #nterrupt Ba2e for #/0 &P#) 2tart2 at 3.
/
/ // end P)#4
/ // end P)#(
/ // end 2cope SB
7.2.6 _HPP (Hot Plug Parameters)
This optional o0#ect evaluates to the cache&line siHe, latenc( timer, !.33 ena0le, and '.33 ena0le values
to 0e used when configuring a 'C% device inserted into a hot&plug slot or for performing configuration of a
'C% devices not configured 0( the ;%2! at s(stem 0oot. The o0#ect is placed under a 'C% 0us where this
0ehavior is desired, such as a 0us with hot&plug slots. C@'' provided settings appl( to all child 0uses, until
another C@'' o0#ect is encountered.
Arguments<
None
3esult Code<
;ethod (_"PP$ ()
Return (Pac+a,e(.)
(-(=$ // )ache6ineSiCe in DW0RDS
(-.($ // 6atenc1<imer in P)# cloc+2
(-(4$ // %nable S%RR (Boolean)
(-(( // %nable P%RR (Boolean)
/)
/
Ta!le --A DHPP
6ield 6or%at 5efinition
Cache&line siHe %NT.$.3 Cache&line siHe reported in num0er of -W23-s.
1atenc( timer %NT.$.3 1atenc( timer value reported in num0er of 'C% clock c(cles.
.na0le !.33 %NT.$.3 When set to 4, indicates that action must 0e performed to ena0le !.33
in the command register.
.na0le '.33 %NT.$.3 When set to 4, indicates that action must 0e performed to ena0le '.33
in the command register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 296
7.2.6.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
28 Advanced Configuration and 'ower %nterface !pecification
7.2.6.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 284
Example: Using _HPP
Scope(\_SB)
Device(P)#() // Root P)# Bu2
!ame(_"#D$ %#S&#D(PP!P(&(FP)) // _"#D for root device
!ame(_&DR$() // Device ( on thi2 bu2
;ethod (_)RS$() // !eed current re2ource2 for root dev
// Return current re2ource2 for root brid,e (
/
!ame(_PR<$ Pac+a,e() // !eed P)# #RJ routin, for P)# brid,e
// Pac+a,e with P)# #RJ routin, table information
/)
Device (P3P4) // 5ir2t P)#EtoEP)# brid,e (!o "ot Plu, 2lot2)
!ame(_&DR$(-((()(((() // DeviceQ)h$ 5uncQ( on bu2 P)#(
!ame(_PR<$ Pac+a,e() // !eed P)# #RJ routin, for P)# brid,e
// Pac+a,e with P)# #RJ routin, table information
/)
/ // end P3P4
Device (P3P3) // Second P)#EtoEP)# brid,e (Bu2 contain2 "ot plu, 2lot2)
!ame(_&DR$(-(((%(((() // DeviceQ%h$ 5uncQ( on bu2 P)#(
!ame(_PR<$ Pac+a,e() // !eed P)# #RJ routin, for P)# brid,e
// Pac+a,e with P)# #RJ routin, table information
/)
!ame(_"PP$ Pac+a,e()(-(=$(-.($ (-(4$ (-((/)
// Device definition2 for Slot 4E "0< P6X: S60<
Device (S45() // Slot 4$ 5uncQ( on bu2 P3P3
!ame(_&DR$(-(((3(((()
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S454) // Slot 4$ 5uncQ4 on bu2 P3P3
!ame(_&DR$(-(((3(((4)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S453) // Slot 4$ 5uncQ3 on bu2 P3P3
!ame(_&DR$(-(((3(( (3)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S45F) // Slot 4$ 5uncQF on bu2 P3P3
!ame(_&DR$(-(((3(((F)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S45.) // Slot 4$ 5uncQ. on bu2 P3P3
!ame(_&DR$(-(((3(((.)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S45G) // Slot 4$ 5uncQG on bu2 P3P3
!ame(_&DR$(-(((3(((G)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S45I) // Slot 4$ 5uncQI on bu2 P3P3
!ame(_&DR$(-(((3(((I)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S45T) // Slot 4$ 5uncQT on bu2 P3P3
!ame(_&DR$(-(((3(((T)
;ethod(_%Z($ 4) // Remove all power to device/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
282 Advanced Configuration and 'ower %nterface !pecification
// Device definition2 for Slot 3E "0< P6X: S60<
Device (S35() // Slot 3$ 5uncQ( on bu2 P3P3
!ame(_&DR$(-(((F(((()
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S354) // Slot 3$ 5uncQ4 on bu2 P3P3
!ame(_&DR$(-(((F(((4)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S353) // Slot 3$ 5uncQ3 on bu2 P3P3
!ame(_&DR$(-(((F(((3)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S35F) // Slot 3$ 5uncQF on bu2 P3P3
!ame(_&DR$(-(((F(((F)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S35.) // Slot 3$ 5uncQ. on bu2 P3P3
!ame(_&DR$(-(((F(((.)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S35G) // Slot 3$ 5uncQG on bu2 P3P3
!ame(_&DR$(-(((F(((G)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S35I) // Slot 3$ 5uncQI on bu2 P3P3
!ame(_&DR$(-(((F(((I)
;ethod(_%Z($ 4) // Remove all power to device/
/
Device (S35T) // Slot 3$ 5uncQT on bu2 P3P3
!ame(_&DR$(-(((F(((T)
;ethod(_%Z($ 4) // Remove all power to device/
/
/ // end P3P3
/ // end P)#(
/ // end Scope (\_SB)
2!'M will configure a 'C% device on a card hot&plugged into slot 4 or slot 2, with a cache line siHe of 32
=Notice this field is in -W23-s>, latenc( timer of +", ena0le !.33, 0ut leave '.33 alone.
7.2.7 _HPX (Hot Plug Parameter Extensions)
This optional o0#ect provides settings that appl( to all child 0uses until another such o0#ect is encountered.
These settings are used when configuring a device inserted into a hot&plug slot or for performing
configuration of devices not configured 0( the ;%2! at s(stem 0oot. The o0#ect is placed under a 0us where
this 0ehavior is desired, such as a 0us with hot&plug slots. %t returns a package that contains one or more
setting records. .ach setting record contains a setting t(pe =%NT.$.3>, a revision num0er =%NT.$.3> and
t(peFrevision specific contents.
The C@'A method is e/tensi0le. The setting t(pe and revision num0er determine the format of the setting
record. %f 2!'M does not understand the setting t(pe of a setting record, it shall ignore the setting record. A
setting record with higher revision num0er supersedes that with lower revision num0er, however, the C@'A
method can return 0oth together, 2!'M shall use the one with highest revision num0er that it understands.
Arguments<
None
3esult Code<
A package of one or more 'C%=&A> !ettings packages defined 0elow.
The C@'A method supersedes the C@'' method.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 283
7.2.7.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
28" Advanced Configuration and 'ower %nterface !pecification
PCI Setting Record (Type 0)
The 'C% setting record contains the setting t(pe , the current revision 4 and the t(peFrevision specific
content< cache&line siHe, latenc( timer, !.33 ena0le, and '.33 ena0le values.
Ta!le --- PCI Setting "ecord Content
6ield 6or%at 5efinition
Cache&line siHe %NT.$.3 Cache&line siHe reported in num0er of -W23-s.
1atenc( timer %NT.$.3 1atenc( timer value reported in num0er of 'C% clock c(cles.
.na0le !.33 %NT.$.3 When set to 4, indicates that action must 0e performed to ena0le !.33 in
the command register.
.na0le '.33 %NT.$.3 When set to 4, indicates that action must 0e performed to ena0le '.33 in
the command register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 28*
7.2.7.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
28+ Advanced Configuration and 'ower %nterface !pecification
7.2.7.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 289
PCI-X Setting Record (Type 1)
The 'C%&A setting record contains the setting t(pe 4, the current revision 4 and the t(peFrevision specific
content< the ma/imum memor( read 0(te count setting, the average ma/imum outstanding split
transactions setting and the total ma/imum outstanding split transactions to 0e used when configuring 'C%&
A command registers for 'C%&A 0uses andFor devices.
Ta!le --. PCI-= Setting "ecord Content
6ield 6or%at 5efinition
Ma/imum memor( read
0(te count
%NT.$.3 ma/imum memor( read 0(te count reported<
Dalue < Ma/imum 0(te count *42,
Dalue 4< Ma/imum 0(te count 42",
Dalue 2< Ma/imum 0(te count 2"8,
Dalue 3< Ma/imum 0(te count "6+
Average ma/imum
outstanding split
transactions
%NT.$.3 The following values are defined,
Dalue < Ma/imum outstanding split transaction 4,
Dalue 4< Ma/imum outstanding split transaction 2,
Dalue 2< Ma/imum outstanding split transaction 3,
Dalue 3< Ma/imum outstanding split transaction ",
Dalue "< Ma/imum outstanding split transaction 8,
Dalue *< Ma/imum outstanding split transaction 42,
Dalue +< Ma/imum outstanding split transaction 4+,
Dalue 9< Ma/imum outstanding split transaction 32,
Total ma/imum outstanding
split transactions
%NT.$.3 !ee the definition for the average ma/imum outstanding split
transactions.
5or simplicit(, 2!'M could use the Average Ma/imum 2utstanding !plit Transactions value as the
Ma/imum 2utstanding !plit Transactions register value in the 'C%&A command register for each 'C%&A
device. Another alternative is to use a more sophisticated polic( and the Total Ma/imum 2utstanding !plit
Transactions Dalue to gain even more performance. %n this case, the 2! would e/amined each 'C%&A
device that is directl( attached to the host 0ridge, determine the num0er of outstanding split transactions
supported 0( each device, and configure each device accordingl(. The goal is to ensure that the aggregate
num0er of concurrent outstanding split transactions does not e/ceed the Total Ma/imum 2utstanding !plit
Transactions Dalue< an integer denoting the num0er of concurrent outstanding split transactions the host
0ridge can support =the minimum value is 4>.
This does not address providing additional information that would 0e used to configure registers in 0ridge
devices, 0e the( standard registers or device specific registers. %t is 0elieved that a driver for a 0ridge would
0e the 0est wa( to address 0oth of those issues. @owever, such a 0ridge driver should have access to the
C@'A method information to use in optimiHing its decisions on how to configure the 0ridge. Configuration
of a 0ridge is dependent on 0oth s(stem specific information such as these provided 0( the C@'A method,
as well as 0ridge specific information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
288 Advanced Configuration and 'ower %nterface !pecification
7.2.7.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 286
PCI Express Setting Record (Type 2)
The 'C% ./press setting record contains the setting t(pe 2, the current revision 4 and the t(peFrevision
specific content< ,ncorrecta0le .rror Mask 3egister setting, ,ncorrecta0le .rror !everit( 3egister setting
and the Correcta0le .rror Mask 3egister setting to 0e used when configuring 'C% ./press registers in the
Advanced .rror 3eporting ./tended Capa0ilit( !tructure for the 'C% ./press devices. 2!'M will onl(
evaluate C@'A with !etting 3ecord I T(pe 2 if 2!'M is not controlling the 'C% ./press Advanced .rror
3eporting capa0ilit(.
Ta!le --/ PCI 1xpress Setting "ecord Content
6ield 6or%at 5efinition
,ncorrecta0le
error mask
register setting
%NT.$.3 ;it to 34 contains the setting that the 2!'M uses to set the ,ncorrecta0le
.rror Mask 3egister in the Advanced .rror 3eporting ./tended Capa0ilit(
!tructure for the 'C% ./press devices.
,ncorrecta0le
error severit(
register setting
%NT.$.3 ;it to 34 contains the setting that the 2!'M uses to set the ,ncorrecta0le
.rror !everit( 3egister in the Advanced .rror 3eporting ./tended
Capa0ilit( !tructure for the 'C% ./press devices.
Correcta0le error
mask register
setting
%NT.$.3 ;it to 34 contains the setting that the 2!'M uses to set the Correcta0le
.rror Mask 3egister in the Advanced .rror 3eporting ./tended Capa0ilit(
!tructure for the 'C% ./press devices.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
26 Advanced Configuration and 'ower %nterface !pecification
7.2.7.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 264
_HPX Example
;ethod (_"PR$ ()
Return (Pac+a,e(3)
Pac+a,e(I) // P)# Settin, Record
(-(($ // <1pe (
(-(4$ // Revi2ion 4
(-(=$ // )ache6ineSiCe in DW0RDS
(-.($ // 6atenc1<imer in P)# cloc+2
(-(4$ // %nable S%RR (Boolean)
(-(( // %nable P%RR (Boolean)
/$
Pac+a,e(G) // P)#ER Settin, Record
(-(4$ // <1pe 4
(-(4$ // Revi2ion 4
(-(F$ // ;a-imum ;emor1 Read B1te )ount
(-(.$ // &vera,e ;a-imum 0ut2tandin, Split <ran2action2
(-(T // <otal ;a-imum 0ut2tandin, Split <ran2action2
/
/)
/
7.2.8 _MAT (Multiple APIC Table Entry)
This optional o0#ect evaluates to a 0uffer returning data in the format of a series of Multiple A'%C
-escription Ta0le =MA-T> A'%C !tructure entries. This o0#ect can appear under an %F2 A'%C or processor
o0#ect definition as processors ma( contain 1ocal A'%Cs. !pecific t(pes of MA-T entries are meaningful
to =in other words, is processed 0(> 2!'M when returned via the evaluation of this o0#ect as descri0ed
0elow. 2ther entr( t(pes returned 0( the evaluation of CMAT are ignored 0( 2!'M.
When CMAT appears under a 'rocessor o0#ect, 2!'M processes 1ocal A'%C =section *.2.44.*, J'rocessor
1ocal A'%CL>, 1ocal !A'%C =section *.2.44.43, J1ocal !A'%C !tructureL>, and local A'%C NM% =section
*.2.44.4, J1ocal A'%C NM%L> entries returned from the o0#ectMs evaluation. 2ther entr( t(pes are ignored
0( 2!'M. 2!'M uses the AC'% processor %- in the entries returned from the o0#ectMs evaluation to
identif( the entries corresponding to either the AC'% processor %- of the 'rocessor o0#ect or the value
returned 0( the C,%- o0#ect under a 'rocessor device.
When CMAT appears under an %F2 A'%C, 2!'M processes %F2 A'%C =section *.2.44.+, J%F2 A'%CL>, %F2
!A'%C =section *.2.44.42, J%F2 !A'%C !tructureL>, non&maska0le interrupt sources =section *.2.44.6, JNon&
Maska0le %nterrupt !ources =NM%s>L>, interrupt source overrides =section *.2.44.8, J%nterrupt !ource
2verridesL>, and platform interrupt source structure =section *.2.44.4", J'latform %nterrupt !ource
!tructureL> entries returned from the o0#ectMs evaluation. 2ther entr( t(pes are ignored 0( 2!'M.
Arguments<
None
3esult Code<
A 0uffer
./ample A!1 for CMAT usage<
Scope(\_SB)
Device(P)#() // Root P)# Bu2
!ame(_"#D$ %#S&#D(PP!P(&(FP)) // !eed _"#D for root device
!ame(_&DR$() // Device ( on thi2 bu2
;ethod (_)RS$() // !eed current re2ource2 for root device
// Return current re2ource2 for root brid,e (
/
!ame(_PR<$ Pac+a,e() // !eed P)# #RJ routin, for P)# brid,e
// Pac+a,e with P)# #RJ routin, table information
/)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
262 Advanced Configuration and 'ower %nterface !pecification
Device (PI.&) // PI.& &)P#
!ame(_&DR$()
0perationRe,ion(<&BD$ S12tem;emor1$ //Ph12ical addre22 of fir2t
// data b1te of multiple &)P# table$ 6en,th of table2)
5ield (<&BD$ B1te&cc$ !o6oc+$ Pre2erve)
;&<D$ 6en,th of table2 x =
/
;ethod(_;&<$ ()
Return (;&<D)
/
/ // end PI.&
/ // end P)#(
/ // end 2cope SB
7.2.9 _OSC (Operating System Capabilities)
This optional o0#ect is a control method that is used 0( 2!'M to communicate to the platform the feature
support or capa0ilities provided 0( a deviceMs driver. This o0#ect is a child o0#ect of a device and ma( also
e/ist in the BC!; scope, where it can 0e used to conve( platform wide 2!'M capa0ilities. When supported,
C2!C is invoked 0( 2!'M immediatel( after placing the device in the - power state. -evice specific
o0#ects are evaluated after C2!C invocation. This allows the values returned from other o0#ects to 0e
predicated on the 2!'M feature support F capa0ilit( information conve(ed 0( C2!C. 2!'M ma( evaluate
C2!C multiple times to indicate changes in 2!'M capa0ilit( to the device 0ut this ma( 0e precluded 0(
specific device re:uirements. As such, C2!C usage descriptions in section 6, JAC'%&!pecific -evice
20#ectsL, or other governing specifications descri0e superseding device specific C2!C capa0ilities and F or
preclusions.
C2!C ena0les the platform to configure its AC'% namespace representation and o0#ect evaluations to match
the capa0ilities of 2!'M. This ena0les legac( operating s(stem support for platforms with new features
that make use of new namespace o0#ects that if e/posed would not 0e evaluated when running a legac( 2!.
C2!C provides the capa0ilit( to transition the platform to native operating s(stem support of new features
and capa0ilities when availa0le through d(namic namespace reconfiguration. C2!C also allows devices
with Compati0le %-s to provide superset functionalit( when controlled 0( their native =5or e/ample, C@%-
matched> driver as appropriate o0#ects can 0e e/posed accordingl( as a result of 2!'MMs evaluation of
C2!C.
Argu%entsH
Arg =;uffer>< ,,%-
Arg4 =%nteger>< 3evision %-
Arg2 =%nteger>< Count
Arg3 =;uffer>< Capa0ilities ;uffer,
,,%- I ,niversal ,ni:ue %dentifier =4+ ;(te ;uffer> used 0( the platform in con#unction with 3evision %-
to ascertain the format of the Capa0ilities 0uffer.
3evision %- I The revision of the Capa0ilities ;uffer format. The revision level is specific to the ,,%-.
Count & Num0er of -W23-s in the Capa0ilities ;uffer in Arg3
Capa0ilities ;uffer I ;uffer containing the num0er of -W23-s indicated 0( Count. The first -W23- of
this 0uffer contains standard 0it definitions as descri0ed 0elow. !u0se:uent -W23-s contain ,,%-&
specific 0its that conve( to the platform the capa0ilities and features supported 0( 2!'M. !uccessive
revisions of the Capa0ilities ;uffer must 0e 0ackwards compati0le with earlier revisions. ;it ordering
cannot 0e changed.
Capa0ilities ;uffers are device&specific and as such are descri0ed under specific device definitions. !ee
section 6, JAC'% -evices and -evice !pecific 20#ectsL for an( C2!C definitions for AC'% devices. The
format of the Capa0ilities ;uffer and 0ehavior rules ma( also 0e specified 0( 2.Ms and %@Ds for custom
devices and other interface or device governing 0odies for e/ample, the 'C% !%$.
The first -W23- in the capa0ilities 0uffer is used to return errors defined 0( C2!C. This -W23- must
alwa(s 0e present and ma( not 0e redefinedFreused 0( uni:ue interfaces utiliHing C2!C.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 263
;it & Guer( !upport 5lag. the C2!C invocation is a :uer( 0( 2!'M to determine which
capa0ilities 2!'M ma( take control of. %n this case, C2!C sets 0its for those capa0ilities of which
2!'M ma( take control and clears 0its for those capa0ilities of which 2!'M ma( not take
control. %f Hero, 2!'M is attempting to take control of the capa0ilities corresponding to the 0its
set.
;it 4& Alwa(s clear=>.
;it 2& Alwa(s clear=>.
;it 3& Alwa(s clear=>.
All others& reserved.
"esult CodeH
Capa0ilities ;uffer =;uffer> I The platform acknowledges the Capa0ilities ;uffer 0( returning a 0uffer of
-W23-s of the same length. !et 0its indicate acknowledgement and cleared 0its indicate that the
platform does not support the capa0ilit(.
The first -W23- in the capa0ilities 0uffer is used to return errors defined 0( C2!C. This -W23- must
alwa(s 0e present and ma( not 0e redefinedFreused 0( uni:ue interfaces utiliHing C2!C.
;it & 3eserved =not used>
;it 4& C2!C failure. 'latform 5irmware was una0le to process the re:uest or :uer(. Capa0ilities
0its ma( have 0een masked.
;it 2& ,nrecogniHed ,,%-. This 0it is set to indicate that the platform firmware does not
recogniHe the ,,%- passed in via Arg. Capa0ilities 0its are preserved.
;it 3& ,nrecogniHed 3evision. This 0it is set to indicate that the platform firmware does not
recogniHe the 3evision %- passed in via Arg4. Capa0ilities 0its 0e(ond those comprehended 0( the
firmware will 0e masked.
;it "& Capa0ilities Masked. This 0it is set to indicate that capa0ilities 0its set 0( driver software
have 0een cleared 0( platform firmware.
All others& reserved.
At this time, platform&wide Capa0ilities ;uffer -W23- 0it definitions are not defined. As such, 2!'M
implementations are not e/pected to evaluate BC!;.C2!C until a future revision of the AC'% specification
specifies platform&wide Capa0ilities ;uffer -W23- 0it definitions.
Note< 2!'M must not use the results of C2!C evaluation to choose a compati0le device driver. 2!'M
must use C@%-, CC%-, or native enumera0le 0us device identification mechanisms to select an appropriate
driver for a device.
The platform ma( issue a 0otif)=device, /8> to inform 2!'M to re&evaluate C2!C when the availa0ilit(
of feature control changes. 'latforms must not rel(, however, on 2!'M to evaluate C2!C after issuing a
0otif) for proper operation as 2!'M cannot guarantee the presence of a target entit( to receive and
process the 0otif) for the device. 5or e/ample, a device driver for the device ma( not 0e loaded at the time
the 0otif) is signaled. 5urther, the issuance and processing rules for notification of changes in the
Capa0ilities ;uffer is device specific. As such, the allowa0le 0ehavior is governed 0( device specifications
either in section 6, J AC'%&!pecific -evice 20#ectsL, for AC'%&define devices, or other 2.M, %@D, or
device governing 0od(MsM device specifications.
%t is permitted for C2!C to return all 0its in the Capa0ilities ;uffer cleared. An e/ample of this is when
significant time is re:uired to disa0le platform&0ased feature support. The platform ma( then later issue a
Notif( to tell 2!'M to re&evaluate C2!C to take over native control. This 0ehavior is also device specific
0ut ma( also rel( on specific 2! capa0ilit(.
%n general, platforms should support 0oth 2!'M taking and relin:uishing control of specific feature
support via multiple invocations of C2!C 0ut the re:uired 0ehavior ma( var( on a per device 0asis.
!ince platform conte/t is lost when the platform enters the !" sleeping state, 2!'M must re&evaluate C2!C
upon wake from !" to restore the previous platform state. This re:uirement will var( depending on the
device specific C2!C functionalit(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
26" Advanced Configuration and 'ower %nterface !pecification
7.2.9.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 26*
_OSC Implementation Example for PCI Host Bridge Devices
The following section is an e/cerpt from the 'C% 5irmware !pecification 3evision 3. and is reproduced
with the permission of the 'C% !%$. 0oteH The PCI SI; owns the definition of D3SC !ehavior and
para%eter !it definitions for PCI devices In the event of a discrepanc) !etween the following
exa%ple and the PCI 6ir%ware Specification' the latter has precedence
The C2!C interface defined in this section applies onl( to J@ost ;ridgeL AC'% devices that originate 'C%,
'C%&A or 'C% ./press hierarchies. These AC'% devices must have a C@%- of =or CC%- including> either
.%!A%-=J'N'A3L> or .%!A%-=J'N'A8L>. 5or a host 0ridge device that originates a 'C% ./press
hierarch(, the C2!C interface defined in this section is re:uired. 5or a host 0ridge device that originates a
'C%F'C%&A 0us hierarch(, inclusion of an C2!C o0#ect is optional.
The C2!C interface for a 'C%F'C%&AF'C% ./press hierarch( is identified 0( the ,niversal ,niform
%dentifier =,,%-> ##d!(dA!-+ff.-($+c-,-A.-.((+c$#dd.--. A revision %- of 4 encompasses fields
defined in this section of this revision of this specification, comprised of 3 -W23-s, including the first
-W23- descri0ed 0( the generic AC'% definition of C2!C.
The first -W23- in the C2!C Capa0ilities ;uffer contain 0its are generic to C2!C and include status and
error information.
The second -W23- in the C2!C capa0ilities 0uffer is the !upport 5ield. ;its defined in the !upport 5ield
provide information regarding 2! supported features. Contents in the !upport 5ield are passed one&wa(K
the 2! will disregard an( changes to this field when returned. !ee Ta0le +&8 for descriptions of capa0ilities
0its in this field passed as a parameter into the C2!C control method.
The third -W23- in the C2!C Capa0ilities ;uffer is the Control 5ield. ;its defined in the Control 5ield
are used to su0mit re:uest 0( the 2! for controlFhandling of the associated feature, t(picall( =0ut not
e/cluded to> those features that utiliHe native interrupts or events handled 0( an 2!&level driver. !ee Ta0le
+&4 for descriptions of capa0ilities 0its in this field passed as a parameter into the C2!C control
method. %f an( 0its in the Control 5ield are returned cleared =masked to Hero> 0( the C2!C control method,
the respective feature is designated unsupported 0( the platform and must not 0e ena0led 0( the 2!. !ome
of these features ma( 0e controlled 0( platform firmware prior to 2! 0oot or during runtime for a legac(
2!, while others ma( 0e disa0ledFinoperative until native 2! support is availa0le. !ee Ta0le +&44 for
descriptions of capa0ilities 0its in this returned field.
%f the C2!C control method is a0sent from the scope of a host 0ridge device, then the 2! must not ena0le
or attempt to use an( features defined in this section for the hierarch( originated 0( the host 0ridge. -oing
so could contend with platform firmware operations, or produce undesired results. %t is recommended that a
machine with multiple host 0ridge devices should report the same capa0ilities for all host 0ridges, and also
negotiate control of the features descri0ed in the Control 5ield in the same wa( for all host 0ridges.
Ta!le --, Interpretation of D3SC Support 6ield
Support 6ield
!it offset
Interpretation
./tended 'C% Config operation regions supported
The 2! sets this 0it to 4 if it supports A!1 accesses through 'C% Config operation
regions to e/tended configuration space =offsets greater than /55>. 2therwise, the
2! sets this 0it to .
4 Active !tate 'ower Management supported
The 2! sets this 0it to 4 if it nativel( supports configuration of Active !tate 'ower
Management registers in 'C% ./press devices. 2therwise, the 2! sets this 0it to .
2 Clock 'ower Management Capa0ilit( supported
The 2! sets this 0it to 4 if it supports the Clock 'ower Management Capa0ilit(, and
will ena0le this feature during a native hot plug insertion event if supported 0( the
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
26+ Advanced Configuration and 'ower %nterface !pecification
newl( added device. 2therwise, the 2! sets this 0it to .
;ote# T1e Cloc3 Power (anagement Capability is defined in an errata to t1e PCI
*xpress )ase Specification. 1!5!
3 'C% !egment $roups supported
The 2! sets this 0it to 4 if it supports 'C% !egment $roups as defined 0( the C!.$
o0#ect, and access to the configuration space of devices in 'C% !egment $roups as
descri0ed 0( this specification. 2therwise, the 2! sets this 0it to .
" M!% supported
The 2! sets this 0it to 4 if it supports configuration of devices to generate message&
signaled interrupts, either through the M!% Capa0ilit( or the M!%&A Capa0ilit(.
2therwise, the 2! sets this 0it to .
*&34 3eserved
Ta!le --+$ Interpretation of D3SC Control 6ield' Passed in via Arg#
Control 6ield
!it offset
Interpretation
PCI Express Native Hot Plug control
The 2! sets this 0it to 4 to re:uest control over 'C% ./press native hot plug. %f the
2! successfull( receives control of this feature, it must track and update the status of
hot plug slots and handle hot plug events as descri0ed in the 'C% ./press ;ase
!pecification.
4 SHPC Native Hot Plug control
The 2! sets this 0it to 4 to re:uest control over 'C%F'C%&A !tandard @ot&'lug
Controller =!@'C> hot plug. %f the 2! successfull( receives control of this feature, it
must track and update the status of hot plug slots and handle hot plug events as
descri0ed in the !@'C !pecification.
2 PCI Express Native Power Management Events control
The 2! sets this 0it to 4 to re:uest control over 'C% ./press native power
management event interrupts ='M.s>. %f the 2! successfull( receives control of this
feature, it must handle power management events as descri0ed in the 'C% ./press
;ase !pecification.
3 PCI Express Advanced Error Reporting control
The 2! sets this 0it to 4 to re:uest control over 'C% ./press Advanced .rror
3eporting. %f the 2! successfull( receives control of this feature, it must handle error
reporting through the Advanced .rror 3eporting Capa0ilit( as descri0ed in the 'C%
./press ;ase !pecification.
" PCI Express Capability Structure control
The 2! sets this 0it to 4 to re:uest control over the 'C% ./press Capa0ilit( !tructures
=standard and e/tended> defined in the 'C% ./press ;ase !pecification version 4.4.
These capa0ilit( structures are the 'C% ./press Capa0ilit(, the virtual channel
e/tended capa0ilit(, the power 0udgeting e/tended capa0ilit(, the advanced error
reporting e/tended capa0ilit(, and the serial num0er e/tended capa0ilit(. %f the 2!
successfull( receives control of this feature, it is responsi0le for configuring the
registers in all 'C% ./press Capa0ilities in a manner that complies with the 'C%
./press ;ase !pecification. Additionall(, the 2! is responsi0le for saving and
restoring all 'C% ./press Capa0ilit( register settings across power transitions when
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 269
register conte/t ma( have 0een lost.
*&34 3eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
268 Advanced Configuration and 'ower %nterface !pecification
Ta!le --++ Interpretation of D3SC Control 6ield' "eturned 7alue
Control 6ield
!it offset
Interpretation
PCI Express Native Hot Plug control
The firmware sets this 0it to 4 to grant control over 'C% ./press native hot plug
interrupts. %f firmware allows the 2! control of this feature, then in the conte/t of the
C2!C method it must ensure that all hot plug events are routed to device interrupts as
descri0ed in the 'C% ./press ;ase !pecification. Additionall(, after control is
transferred to the 2!, firmware must not update the state of hot plug slots, including
the state of the indicators and power controller. %f control of this feature was
re:uested and denied or was not re:uested, firmware returns this 0it set to .
4 SHPC Native Hot Plug control
The firmware sets this 0it to 4 to grant control over control over 'C%F'C%&A !tandard
@ot&'lug Controller =!@'C>hot plug. %f firmware allows the 2! control of this
feature, then in the conte/t of the C2!C method it must ensure that all hot plug events
are routed to device interrupts as descri0ed in the !@'C !pecification. Additionall(,
after control is transferred to the 2!, firmware must not update the state of hot plug
slots, including the state of the indicators and power controller. %f control of this
feature was re:uested and denied or was not re:uested, firmware returns this 0it set to
.
2 PCI Express Native Power Management Events control
The firmware sets this 0it to 4 to grant control over control over 'C% ./press native
power management event interrupts ='M.s>. %f firmware allows the 2! control of
this feature, then in the conte/t of the C2!C method it must ensure that all 'M.s are
routed to root port interrupts as descri0ed in the 'C% ./press ;ase !pecification.
Additionall(, after control is transferred to the 2!, firmware must not update the
'M. !tatus field in the 3oot !tatus register or the 'M. %nterrupt .na0le field in the
3oot Control register. %f control of this feature was re:uested and denied or was not
re:uested, firmware returns this 0it set to .
3 PCI Express Advanced Error Reporting control
The firmware sets this 0it to 4 to grant control over 'C% ./press Advanced .rror
3eporting. %f firmware allows the 2! control of this feature, then in the conte/t of the
C2!C method it must ensure that error messages are routed to device interrupts as
descri0ed in the 'C% ./press ;ase !pecification. Additionall(, after control is
transferred to the 2!, firmware must not modif( the Advanced .rror 3eporting
Capa0ilit(. %f control of this feature was re:uested and denied or was not re:uested,
firmware returns this 0it set to .
" PCI Express Capability Structure control
The firmware sets this 0it to 4 to grant control over te PCI Express
Capability! I" te #rmware does not grant control o" tis "eature$
#rmware must andle con#guration o" te PCI Express Capability
Structure!
%f firmware grants the 2! control of this feature, an( firmware configuration of the
'C% ./press Capa0ilit( ma( 0e overwritten 0( an 2! configuration, depending on
2! polic(.
*&34 3eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 266
7.2.9.1.1 Rules for Evaluating _OSC
This section defines when and how the 2! must evaluate C2!C, as well as restrictions on firmware
implementation.
7.2.9.1.1.1 Query Flag
%f the Guer( !upport 5lag =Capa0ilities -W23- 4, 0it > is set 0( the 2! when evaluating C2!C, no
hardware settings are permitted to 0e changed 0( firmware in the conte/t of the C2!C call. %t is strongl(
recommended that the 2! evaluate C2!C with the Guer( !upport 5lag set until C2!C returns the
Capa0ilities Masked 0it clear, to negotiate the set of features to 0e granted to the 2! for native supportK a
platform ma( re:uire a specific com0ination of features to 0e supported nativel( 0( an 2! 0efore granting
native control of a given feature.
7.2.9.1.1.2 Evaluation Conditions
The 2! must evaluate C2!C under the following conditions<
-uring initialiHation of an( driver that provides native support for features descri0ed in the section a0ove.
These features ma( 0e supported 0( one or man( drivers, 0ut should onl( 0e evaluated 0( the main 0us
driver for that hierarch(. !econdar( drivers must coordinate with the 0us driver to install support for these
features. -rivers ma( not relin:uish control of features previousl( o0tained. %.e. 0its set in Capa0ilities
-W23-3 after the negotiation process must 0e set on all su0se:uent negotiation attempts.
When a Notif(=Tdevice), 8> is delivered to the 'C% @ost ;ridge device.
,pon resume from !". 'latform firmware will handle conte/t restoration when resuming from !4&!3.
7.2.9.1.1.3 Sequence of _OSC calls
The following rules govern se:uences of calls to C2!C that are issued to the same host 0ridge and occur
within the same 0oot.
The 2! is permitted to evaluate C2!C an ar0itrar( num0er of times.
%f the 2! declares support of a feature in the !tatus 5ield in one call to C2!C, then it must
preserve the set state of that 0it =declaring support for that feature> in all su0se:uent calls.
%f the 2! is granted control of a feature in the Control 5ield in one call to C2!C, then it must
preserve the set state of that 0it =re:uesting that feature> in all su0se:uent calls.
5irmware ma( not re#ect control of an( feature it has previousl( granted control to.
There is no mechanism for the 2! to relin:uish control of a feature previousl( re:uested and
granted..
7.2.9.1.2 ASL Example
A sample C2!C implementation for a mo0ile s(stem incorporating a 'C% ./press hierarch( is shown
0elow<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3 Advanced Configuration and 'ower %nterface !pecification
Device(P)#() // Root P)# bu2

!ame(_"#D$%#S&#D(PP!P(&(=P)) // P)# %-pre22 Root Brid,e


!ame(_)#D$%#S&#D(PP!P(&(FP)) // )ompatible P)# Root Brid,e
!ame(SXPP$() // P)# _0S) Support 5ield value
!ame()<R6$() // P)# _0S) )ontrol 5ield value
;ethod(_0S)$.)
// )hec+ for proper XX#D
#f(6%8ual(&r,($<oXX#D(PFFDB.DGBE455TE.(4)EHIGTET..4)(FDDTIIP)))

// )reate DWordEadre22able field2 from the )apabilitie2 Buffer


)reateDWord5ield(&r,F$($)DW4)
)reateDWord5ield(&r,F$.$)DW3)
)reateDWord5ield(&r,F$=$)DWF)
// Save )apabilitie2 DWord3 V F
Store()DW3$SXPP)
Store()DWF$)<R6)
// 0nl1 allow native hot plu, control if 0S 2upport2>
// [ &SP;
// [ )loc+ P;
// [ ;S#/;S#ER
#f(6!ot%8ual(&nd(SXPP$ (-4I)$ (-4I))

&nd()<R6$(-4%) // ;a2+ bit ( (and undefined bit2)


/
// &lwa12 allow native P;%$ &%R (no dependencie2)
// !ever allow S"P) (no S"P) controller in thi2 212tem)
&nd()<R6$(-4D$)<R6)
#f(!ot(&nd()DW4$4))) // Juer1 fla, clearO
// Di2able :P%2 for feature2 ,ranted native control.
#f(&nd()<R6$(-(4)) // "ot plu, control ,rantedO

Store(($"P)%) // clear the hot plu, S)# enable bit


Store(4$"P)S) // clear the hot plu, S)# 2tatu2 bit
/
#f(&nd()<R6$(-(.)) // P;% control ,rantedO

Store(($P;)%) // clear the P;% S)# enable bit


Store(4$P;)S) // clear the P;% S)# 2tatu2 bit
/
#f(&nd()<R6$(-4()) // 0S re2torin, P)#e cap 2tructureO
// Set 2tatu2 to not re2tore P)#e cap 2tructure
// upon re2ume from SF
Store(4$SF)R)
/
/
#f(6!ot%8ual(&r,4$0ne))
// Xn+nown revi2ion
0r()DW4$(-(=$)DW4)
/
#f(6!ot%8ual()DWF$)<R6))
// )apabilitie2 bit2 were ma2+ed
0r()DW4$(-4($)DW4)
/
// Xpdate DW0RDF in the buffer
Store()<R6$)DWF)
Return(&r,F)
/ %l2e
0r()DW4$.$)DW4) // Xnreco,niCed XX#D
Return(&r,F)
/
/ // %nd _0S)
/ // %nd P)#(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 34
7.2.10 _PRS (Possible Resource Settings)
This optional o0#ect evaluates to a 0(te stream that descri0es the possible resource settings for the device.
When descri0ing a platform, specif( a C'3! for all the configura0le devices. !tatic =non&configura0le>
devices do not specif( a C'3! o0#ect. The information in this package is used 0( 2!'M to select a conflict&
free resource allocation without user intervention. This method must not reference an( operation regions
that have not 0een declared availa0le 0( a C3.$ method.
The format of the data in a C'3! o0#ect follows the same format as the CC3! o0#ect =for more information,
see the CC3! o0#ect definition in section +.2.4, JCC3! =Current 3esource !ettings>L>.
%f the device is disa0led when C'3! is called, it must remain disa0led.
Arguments<
None
3esult Code<
;(te stream
7.2.11 _PRT (PCI Routing Table)
'C% interrupts are inherentl( non&hierarchical. 'C% interrupt pins are wired to interrupt inputs of the
interrupt controllers. The C'3T o0#ect provides a mapping from 'C% interrupt pins to the interrupt inputs of
the interrupt controllers. The C'3T o0#ect is re:uired under all 'C% root 0ridges. C'3T evaluates to a
package that contains a list of packages, each of which descri0es the mapping of a 'C% interrupt pin.
0ote< The 'C% function num0er in the Address field of the C'3T packages must 0e /5555, indicating
Jan(L function num0er or Jall functionsL.
The C'3T mapping packages have the fields listed in Ta0le +&42.
Ta!le --+& Mapping 6ields
6ield T)pe 5escription
Address -W23- The address of the device =uses the same format as CA-3>.
'in ;ST. The 'C% pin num0er of the device =I%NTA, 4I%NT;, 2I%NTC, 3I%NT->.
!ource Name'ath
2r
;ST.
Name of the device that allocates the interrupt to which the a0ove pin is
connected. The name can 0e a full( :ualified path, a relative path, or a simple
name segment that utiliHes the namespace search rules. 0ote< This field is a
Name'ath and not a !tring literal, meaning that it should not 0e surrounded 0(
:uotes. %f this field is the integer constant ?ero =or a ;ST. value of >, then the
interrupt is allocated from the glo0al interrupt pool.
!ource
%nde/
-W23- %nde/ that indicates which resource descriptor in the resource template of the
device pointed to in the !ource field this interrupt is allocated from. %f the
Source field is the ;ST. value Hero, then this field is the glo0al s(stem interrupt
num0er to which the pin is connected.
There are two wa(s that C'3T can 0e used. T(picall(, the interrupt input that a given 'C% interrupt is on is
configura0le. 5or e/ample, a given 'C% interrupt might 0e configured for either %3G 4 or 44 on an 82*6
interrupt controller. %n this model, each interrupt is represented in the AC'% namespace as a 'C% %nterrupt
1ink -evice.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
32 Advanced Configuration and 'ower %nterface !pecification
These o0#ects have C'3!, CC3!, C!3!, and C-%! control methods to allocate the interrupt. Then, 2!'M
handles the interrupts not as interrupt inputs on the interrupt controller, 0ut as 'C% interrupt pins. The driver
looks up the deviceMs pins in the C'3T to determine which device o0#ects allocate the interrupts. To move
the 'C% interrupt to a different interrupt input on the interrupt controller, 2!'M uses C'3!, CC3!, C!3!,
and C-%! control methods for the 'C% %nterrupt 1ink -evice.
%n the second model, the 'C% interrupts are hardwired to specific interrupt inputs on the interrupt controller
and are not configura0le. %n this case, the !ource field in C'3T does not reference a device, 0ut instead
contains the value Hero, and the !ource %nde/ field contains the glo0al s(stem interrupt to which the 'C%
interrupt is hardwired.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 33
7.2.11.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3" Advanced Configuration and 'ower %nterface !pecification
Example: Using _PRT to Describe PCI IRQ Routing
The following e/ample descri0es two 'C% slots and a 'C% video chip. Notice that the interrupts on the two
'C% slots are wired differentl( =0ar0er&poled>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3*
Scope(\_SB)
Device(6!A&)
!ame(_"#D$ %#S&#D(PP!P()(5P)) // P)# interrupt lin+
!ame(_X#D$ 4)
!ame(_PRS$ Re2ource<emplate()
#nterrupt(Re2ourceProducer$Y) 4($44/ // #RJ2 4($44
/)
;ethod(_D#S) Y/
;ethod(_)RS) Y/
;ethod(_SRS$ 4) Y/
/
Device(6!AB)
!ame(_"#D$ %#S&#D(PP!P()(5P)) // P)# interrupt lin+
!ame(_X#D$ 3)
!ame(_PRS$ Re2ource<emplate()
#nterrupt(Re2ourceProducer$Y) 44$43/ // #RJ2 44$43
/)
;ethod(_D#S) Y/
;ethod(_)RS) Y/
;ethod(_SRS$ 4) Y/
/
Device(6!A))
!ame(_"#D$ %#S&#D(PP!P()(5P)) // P)# interrupt lin+
!ame(_X#D$ F)
!ame(_PRS$ Re2ource<emplate()
#nterrupt(Re2ourceProducer$Y) 43$4./ // #RJ2 43$4.
/)
;ethod(_D#S) Y/
;ethod(_)RS) Y/
;ethod(_SRS$ 4) Y/
/
Device(6!AD)
!ame(_"#D$ %#S&#D(PP!P()(5P)) // P)# interrupt lin+
!ame(_X#D$ .)
!ame(_PRS$ Re2ource<emplate()
#nterrupt(Re2ourceProducer$Y) 4($4G/ // #RJ2 4($4G
/)
;ethod(_D#S) Y/
;ethod(_)RS) Y/
;ethod(_SRS$ 4) Y/
/
Device(P)#()
Y
!ame(_PR<$ Pac+a,e
Pac+a,e(-(((.5555$ ($ \_SB_.6!A&$ (/$ // Slot 4$ #!<& // & full1
Pac+a,e(-(((.5555$ 4$ \_SB_.6!AB$ (/$ // Slot 4$ #!<B // 8ualified
Pac+a,e(-(((.5555$ 3$ \_SB_.6!A)$ (/$ // Slot 4$ #!<) // pathname
Pac+a,e(-(((.5555$ F$ \_SB_.6!AD$ (/$ // Slot 4$ #!<D // can be u2ed$
Pac+a,e(-(((G5555$ ($ 6!AB$ (/$ // Slot 3$ #!<& // or a 2imple
Pac+a,e(-(((G5555$ 4$ 6!A)$ (/$ // Slot 3$ #!<B // name 2e,ment
Pac+a,e(-(((G5555$ 3$ 6!AD$ (/$ // Slot 3$ #!<) // utiliCin, the
Pac+a,e(-(((G5555$ F$ 6!A&$ (/$ // Slot 3$ #!<D // 2earch rule2
Pac+a,e(-(((I5555$ ($ 6!A)$ (/ // @ideo$ #!<&
/)
/
/
7.2.12 _PXM (Proximity)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3+ Advanced Configuration and 'ower %nterface !pecification
This optional o0#ect is used to descri0e pro/imit( domains within a machine. C'AM evaluates to an integer
that identifies the device as 0elonging to a specific pro/imit( domain. 2!'M assumes that two devices in
the same pro/imit( domain are tightl( coupled. 2!'M could choose to optimiHe its 0ehavior 0ased on this.
5or e/ample, in a s(stem with four processors and si/ memor( devices, there might 0e two separate
pro/imit( domains = and 4>, each with two processors and three memor( devices. %n this case, the 2! ma(
decide to run some software threads on the processors in pro/imit( domain and others on the processors
in pro/imit( domain 4. 5urthermore, for performance reasons, it could choose to allocate memor( for those
threads from the memor( devices inside the pro/imit( domain common to the processor and the memor(
device rather than from a memor( device outside of the processorMs pro/imit( domain. C'AM can 0e used
to identif( an( device 0elonging to a pro/imit( domain. Children of a device 0elong to the same pro/imit(
domain as their parent unless the( contain an overriding C'AM. 'ro/imit( domains do not impl( an(
e#ection relationships.
An 2! makes no assumptions a0out the pro/imit( or nearness of different pro/imit( domains. The
difference 0etween two integers representing separate pro/imit( domains does not impl( distance 0etween
the pro/imit( domains =in other words, pro/imit( domain 4 is not assumed to 0e closer to pro/imit(
domain than pro/imit( domain +>.
Arguments<
None
3esult Code<
An integer
7.2.13 _SLI (System Locality Information)
The !(stem 1ocalit( %nformation Ta0le =!1%T> ta0le defined in !ection *.2.4+, J!(stem 1ocalit( -istance
%nformation Ta0le =!1%T>L, provides relative distance information 0etween all !(stem 1ocalities for use
during 2! initialiHation.
The value of each .ntr(Vi,:W in the !1%T ta0le, where i represents a row of a matri/ and : represents a
column of a matri/, indicates the relative distances from !(stem 1ocalit( F 'ro/imit( -omain i to ever(
other !(stem 1ocalit( : in the s(stem =including itself>.
The i,: row and column values correlate to the value returned 0( the C'AM o0#ect in the AC'% namespace.
!ee section +.2.42, JC'AM ='ro/imit(>L for more information.
-(namic runtime reconfiguration of the s(stem ma( cause the distance 0etween !(stem 1ocalities to
change.
C!1% is an optional o0#ect that ena0les the platform to provide the 2! with updated relative !(stem
1ocalit( distance information at runtime. C!1% provide 2!'M with an update of the relative distance from
!(stem 1ocalit( i to all other !(stem 1ocalities in the s(stem.
Arguments<
None.
3eturn Code<
%f !(stem 1ocalit( i b N, where N is the num0er of !(stem 1ocalities, the C!1% method returns a 0uffer that
contains the relative distances V=i, >, =i, 4>, N, =i, i&4>, =i, i>, =, i>, =4, i>, N=i&4, i>, =i, i>WK if !(stem 1ocalit(
i T N, the C!1% method returns a 0uffer that contains the relative distances V=i, >, =i, 4>, N, =i, i>, N,=i, N&
4>, =, i>, =4, i>,N=i, i>, N, =N&4, i>W. Note< =i, i> is alwa(s a value of 4.
1xa%ple
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 39
The figure a0ove diagrams a "&node s(stem where the nodes are num0ered through 3 =Node n \ Node 3>
and the granularit( is at the node level for the N,MA distance information. %n this e/ample we assign
!(stem 1ocalities F 'ro/imit( -omain num0ers e:ual to the node num0ers =&3>. The N,MA relative
distances 0etween pro/imit( domains as implemented in this s(stem are descri0ed in the matri/ represented
in Ta0le +&43. 'ro/imit( -omains are represented 0( the num0ers in the top row and left column. -istances
are represented 0( the values in cells internal in the ta0le from the domains.
Ta!le --+# 1xa%ple "elative 5istances <etween Proxi%it) 5o%ains
Proxi%it)
5o%ain
$ + & #
$
4 4* 2 48
+
4* 4 4+ 2"
&
2 4+ 4 42
#
48 2" 42 4
An e/ample of these distances 0etween pro/imit( domains encoded in a !(stem 1ocalit( %nformation
Ta0le for consumption 0( 2!'M at 0oot time is descri0ed in Ta0le +&4".
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
38 Advanced Configuration and 'ower %nterface !pecification
Ta!le --+( 1xa%ple S)ste% Localit) Infor%ation Ta!le
6ield <)te
Length
<)te
3ffset
5escription
@eader
!ignature " O!1%TM.
1ength " " +
3evision 4 8 4
Checksum 4 6 .ntire ta0le must sum to Hero.
2.M%- + 4 2.M %-.
2.M Ta0le %- 8 4+ 5or the !(stem 1ocalit( %nformation Ta0le, the ta0le %-
is the manufacturer model %-.
2.M 3evision " 2" 2.M revision of !(stem 1ocalit( %nformation Ta0le for
supplied 2.M Ta0le %-.
Creator %- " 28 Dendor %- of utilit( that created the ta0le. 5or the -!-T,
3!-T, !!-T, and '!-T ta0les, this is the %- for the
A!1 Compiler.
Creator 3evision " 32 3evision of utilit( that created the ta0le. 5or the -!-T,
3!-T, !!-T, and '!-T ta0les, this is the revision for
the A!1 Compiler.
Num0er of !(stem
1ocalities
8 3+ "
.ntr(VWVW 4 "" 4
.ntr(VWV4W 4 "* 4*
.ntr(VWV2W 4 "+ 2
.ntr(VWV3W 4 "9 48
.ntr(V4WVW 4 "8 4*
.ntr(V4WV4W 4 "6 4
.ntr(V4WV2W 4 * 4+
.ntr(V4WV3W 4 *4 2"
.ntr(V2WVW 4 *2 2
.ntr(V2WV4W 4 *3 4+
.ntr(V2WV2W 4 *" 4
.ntr(V2WV3W 4 ** 42
.ntr(V3WVW 4 *+ 48
.ntr(V3WV4W 4 *9 2"
.ntr(V3WV2W 4 *8 42
.ntr(V3WV3W 4 *6 4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 36
%f a new node, JNode "L, is added, then Ta0le +&4* represents the updated s(stemMs N,MA relative
distances of pro/imit( domains.
Ta!le --+A 1xa%ple "elative 5istances <etween Proxi%it) 5o%ains - A 0ode
Proxi%it)
5o%ain
$ + & # (
$
4 4* 2 48 49
+
4* 4 4+ 2" 24
&
2 4+ 4 42 4"
#
48 2" 42 4 23
(
49 24 4" 23 4
The new nodeMs C!1% o0#ect would evaluate to a 0uffer containing V49,24,4",23,4,49,24,4",23,4W.
Note< some s(stems support interleave memor( across the nodes. !1%T representation of these s(stems is
implementation specific.
7.2.14 _SRS (Set Resource Settings)
This optional control method takes one 0(te stream argument that specifies a new resource allocation for a
device. The resource descriptors in the 0(te stream argument must 0e specified in the same order as listed
in the CC3! 0(te stream =for more information, see the CC3! o0#ect definition>. A CC3! o0#ect can 0e
used as a template to ensure that the descriptors are in the correct format.
The settings must take effect 0efore the C!3! control method returns.
This method must not reference an( operation regions that have not 0een declared availa0le 0( a C3.$
method.
%f the device is disa0led, C!3! ena0les the device at the specified resources. C!3! is not used to disa0le a
deviceK use the C-%! control method instead.
Arguments<
;(te stream
3esult Code<
None
7.3 Device Insertion, Removal, and Status Objects
The o0#ects defined in this section provide mechanisms for handling d(namic insertion and removal of
devices and for determining device and notification processing status.
-evice insertion and removal o0#ects are also used for docking and undocking mo0ile platforms to and
from a peripheral e/pansion dock. These o0#ects give information a0out whether or not devices are present,
which devices are ph(sicall( in the same device =independent of which 0us the devices live on>, and
methods for controlling e#ection or interlock mechanisms.
The s(stem is more sta0le when remova0le devices have a software&controlled, DC3&st(le e#ection
mechanism instead of a Jsurprise&st(leL e#ection mechanism. %n this s(stem, the e#ect 0utton for a device
does not immediatel( remove the device, 0ut simpl( signals the operating s(stem. 2!'M then shuts down
the device, closes open files, unloads the driver, and sends a command to the hardware to e#ect the device.
%n AC'%, the se:uence of events for d(namicall( inserting a device follows the process 0elow. Notice that
this process supports hot, warm, and cold insertion of devices.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
34 Advanced Configuration and 'ower %nterface !pecification
4. %f the device is ph(sicall( inserted while the computer is in the working state =in other words, hot
insertion>, the hardware generates a general&purpose event.
2. The control method servicing the event uses the 0otif)=de2ice,> command to inform 2!'M of the 0us
that the new device is on or the device o0#ect for the new device. %f the Notif( command points to the
device o0#ect for the new device, the control method must have changed the deviceMs status returned 0(
C!TA to indicate that the device is now present. The performance of this process can 0e optimiHed 0(
having the o0#ect of the Notif( as close as possi0le, in the namespace hierarch(, to where the new
device resides. The Notif( command can also 0e used from the CWAE control method =for more
information a0out CWAE, see section 9.3.9 JBCWAE =!(stem Wake>L> to indicate device changes that
ma( have occurred while the computer was sleeping. 5or more information a0out the Notif( command,
see section *.+.3 J-evice 20#ect Notification.L.L
3. 2!'M uses the identification and configuration o0#ects to identif(, configure, and load a device driver
for the new device and an( devices found 0elow the device in the hierarch(.
". %f the device has a C1CE control method, 2!'M ma( later run this control method to lock the device.
The new device referred to in step 2 need not 0e a single device, 0ut could 0e a whole tree of devices. 5or
e/ample, it could point to the 'C%&'C% 0ridge docking connector. 2!'M will then load and configure all
devices it found 0elow that 0ridge. The control method can also point to several different devices in the
hierarch( if the new devices do not all live under the same 0us. =in other words, more than one 0us goes
through the connector>.
5or removing devices, AC'% supports 0oth hot removal =s(stem is in the ! state>, and warm removal
=s(stem is in a sleep state< !4&!">. This is done using the C.7x control methods. -evices that can 0e e#ected
include an C.7x control method for each sleeping state the device supports =a ma/imum of 2 C.7x o0#ects
can 0e listed>. 5or e/ample, hot removal devices would suppl( an C.7K warm removal devices would use
one of C.74&.7". These control methods are used to signal the hardware when an e#ect is to occur.
The se:uence of events for d(namicall( removing a device goes as follows<
4. The e#ect 0utton is pressed and generates a general&purpose event. =%f the s(stem was in a sleeping
state, it should wake the computer>.
2. The control method for the event uses the 0otif)=de2ice, 3> command to inform 2!'M which specific
device the user has re:uested to e#ect. Notif( does not need to 0e called for ever( device that ma( 0e
e#ected, 0ut for the top&level device. An( child devices in the hierarch( or an( e#ection&dependent
devices on this device =as descri0ed 0( C.7-, 0elow> are automaticall( removed.
3. The 2! shuts down and unloads devices that will 0e removed.
". %f the device has a C1CE control method, 2!'M runs this control method to unlock the device.
*. The 2! looks to see what C.7x control methods are present for the device. %f the removal event will
cause the s(stem to switch to 0atter( power =in other words, an undock> and the 0atter( is low, dead, or
not present, 2!'M uses the lowest supported sleep state C.7x listedK otherwise it uses the highest state
C.7x. @aving made this decision, 2!'M runs the appropriate C.7x control method to prepare the
hardware for e#ect.
+. Warm removal re:uires that the s(stem 0e put in a sleep state. %f the removal will 0e a warm removal,
2!'M puts the s(stem in the appropriate !x state. %f the removal will 0e a hot removal, 2!'M skips to
step 8, 0elow.
9. 5or warm removal, the s(stem is put in a sleep state. @ardware then uses an( motors, and so on, to
e#ect the device. %mmediatel( after e#ection, the hardware transitions the computer to !. %f the s(stem
was sleeping when the e#ect notification came in, the 2! returns the computer to a sleeping state
consistent with the userMs wake settings.
8. 2!'M calls C!TA to determine if the e#ect successfull( occurred. =%n this case, control methods do not
need to use the 0otif)=de2ice,3> command to tell 2!'M of the change in C!TA> %f there were an(
mechanical failures, C!TA returns 3< device present and not functioning, and 2!'M informs the user
of the pro0lem.
0ote< This mechanism is the same for removing a single device and for removing several devices, as in an
undock.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 344
AC'% does not disallow surprise&st(le removal of devicesK however, this t(pe of removal is not
recommended 0ecause s(stem and data integrit( cannot 0e guaranteed when a surprise&st(le removal
occurs. ;ecause the 2! is not informed, its device drivers cannot save data 0uffers and it cannot stop
accesses to the device 0efore the device is removed. To handle surprise&st(le removal, a general&purpose
event must 0e raised. %ts associated control method must use the Notif( command to indicate which 0us the
device was removed from.
The device insertion and removal o0#ects are listed in Ta0le +&4+.
Ta!le --+- 5evice Insertion' "e%oval' and Status 3!Cects
3!Cect 5escription
C.-1 20#ect that evaluates to a package of namespace references of device o0#ects that depend on
the device containing C.-1. Whenever the named device is e#ected, 2!'M e#ects all
dependent devices.
C.7- 20#ect that evaluates to the name of a device o0#ect on which a device depends. Whenever the
named device is e#ected, the dependent device must receive an e#ection notification.
C.7x Control method that e#ects a device.
C1CE Control method that locks or unlocks a device.
C2!T Control method invoked 0( 2!'M to conve( processing status to the platform..
C3MD 20#ect that indicates that the given device is remova0le.
C!TA Control method that returns a deviceMs status.
7.3.1 _EDL (Eject Device List)
This o0#ect evaluates to a package of namespace references containing the names of device o0#ects that
depend on the device under which the C.-1 o0#ect is declared. This is primaril( used to support docking
stations. ;efore the device under which the C.-1 o0#ect is declared ma( 0e e#ected, 2!'M prepares the
devices listed in the C.-1 o0#ect for ph(sical removal.
;efore 2!'M e#ects a device via the deviceMs C.7/ methods, all dependent devices listed in the package
returned 0( C.-1 are prepared for removal. Notice that C.7/ methods under the dependent devices are not
e/ecuted.
When descri0ing a platform that includes a docking station, an C.-1 o0#ect is declared under the docking
station device. 5or e/ample, if a mo0ile s(stem can attach to two different t(pes of docking stations, C.-1
is declared under 0oth docking station devices and evaluates to the packaged list of devices that must 0e
e#ected when the s(stem is e#ected from the docking station.
An AC'%&compliant 2! evaluates the C.-1 method #ust prior to e#ecting the device.
7.3.2 _EJD (Ejection Dependent Device)
This o0#ect is used to specif( the name of a device on which the device, under which this o0#ect is declared,
is dependent. This o0#ect is primaril( used to support docking stations. ;efore the device indicated 0( C.7-
is e#ected, 2!'M will prepare the dependent device =in other words, the device under which this o0#ect is
declared> for removal.
C.7- is evaluated once when the AC'% ta0le loads. The .7/ methods of the device indicated 0( C.7- will
0e used to e#ect all the dependent devices. A deviceMs dependents will 0e e#ected when the device itself is
e#ected.
0ote< 2!'M will not e/ecute a dependent deviceMs C.7/ methods when the device indicated 0( C.7- is
e#ected.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
342 Advanced Configuration and 'ower %nterface !pecification
When descri0ing a platform that includes a docking station, usuall( more than one C.7- o0#ect will 0e
needed. 5or e/ample, if a dock attaches 0oth a 'C% device and an AC'%&configured device to a mo0ile
s(stem, then 0oth the 'C% device description package and the AC'%&configured device description package
must include an C.7- o0#ect that evaluates to the name of the docking station =the name specified in an
CA-3 or C@%- o0#ect in the docking stationMs description package>. Thus, when the docking connector
signals an e#ect re:uest, 2!'M first attempts to disa0le and unload the drivers for 0oth the 'C% and AC'%
configured devices.
0ote< An AC'% 4. 2! evaluates the C.7- methods onl( once during the ta0le load process. This greatl(
restricts a ta0le designerMs freedom to descri0e d(namic dependencies such as those created in scenarios
with multiple docking stations. This restriction is illustrated in the e/ample 0elowK the C.7- information
supplied via and AC'% 4.&compati0le namespace omits the %-.2 device from -2CE2Ms list of e#ection
dependencies. !tarting in AC'% 2., 2!'M is presented with a more in&depth view of the e#ection
dependencies in a s(stem 0( use of the C.-1 methods.
1xa%ple
An e/ample use of C.7- and C.-1 is as follows<
Scope(\_SB.P)#()
Device(D0)A4) // Pa22 throu,h doc+ W D0)A4
!ame(_&DR$ Y)
;ethod(_%Z($ () Y/
;ethod(_D)A$ 4) Y/
!ame(_BD!$ Y)
;ethod(_S<&$ () (-5/
!ame(_%D6$ Pac+a,e( ) // D0)A4 ha2 two dependent device2 W #D%3 and )B3
\_SB.P)#(.#D%3$
\_SB.P)#(.)B3/)
/
Device(D0)A3) // Pa22 throu,h doc+ W D0)A3
!ame(_&DR$ Y)
;ethod(_%Z($ () Y/
;ethod(_D)A$ 4) Y/
!ame(_BD!$ Y)
;ethod(_S<&$ () (-(/
!ame(_%D6$ Pac+a,e( ) // D0)A3 ha2 one dependent device W #D%3
\_SB.P)#(.#D%3/)
/
Device(#D%4) // #D% Drive4 not dependent on the doc+
!ame(_&DR$ Y)
/
Device(#D%3) // #D% Drive3
!ame(_&DR$ Y)
!ame(_%ZD$*\\_SB.P)#(.D0)A4*) // Dependent on D0)A4
/
Device()B3) // )ardBu2 )ontroller
!ame(_&DR$ Y)
!ame(_%ZD$*\\_SB.P)#(.D0)A4*) // Dependent on D0)A4
/
/ // end \_SB.P)#0
7.3.3 _EJx (Eject)
These control methods are optional and are supplied for devices that support a software&controlled DC3&
st(le e#ection mechanism or that re:uire an action 0e performed such as isolation of powerFdata lines 0efore
the device can 0e removed from the s(stem. To support warm =s(stem is in a sleep state> and hot =s(stem is
in !> removal, an C.7x control method is listed for each sleep state from which the device supports
removal, where x is the sleeping state supported. 5or e/ample, C.7 indicates the device supports hot
removalK C.74I.7" indicate the device supports warm removal.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 343
5or hot removal, the device must 0e immediatel( e#ected when 2!'M calls the C.7 control method.
The C.7 control method does not return until e#ection is complete. After calling C.7, 2!'M verifies the
device no longer e/ists to determine if the e#ect succeeded. 5or C@%- devices, 2!'M evaluates the C!TA
method. 5or CA-3 devices, 2!'M checks with the 0us driver for that device.
5or warm removal, the C.74IC.7" control methods do not cause the device to 0e immediatel( e#ected.
%nstead, the( set proprietar( registers to prepare the hardware to e#ect when the s(stem goes into the given
sleep state. The hardware e#ects the device onl( after 2!'M has put the s(stem in a sleep state 0( writing
to the !1'C.N register. After the s(stem resumes, 2!'M calls C!TA to determine if the e#ect succeeded.
The C.7x control methods take one parameter to indicate whether e#ect should 0e ena0led or disa0led<
4I@ot e#ect or mark for e#ection
ICancel mark for e#ection =.7 will never 0e called with this value>
A device o0#ect ma( have multiple C.7x control methods. 5irst, it lists an .7/ control method for the
preferred sleeping state to e#ect the device. 2ptionall(, the device ma( list an .7" control method to 0e used
when the s(stem has no power =for e/ample, no 0atter(> after the e#ect. 5or e/ample, a hot&docking
note0ook might list C.7 and C.7".
7.3.4 _LCK (Lock)
This control method is optional and is re:uired onl( for a device that supports a software&controlled locking
mechanism. When the 2! invokes this control method, the associated device is to 0e locked or unlocked
0ased upon the value of the argument that is passed. 2n a lock re:uest, the control method must not
complete until the device is completel( locked.
The C1CE control method takes one parameter that indicates whether or not the device should 0e locked<
4 I1ock the device.
I,nlock the device.
When descri0ing a platform, devices use either a C1CE control method or an C.7x control method for a
device.
7.3.5 _OST (OSPM Status Indication)
This o0#ect is an optional control method that is invoked 0( 2!'M to indicate processing status to the
platform. -uring device e#ection, device hot add, or other event processing, 2!'M ma( need to perform
specific handshaking with the platform. 2!'M ma( also need to indicate to the platform its ina0ilit( to
complete a re:uested operationK for e/ample, when a user presses an e#ection 0utton for a device that is
currentl( in use or is otherwise currentl( incapa0le of 0eing e#ected. %n this case, the processing of the
AC'% 1Cect "eJuest notification 0( 2!'M fails. 2!'M ma( indicate this failure to the platform through
the invocation of the C2!T control method. As a result of the status notification indicating e#ection failure,
the platform ma( take certain action including reissuing the notification or perhaps turning on an
appropriate indicator light to signal the failure to the user.
Arguments<
Arg I so'rceFe2ent# DWord)on2t
%f the value of so'rceFe2ent is T\ /55, this argument is the AC'% notification value whose processing
generated the status indication. This is the value that was passed into the 0otif) operator.
%f the value of sourceCevent is /4 or greater then the 2!'M status indication is a result of an 2!'M
action as indicated in Ta0le +&49. 5or e/ample, a value of /43 will 0e passed into C2!T for this argument
upon the failure of a user interface invoked device e#ection.
%f 2!'M is una0le to identif( the originating notification value, 2!'M invokes C2!T with a value that
contains all 0its set =ones> for this parameter.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
34" Advanced Configuration and 'ower %nterface !pecification
Arg4 I !tatus Code< DWord)on2t. 2!'M indicates a notification value specific status. !ee Ta0les +&48
and +&46 for status code descriptions.
Arg2 I A 0uffer containing detailed 2!'M&specific information a0out the status indication. This argument
ma( 0e the null string.
3esults<
None
Ta!le --+. D3ST Source 1vent Codes
Source 1vent Code 5escription
&/55 3eserved for Notification Dalues
/4&/42 3eserved
/43 .#ection 'rocessing
/4"&/455 3eserved
/2 %nsertion 'rocessing
/24&/55555555 3eserved
Ta!le --+/ ;eneral Processing Status Codes
Status Code 5escription
!uccess
4 Non&specific failure
2 ,nrecogniHed Notif( Code
3&/95 3eserved
/8&/55555555 Notification value specific status codes
Ta!le --+, 1Cection "eJuest @ 1Cection Processing >Source 1ventsH $x$# and $x+$#? Status Codes
Status Code 5escription
/8 -evice e#ection not supported 0( 2!'M
/84 -evice in use 0( application
/82 -evice ;us(
/83 .#ection dependenc( is 0us( or not supported for e#ection 0( 2!'M
/8" .#ection is in progress =pending>
/8*&/55555555 3eserved
Ta!le --&$ Insertion Processing >Source 1ventH $x&$$? Status Codes
Status Code 5escription
/8 -evice insertion in progress =pending>
/84 -evice driver load failure
/82&/85 3eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 34*
Status Code 5escription
/6&/65 %nsertion failure I 3esources ,navaila0le as descri0ed 0( the following 0it
encodings<
;itV3W ;us Num0ers
;itV2W %nterrupts
;itV4W %F2
;itVW Memor(
/A&/55555555 3eserved
%t is possi0le for the platform to issue multiple notifications to 2!'M and for 2!'M to process the
notifications as(nchronousl(. As such, 2!'M ma( invoke C2!T for notifications independent of the order
the notification are conve(ed 0( the platform or 0( software to 2!'M..
The figure 0elow provides and e/ample event flow of device e#ection on a platform emplo(ing the C2!T
o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
34+ Advanced Configuration and 'ower %nterface !pecification
6igure --+ 5evice 1Cection 6low 1xa%ple 2sing D3ST
N2T.< To maintain compati0ilit( with 2!'M implementations of previous revisions of the AC'%
specification, the platform must not rel( on 2!'MMs evaluation of the C2!T o0#ect for proper platform
operation.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 349
./ample A!1 for C2!T usage<
Scope(\_SB.P)#.)
0perationRe,ion(6%D4$ S12tem#0$ (-4()($ (-3()
5ield(6%D4$ &n1&cc$ !o6oc+$ Pre2erve)
// 6%D control2
S(6%$ 4$ // Slot ( %9ection Pro,re22 6%D
S(65$ 4$ // Slot ( %9ection 5ailure 6%D
S46%$ 4$ // Slot 4 %9ection Pro,re22 6%D
S465$ 4$ // Slot 4 %9ection 5ailure 6%D
S36%$ 4$ // Slot 3 %9ection Pro,re22 6%D
S365$ 4$ // Slot 3 %9ection 5ailure 6%D
SF6%$ 4$ // Slot F %9ection Pro,re22 6%D
SF65$ 4 // Slot F %9ection 5ailure 6%D
/
Device(S6<F) // hot plu, device
!ame(_&DR$ (-((()(((F)
;ethod(_0S<$ F$ SerialiCed) // 0S call2 _0S< with notif1 code F or (-4(F
// and 2tatu2 code2 (-=(E(-=F
// to indicate a hot remove re8ue2t failure.
// Statu2 code (-=. indicate2 an e9ection
// re8ue2t pendin,.
#f(6%8ual(&r,($0ne2)) // Xn2pecified event

// Perform ,eneric event proce22in, here


/
Switch(&nd(&r,($(-55)) // ;a2+ to retain low b1te

)a2e((-(F) // %9ection re8ue2t

Switch(&r,4)

)a2e(Pac+a,e()(-=($ (-=4$ (-=3$ (-=F/)


// %9ection 5ailure for 2ome rea2on
Store(7ero$ \\SF6%) // <urn off %9ection Pro,re22 6%D
Store(0ne$ \\SF65) // <urn on %9ection 5ailure 6%D
/
)a2e((-=.) // %9ect re8ue2t pendin,

Store(0ne$ \\SF6%) // <urn on %9ection Re8ue2t 6%D


Store(7ero$ \\SF65) // <urn off %9ection 5ailure 6%D
/
/
/
/
/ // end _0S<
;ethod(_%Z($ 4) // Succe22ful e9ection 2e8uence

Store(7ero$ \\SF6%) // <urn off %9ection Pro,re22 6%D
/
/ // end S6<F
/ // end 2cope \_SB.P)#.
Scope (_:P%)

_%4F

Store(0ne$ \_SB.P)#..SF6%) // <urn on e9ection re8ue2t 6%D
!otif1(S6<F$ F) // %9ection re8ue2t driven from :P%4F
/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
348 Advanced Configuration and 'ower %nterface !pecification
7.3.6 _RMV (Remove)
The optional C3MD o0#ect indicates to 2!'M whether the device can 0e removed while the s(stem is in
the working state and does not re:uire an( AC'% s(stem firmware actions to 0e performed for the device to
0e safel( removed from the s(stem =in other words, an( device that onl( supports surprise&st(le removal>.
An( such remova0le device that does not have C1CE or C.7/ control methods must have an C3MD o0#ect.
This allows 2!'M to indicate to the user that the device can 0e removed and to provide a wa( for shutting
down the device 0efore removing it. 2!'M will transition the device into -3 0efore telling the user it is
safe to remove the device.
This method is reevaluated after a device&check notification.
Arguments<
None
3esult Code<
I The device cannot 0e removed.
4 I The device can 0e removed.
0ote< 2perating !(stems implementing AC'% 4. interpret the presence of this o0#ect to mean that the
device is remova0le.
7.3.7 _STA (Status)
This o0#ect returns the status of a device, which can 0e one of the following< ena0led, disa0led, or removed.
Arguments<
None
3esult Code =0itmap><
;it !et if the device is present.
;it 4 !et if the device is ena0led and decoding its resources.
;it 2 !et if the device should 0e shown in the ,%.
;it 3 !et if the device is functioning properl( =cleared if the device failed its diagnostics>.
;it " !et if the 0atter( is present.
;its *I34 3eserved =must 0e cleared>.
%f 0it is cleared, then 0it 4 must also 0e cleared =in other words, a device that is not present cannot 0e
ena0led>.
A device can onl( decode its hardware resources if 0oth 0its and 4 are set. %f the device is not present =0it
cleared> or not ena0led =0it 4 cleared>, then the device must not decode its resources.
%f a device is present in the machine, 0ut should not 0e displa(ed in 2!'M user interface, 0it 2 is cleared.
5or e/ample, a note0ook could have #o(stick hardware =thus it is present and decoding its resources>, 0ut
the connector for plugging in the #o(stick re:uires a port replicator. %f the port replicator is not plugged in,
the #o(stick should not appear in the ,%, so 0it 2 is cleared.
C!TA ma( return 0it clear =not present> with 0it 3 set =device is functional>. This case is used to indicate
a valid device for which no device driver should 0e loaded =for e/ample, a 0ridge device.> Children of this
device ma( 0e present and valid. 2!'M should continue enumeration 0elow a device whose C!TA returns
this 0it com0ination.
%f a device o0#ect =including the processor o0#ect> does not have an C!TA o0#ect, then 2!'M assumes that
all of the a0ove 0its are set =in other words, the device is present, ena0led, shown in the ,%, and
functioning>.
This method must not reference an( operation regions that have not 0een declared availa0le 0( a C3.$
method.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 346
7.4 Resource Data Types for ACPI
The CC3!, C'3!, and C!3! control methods use packages of resource descriptors to descri0e the resource
re:uirements of devices.
7.4.1 ASL Macros for Resource Descriptors
A!1 includes some macros for creating resource descriptors. The A!1 s(nta/ for these macros is defined in
section 49.*, JA!1 2perator 3eferenceL, along with the other A!1 operators.
7.4.2 Small Resource Data Type
A small resource data t(pe ma( 0e 2 to 8 0(tes in siHe and adheres to the following format<
Ta!le --&+ S%all "esource 5ata T)pe Tag <it 5efinitions
3ffset 6ield
;(te Tag <itN.O Tag <itsN-H#O Tag <its N&H$O
T(peI !mall item name 1engthIn 0(tes
;(tes 4 to n -ata 0(tes
The following small information items are currentl( defined for 'lug and 'la( devices<
Ta!le --&& S%all "esource Ite%s
S%all Ite% 0a%e 7alue
3eserved /4
3eserved /2
3eserved /3
%3G format /"
-MA format /*
!tart dependent 5unction /+
.nd dependent 5unction /9
%F2 port descriptor /8
5i/ed location %F2 port descriptor /6
3eserved /AI/-
Dendor defined /.
.nd tag /5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
32 Advanced Configuration and 'ower %nterface !pecification
7.4.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 324
IRQ Descriptor
T)pe $' S%all Ite% 0a%e $x(' Length P & or #
The %3G data structure indicates that the device uses an interrupt level and supplies a mask with 0its set
indicating the levels implemented in this device. 5or standard 'C&AT implementation there are 4* possi0le
interrupts so a two&0(te field is used. This structure is repeated for each separate interrupt re:uired.
Ta!le --&# I"K 5escriptor 5efinition
3ffset 6ield 0a%e
;(te Dalue \ 44n; =T(pe \ , small item name \ /", length \ =2 or 3>>
;(te 4 %3G mask 0itsV9<W, C%NT
;itVW represents %3G, 0itV4W is %3G4, and so on.
;(te 2 %3G mask 0itsV4*<8W, C%NT
;itVW represents %3G8, 0itV4W is %3G6, and so on.
;(te 3 %3G %nformation. .ach 0it, when set, indicates this device is capa0le of driving a certain t(pe of
interrupt. =2ptionalPif not included then assume edge sensitive, high true interrupts.> These 0its
can 0e used 0oth for reporting and setting %3G resources.
0oteH This descriptor is meant for descri0ing interrupts that are connected to '%C&compati0le
interrupt controllers, which can onl( 0e programmed for Active&@igh&.dge&Triggered or Active&
1ow&1evel&Triggered interrupts. An( other com0ination is illegal. The ./tended %nterrupt
-escriptor can 0e used to descri0e other com0inations.
;itV9<*W $eser2ed =must 0e >
;itV"W %nterrupt is shara0le, C!@3
;itV3W %nterrupt 'olarit(, C11
Active&@igh I This interrupt is sampled when the signal is high, or true
4 Active&1ow I This interrupt is sampled when the signal is low, or false.
;itV2<4W Ignored
;itVW %nterrupt Mode, C@.
1evel&Triggered I %nterrupt is triggered in response to signal in a low state.
4 .dge&Triggered I %nterrupt is triggered in response to a change in signal state
from low to high.
0ote< 1ow true, level sensitive interrupts ma( 0e electricall( shared, 0ut the process of how this might
work is 0e(ond the scope of this specification.
0ote< %f 0(te 3 is not included, @igh true, edge sensitive, non&sharea0le is assumed.
!ee section 49.*.**, J%nterrupt =%nterrupt 3esource -escriptor Macro,L for a description of the A!1 macro
that creates an %3G descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
322 Advanced Configuration and 'ower %nterface !pecification
7.4.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 323
DMA Descriptor
T)pe $' S%all Ite% 0a%e $xA' Length P &
The -MA data structure indicates that the device uses a -MA channel and supplies a mask with 0its set
indicating the channels actuall( implemented in this device. This structure is repeated for each separate
channel re:uired.
Ta!le --&( 5MA 5escriptor 5efinition
3ffset 6ield 0a%e
;(te Dalue \ 444; =T(pe \ , small item name \ /*, length \ 2>
;(te 4 -MA channel mask 0itsV9<W, C-MA
;itVW is channel
;(te 2
;itV9W $eser2ed =must 0e >
;itsV+<*W -MA channel speed supported, CTS'
%ndicates compati0ilit( mode
4 %ndicates T(pe A -MA as descri0ed in the .%!A
4 %ndicates T(pe ; -MA
44 %ndicates T(pe 5
;itsV"<3W Ignored
;itV2W 1ogical device 0us master status, C;M
1ogical device is not a 0us master
4 1ogical device is a 0us master
;itsV4<W -MA transfer t(pe preference, C!%?
8&0it onl(
4 8& and 4+&0it
4 4+&0it onl(
44 $eser2ed
!ee section 49.*.3, J-MA =-MA 3esource -escriptor Macro>,L for a description of the A!1 macro that
creates a -MA descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
32" Advanced Configuration and 'ower %nterface !pecification
7.4.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 32*
Start Dependent Functions Descriptor
T)pe $' S%all Ite% 0a%e $x-' Length P $ or +
.ach logical device re:uires a set of resources. This set of resources ma( have interdependencies that need
to 0e e/pressed to allow ar0itration software to make resource allocation decisions a0out the logical device.
-ependent functions are used to e/press these interdependencies. The data structure definitions for
dependent functions are shown here. 5or a detailed description of the use of dependent functions refer to
the ne/t section.
Ta!le --&A Start 5ependent 6unctions
3ffset 6ield 0a%e
;(te Dalue \ C44Cn; =T(pe \ , small item name \ /+, length \= or 4>>
!tart -ependent 5unction fields ma( 0e of length or 4 0(tes. The e/tra 0(te is optionall( used to denote
the compati0ilit( or performanceFro0ustness priorit( for the resource group following the !tart -5 tag. The
compati0ilit( priorit( is a ranking of configurations for compati0ilit( with legac( operating s(stems. This is
the same as the priorit( used in the 'N';%2! interface. 5or e/ample, for compati0ilit( reasons, the
preferred configuration for C2M4 is %3G", %F2 358&355. The performanceFro0ustness performance is a
ranking of configurations for performance and ro0ustness reasons. 5or e/ample, a device ma( have a high&
performance, 0us mastering configuration that ma( not 0e supported 0( legac( operating s(stems. The 0us&
mastering configuration would have the highest performanceFro0ustness priorit( while its polled %F2 mode
might have the highest compati0ilit( priorit(.
%f the 'riorit( 0(te is not included, this indicates the dependent function priorit( is Oaccepta0leM. This 0(te is
defined as<
Ta!le --&- Start 5ependent 6unction Priorit) <)te 5efinition
<its 5efinition
4<
Compati0ilit( priorit(. Accepta0le values are<
$ood configuration< @ighest 'riorit( and preferred configuration
4 Accepta0le configuration< 1ower 'riorit( 0ut accepta0le configuration
2 !u0&optimal configuration< 5unctional configuration 0ut not optimal
3 3eserved
3<2
'erformanceFro0ustness. Accepta0le values are<
$ood configuration< @ighest 'riorit( and preferred configuration
4 Accepta0le configuration< 1ower 'riorit( 0ut accepta0le configuration
2 !u0&optimal configuration< 5unctional configuration 0ut not optimal
3 3eserved
9<" $eser2ed =must 0e >
Notice that if multiple -ependent 5unctions have the same priorit(, the( are further prioritiHed 0( the order
in which the( appear in the resource data structure. The -ependent 5unction that appears earliest =nearest
the 0eginning> in the structure has the highest priorit(, and so on.
!ee section 49.*.444, J!tart-ependent5n =!tart -ependent 5unction 3esource -escriptor Macro>,L for a
description of the A!1 macro that creates a !tart -ependent 5unction descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
32+ Advanced Configuration and 'ower %nterface !pecification
7.4.2.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 329
End Dependent Functions Descriptor
T)pe $' S%all Ite% 0a%e $x.' Length P $
2nl( one .nd -ependent 5unction item is allowed per logical device. This enforces the fact that -ependent
5unctions cannot 0e nested.
Ta!le --&. 1nd 5ependent 6unctions
3ffset 6ield 0a%e
;(te Dalue \ C444C; =T(pe \ , small item name \ /9 length \>
!ee section 49.*.39, J.nd-ependent5n =.nd -ependent 5unction 3esource -escriptor Macro,L for a
description of the A!1 macro that creates an .nd -ependent 5unctions descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
328 Advanced Configuration and 'ower %nterface !pecification
7.4.2.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 326
I/O Port Descriptor
T)pe $' S%all Ite% 0a%e $x/' Length P .
There are two t(pes of descriptors for %F2 ranges. The first descriptor is a full function descriptor for
programma0le devices. The second descriptor is a minimal descriptor for old %!A cards with fi/ed %F2
re:uirements that use a 4&0it %!A address decode. The first t(pe descriptor can also 0e used to descri0e
fi/ed %F2 re:uirements for %!A cards that re:uire a 4+&0it address decode. This is accomplished 0( setting
the range minimum 0ase address and range ma/imum 0ase address to the same fi/ed %F2 value.
Ta!le --&/ I@3 Port 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te %F2 port descriptor Dalue \ 4444; =T(pe \ , !mall item name \ /8, 1ength \ 9>
;(te 4 %nformation
;itsV9<4W $eser2ed and must 0e
;itVW =C-.C>
4 The logical device decodes 4+&0it addresses
The logical device onl( decodes address 0itsV6<W
;(te 2 3ange minimum 0ase
address, CM%N 0itsV9<W
Address 0itsV9<W of the minimum 0ase %F2 address that the card ma( 0e
configured for.
;(te 3 3ange minimum 0ase
address, CM%N 0itsV4*<8W
Address 0itsV4*<8W of the minimum 0ase %F2 address that the card ma(
0e configured for.
;(te " 3ange ma/imum 0ase
address, CMAA 0itsV9<W
Address 0itsV9<W of the ma/imum 0ase %F2 address that the card ma(
0e configured for.
;(te * 3ange ma/imum 0ase
address, CMAA 0itsV4*<8W
Address 0itsV4*<8W of the ma/imum 0ase %F2 address that the card ma(
0e configured for.
;(te + ;ase alignment, CA1N Alignment for minimum 0ase address, increment in 4&0(te 0locks.
;(te 9 3ange length, C1.N The num0er of contiguous %F2 ports re:uested.
!ee section 49.*.*+, J%2 =%2 3esource -escriptor Macro,L for a description of the A!1 macro that creates
an %F2 'ort descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
33 Advanced Configuration and 'ower %nterface !pecification
7.4.2.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 334
Fixed Location I/O Port Descriptor
T)pe $' S%all Ite% 0a%e $x,' Length P #
This descriptor is used to descri0e 4&0it %F2 locations.
Ta!le --&, 6ixed-Location I@3 Port 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te 5i/ed 1ocation %F2 port
descriptor
Dalue \ 4444; =T(pe \ , !mall item name \ /6, 1ength \ 3>
;(te 4 3ange 0ase address,
C;A! 0itsV9<W
Address 0itsV9<W of the 0ase %F2 address that the card ma( 0e configured
for. This descriptor assumes a 4&0it %!A address decode.
;(te 2 3ange 0ase address,
C;A! 0itsV6<8W
Address 0itsV6<8W of the 0ase %F2 address that the card ma( 0e configured
for. This descriptor assumes a 4&0it %!A address decode.
;(te 3 3ange length, C1.N The num0er of contiguous %F2 ports re:uested.
!ee section 49.*."9, J5i/ed%2 =5i/ed %F2 3esource -escriptor Macro,L for a description of the A!1 macro
that creates a 5i/ed %F2 'ort descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
332 Advanced Configuration and 'ower %nterface !pecification
7.4.2.7
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 333
Vendor-Defned Descriptor
T)pe $' S%all Ite% 0a%e $x1' Length P + to .
The vendor defined resource data t(pe is for vendor use.
Ta!le --#$ 7endor-5efined "esource 5escriptor 5efinition
3ffset 6ield 0a%e
;(te Dalue \ 444nnn; =T(pe \ , small item name \ /., length \ =4&9>>
;(te 4 to 9 Dendor defined
!ee Dendor!hort =page 8"4> for a description of the A!1 macro that creates a short vendor&defined resource
descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
33" Advanced Configuration and 'ower %nterface !pecification
7.4.2.8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 33*
End Tag
T)pe $' S%all Ite% 0a%e $x6' Length P +
The .nd tag identifies an end of resource data.
0oteH %f the checksum field is Hero, the resource data is treated as if the checksum operation succeeded.
Configuration proceeds normall(.
Ta!le --#+ 1nd Tag 5efinition
3ffset 6ield 0a%e
;(te Dalue \ 44444; =T(pe \ , small item name \ /5, length \ 4>
;(te 4 Checksum covering all resource data after the serial identifier. This checksum is
generated such that adding it to the sum of all the data 0(tes will produce a Hero sum.
The .nd Tag is automaticall( generated 0( the A!1 compiler at the end of the "esourceTe%plate
statement.
7.4.3 Large Resource Data Type
To allow for larger amounts of data to 0e included in the configuration data structure the large format is
shown 0elow. This includes a 4+&0it length field allowing up to +" E; of data.
Ta!le --#& Large "esource 5ata T)pe Tag <it 5efinitions
3ffset 6ield 0a%e
;(te Dalue \ 4///////; =T(pe \ 4, 1arge item name \ ///////>
;(te 4 1ength of data items 0itsV9<W
;(te 2 1ength of data items 0itsV4*<8W
;(tes 3 to
=1ength Z 2>
Actual data items
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
33+ Advanced Configuration and 'ower %nterface !pecification
The following large information items are currentl( defined for 'lug and 'la( %!A devices<
Ta!le --## Large "esource Ite%s
Large Ite% 0a%e 7alue
2"&0it memor( range descriptor /4
$eneric register descriptor /2
3eserved /3
Dendor defined /"
32&0it memor( range descriptor /*
32&0it fi/ed location memor( range descriptor /+
-W23- address space descriptor /9
W23- address space descriptor /8
./tended %3G descriptor /6
GW23- address space descriptor /A
./tended address space descriptor /;
3eserved /C && /95
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 339
7.4.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
338 Advanced Configuration and 'ower %nterface !pecification
24-Bit Memory Range Descriptor
T)pe +' Large Ite% 0a%e $x+
The 2"&0it memor( range descriptor descri0es a deviceMs memor( range resources within a 2"&0it address
space.
Ta!le --#( Large Me%or) "ange 5escriptor 5efinition
3ffset 6ield 0a%e' ASL 6ield
0a%e
5efinition
;(te Memor( range descriptor Dalue \ 44; =T(pe \ 4, 1arge item name \ /4>
;(te 4 1ength, 0itsV9<W Dalue \ 44; =6>
;(te 2 1ength, 0itsV4*<8W Dalue \ ; =>
;(te 3 %nformation This field provides e/tra information a0out this memor(.
;itV9<4W Ignored
;itVW Write status, C3W
4 writea0le =readFwrite>
non&writea0le =read&onl(>
;(te " 3ange minimum 0ase
address, CM%N, 0itsV9<W
Address 0itsV4*<8W of the minimum 0ase memor( address for
which the card ma( 0e configured.
;(te * 3ange minimum 0ase
address, CM%N, 0itsV4*<8W
Address 0itsV23<4+W of the minimum 0ase memor( address for
which the card ma( 0e configured
;(te + 3ange ma/imum 0ase
address, CMAA, 0itsV9<W
Address 0itsV4*<8W of the ma/imum 0ase memor( address for
which the card ma( 0e configured.
;(te 9 3ange ma/imum 0ase
address, CMAA, 0itsV4*<8W
Address 0itsV23<4+W of the ma/imum 0ase memor( address for
which the card ma( 0e configured
;(te 8 ;ase alignment, CA1N,
0itsV9<W
This field contains the lower eight 0its of the 0ase alignment. The
0ase alignment provides the increment for the minimum 0ase
address. =/ \ +" E;>
;(te 6 ;ase alignment, CA1N,
0itsV4*<8W
This field contains the upper eight 0its of the 0ase alignment. The
0ase alignment provides the increment for the minimum 0ase
address. =/ \ +" E;>
;(te 4 3ange length, C1.N,
0itsV9<W
This field contains the lower eight 0its of the memor( range
length. The range length provides the length of the memor( range
in 2*+ 0(te 0locks.
;(te 44 3ange length, C1.N,
0itsV4*<8W
This field contains the upper eight 0its of the memor( range
length. The range length field provides the length of the memor(
range in 2*+ 0(te 0locks.
0otesH
Address 0its V9<W of memor( 0ase addresses are assumed to 0e .
A Memor( range descriptor can 0e used to descri0e a fi/ed memor( address 0( setting the range
minimum 0ase address and the range ma/imum 0ase address to the same value.
2"&0it Memor( 3ange descriptors are used for legac( devices.
Mi/ing of 2"&0it and 32&0it memor( descriptors on the same device is not allowed.
!ee section 49.*.92, JMemor(2" =Memor( 3esource -escriptor Macro>,L for a description of the A!1
macro that creates a 2"&0it Memor( descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 336
7.4.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3" Advanced Configuration and 'ower %nterface !pecification
Vendor-Defned Descriptor
T)pe +' Large Ite% 0a%e $x(
The vendor defined resource data t(pe is for vendor use.
Ta!le --#A Large 7endor-5efined "esource 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te Dendor defined Dalue \ 44; =T(pe \ 4, 1arge item name \ /">
;(te 4 1ength, 0itsV9<W 1ower eight 0its of data length =,,%%- c vendor defined
data>
;(te 2 1ength, 0itsV4*<8W ,pper eight 0its of data length =,,%- c vendor defined
data>
;(te 3 ,,%- specific descriptor su0 t(pe ,,%- specific descriptor su0 t(pe value
;(te "&46 ,,%- ,,%- Dalue
;(te 2&
=1engthZ2>
Dendor -efined -ata Dendor defined data 0(tes
AC'% 3. defines the ,,%- specific descriptor su0t(pe field and the ,,%- field to address potential
collision of the use of this descriptor. %t is strongl( recommended that all newl( defined vendor descriptors
use these fields prior to Dendor -efined -ata.
!ee Dendor1ong =page 8"> for a description of the A!1 macro that creates a long vendor&defined resource
descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3"4
7.4.3.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3"2 Advanced Configuration and 'ower %nterface !pecification
32-Bit Memory Range Descriptor
T)pe +' Large Ite% 0a%e $xA
This memor( range descriptor descri0es a deviceMs memor( resources within a 32&0it address space.
Ta!le --#- Large #&-<it Me%or) "ange 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te Memor( range descriptor Dalue \ 444; =T(pe \ 4, 1arge item name \ /*>
;(te 4 1ength, 0itsV9<W Dalue \ 44; =49>
;(te 2 1ength, 0itsV4*<8W Dalue \ ; =>
;(te 3 %nformation This field provides e/tra information a0out this memor(.
;itV9<4W Ignored
;itVW Write status, C3W
4 writea0le =readFwrite>
non&writea0le =read&onl(>
;(te " 3ange minimum 0ase address,
CM%N, 0itsV9<W
Address 0itsV9<W of the minimum 0ase memor( address for
which the card ma( 0e configured.
;(te * 3ange minimum 0ase address,
CM%N, 0itsV4*<8W
Address 0itsV4*<8W of the minimum 0ase memor( address for
which the card ma( 0e configured.
;(te + 3ange minimum 0ase address,
CM%N, 0itsV23<4+W
Address 0itsV23<4+W of the minimum 0ase memor( address for
which the card ma( 0e configured.
;(te 9 3ange minimum 0ase address,
CM%N, 0itsV34<2"W
Address 0itsV34<2"W of the minimum 0ase memor( address for
which the card ma( 0e configured.
;(te 8 3ange ma/imum 0ase address,
CMAA, 0itsV9<W
Address 0itsV9<W of the ma/imum 0ase memor( address for
which the card ma( 0e configured.
;(te 6 3ange ma/imum 0ase address,
CMAA, 0itsV4*<8W
Address 0itsV4*<8W of the ma/imum 0ase memor( address for
which the card ma( 0e configured.
;(te 4 3ange ma/imum 0ase address,
CMAA, 0itsV23<4+W
Address 0itsV23<4+W of the ma/imum 0ase memor( address for
which the card ma( 0e configured.
;(te 44 3ange ma/imum 0ase address,
CMAA, 0itsV34<2"W
Address 0itsV34<2"W of the ma/imum 0ase memor( address for
which the card ma( 0e configured.
;(te 42 ;ase alignment, CA1N 0itsV9<W
This field contains ;itsV9<W of the 0ase alignment. The 0ase
alignment provides the increment for the minimum 0ase
address.
;(te 43 ;ase alignment, CA1N 0itsV4*<8W
This field contains ;itsV4*<8W of the 0ase alignment. The 0ase
alignment provides the increment for the minimum 0ase
address.
;(te 4" ;ase alignment, CA1N 0itsV23<4+W
This field contains ;itsV23<4+W of the 0ase alignment. The 0ase
alignment provides the increment for the minimum 0ase
address.
;(te 4* ;ase alignment, CA1N 0itsV34<2"W
This field contains ;itsV34<2"W of the 0ase alignment. The 0ase
alignment provides the increment for the minimum 0ase
address.
;(te 4+ 3ange length, C1.N 0itsV9<W
This field contains ;itsV9<W of the memor( range length. The
range length provides the length of the memor( range in 4&
0(te 0locks.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3"3
3ffset 6ield 0a%e 5efinition
;(te 49 3ange length, C1.N 0itsV4*<8W
This field contains ;itsV4*<8W of the memor( range length. The
range length provides the length of the memor( range in 4&
0(te 0locks.
;(te 48 3ange length, C1.N 0itsV23<4+W
This field contains ;itsV23<4+W of the memor( range length.
The range length provides the length of the memor( range in
4&0(te 0locks.
;(te 46 3ange length, C1.N 0itsV34<2"W
This field contains ;itsV34<2"W of the memor( range length.
The range length provides the length of the memor( range in
4&0(te 0locks.
0oteH Mi/ing of 2"&0it and 32&0it memor( descriptors on the same device is not allowed.
!ee section 49.*.93, JMemor(32 =Memor( 3esource -escriptor Macro>,L for a description of the A!1
macro that creates a 32&0it Memor( descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3"" Advanced Configuration and 'ower %nterface !pecification
7.4.3.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3"*
32-Bit Fixed Memory Range Descriptor
T)pe +' Large Ite% 0a%e $x-
This memor( range descriptor descri0es a deviceMs memor( resources within a 32&0it address space.
Ta!le --#. Large 6ixed-Location Me%or) "ange 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te Memor( range descriptor Dalue \ 444; =T(pe \ 4, 1arge item name \ +>
;(te 4 1ength, 0itsV9<W Dalue \ 44; =6>
;(te 2 1ength, 0itsV4*<8W Dalue \ ; =>
;(te 3 %nformation This field provides e/tra information a0out this memor(.
;itV9<4W Ignored
;itVW Write status, C3W
4 writea0le =readFwrite>
non&writea0le =read&onl(>>
;(te " 3ange 0ase address,
C;A! 0itsV9<W
Address 0itsV9<W of the 0ase memor( address for which the card ma(
0e configured.
;(te * 3ange 0ase address,
C;A! 0itsV4*<8W
Address 0itsV4*<8W of the 0ase memor( address for which the card ma(
0e configured.
;(te + 3ange 0ase address,
C;A! 0itsV23<4+W
Address 0itsV23<4+W of the 0ase memor( address for which the card ma(
0e configured.
;(te 9 3ange 0ase address,
C;A! 0itsV34<2"W
Address 0itsV34<2"W of the 0ase memor( address for which the card ma(
0e configured.
;(te 8 3ange length, C1.N
0itsV9<W
This field contains ;itsV9<W of the memor( range length. The range
length provides the length of the memor( range in 4&0(te 0locks.
;(te 6 3ange length, C1.N
0itsV4*<8W
This field contains ;itsV4*<8W of the memor( range length. The range
length provides the length of the memor( range in 4&0(te 0locks.
;(te 4 3ange length, C1.N
0itsV23<4+W
This field contains ;itsV23<4+W of the memor( range length. The range
length provides the length of the memor( range in 4&0(te 0locks.
;(te 44 3ange length, C1.N
0itsV34<2"W
This field contains ;itsV34<2"W of the memor( range length. The range
length provides the length of the memor( range in 4&0(te 0locks.
0oteH Mi/ing of 2"&0it and 32&0it memor( descriptors on the same device is not allowed.
!ee section 49.*.9", JMemor(325i/ed =Memor( 3esource -escriptor>,L for a description of the A!1 macro
that creates a 32&0it 5i/ed Memor( descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3"+ Advanced Configuration and 'ower %nterface !pecification
7.4.3.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3"9
Address Space Resource Descriptors
The GW23-, -W23-, W23-, and ./tended Address !pace -escriptors are general&purpose structures
for descri0ing a variet( of t(pes of resources. These resources also include support for advanced server
architectures =such as multiple root 0uses>, and resource t(pes found on some 3%!C processors. These
descriptors can descri0e various kinds of resources. The following ta0le defines the valid com0ination of
each field and how the( should 0e interpreted.
Ta!le --#/ 7alid co%!ination of Address Space 5escriptors fields
DL10 DMI6 DMA6 5efinition
Daria0le siHe, varia0le location resource descriptor for C'3!.
%f CM%5 is set, CM%N must 0e a multiple of =C$3AZ4>. %f CMA5 is set, CMAA
must 0e =a multiple of =C$3AZ4>>&4.
2! can pick the resource range that satisfies following conditions<
%f CM%5 is not set, start address is a multiple of =C$3AZ4> and greater
or e:ual to CM%N. 2therwise, start address is CM%N.
%f CMA5 is not set, end address is =a multiple of =C$3AZ4>>&4 and less
or e:ual to CMAA. 2therwise, end address is CMAA.
4
4
4 4 =%llegal com0ination>
) 5i/ed siHe, varia0le location resource descriptor for C'3!.
C1.N must 0e a multiple of =C$3AZ4>.
2! can pick the resource range that satisfies following conditions<
!tart address is a multiple of =C$3AZ4> and greater or e:ual to CM%N.
.nd address is =start addressZC1.N&4> and less or e:ual to CMAA.
) 4 =%llegal com0ination>
) 4 =%llegal com0ination>
) 4 4 5i/ed siHe, fi/ed location resource descriptor.
C$3A must 0e and C1.N must 0e =CMAA & CM%N Z4>.
7.4.3.5.1 QWord Address Space Descriptor
T)pe +' Large Ite% 0a%e $xA
The GW23- address space descriptor is used to report resource usage in a +"&0it address space =like
memor( and %F2>.
Ta!le --#, K:3"5 Address Space 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te GW23- Address !pace
-escriptor
Dalue\444; =T(pe \ 4, 1arge item name \ /A>
;(te 4 1ength, 0itsV9<W Daria0le< Dalue \ "3 =minimum>
;(te 2 1ength, 0itsV4*<8W Daria0le< Dalue \ =minimum>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3"8 Advanced Configuration and 'ower %nterface !pecification
3ffset 6ield 0a%e 5efinition
;(te 3 3esource T(pe %ndicates which t(pe of resource this descriptor descri0es. -efined
values are<
Memor( range
4 %F2 range
2 ;us num0er range
3I464 $eser2ed
462&2**@ardware Dendor -efined
;(te " $eneral 5lags 5lags that are common to all resource t(pes<
;itsV9<"W $eser2ed =must 0e >
;itV3W Min Address 5i/ed, CMA5<
4 The specified ma/imum address is fi/ed
The specified ma/imum address is not fi/ed
and can 0e changed
;itV2W Ma/ Address 5i/ed,CM%5<
4 The specified minimum address is fi/ed
The specified minimum address is not fi/ed
and can 0e changed
;itV4W -ecode T(pe, C-.C<
4 This 0ridge su0tractivel( decodes this address
=top level 0ridges onl(>
This 0ridge positivel( decodes this address
;itVW ConsumerF'roducer<
4IThis device consumes this resource
IThis device produces and consumes this resource
;(te * T(pe !pecific 5lags 5lags that are specific to each resource t(pe. The meaning of the
flags in this field depends on the value of the 3esource T(pe field
=see a0ove>.
;(te + Address space granularit(,
C$3A 0itsV9<W
A set 0it in this mask means that this 0it is decoded. All 0its less
significant than the most significant set 0it must 0e set. That is, the
value of the full Address !pace $ranularit( field =all 32 0its> must
0e a num0er =2
n
&4>.
;(te 9 Address space granularit(,
C$3A 0itsV4*<8W
;(te 8 Address space granularit(,
C$3A 0itsV23<4+W
;(te 6 Address space granularit(,
C$3A 0itsV34<2"W
;(te 4 Address space granularit(,
C$3A 0itsV36<32W
;(te 44 Address space granularit(,
C$3A 0itsV"9<"W
;(te 42 Address space granularit(,
C$3A 0itsV**<"8W
;(te 43 Address space granularit(,
C$3A 0itsV+3<*+W
;(te 4" Address range minimum,
CM%N 0itsV9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3"6
3ffset 6ield 0a%e 5efinition
;(te 4* Address range minimum,
CM%N 0itsV4*<8W
;(te 4+ Address range minimum,
CM%N 0itsV23<4+W
;(te 49 Address range minimum,
CM%N 0itsV34<2"W
;(te 48 Address range minimum,
CM%N 0itsV36<32W
;(te 46 Address range minimum,
CM%N 0itsV"9<"W
;(te 2 Address range minimum,
CM%N 0itsV**<"8W
;(te 24 Address range minimum,
CM%N 0itsV+3<*+W
;(te 22 Address range ma/imum,
CMAA 0itsV9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 23 Address range ma/imum,
CMAA 0itsV4*<8W
;(te 2" Address range ma/imum,
CMAA 0itsV23<4+W
;(te 2* Address range ma/imum,
CMAA 0itsV34<2"W
;(te 2+ Address range ma/imum,
CMAA 0itsV36<32W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 29 Address range ma/imum,
CMAA 0itsV"9<"W
;(te 28 Address range ma/imum,
CMAA 0itsV**<"8W
;(te 26 Address range ma/imum,
CMAA 0itsV+3<*+W
;(te 3 Address Translation offset,
CT3A 0itsV9<W
5or 0ridges that translate addresses across the 0ridge, this is the
offset that must 0e added to the address on the secondar( side to
o0tain the address on the primar( side. Non&0ridge devices must list
for all Address Translation offset 0its.
;(te 34 Address Translation offset,
CT3A 0itsV4*<8W
;(te 32 Address Translation offset,
CT3A 0itsV23<4+W
;(te 33 Address Translation offset,
CT3A 0itsV34<2"W
;(te 3" Address Translation offset,
CT3A 0itsV36<32W
;(te 3* Address Translation offset,
CT3A 0itsV"9<"W
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3* Advanced Configuration and 'ower %nterface !pecification
3ffset 6ield 0a%e 5efinition
;(te 3+ Address Translation offset,
CT3A 0itsV**<"8W
;(te 39 Address Translation offset,
CT3A 0itsV+3<*+W
;(te 38 Address length, C1.N
0itsV9<W
;(te 36 Address length, C1.N,
0itsV4*<8W
;(te " Address length, C1.N
0itsV23<4+W
;(te "4 Address length, C1.N
0itsV34<2"W
;(te "2 Address length, C1.N
0itsV36<32W
;(te "3 Address length, C1.N
0itsV"9<"W
;(te "" Address length, C1.N
0itsV**<"8W
;(te "* Address length, C1.N
0itsV+3<*+W
;(te "+ 3esource !ource %nde/ =2ptional> 2nl( present if 3esource !ource =0elow> is present. This
field gives an inde/ to the specific resource descriptor that this
device consumes from in the current resource template for the
device o0#ect pointed to in 3esource !ource.
!tring 3esource !ource =2ptional> %f present, the device that uses this descriptor consumes
its resources from the resources produced 0( the named device
o0#ect. %f not present, the device consumes its resources out of a
glo0al pool. %f not present, the device consumes this resource from
its hierarchical parent.
!ee GWord%2 =page 823>, GWordMemor( =page 82*> and A!1CGWordAddress!pace for a description of
the A!1 macros that creates a GW23- Address !pace descriptor.
7.4.3.5.2 DWord Address Space Descriptor
T)pe +' Large Ite% 0a%e $x.
The -W23- address space descriptor is used to report resource usage in a 32&0it address space =like
memor( and %F2>.
Ta!le --($ 5:3"5 Address Space 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te -W23- Address !pace
-escriptor
Dalue\4444; =T(pe \ 4, 1arge item name \ /9>
;(te 4 1ength, 0itsV9<W Daria0le< Dalue \ 23 =minimum>
;(te 2 1ength, 0itsV4*<8W Daria0le< Dalue \ =minimum>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3*4
3ffset 6ield 0a%e 5efinition
;(te 3 3esource T(pe %ndicates which t(pe of resource this descriptor descri0es. -efined
values are<
Memor( range
4 %F2 range
2 ;us num0er range
3I464 $eser2ed
462&2**@ardware Dendor -efined
;(te " $eneral 5lags 5lags that are common to all resource t(pes<
;itsV9<"W $eser2ed =must 0e >
;itV3W Min Address 5i/ed, CMA5<
4 The specified ma/imum address is fi/ed
The specified ma/imum address is not fi/ed
and can 0e changed
;itV2W Ma/ Address 5i/ed,CM%5<
4 The specified minimum address is fi/ed
The specified minimum address is not fi/ed
and can 0e changed
;itV4W -ecode T(pe, C-.C<
4 This 0ridge su0tractivel( decodes this address
=top level 0ridges onl(>
This 0ridge positivel( decodes this address
;itVW ConsumerF'roducer<
4IThis device consumes this resource
IThis device produces and consumes this resource
;(te * T(pe !pecific 5lags 5lags that are specific to each resource t(pe. The meaning of the
flags in this field depends on the value of the 3esource T(pe field
=see a0ove>.
;(te + Address space granularit(,
C$3A 0itsV9<W
A set 0it in this mask means that this 0it is decoded. All 0its less
significant than the most significant set 0it must 0e set. =in other
words, the value of the full Address !pace $ranularit( field =all 32
0its> must 0e a num0er =2
n
&4>.
;(te 9 Address space granularit(,
C$3A 0itsV4*<8W
;(te 8 Address space granularit(,
C$3A 0its V23<4+W
;(te 6 Address space granularit(,
C$3A 0its V34<2"W
;(te 4 Address range minimum,
CM%N 0its V9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 44 Address range minimum,
CM%N 0its V4*<8W
;(te 42 Address range minimum,
CM%N 0its V23<4+W
;(te 43 Address range minimum,
CM%N 0its V34<2"W
;(te 4" Address range ma/imum,
CMAA 0its V9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3*2 Advanced Configuration and 'ower %nterface !pecification
3ffset 6ield 0a%e 5efinition
;(te 4* Address range ma/imum,
CMAA 0its V4*<8W
;(te 4+ Address range ma/imum,
CMAA 0its V23<4+W
;(te 49 Address range ma/imum,
CMAA 0its V34<2"W
;(te 48 Address Translation offset,
CT3A0its V9<W
5or 0ridges that translate addresses across the 0ridge, this is the
offset that must 0e added to the address on the secondar( side to
o0tain the address on the primar( side. Non&0ridge devices must
list for all Address Translation offset 0its.
;(te 46 Address Translation offset,
CT3A 0its V4*<8W
;(te 2 Address Translation offset,
CT3A 0its V23<4+W
;(te 24 Address Translation offset,
CT3A 0its V34<2"W
;(te 22 Address 1ength, C1.N, 0its
V9<W
;(te 23 Address 1ength, C1.N, 0its
V4*<8W
;(te 2" Address 1ength, C1.N, 0its
V23<4+W
;(te 2* Address 1ength, C1.N, 0its
V34<2"W
;(te 2+ 3esource !ource %nde/ =2ptional> 2nl( present if 3esource !ource =0elow> is present. This
field gives an inde/ to the specific resource descriptor that this
device consumes from in the current resource template for the
device o0#ect pointed to in 3esource !ource.
!tring 3esource !ource =2ptional> %f present, the device that uses this descriptor consumes
its resources from the resources produced 0( the named device
o0#ect. %f not present, the device consumes its resources out of a
glo0al pool.
%f not present, the device consumes this resource from its
hierarchical parent.
!ee -Word%2 =page 99+>, -WordMemor( =page 998> and A!1C-WordAddress!pace for a description of
the A!1 macro that creates a -W23- Address !pace descriptor
7.4.3.5.3 Word Address Space Descriptor
T)pe +' Large Ite% 0a%e $x/
The W23- address space descriptor is used to report resource usage in a 4+&0it address space =like
memor( and %F2>.
0oteH This descriptor is e/actl( the same as the -W23- descriptor specified in Ta0le +&29K the onl(
difference is that the address fields are 4+ 0its wide rather than 32 0its wide.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3*3
Ta!le --(+ :3"5 Address Space 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te W23- Address !pace
-escriptor
Dalue\44; =T(pe \ 4, 1arge item name \ /8>
;(te 4 1ength, 0itsV9<W Daria0le< Dalue \ 43 =minimum>
;(te 2 1ength, 0itsV4*<8W Daria0le< Dalue \ =minimum>
;(te 3 3esource T(pe %ndicates which t(pe of resource this descriptor descri0es. -efined
values are<
Memor( range
4 %F2 range
2 ;us num0er range
3I464 $eser2ed
462&2**@ardware Dendor -efined
;(te " $eneral 5lags 5lags that are common to all resource t(pes<
;itsV9<"W $eser2ed =must 0e >
;itV3W Min Address 5i/ed, CMA5<
4 The specified ma/imum address is fi/ed
The specified ma/imum address is not fi/ed
and can 0e changed
;itV2W Ma/ Address 5i/ed,CM%5<
4 The specified minimum address is fi/ed
The specified minimum address is not fi/ed
and can 0e changed
;itV4W -ecode T(pe, C-.C<
4 This 0ridge su0tractivel( decodes this address
=top level 0ridges onl(>
This 0ridge positivel( decodes this address
;itVW ConsumerF'roducer<
4IThis device consumes this resource
IThis device produces and consumes this resource
;(te * T(pe !pecific 5lags 5lags that are specific to each resource t(pe. The meaning of the
flags in this field depends on the value of the 3esource T(pe field
=see a0ove>.
;(te + Address space granularit(,
C$3A 0itsV9<W
A set 0it in this mask means that this 0it is decoded. All 0its less
significant than the most significant set 0it must 0e set. =%n other
words, the value of the full Address !pace $ranularit( field =all 4+
0its> must 0e a num0er =2
n
&4>.
;(te 9 Address space granularit(,
C$3A 0itsV4*<8W
;(te 8 Address range minimum,
CM%N, 0its V9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 6 Address range minimum,
CM%N, 0its V4*<8W
;(te 4 Address range ma/imum,
CMAA, 0its V9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 44 Address range ma/imum,
CMAA, 0its V4*<8W
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3*" Advanced Configuration and 'ower %nterface !pecification
3ffset 6ield 0a%e 5efinition
;(te 42 Address Translation offset,
CT3A, 0its V9<W
5or 0ridges that translate addresses across the 0ridge, this is the
offset that must 0e added to the address on the secondar( side to
o0tain the address on the primar( side. Non&0ridge devices must list
for all Address Translation offset 0its.
;(te 43 Address Translation offset,
CT3A, 0its V4*<8W
;(te 4" Address 1ength, C1.N, 0its
V9<W
;(te 4* Address 1ength, C1.N, 0its
V4*<8W
;(te 4+ 3esource !ource %nde/ =2ptional> 2nl( present if 3esource !ource =0elow> is present. This
field gives an inde/ to the specific resource descriptor that this
device consumes from in the current resource template for the
device o0#ect pointed to in 3esource !ource.
!tring 3esource !ource =2ptional> %f present, the device that uses this descriptor consumes
its resources from the resources produced 0( the named device
o0#ect. %f not present, the device consumes its resources out of a
glo0al pool. %f not present, the device consumes this resource from
its hierarchical parent.
!ee Word%2 =page 8"3>, Word;usNum0er =page 8"2> and A!1CWordAddress!pace for a description of the
A!1 macros that create a Word address descriptor.
7.4.3.5.4 Extended Address Space Descriptor
T)pe +' Large Ite% 0a%e $x<
The ./tended Address !pace descriptor is used to report resource usage in the address space =like memor(
and %F2>.
Ta!le --(& 1xtended Address Space 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te ./tended Address !pace
-escriptor
Dalue\4444; =T(pe \ 4, 1arge item name \ /;>
;(te 4 1ength, 0itsV9<W Daria0le< Dalue \ *3
;(te 2 1ength, 0itsV4*<8W Daria0le< Dalue \
;(te 3 3esource T(pe %ndicates which t(pe of resource this descriptor descri0es. -efined
values are<
Memor( range
4 %F2 range
2 ;us num0er range
3I464 $eser2ed
462&2**@ardware Dendor -efined
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3**
3ffset 6ield 0a%e 5efinition
;(te " $eneral 5lags 5lags that are common to all resource t(pes<
;itsV9<"W $eser2ed =must 0e >
;itV3W Min Address 5i/ed, CMA5<
4 The specified ma/imum address is fi/ed
The specified ma/imum address is not fi/ed
and can 0e changed
;itV2W Ma/ Address 5i/ed,CM%5<
4 The specified minimum address is fi/ed
The specified minimum address is not fi/ed
and can 0e changed
;itV4W -ecode T(pe, C-.C<
4 This 0ridge su0tractivel( decodes this address
=top level 0ridges onl(>
This 0ridge positivel( decodes this address
;itVW ConsumerF'roducer<
4IThis device consumes this resource
IThis device produces and consumes this resource
;(te * T(pe !pecific 5lags 5lags that are specific to each resource t(pe. The meaning of the
flags in this field depends on the value of the 3esource T(pe field
=see a0ove>. 5or the Memor( 3esource T(pe, the definition is
defined in sectionTref). 5or other 3esource T(pes, refer to the
e/isting definitions for the Address !pace -escriptors.
;(te + 3evision %- %ndicates the revision of the ./tended Address !pace descriptor. 5or
AC'% 3., this value is 4.
;(te 9 3eserved
Ta!le --(& 1xtended Address Space 5escriptor 5efinition (continued)
3ffset 6ield 0a%e 5efinition
;(te 8 Address space granularit(,
C$3A 0itsV9<W
A set 0it in this mask means that this 0it is decoded. All 0its less
significant than the most significant set 0it must 0e set. That is, the
value of the full Address !pace $ranularit( field =all 32 0its> must
0e a num0er =2
n
&4>.
;(te 6 Address space granularit(,
C$3A 0itsV4*<8W
;(te 4 Address space granularit(,
C$3A 0itsV23<4+W
;(te 44 Address space granularit(,
C$3A 0itsV34<2"W
;(te 42 Address space granularit(,
C$3A 0itsV36<32W
;(te 43 Address space granularit(,
C$3A 0itsV"9<"W
;(te 4" Address space granularit(,
C$3A 0itsV**<"8W
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3*+ Advanced Configuration and 'ower %nterface !pecification
3ffset 6ield 0a%e 5efinition
;(te 4* Address space granularit(,
C$3A 0itsV+3<*+W
;(te 4+ Address range minimum,
CM%N 0itsV9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 49 Address range minimum,
CM%N 0itsV4*<8W
;(te 48 Address range minimum,
CM%N 0itsV23<4+W
;(te 46 Address range minimum,
CM%N 0itsV34<2"W
;(te 2 Address range minimum,
CM%N 0itsV36<32W
;(te 24 Address range minimum,
CM%N 0itsV"9<"W
Ta!le --(& 1xtended Address Space 5escriptor 5efinition (continued)
3ffset 6ield 0a%e 5efinition
;(te 22 Address range minimum,
CM%N 0itsV**<"8W
;(te 23 Address range minimum,
CM%N 0itsV+3<*+W
;(te 2" Address range ma/imum,
CMAA 0itsV9<W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 2* Address range ma/imum,
CMAA 0itsV4*<8W
;(te 2+ Address range ma/imum,
CMAA 0itsV23<4+W
;(te 29 Address range ma/imum,
CMAA 0itsV34<2"W
;(te 28 Address range ma/imum,
CMAA 0itsV36<32W
5or 0ridges that translate addresses, this is the address space on the
secondar( side of the 0ridge.
;(te 26 Address range ma/imum,
CMAA 0itsV"9<"W
;(te 3 Address range ma/imum,
CMAA 0itsV**<"8W
;(te 34 Address range ma/imum,
CMAA 0itsV+3<*+W
;(te 32 Address Translation offset,
CT3A 0itsV9<W
5or 0ridges that translate addresses across the 0ridge, this is the
offset that must 0e added to the address on the secondar( side to
o0tain the address on the primar( side. Non&0ridge devices must list
for all Address Translation offset 0its.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3*9
3ffset 6ield 0a%e 5efinition
;(te 33 Address Translation offset,
CT3A 0itsV4*<8W
;(te 3" Address Translation offset,
CT3A 0itsV23<4+W
;(te 3* Address Translation offset,
CT3A 0itsV34<2"W
Ta!le --(& 1xtended Address Space 5escriptor 5efinition (continued)
3ffset 6ield 0a%e 5efinition
;(te 3+ Address Translation offset, CT3A
0itsV36<32W
;(te 39 Address Translation offset, CT3A
0itsV"9<"W
;(te 38 Address Translation offset, CT3A
0itsV**<"8W
;(te 36 Address Translation offset, CT3A
0itsV+3<*+W
;(te " Address length, C1.N 0itsV9<W
;(te "4 Address length, C1.N, 0itsV4*<8W
;(te "2 Address length, C1.N 0itsV23<4+W
;(te "3 Address length, C1.N 0itsV34<2"W
;(te "" Address length, C1.N 0itsV36<32W
;(te "* Address length, C1.N 0itsV"9<"W
;(te "+ Address length, C1.N 0itsV**<"8W
;(te "9 Address length, C1.N 0itsV+3<*+W
;(te "8 T(pe !pecific Attri0ute, CATT
0itsV9<W
Attri0utes that are specific to each resource t(pe. The
meaning of the attri0utes in this field depends on the value of
the 3esource T(pe field =see a0ove>. 5or the Memor(
3esource T(pe, the definition is defined section Tref). 5or
other 3esource T(pes, this field is reserved to .
;(te "6 T(pe !pecific Attri0ute, CATT
0itsV4*<8W
;(te * T(pe !pecific Attri0ute, CATT
0itsV23<4+W
;(te *4 T(pe !pecific Attri0ute, CATT
0itsV34<2"W
;(te *2 T(pe !pecific Attri0ute, CATT
0itsV36<32W
;(te *3 T(pe !pecific Attri0ute, CATT
0itsV"9<"W
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3*8 Advanced Configuration and 'ower %nterface !pecification
3ffset 6ield 0a%e 5efinition
;(te *" T(pe !pecific Attri0ute, CATT
0itsV**<"8W
;(te ** T(pe !pecific Attri0ute, CATT
0itsV+3<*+W
!ee section 49.*."4, J./tended!pace =./tended Address !pace 3esource -escriptor Macro>,L for a
description of the A!1 macro that creates an ./tended Address !pace descriptor.
7.4.3.5.4.1 Type Specifc Attributes
The meaning of the T(pe !pecific Attri0utes field of the ./tended Address !pace -escriptor depends on
the value of the 3esource T(pe field in the descriptor. When 3esource T(pe \ =memor( resource>, the
T(pe !pecific Attri0utes field values are defined as follows<
FF These attri0utes can 0e d23edd together as needed.
Ydefine AC'%CM.M23SC,C /4
Ydefine AC'%CM.M23SCWC /2
Ydefine AC'%CM.M23SCWT /"
Ydefine AC'%CM.M23SCW; /8
Ydefine AC'%CM.M23SC,C. /4
Ydefine AC'%CM.M23SCND /8
AC'%CM.M23SC,C Memor( cachea0ilit( attri0ute< The memor( region supports 0eing configured as
not cachea0le.
AC'%CM.M23SCWC Memor( cachea0ilit( attri0ute< The memor( region supports 0eing configured as
write com0ining.
AC'%CM.M23SCWT Memor( cachea0ilit( attri0ute< The memor( region supports 0eing configured as
cachea0le with a dwrite through dpolic(. Writes that hit in the cache will also 0e written to main memor(.
AC'%CM.M23SCW; Memor( cachea0ilit( attri0ute< The memor( region supports 0eing configured as
cachea0le with a dwrite 0ack dpolic(. 3eads and writes that hit in the cache do not propagate to main
memor(. -irt( data is written 0ack to main memor( when a new cache line is allocated.
AC'%CM.M23SC,C. Memor( cachea0ilit( attri0ute< The memor( region supports 0eing configured as
not cachea0le, e/ported, and supports the dfetch and add dsemaphore mechanism.
AC'%CM.M23SCND Memor( non&volatile attri0ute< The memor( region is non&volatile. ,se of memor(
with this attri0ute is su0#ect to characteriHation.
Notice< These 0its are defined so as to match the .5% definition when applica0le.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3*6
7.4.3.5.5 Resource Type Specifc Flags
The meaning of the flags in the T(pe !pecific 5lags field of the Address !pace -escriptors depends on the
value of the 3esource T(pe field in the descriptor. The flags for each resource t(pe are defined in the
following ta0les<
Ta!le --(# Me%or) "esource 6lag >"esource T)pe P $? 5efinitions
<its Meaning
;itsV9<+W 3eserved =must 0e >
;itV*W Memor( to %F2 Translation, CTT'
4 T(peTranslation< This resource, which is memor( on the secondar( side of the
0ridge, is %F2 on the primar( side of the 0ridge.
T(pe!tatic< This resource, which is memor( on the secondar( side of the 0ridge, is
also memor( on the primar( side of the 0ridge.
;itsV"<3W Memor( attri0utes, CMT'. These 0its are onl( defined if this memor( resource descri0es
s(stem 3AM. 5or a definition of the la0els descri0ed here, see section 4*, J!(stem Address
Map %nterfaces.L
Address3angeMemor(
4 Address3ange3eserved
2 Address3angeAC'%
3 Address3angeND!
;itsV2<4W Memor( attri0utes, CM.M
The memor( is non&cachea0le.
4 The memor( is cachea0le.
2 The memor( is cachea0le and supports write com0ining.
3 The memor( is cachea0le and prefetcha0le.
=Notice< 2!'M ignores this field in the ./tended address space descriptor. %nstead it uses the
T(pe !pecific Attri0utes field to determine memor( attri0utes>
;itVW Write status, C3W
4 This memor( range is read&write.
This memor( range is read&onl(.
Ta!le --(( I@3 "esource 6lag >"esource T)pe P +? 5efinitions
<its Meaning
;itsV9<+W 3eserved =must 0e >
;itV*W !parse Translation, CT3!. This 0it is onl( meaningful if ;itV"W is set.
4 !parseTranslation< The primar(&side memor( address of an( specific %F2 port within
the secondar(&side range can 0e found using the following function.
addre22 L (((port V (-555c) ?? 4() UU (port V (-555)) D _<R&
%n the address used to access the %F2 port, 0itsV44<2W must 0e identical to
0itsV24<42W, this gives four 0(tes of %F2 ports on each " E; page.
-enseTranslation< The primar(&side memor( address of an( specific %F2 port within
the secondar(&side range can 0e found using the following function.
addre22 L port D _<R&
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3+ Advanced Configuration and 'ower %nterface !pecification
<its Meaning
;itV"W %F2 to Memor( Translation, CTT'
4 T(peTranslation< This resource, which is %F2 on the secondar( side of the 0ridge, is
memor( on the primar( side of the 0ridge.
T(pe!tatic< This resource, which is %F2 on the secondar( side of the 0ridge, is also %F2
on the primar( side of the 0ridge.
;itV3<2W $eser2ed =must 0e >
;itV4<W C3N$
3 Memor( window covers the entire range
2 %!A3anges2nl(. This flag is for 0ridges on s(stems with multiple 0ridges. !etting this
0it means the memor( window specified in this descriptor is limited to the %!A %F2
addresses that fall within the specified window. The %!A %F2 ranges are< n&n55,
n"&n"55, n8&n855, nC&nC55. This 0it can onl( 0e set for 0ridges entirel(
configured through AC'% namespace.
4 Non%!A3anges2nl(. This flag is for 0ridges on s(stems with multiple 0ridges. !etting
this 0it means the memor( window specified in this descriptor is limited to the non&
%!A %F2 addresses that fall within the specified window. The non&%!A %F2 ranges are<
n4&n355, n*&n955, n6&n;55, n-&n555. This 0it can onl( 0e set for 0ridges
entirel( configured through AC'% namespace.
3eserved
Ta!le --(A <us 0u%!er "ange "esource 6lag >"esource T)pe P &? 5efinitions
<its Meaning
;itV9<W $eser2ed =must 0e >
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3+4
7.4.3.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3+2 Advanced Configuration and 'ower %nterface !pecification
Extended Interrupt Descriptor
T)pe +' Large Ite% 0a%e $x,
The ./tended %nterrupt -escriptor is necessar( to descri0e interrupt settings and possi0ilities for s(stems
that support interrupts a0ove 4*.
To specif( multiple interrupt num0ers, this descriptor allows vendors to list an arra( of possi0le interrupt
num0ers, an( one of which can 0e used.
Ta!le --(- 1xtended Interrupt 5escriptor 5efinition
3ffset 6ield 0a%e 5efinition
;(te ./tended %nterrupt
-escriptor
Dalue\444; =T(pe \ 4, 1arge item name \ /6>
;(te 4 1ength, 0itsV9<W Daria0le< Dalue \ + =minimum>
;(te 2 1ength, 0itsV4*<8W Daria0le< Dalue \ =minimum>
;(te 3 %nterrupt Dector
5lags
%nterrupt Dector %nformation.
;itV9<"W $eser2ed =must 0e >
;itV3W %nterrupt is sharea0le, DSH"
;itV2W %nterrupt 'olarit(, DLL
Active&@igh< This interrupt is sampled
when the signal is high, or true.
4 Active&1ow< This interrupt is sampled
when the signal is low, or false.
;itV4W %nterrupt Mode, DH1
1evel&Triggered< %nterrupt is triggered in response
to the signal 0eing in either a high or low state.
4 .dge&Triggered< This interrupt is
triggered in response to a change in signal
state, either high to low or low to high.
;itVW ConsumerF'roducer<
4IThis device consumes this resource
IThis device produces and consumes this resource
;(te " %nterrupt ta0le
length
%ndicates the num0er of interrupt num0ers that follow. When this
descriptor is returned from CC3!, or when 2!'M passes this descriptor
to C!3!, this field must 0e set to 4.
;(te
"nZ*
%nterrupt Num0er,
C%NT 0its V9<W
%nterrupt num0er
;(te
"nZ+
%nterrupt Num0er,
C%NT 0its V4*<8W
;(te
"nZ9
%nterrupt Num0er,
C%NT 0its V23<4+W
;(te
"nZ8
%nterrupt Num0er,
C%NT 0its V34<2"W
N N Additional interrupt num0ers
;(te x 3esource !ource
%nde/
=2ptional> 2nl( present if 3esource !ource =0elow> is present. This field
gives an inde/ to the specific resource descriptor that this device
consumes from in the current resource template for the device o0#ect
pointed to in 3esource !ource.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3+3
3ffset 6ield 0a%e 5efinition
!tring 3esource !ource =2ptional> %f present, the device that uses this descriptor consumes its
resources from the resources produces 0( the named device o0#ect. %f not
present, the device consumes its resources out of a glo0al pool.
%f not present, the device consumes this resource from its hierarchical
parent.
0oteH 1ow true, level sensitive interrupts ma( 0e electricall( shared, the process of how this might work is
0e(ond the scope of this specification.
%f the 2! is running using the 82*6 interrupt model, onl( interrupt num0er values of &4* will 0e used, and
interrupt num0ers greater than 4* will 0e ignored.
!ee %nterrupt =page 8"> for a description of the A!1 macro that creates an ./tended %nterrupt descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3+" Advanced Configuration and 'ower %nterface !pecification
7.4.3.7
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3+*
Generic Register Descriptor
T)pe +' Large Ite% 0a%e $x&
The generic register descriptor descri0es the location of a fi/ed width register within an( of the AC'%&
defined address spaces.
Ta!le --(. ;eneric "egister 5escriptor 5efinition
3ffset 6ield 0a%e' ASL 6ield 0a%e 5efinition
;(te $eneric register descriptor Dalue \ 44; =T(pe \ 4, 1arge item name \ /2>
;(te 4 1ength, 0itsV9<W Dalue \ 44; =42>
;(te 2 1ength, 0itsV4*<8W Dalue \ ; =>
;(te 3 Address !pace %-, CA!% The address space where the data structure or register
e/ists. -efined values are<
/ !(stem Memor(
/4 !(stem %F2
/2 'C% Configuration !pace
/3 .m0edded Controller
/" !M;us
/95 5unctional 5i/ed @ardware
;(te " 3egister ;it Width, C3;W %ndicates the register width in 0its.
;(te * 3egister ;it 2ffset, C3;2 %ndicates the offset to the start of the register in 0its from
the 3egister Address.
;(te + Address !iHe, CA!?
!pecifies access siHe.
&,ndefined =legac( reasons>
4&;(te access
2&Word access
3&-word access
"&Gword access
;(te 9 3egister Address, CA-3 0itsV9<W 3egister Address
;(te 8 3egister Address, CA-3 0itsV4*<8W
;(te 6 3egister Address, CA-3 0itsV23<4+W
;(te 4 3egister Address, CA-3 0itsV34<2"W
;(te 44 3egister Address, CA-3 0itsV36<32W
;(te 42 3egister Address, CA-3 0itsV"9<"W
;(te 43 3egister Address, CA-3 0itsV**<"8W
;(te 4" 3egister Address, CA-3 0itsV+3<*+W
!ee 3egister =page 828> for a description of the A!1 macro that creates a $eneric 3egister resource
descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3++ Advanced Configuration and 'ower %nterface !pecification
7.5 Other Objects and Control Methods
Ta!le --(/ 3ther 3!Cects and Methods
3!Cect 5escription
C%N% -evice initialiHation method that is run shortl( after AC'% has 0een ena0led.
C-CE %ndicates that the device is a docking station.
C;-N Correlates a docking station 0etween AC'% and legac( interfaces.
C3.$ Notifies AM1 code of a change in the availa0ilit( of an operation region.
C;;N 'C% 0us num0er set up 0( the ;%2!.
C!.$ %ndicates a 0us segment location.
C$1E %ndicates the $lo0al 1ock must 0e ac:uired when accessing a device.
7.5.1 _INI (Init)
C%N% is a device initialiHation o0#ect that performs device specific initialiHation. This control method is
located under a device o0#ect and is run onl( when 2!'M loads a description ta0le. There are restrictions
related to when this method is called and governing writing code for this method. The C%N% method must
onl( access 2peration 3egions that have 0een indicated to availa0le as defined 0( the C3.$ method. The
C3.$ method is descri0ed in section +.*.", JC3.$ =3egion>.L This control method is run 0efore CA-3,
CC%-, C@%-, C!,N, and C,%- are run.
%f the C!TA method indicates that the device is present, 2!'M will evaluate the CC%N% for the device =if the
C%N% method e/ists> and will e/amine each of the children of the device for C%N% methods. %f the C!TA
method indicates that the device is not present, 2!'M will not run the C%N% and will not e/amine the
children of the device for C%N% methods. %f the device 0ecomes present after the ta0le has alread( 0een
loaded, 2!'M will not evaluate the C%N% method, nor e/amine the children for C%N% methods.
The C%N% control method is generall( used to switch devices out of a legac( operating mode. 5or e/ample,
;%2!es often configure Card;us controllers in a legac( mode to support legac( operating s(stems. ;efore
enumerating the device with an AC'% operating s(stem, the Card;us controllers must 0e initialiHed to
Card;us mode. 5or such s(stems, the vendor can include an C%N% control method under the Card;us
controller to switch the device into Card;us mode.
%n addition to device initialiHation, 2!'M unconditionall( evaluates an C%N% o0#ect under the BC!;
namespace, if present, at the 0eginning of namespace initialiHation.
7.5.2 _DCK (Dock)
This control method is located in the device o0#ect that represents the docking station =that is, the device
o0#ect with all the C.7/ control methods for the docking station>. The presence of C-CE indicates to the
2! that the device is reall( a docking station.
C-CE also controls the isolation logic on the docking connector. This allows an 2! to prepare for docking
0efore the 0us is activated and devices appear on the 0us.
Arguments<
Arg
4I-ock =that is, remove isolation from connector>
I,ndock =isolate from connector>
3eturn Code<
4 if successful, if failed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3+9
0oteH When C-CE is called with , 2!'M will ignore the return value. The C!TA o0#ect that follows the
C.7/ control method will notif( whether or not the porta0le has 0een e#ected.
7.5.3 _BDN (BIOS Dock Name)
C;-N is used to correlate a docking station reported via AC'% and the same docking station reported via
legac( interfaces. %t is primaril( used for upgrading over non&AC'% environments.
C;-N must appear under a device o0#ect that represents the dock, that is, the device o0#ect with C.#/
methods. This o0#ect must return a -W23- that is the .%!A&packed -ock%- returned 0( the 'lug and
'la( ;%2! 5unction * =$et -ocking !tation %dentifier> for a dock.
0oteH %f the machine does not support 'N';%2!, this o0#ect is not re:uired.
7.5.4 _REG (Region)
The 2! runs C3.$ control methods to inform AM1 code of a change in the availa0ilit( of an operation
region. When an operation region handler is unavaila0le, AM1 cannot access data fields in that region.
=2peration region writes will 0e ignored and reads will return indeterminate data.>.
./cept for the cases shown 0elow, control methods must assume all operation regions inaccessi0le until the
C3.$=3egion!pace, 4> method is e/ecuted. 2nce C3.$ has 0een e/ecuted for a particular operation
region, indicating that the operation region handler is read(, a control method can access fields in the
operation region. Conversel(, control methods must not access fields in operation regions when C3.$
method e/ecution has not indicated that the operation region handler is read(.
5or e/ample, until the .m0edded Controller driver is read(, the control methods cannot access the
.m0edded Controller. 2nce 2!'M has run C3.$=.m0eddedControl, 4>, the control methods can then
access operation regions in .m0edded Controller address space. 5urthermore, if 2!'M e/ecutes
C3.$=.m0eddedControl, >, control methods must stop accessing operation regions in the .m0edded
Controller address space.
The e/ceptions for this rule are<
4. 2!'M must guarantee that the following operation regions must alwa(s 0e accessi0le<
'C%CConfig operation regions on a 'C% root 0us containing a C;;N o0#ect.
%F2 operation regions.
Memor( operation regions when accessing memor( returned 0( the !(stem Address Map
reporting interfaces.
2. 2!'M must make .m0edded Controller operation regions, accessed via the .m0edded
Controllers descri0ed in .C-T, availa0le 0efore e/ecuting an( control method. These operation
regions ma( 0ecome inaccessi0le after 2!'M runs C3.$=.m0eddedControl, >.
'lace C3.$ in the same scope as operation region declarations. The 2! will run the C3.$ in a given scope
when the operation regions declared in that scope are availa0le for use.
5or e/ample<
Scope(\_SB.P)#()
0perationRe,ion(0PR4$ P)#_)onfi,$ ...)
;ethod(_R%:$ 3) .../ // 0SP; e-ecute2 thi2 when P)#0 operation re,ion handler
// 2tatu2 chan,e2
Device(P)#4)
;ethod(_R%:$ 3) .../
Device(%<"()
0perationRe,ion(0PR3$ P)#_)onfi,$ ...)
;ethod(_R%:$3) .../
/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
3+8 Advanced Configuration and 'ower %nterface !pecification
Device(#S&()
0perationRe,ion(0PRF$ #/0$ ...)
;ethod(_R%:$ 3) .../ // 0SP; e-ecute2 thi2 when #S&0 operation re,ion handler
// 2tatu2 chan,e2
Device(%)()
!ame(_"#D$ %#S&#D(PP!P()(HP))
0perationRe,ion(0PR.$ %)$ ...)
;ethod(_R%:$ 3) .../ // 0SP; e-ecute2 thi2 when %) operation re,ion
// handler 2tatu2 chan,e2
/
/
/
When the 'C% operation region handler is read(, 2!'M will run the C3.$ method declared in 'C% scope
to indicate that 'C% Config space operation region access is availa0le within the 'C% scope =in other
words, 2'34 access is allowed>. When the %!A operation handler is read(, 2!'M will run the C3.$
method in the %!A scope to indicate that the %F2 space operation region access is availa0le within that
scope =in other words, 2'33 access is allowed>. 5inall(, when the .m0edded Controller operation region
handler is read(, 2!'M will run the C3.$ method in the .C scope to indicate that .C space operation
region access is availa0le within the .C scope =in other words, 2'3" access is allowed>. %t should 0e
noted that 'C% Config !pace 2peration 3egions are read( as soon the host controller or 0ridge controller
has 0een programmed with a 0us num0er. 'C%4Ms C3.$ method would not 0e run until the 'C%&'C% 0ridge
has 0een properl( configured. At the same time, the 2! will also run .T@Ms C3.$ method since its 'C%
Config !pace would 0e also availa0le. The 2! will again run .T@Ms C3.$ method when the .T@
device is started. Also, when the host controller or 0ridge controller is turned off or disa0led, 'C% Config
!pace 2peration 3egions for child devices are no longer availa0le. As such, .T@Ms C3.$ method will 0e
run when it is turned off and will again 0e run when 'C%4 is turned off.
0ote< The 2! onl( runs C3.$ methods that appear in the same scope as operation region declarations that
use the operation region t(pe that has #ust 0een made availa0le. 5or e/ample, C3.$ in the .C device
would not 0e run when the 'C% 0us driver is loaded since the operation regions declared under .C do not
use an( of the operation region t(pes made availa0le 0( the 'C% driver =namel(, config space, %F2, and
memor(>.
Arguments<
Arg< %nteger< 2peration region space<
!(stemMemor(
4 !(stem%2
2 'C%CConfig
3 .m0edded Controller
" !M;us
* CM2!
+ 'C%;A3Target
/8&/55 2.M region space handler
Arg4< %nteger< 4 for connecting the handler, for disconnecting the handler
7.5.5 _BBN (Base Bus Number)
5or multi&root 'C% machines, C;;N is the 'C% 0us num0er that the ;%2! assigns. This is needed to access
a 'C%CConfig operation region for the specific 0us. The C;;N o0#ect must 0e uni:ue for ever( host 0ridge
within a segment since it is the 'C% 0us num0er.
7.5.6 _SEG (Segment)
The optional C!.$ o0#ect evaluates to an integer that descri0es the 'C% !egment $roup =see 'C% 5irmware
!pecification v3.>. %f C!.$ does not e/ist, 2!'M assumes that all 'C% 0us segments are in 'C% !egment
$roup .
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 3+6
'C% !egment $roup is purel( a software concept managed 0( s(stem firmware and used 0( 2!'M. %t is a
logical collection of 'C% 0uses =or 0us segments>. There is no tie to an( ph(sical entities. %t is a wa( to
logicall( group the 'C% 0us segments and 'C% ./press @ierarchies. C!.$ is a level higher than C;;N.
'C% !egment $roup supports more than 2*+ 0uses in a s(stem 0( allowing the reuse of the 'C% 0us
num0ers. Within each 'C% !egment $roup, the 0us num0ers for the 'C% 0uses must 0e uni:ue. 'C% 0uses
in different 'C% !egment $roup are permitted to have the same 0us num0er.
A 'C% !egment $roup contains one or more 'C% host 0ridges.
The lower 4+ 0its of C!.$ returned integer is the 'C% !egment $roup num0er. 2ther 0its are reserved.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
39 Advanced Configuration and 'ower %nterface !pecification
7.5.6.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 394
Example
Device(!D() // thi2 i2 a node (
!ame(_"#D$ '&)P#(((.*)
// Return2 the P)urrent Re2ource2P
!ame(_)RS$
Re2ource<emplate()
Y
/
)
Device(P)#()
!ame(_"#D$ %#S&#D('P!P(&(F*))
!ame(_&DR$ (-(((((((()
!ame(_S%:$ () // <he bu2e2 below the ho2t brid,e belon, to P)# 2e,ment (
Y
!ame(_BB!$ ()
Y
/
Device(P)#4)
Y
!ame(_S%:$ () // <he bu2e2 below the ho2t brid,e belon, to P)# 2e,ment (
Y
!ame(_BB!$ 4I)
Y
/
Y
/
Device(!D4) // thi2 i2 a node 4
!ame(_"#D$ '&)P#(((.*)
// Return2 the P)urrent Re2ource2P
!ame(_)RS$
Re2ource<emplate()
Y
/
)
Device(P)#()
!ame(_"#D$ %#S&#D('P!P(&(F*))
!ame(_&DR$ (-(((((((()
!ame(_S%:$ 4) // <he bu2e2 below the ho2t brid,e belon, to P)# 2e,ment 4
Y
!ame(_BB!$ ()
Y
/
Device(P)#4)
Y
!ame(_S%:$ 4) // <he bu2e2 below the ho2t brid,e belon, to P)# 2e,ment 4
Y
!ame(_BB!$ 4I)
Y
/
/
7.5.7 _GLK (Global Lock)
This optional named o0#ect is located in a device o0#ect. This o0#ect returns a value that indicates to an(
entit( that accesses this device =in other words, 2!'M or an( device driver> whether the $lo0al 1ock must
0e ac:uired when accessing the device. 2!&0ased device accesses must 0e performed while in ac:uisition
of the $lo0al 1ock when potentiall( contentious accesses to device resources are performed 0( non&2!
code, such as !(stem Management Mode =!MM>&0ased code in %ntel architecture&0ased s(stems.
An e/ample of this device resource contention is a device driver for an !M;us&0ased device contending
with !MM&0ased code for access to the .m0edded Controller, !M;&@C, and !M;us target device. %n this
case, the device driver must ac:uire and release the $lo0al 1ock when accessing the device to avoid
resource contention with !MM&0ased code that accesses an( of the listed resources.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
392 Advanced Configuration and 'ower %nterface !pecification
3eturn Codes<
4 $lo0al 1ock re:uired, $lo0al 1ock not re:uired
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 393
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
39" Advanced Configuration and 'ower %nterface !pecification
8 Power and Performance Management
This section specifies the device power management o0#ects and s(stem power management o0#ects.
2!'M uses these o0#ects to manage the platform 0( achieving a desira0le 0alance 0etween performance
and energ( conservation goals.
-evice performance states ='/ states> are power consumption and capa0ilit( states within the active =->
device power state. 'erformance states allow 2!'M to make tradeoffs 0etween performance and energ(
conservation. -evice performance states have the greatest impact when the implementation is such that the
states invoke different device efficienc( levels as opposed to a linear scaling of performance and energ(
consumption. !ince performance state transitions occur in the active device states, care must 0e taken to
ensure that performance state transitions do not adversel( impact the s(stem.
-evice performance state o0#ects, when necessar(, are defined on a per device class 0asis as descri0ed in
the device class specifications =!ee Appendi/ A>.
The s(stem state indicator o0#ects are also specified in this section.
8.1 Declaring a Power Resource Object
An A!1 Power"esource statement is used to declare a Power"esource o0#ect. A 'ower 3esource o0#ect
refers to a software&controlla0le power plane, clock plane, or other resource upon which an integrated AC'%
power&managed device might rel(. 'ower resource o0#ects can appear wherever is convenient in
namespace.
The s(nta/ of a Power"esource statement is<
Power"esource >reso'rcename. systemle2el. reso'rceorder? Q0a%edListR
where the systemle2el parameter is a num0er and the reso'rceorder parameter is a numeric constant =a
W23->. 5or a formal definition of the Power"esource statement s(nta/, see section 49, JAC'% !ource
1anguage 3eference.L
Systemle2el is the lowest power s(stem sleep level 2!'M must maintain to keep this power resource on =
e:uates to !, 4 e:uates to !4, and so on>.
.ach power&managed AC'% device lists the resources it re:uires for its supported power levels. 2!'M
multiple/es this information from all devices and then ena0les and disa0les the re:uired 'ower 3esources
accordingl(. The reso'rceorder field in the 'ower 3esource o0#ect is a uni:ue value per 'ower 3esource,
and it provides the s(stem with the order in which 'ower 3esources must 0e ena0led or disa0led. 'ower
3esources are ena0led from low values to high values and are disa0led from high values to low values. The
operating software ena0les or disa0les all affected 'ower 3esources in an( one reso'rceorder level at a
time 0efore moving on to the ne/t ordered level. 'utting 'ower 3esources in different order levels provides
power se:uencing and serialiHation where re:uired.
A 'ower 3esource can have named o0#ects under its Namespace location. 5or a description of the AC'%&
defined named o0#ects for a 'ower 3esource, see section 8.2, J-evice 'ower Management 20#ects.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 39*
The following 0lock of A!1 sample code shows a use of Power"esource.
PowerRe2ource(P#D%$ ($ ()
;ethod(_S<&)
Return (Ror (:#0.#D%#$ 0ne$ 7ero)) // inver2e of i2olation
/
;ethod(_0!)
Store (0ne$ :#0.#D%P) // a22ert power
Sleep (4() // wait 4(m2
Store (0ne$ :#0.#D%R) // deEa22ert re2etQ
Stall (4() // wait 4(u2
Store (7ero$ :#0.#D%#) // deEa22ert i2olation
/
;ethod(_055)
Store (0ne$ :#0.#D%#) // a22ert i2olation
Store (7ero$ :#0.#D%R) // a22ert re2etQ
Store (7ero$ :#0.#D%P) // deEa22ert power
/
/
8.1.1 Defned Child Objects for a Power Resource
.ach power resource o0#ect is re:uired to have the following control methods to allow 0asic control of each
power resource. As 2!'M changes the state of device o0#ects in the s(stem, the power resources that are
needed will also change causing 2!'M to turn power resources on and off. To determine the initial power
resource settings the C!TA method can 0e used.
Ta!le .-+ Power "esource Child 3!Cects
3!Cect 5escription
C255 !et the resource off.
C2N !et the resource on.
C!TA 20#ect that evaluates to the current on or off state of the 'ower 3esource. I255, 4I2N
8.1.2 _OFF
This power resource control method puts the power resource into the 255 state. The control method does
not complete until the power resource is off. 2!'M onl( turns on or off one resource at a time, so the AM1
code can o0tain the proper timing se:uencing 0( using !tall or !leep within the 2N =or 255> method to
cause the proper se:uencing dela(s 0etween operations on power resources.
Arguments<
None
3esult Code<
None
8.1.3 _ON
This power resource control method puts the power resource into the 2N state. The control method does
not complete until the power resource is on. 2!'M onl( turns on or off one resource at a time, so the AM1
code can o0tain the proper timing se:uencing 0( using !tall or !leep within the 2N =or 255> method to
cause the proper se:uencing dela(s 0etween operations on power resources.
Arguments<
None
3esult Code<
None
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
39+ Advanced Configuration and 'ower %nterface !pecification
8.1.4 _STA (Status)
3eturns the current 2N or 255 status for the power resource.
Arguments<
None
3esult Code<
indicates the power resource is currentl( off.
4 indicates the power resource is currentl( on.
8.2 Device Power Management Objects
5or a device that is power&managed using AC'%, a -efinition ;lock contains one or more of the o0#ects
found in the ta0le 0elow. 'ower management of a device is done using two different paradigms<
'ower 3esource control
-evice&specific control
'ower 3esources are resources that could 0e shared amongst multiple devices. The operating software will
automaticall( handle control of these devices 0( determining which particular 'ower 3esources need to 0e
in the 2N state at an( given time. This determination is made 0( considering the state of all devices
connected to a 'ower 3esource.
;( definition, a device that is 255 does not have an( power resource or s(stem power state re:uirements.
Therefore, device o0#ects do not list power resources for the 255 power state.
5or 2!'M to put the device in the -3 state, the following must occur<
All 'ower 3esources no longer referenced 0( an( device in the s(stem must 0e in the 255 state.
%f present, the C'!3 control method is e/ecuted to set the device into the -3 device state.
The onl( transition allowed from the -3 device state is to the - device state.
5or man( devices the 'ower 3esource control is all that is re:uiredK however, device o0#ects ma( include
their own device&specific control method.
These two t(pes of power management controls =through 'ower 3esources and through specific devices>
can 0e applied in com0ination or individuall( as re:uired.
5or s(stems that do not control device power states through power plane management, 0ut whose devices
support multiple -&states, more information is re:uired 0( the 2! to determine the !&state to -&state
mapping for the device. The AC'% ;%2! can give this information to 2!'M 0( wa( of the C!x- methods.
These methods tell 2!'M for !&state JxL, the highest -&state supported 0( the device is Jy.L 2!'M is
allowed to pick a lower -&state for a given !&state, 0ut 2!'M is not allowed to e/ceed the given -&state.
5urther rules that appl( to device power management o0#ects are<
5or a given !&state, a device cannot 0e in a higher -&state than its parent device.
%f there e/ists an AC'% 20#ect to turn on a device =either through C'!x or C'3x o0#ects>, then a
corresponding o0#ect to turn the device off must also 0e declared and vice versa.
%f there e/ists an AC'% 20#ect that controls power =C'!x or C'3x, where x \, 4, 2, or 3>, then
methods to set the device into - and -3 device states must 0e present.
%f a mi/ture of C'!x and C'3x methods is declared for the device, then the device states supported
through C'!x methods must 0e identical to the device states supported through C'3x methods. AC'%
s(stem firmware ma( ena0le device power state control e/clusivel( through C'!x =or C'3x> method
declarations.
When controlling power to devices which must wake the s(stem during a s(stem sleeping state<
The device must declare its a0ilit( to wake the s(stem 0( declaring either the C'3W or C'!W
o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 399
%f C'3 is present, then 2!'M must choose a sleeping state which is less than or e:ual to the
sleeping state specified.
After 2!'M has called C'T!, it must call the deviceMs C'!W to ena0le wake.
2!'M must transition the device into a -&state which is greater than or e:ual that specified 0( the
deviceMs C!/- o0#ect, 0ut less than or e:ual to that specified 0( the deviceMs C!/W o0#ect.
2!'M ma( transition the s(stem to the specified sleep state.
Ta!le .-& 5evice Power Manage%ent Child 3!Cects
3!Cect 5escription
C-!W Control method that ena0les or disa0les the deviceMs wake function for device&onl( wake.
C'! Control method that puts the device in the - device state =device full( on>.
C'!4 Control method that puts the device in the -4 device state.
C'!2 Control method that puts the device in the -2 device state.
C'!3 Control method that puts the device in the -3 device state =device off>.
C'!C 20#ect that evaluates to the deviceMs current power state.
C'3 20#ect that evaluates to the deviceMs power re:uirements in the - device state =device full(
on>.
C'34 20#ect that evaluates to the deviceMs power re:uirements in the -4 device state. The onl(
devices that suppl( this level are those that can achieve the defined -4 device state according
to the related device class.
C'32 20#ect that evaluates to the deviceMs power re:uirements in the -2 device state. The onl(
devices that suppl( this level are those that can achieve the defined -2 device state according
to the related device class.
C'3W 20#ect that evaluates to the deviceMs power re:uirements in order to wake the s(stem from a
s(stem sleeping state.
C'!W Control method that ena0les or disa0les the deviceMs wake function.
C%3C 20#ect that signifies the device has a significant inrush current draw.
C!4- @ighest -&state supported 0( the device in the !4 state
C!2- @ighest -&state supported 0( the device in the !2 state
C!3- @ighest -&state supported 0( the device in the !3 state
C!"- @ighest -&state supported 0( the device in the !" state
C!W 1owest -&state supported 0( the device in the ! state which can wake the device
C!4W 1owest -&state supported 0( the device in the !4 state which can wake the s(stem.
C!2W 1owest -&state supported 0( the device in the !2 state which can wake the s(stem.
C!3W 1owest -&state supported 0( the device in the !3 state which can wake the s(stem.
C!"W 1owest -&state supported 0( the device in the !" state which can wake the s(stem.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
398 Advanced Configuration and 'ower %nterface !pecification
8.2.1 _DSW (Device Sleep Wake)
%n addition to C'3W, this control method can 0e used to ena0le or disa0le the deviceMs a0ilit( to wake a
sleeping s(stem. This control method can onl( access 2peration 3egions that are either alwa(s availa0le
while in a s(stem working state or that are availa0le when the 'ower 3esources referenced 0( the C'3W
o0#ect are all 2N. 5or e/ample, do not put a power plane control for a 0us controller within configuration
space located 0ehind the 0us. The method should ena0le the device onl( for the last s(stem stateFdevice
state com0ination passed in 0( 2!'M. 2!'M will onl( pass in com0inations allowed 0( the C!x- and
C!xW o0#ects.
The arguments provided to C-!W indicate the eventual -evice !tate the device will 0e transitioned to and
the eventual s(stem state that the s(stem will 0e transitioned to. The target s(stem state is allowed to 0e the
s(stem working state =!>. The C-!W method will 0e run 0efore the device is placed in the designated
state and also 0efore the s(stem is placed in the designated s(stem state.
Compati0ilit( Note< The C'!W method is deprecated in AC'% 3.. The C-!W method should 0e used
instead. 2!'M will onl( use the C'!W method if 2!'M does not support C-!W or if the C-!W method is
not present.
Arguments<
I .na0le F -isa0le< to disa0le the deviceMs wake capa0ilities.
4 to ena0le the deviceMs wake capa0ilities.
4& Target !(stem !tate to indicate s(stem will 0e in !
4 to indicate s(stem will 0e in !4
N
2& Target -evice !tate to indicate that the device will remain in -
4 to indicate that the device will 0e placed in either - or -4
2 to indicate that the device will 0e placed in either -, -4, or -2
3 to indicate that the device will 0e placed in either -, -4, -2, or -3
3esult Code<
None
8.2.2 _PS0 (Power State 0)
This Control Method is used to put the specific device into its - state. This Control Method can onl(
access 2peration 3egions that are either alwa(s availa0le while in a s(stem working state or that are
availa0le when the 'ower 3esources references 0( the C'3 o0#ect are all 2N.
Arguments<
None
3esult Code<
None
8.2.3 _PS1 (Power State 1)
This control method is used to put the specific device into its -4 state. This control method can onl( access
2peration 3egions that are either alwa(s availa0le while in a s(stem working state or that are availa0le
when the 'ower 3esources references 0( the C'34 o0#ect are all 2N.
Arguments<
None
3esult Code<
None
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 396
8.2.4 _PS2 (Power State 2)
This control method is used to put the specific device into its -2 state. This control method can onl( access
2peration 3egions that are either alwa(s availa0le while in a s(stem working state or that are availa0le
when the 'ower 3esources references 0( the C'32 o0#ect are all 2N.
Arguments<
None
3esult Code<
None
8.2.5 _PS3 (Power State 3)
This control method is used to put the specific device into its -3 state. This control method can onl( access
2peration 3egions that are alwa(s availa0le while in a s(stem working state.
A device in the -3 state must no longer 0e using its resources =for e/ample, its memor( space and %F2 ports
are availa0le to other devices>.
Arguments<
None
3esult Code<
None
8.2.6 _PSC (Power State Current)
This control method evaluates to the current device state. This control method is not re:uired if the device
state can 0e inferred 0( the 'ower 3esource settings. This would 0e the case when the device does not
re:uire a C'!, C'!4, C'!2, or C'!3 control method.
Arguments<
None
3esult Code<
The result codes are shown in Ta0le 9&3.
Ta!le .-# DPSC Control Method "esult Codes
"esult 5evice State
-
4 -4
2 -2
3 -3
8.2.7 _PR0 (Power Resources for D0)
This o0#ect evaluates to a package of the following definition<
Ta!le .-( Power "esource "eJuire%ents Package
1le%ent 3!Cect 5escription
4 o0#ect reference 3eference to re:uired 'ower 3esource Y
N o0#ect reference 3eference to re:uired 'ower 3esource YN
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
38 Advanced Configuration and 'ower %nterface !pecification
5or 2!'M to put the device in the - device state, the following must occur<
4. All 'ower 3esources referenced 0( elements 4 through N must 0e in the 2N state.
2. All 'ower 3esources no longer referenced 0( an( device in the s(stem must 0e in the 255 state.
3. %f present, the C'! control method is e/ecuted to set the device into the - device state.
C'3 must return the same data each time it is evaluated. All power resources referenced must e/ist in the
namespace.
8.2.8 _PR1 (Power Resources for D1)
This o0#ect evaluates to a package as defined in Ta0le 9&". 5or 2!'M to put the device in the -4 device
state, the following must occur<
4. All 'ower 3esources referenced 0( elements 4 through N must 0e in the 2N state.
2. All 'ower 3esources no longer referenced 0( an( device in the s(stem must 0e in the 255 state.
3. %f present, the C'!4 control method is e/ecuted to set the device into the -4 device state.
C'34 must return the same data each time it is evaluated. All power resources referenced must e/ist in the
namespace.
8.2.9 _PR2 (Power Resources for D2)
This o0#ect evaluates to a package as defined in Ta0le 9&". 5or 2!'M to put the device in the -2 device
state, the following must occur<
4. All 'ower 3esources referenced 0( elements 4 through N must 0e in the 2N state.
2. All 'ower 3esources no longer referenced 0( an( device in the s(stem must 0e in the 255 state.
3. %f present, the C'!2 control method is e/ecuted to set the device into the -2 device state.
C'32 must return the same data each time it is evaluated. All power resources referenced must e/ist in the
namespace.
8.2.10 _PRW (Power Resources for Wake)
This o0#ect is onl( re:uired for devices that have the a0ilit( to wake the s(stem from a s(stem sleeping
state. This o0#ect evaluates to a package of the following definition<
Ta!le .-A :ake Power "eJuire%ents Package
1le%ent 3!Cect
T)pe
5escription
Numeric or
package
%f the data t(pe of this package element is numeric, then this C'3W package
element is the 0it inde/ in the $'./C.N, in the $'. 0locks descri0ed in the
5A-T, of the ena0le 0it that is ena0led for the wake event.
%f the data t(pe of this package element is a package, then this C'3W package
element is itself a package containing two elements. The first is an o0#ect
reference to the $'. ;lock device that contains the $'. that will 0e triggered 0(
the wake event. The second element is numeric and it contains the 0it inde/ in the
$'./C.N, in the $'. ;lock referenced 0( the first element in the package, of the
ena0le 0it that is ena0led for the wake event.
5or e/ample, if this field is a package then it is of the form<
Pac%a&e'()\_#B.PCI*.I#A.+PE, ./
4 Numeric The lowest power s(stem sleeping state that can 0e entered while still providing
wake functionalit(.
2 20#ect
3eference
3eference to re:uired 'ower 3esource Y
N 20#ect
3eference
3eference to re:uired 'ower 3esource YN
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 384
5or 2!'M to have the defined wake capa0ilit( properl( ena0led for the device, the following must occur<
4. All 'ower 3esources referenced 0( elements 2 through N are put into the 2N state.
2. %f present, the C'!W control method is e/ecuted to set the device&specific registers to ena0le the wake
functionalit( of the device.
3. The -&state 0eing entered must 0e at least that specified in the C!/- state 0ut no greater than that
specified in the C!/W state.
Then, if the s(stem enters a sleeping state 2!'M must ensure<
4. %nterrupts are disa0led.
2. The sleeping state 0eing entered must 0e less than or e:ual to the power state declared in element
4 of the C'3W o0#ect.
3. The proper general&purpose register 0its are ena0led.
The s(stem sleeping state specified must 0e a state that the s(stem supports =in other words, a
corresponding BC!x o0#ect must e/ist in the namespace>.
C'3W must return the same data each time it is evaluated. All power resources referenced must e/ist in the
namespace.
8.2.11 _PSW (Power State Wake)
%n addition to the C'3Wcontrol method, this control method can 0e used to ena0le or disa0le the deviceMs
a0ilit( to wake a sleeping s(stem. This control method can onl( access 2peration 3egions that are either
alwa(s availa0le while in a s(stem working state or that are availa0le when the 'ower 3esources references
0( the C'3W o0#ect are all 2N. 5or e/ample, do not put a power plane control for a 0us controller within
configuration space located 0ehind the 0us.
Compati0ilit( Note< The C'!W method is deprecated in AC'% 3.. 2!'M must use C-!W if it is present.
2therwise, it ma( use C'!W.
Arguments<
I .na0le F -isa0le< to disa0le the deviceMs wake capa0ilities.
4 to ena0le the deviceMs wake capa0ilities.
3esult Code<
None
8.2.12 _IRC (In Rush Current)
The presence of this o0#ect signifies that transitioning the device to its - state causes a s(stem&significant
in&rush current load. %n general, such operations need to 0e serialiHed such that multiple operations are not
attempted concurrentl(. Within AC'%, this t(pe of serialiHation can 0e accomplished with the reso'rceorder
parameter of the deviceMs 'ower 3esourcesK however, this does not serialiHe AC'%&controlled devices with
non&AC'% controlled devices. %3C is used to signif( this fact outside of 2!'M to 2!'M such that 2!'M
can serialiHe all devices in the s(stem that have in&rush current serialiHation re:uirements. 2!'M can onl(
transition one device containing an C%3C o0#ect within its device scope to the - state at a time. %t is
important to note that 2!'M does not evaluate the C%3C o0#ect. %t has no defined input arguments nor does
it return an( value. 2!'M derives meaning simpl( from the e/istence of the C%3C o0#ect.
8.2.13 _S1D (S1 Device State)
This o0#ect evaluates to an integer that conve(s to 2!'M the highest power =lowest num0er> -&state
supported 0( this device in the !4 s(stem sleeping state. C!4- must return the same integer each time it is
evaluated. This value overrides an !&state to -&state mapping 2!'M ma( ascertain from the deviceMs
power resource declarations. !ee Ta0le 9&3 for valid result codes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
382 Advanced Configuration and 'ower %nterface !pecification
%f the device can wake the s(stem from the !4 s(stem sleeping state =see C'3W> then the device must
support wake in the -&state returned 0( this o0#ect. @owever, 2!'M cannot assume wake from the !4
s(stem sleeping state is supported in an( lower -&state unless specified 0( a corresponding C!4W o0#ect.
The ta0le 0elow provides a mapping from -esired Actions to 3esultant -&state entered 0ased on the values
returned from the C!4-, C'3W, and C!4W o0#ects if the( e/ist . =-FC means -onMt Care I evaluation is
irrelevant, and NFA means Non Applica0le I o0#ect does not e/ist>.
Ta!le .-- S+ Action @ "esult Ta!le
-esired Action C!4- C'3W C!4W 3esultant -&state
.nter !4 -FC -FC -FC 2!'M decides
.nter !4, No Wake 2 -FC -FC .nter -2 or -3
.nter !4, Wake 2 4 NFA .nter -2
.nter !4, Wake 2 4 3 .nter -2 or -3
.nter !4, Wake NFA 4 2 .nter -,-4 or -2
8.2.14 _S2D (S2 Device State)
This o0#ect evaluates to an integer that conve(s to 2!'M the highest power =lowest num0er> -&state
supported 0( this device in the !2 s(stem sleeping state. C!2- must return the same integer each time it is
evaluated. This value overrides an !&state to -&state mapping 2!'M ma( ascertain from the deviceMs
power resource declarations. !ee Ta0le 9&3 for valid result codes.
%f the device can wake the s(stem from the !2 s(stem sleeping state =see C'3W> then the device must
support wake in the -&state returned 0( this o0#ect. @owever, 2!'M cannot assume wake from the !2
s(stem sleeping state is supported in an( lower -&state unless specified 0( a corresponding C!2W o0#ect.
The ta0le 0elow provides a mapping from -esired Actions to 3esultant -&state entered 0ased on the values
returned from the C!2-, C'3W, and C!2W o0#ects if the( e/ist . =-FC means -onMt Care I evaluation is
irrelevant, and NFA means Non Applica0le I o0#ect does not e/ist>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 383
Ta!le .-. S& Action @ "esult Ta!le
-esired Action C!2- C'3W C!2W 3esultant -&state
.nter !2 -FC -FC -FC 2!'M decides
.nter !2, No Wake 2 -FC -FC .nter -2 or -3
.nter !2, Wake 2 2 NFA .nter -2
.nter !2, Wake 2 2 3 .nter -2 or -3
.nter !2, Wake NFA 2 2 .nter -,-4 or -2
8.2.15 _S3D (S3 Device State)
This o0#ect evaluates to an integer that conve(s to 2!'M the highest power =lowest num0er> -&state
supported 0( this device in the !3 s(stem sleeping state. C!3- must return the same integer each time it is
evaluated. This value overrides an !&state to -&state mapping 2!'M ma( ascertain from the deviceMs
power resource declarations. !ee Ta0le 9&3 for valid result codes.
%f the device can wake the s(stem from the !3 s(stem sleeping state =see C'3W> then the device must
support wake in the -&state returned 0( this o0#ect. @owever, 2!'M cannot assume wake from the !3
s(stem sleeping state is supported in an( lower -&state unless specified 0( a corresponding C!3W o0#ect.
The ta0le 0elow provides a mapping from -esired Actions to 3esultant -&state entered 0ased on the values
returned from the C!3-, C'3W, and C!3W o0#ects if the( e/ist . =-FC means -onMt Care I evaluation is
irrelevant, and NFA means Non Applica0le I o0#ect does not e/ist>.
Ta!le .-/ S# Action @ "esult Ta!le
-esired Action C!3- C'3W C!3W 3esultant -&state
.nter !3 NFA -FC NFA 2!'M decides
.nter !3, No Wake 2 -FC -FC .nter -2 or -3
.nter !3, Wake 2 3 NFA .nter -2
.nter !3, Wake 2 3 3 .nter -2 or -3
.nter !3, Wake NFA 3 2 .nter -, -4 or -2
8.2.16 _S4D (S4 Device State)
This o0#ect evaluates to an integer that conve(s to 2!'M the highest power =lowest num0er> -&state
supported 0( this device in the !" s(stem sleeping state. C!"- must return the same integer each time it is
evaluated. This value overrides an !&state to -&state mapping 2!'M ma( ascertain from the deviceMs
power resource declarations. !ee Ta0le 9&3 for valid result codes.
%f the device can wake the s(stem from the !" s(stem sleeping state =see C'3W> then the device must
support wake in the -&state returned 0( this o0#ect. @owever, 2!'M cannot assume wake from the !"
s(stem sleeping state is supported in an( lower -&state unless specified 0( a corresponding C!"W o0#ect.
The ta0le 0elow provides a mapping from -esired Actions to 3esultant -&state entered 0ased on the values
returned from the C!"-, C'3W, and C!"W o0#ects if the( e/ist . =-FC means -onMt Care I evaluation is
irrelevant, and NFA means Non Applica0le I o0#ect does not e/ist>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
38" Advanced Configuration and 'ower %nterface !pecification
Ta!le .-, S( Action @ "esult Ta!le
-esired Action C!"- C'3W C!3W 3esultant -&state
.nter !" NFA -FC NFA 2!'M decides
.nter !", No Wake 2 -FC -FC .nter -2 or -3
.nter !", Wake 2 " No .nter -2
.nter !", Wake 2 " 3 .nter -2 or -3
.nter !", Wake NFA " 2 .nter -, -4 or -2
8.2.17 _S0W (S0 Device Wake State)
This o0#ect evaluates to an integer that conve(s to 2!'M the lowest power =highest num0er> -&state
supported 0( this device in the ! s(stem sleeping state w1ere t1e de2ice can wa3e itself! C!W must return
the same integer each time it is evaluated. This value allows 2!'M to choose the lowest power -&state and
still achieve wake functionalit(. %f o0#ect evaluates to Hero, then the device cannot wake itself from an(
lower sleeping state.
8.2.18 _S1W (S1 Device Wake State)
This o0#ect evaluates to an integer that conve(s to 2!'M the lowest power =highest num0er> -&state
supported 0( this device in the !4 s(stem sleeping state w1ic1 can wa3e t1e system. C!4W must return the
same integer each time it is evaluated. This value allows 2!'M to choose a lower !&state to -&state
mapping than specified 0( C!4-. This value must alwa(s 0e greater than or e:ual to C!4-, if C!4- is
present.
8.2.19 _S2W (S2 Device Wake State)
This o0#ect evaluates to an integer that conve(s to 2!'M the lowest power =highest num0er> -&state
supported 0( this device in the !2 s(stem sleeping state w1ic1 can wa3e t1e system. C!2W must return the
same integer each time it is evaluated. This value allows 2!'M to choose a lower !&state to -&state
mapping than specified 0( C!2-. This value must alwa(s 0e greater than or e:ual to C!2-, if C!2- is
present.
8.2.20 _S3W (S3 Device Wake State)
This o0#ect evaluates to an integer that conve(s to 2!'M the lowest power =highest num0er> -&state
supported 0( this device in the !3 s(stem sleeping state w1ic1 can wa3e t1e system. C!3W must return the
same integer each time it is evaluated. This value allows 2!'M to choose a lower !&state to -&state
mapping than specified 0( C!3-. This value must alwa(s 0e greater than or e:ual to C!3-, if C!3- is
present.
8.2.21 _S4W (S4 Device Wake State)
This o0#ect evaluates to an integer that conve(s to 2!'M the lowest power =highest num0er> -&state
supported 0( this device in the !" s(stem sleeping state w1ic1 can wa3e t1e system. C!"W must return the
same integer each time it is evaluated. This value allows 2!'M to choose a lower !&state to -&state
mapping than specified 0( C!"-. This value must alwa(s 0e greater than or e:ual to C!"-, if C!"- is
present.
8.3 OEM-Supplied System-Level Control Methods
An 2.M&supplied -efinition ;lock provides some num0er of controls appropriate for s(stem&level
management. These are used 0( 2!'M to integrate to the 2.M&provided features. The following ta0le lists
the defined 2.M s(stem controls that can 0e provided.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 38*
Ta!le .-+$ <I3S-Supplied Control Methods for S)ste%-Level 6unctions
3!Cect 5escription
BC;5! Control method e/ecuted immediatel( following a wake event.
BC'T! Control method used to notif( the platform of impending sleep transition.
BC$T! Control method e/ecuted #ust prior to setting the sleep ena0le =!1'C.N> 0it.
BC! 'ackage that defines s(stem BC! state mode.
BC!4 'ackage that defines s(stem BC!4 state mode.
BC!2 'ackage that defines s(stem BC!2 state mode.
BC!3 'ackage that defines s(stem BC!3 state mode.
BC!" 'ackage that defines s(stem BC!" state mode.
BC!* 'ackage that defines s(stem BC!* state mode.
BCTT! Control method used to prepare to sleep and run once awakened
BCWAE Control method run once awakened.
8.3.1 \_BFS (Back From Sleep)
C;5! is an optional control method. %f it e/ists, 2!'M must e/ecute the C;5! method immediatel(
following wake from an( sleeping state !4, !2, !3, or !". C;5! allows AC'% s(stem firmware to perform
an( re:uired s(stem specific functions when returning a s(stem sleep state. 2!'M will e/ecute the C;5!
control method 0efore performing an( other ph(sical %F2 or ena0ling an( interrupt servicing upon returning
from a sleeping state. A value that indicates the sleeping state from which the s(stem was awoken =in other
words, 4\!4, 2\!2, 3\!3, "\!"> is passed as an argument to the C;5! control method.
The C;5! method must 0e self&contained =not call other methods>. Additionall(, C;5! ma( onl( access
2p3egions that are currentl( availa0le =see the C3.$ method for details>.
Arguments<
< The value of the previous sleeping state =4 for !4, 2 for !2, and so on>.
8.3.2 \_PTS (Prepare To Sleep)
The C'T! control method is e/ecuted 0( the 2! during the sleep transition process for !4, !2, !3, !", and
for orderl( !* shutdown. The sleeping state value =5or e/ample, 4, 2, 3, " or * for the !* soft&off state> is
passed to the C'T! control method. This method is called after 2!'M has notified native device drivers of
the sleep state transition and 0efore the 2!'M has had a chance to full( prepare the s(stem for a sleep state
transition. Thus, this control method can 0e e/ecuted a relativel( long time 0efore actuall( entering the
desired sleeping state. %f 2!'M a0orts the sleep state transition, 2!'M should run the CWAE method to
indicate this condition to the platform.
The C'T! control method cannot modif( the current configuration or power state of an( device in the
s(stem. 5or e/ample, C'T! would simpl( store the sleep t(pe in the em0edded controller in se:uencing the
s(stem into a sleep state when the !1'C.N 0it is set.
The platform must not make an( assumptions a0out the state of the machine when C'T! is called. 5or
e/ample, operation region accesses that re:uire devices to 0e configured and ena0led ma( not succeed, as
these devices ma( 0e in a non&decoding state due to plug and pla( or power management operations.
Arguments<
< The value of the sleeping state =4 for !4, 2 for !2, and so on>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
38+ Advanced Configuration and 'ower %nterface !pecification
8.3.3 \_GTS (Going To Sleep)
C$T! is an optional control method. %f it e/ists, 2!'M must e/ecute the C$T! control method #ust prior to
setting the sleep ena0le =!1'C.N> 0it in the 'M4 control register when entering the !4, !2, !3, and !"
sleeping states and when entering !* for orderl( shutdown. C$T! allows AC'% s(stem firmware to perform
an( re:uired s(stem specific functions prior to entering a s(stem sleep state. 2!'M will set the sleep
ena0le =!1'C.N> 0it in the 'M4 control register immediatel( following the e/ecution of the C$T! control
method without performing an( other ph(sical %F2 or allowing an( interrupt servicing. The sleeping state
value =4, 2, 3, ", or *> is passed as an argument to the C$T! control method. The C$T! method must not
attempt to directl( place the s(stem into a sleeping state. 2!'M performs this function 0( setting the sleep
ena0le 0it upon return from C$T!. %n the case of entr( into the !* soft off state however, C$T! ma( indeed
perform operations that place the s(stem into the !* state as 2!'M will not regain control.
The C$T! method must 0e self&contained =not call other methods>. Additionall(, C$T! ma( onl( access
2p3egions that are currentl( availa0le =see the C3.$ method for details>.
Arguments<
< The value of the sleeping state =4 for !4, 2 for !2, and so on>.
8.3.4 System \_Sx states
All s(stem states supported 0( the s(stem must provide a package containing the -W23- value of the
following format in the static -efinition ;lock. The s(stem states, known as !I!*, are referenced in the
namespace as BC!IBC!* and for clarit( the short !x names are used unless specificall( referring to the
named BC!x o0#ect. 5or each !x state, there is a defined s(stem 0ehavior.
Ta!le .-++ S)ste% State Package
<)te
Length
<)te
3ffset 5escription
4 Dalue for 'M4aCCNT.!1'CTS' register to enter this s(stem state.
4 4 Dalue for 'M40CCNT.!1'CTS' register to enter this s(stem state. To enter an(
given state, 2!'M must write the 'M4aCCNT.!1'CTS' register 0efore the
'M40CCNT.!1'CTS' register.
2 2 3eserved
!tates !4I!" represent some s(stem sleeping state. The ! state is the s(stem working state. Transition into
the ! state from some other s(stem state =such as sleeping> is automatic, and, 0( virtue that instructions
are 0eing e/ecuted, 2!'M assumes the s(stem to 0e in the ! state. Transition into an( s(stem sleeping
state is onl( accomplished 0( the operating software directing the hardware to enter the appropriate state,
and the operating software can onl( do this within the re:uirements defined in the 'ower 3esource and
;usF-evice 'ackage o0#ects.
All run&time s(stem state transitions =for e/ample, to and from the ! state>, e/cept !" and !*, are done
similarl( such that the code se:uence to do this is the following<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 389
/[
[ #ntel &rchitecture SetSleepin,State e-ample
[/
X60!:
SetS12temSleepin, (
#! X60!: !ewState
)

PR0)%SS0R_)0!<%R< )onte-tK
X60!: PowerSe8eunceK
B006%&! 5lu2h)ache2K
XS"0R< Slp<1pK
// Re0u1re" en1ron2ent3 %-ecutin, on the 212tem boot
// proce22or. &ll other proce22or2 2topped. #nterrupt2
// di2abled. &ll Power Re2ource2 (and device2) are in
// corre2pondin, device 2tate to 2upport !ewState.
// :et h/w attribute2 for thi2 212tem 2tate
5lu2h)ache2L Sleep<1peM!ewStateN.5lu2h)acheK
Slp<1p L Sleep<1peM!ewStateN.Slp<1p V S6P_<SP_;&SAK
_a2m
lea ea-$ 02Re2ume)onte-t
pu2h ea- K Build real mode handler the re2ume
pu2h off2et 2pG( K conte-t$ with eip L 2pG(
call SaveProce22orState
mov ea-$ Re2ume@ector K 2et firmware]2 re2ume vector
mov Mea-N$ off2et 02Real;odeRe2ume)ode
mov ed-$ P;4a_S<S K;a+e 2ure wa+e 2tatu2 i2 clear
mov a-$ W&A_S<S K (cleared b1 a22ertin, the bit
out d-$ a- K in the 2tatu2 re,i2ter)
mov ed-$ P;4b_S<S K
out d-$ a- K
and ea-$ not S6P_<SP_;&SA
or ea-$ Slp<1p K 2et S6P_<SP
or a-$ S6P_%! K 2et S6P_%!
cmp 5lu2h)ache2$ (
9C 2hort 2p4( K #f needed$ en2ure no dirt1 data in
call 5lu2hProce22or)ache2 K the cache2 while 2leepin,
2p4(> mov ed-$ P;4a_S6P_<SP K ,et addre22 for P;4a_S6P_<SP
out d-$ a- K 2tart h/w 2e8uencin,
mov ed-$ P;4b_S6P_<SP K ,et addre22 for P;4b_S6P_<SP
out d-$ a- K 2tart h/w 2e8uencin,
mov ed-$ P;4a_S<S K ,et addre22 for P;4-_S<S
mov ec-$ P;4b_S<S
2p3(> in a-$ d- K wait for W&A 2tatu2
-ch, ed-$ ec-
te2t a-$ W&A_S<S
9C 2hort 2p3(
2pG(>
/
// Done..
[Re2ume@ector L !X66K
return (K
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
388 Advanced Configuration and 'ower %nterface !pecification
8.3.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 386
8.3.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
36 Advanced Configuration and 'ower %nterface !pecification
System \_S0 State (Working)
While the s(stem is in the ! state, it is in the s(stem working state. The 0ehavior of this state is defined as<
The processors are in the C, C4, C2, or C3 states. The processor&comple/ conte/t is maintained
and instructions are e/ecuted as defined 0( an( of these processor states.
-(namic 3AM conte/t is maintained and is readFwrite 0( the processors.
-evices states are individuall( managed 0( the operating software and can 0e in an( device state
=-, -4, -2, or -3>.
'ower 3esources are in a state compati0le with the current device states.
Transition into the ! state from some s(stem sleeping state is automatic, and 0( virtue that instructions are
0eing e/ecuted 2!'M, assumes the s(stem to 0e in the ! state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 364
8.3.4.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
362 Advanced Configuration and 'ower %nterface !pecification
System \_S1 State (Sleeping with Processor Context Maintained)
While the s(stem is in the !4 sleeping state, its 0ehavior is the following<
The processors are not e/ecuting instructions. The processor&comple/ conte/t is maintained.
-(namic 3AM conte/t is maintained.
'ower 3esources are in a state compati0le with the s(stem !4 state. All 'ower 3esources that
suppl( a !(stem&1evel reference of ! are in the 255 state.
-evices states are compati0le with the current 'ower 3esource states. 2nl( devices that solel(
reference 'ower 3esources that are in the 2N state for a given device state can 0e in that device state.
%n all other cases, the device is in the -3 =off> state
4
.
-evices that are ena0led to wake the s(stem and that can do so from their current device state can
initiate a hardware event that transitions the s(stem state to !. This transition causes the processor to
continue e/ecution where it left off.
To transition into the !4 state, the 2!'M must flush all processor caches.
4
2r it is at least assumed to 0e in the -3 state 0( its device driver. 5or e/ample, if the device doesnMt
e/plicitl( descri0e how it can sta( in some state non&off state while the s(stem is in a sleeping state, the
operating software must assume that the device can lose its power and state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 363
8.3.4.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
36" Advanced Configuration and 'ower %nterface !pecification
System \_S2 State
The !2 sleeping state is logicall( lower than the !4 state and is assumed to conserve more power. The
0ehavior of this state is defined as<
The processors are not e/ecuting instructions. The processor&comple/ conte/t is not maintained.
-(namic 3AM conte/t is maintained.
'ower 3esources are in a state compati0le with the s(stem !2 state. All 'ower 3esources that
suppl( a !(stem&1evel reference of ! or !4 are in the 255 state.
-evices states are compati0le with the current 'ower 3esource states. 2nl( devices that solel(
reference 'ower 3esources that are in the 2N state for a given device state can 0e in that device state.
%n all other cases, the device is in the -3 =off> state.
-evices that are ena0led to wake the s(stem and that can do so from their current device state can
initiate a hardware event that transitions the s(stem state to !. This transition causes the processor to
0egin e/ecution at its 0oot location. The ;%2! performs initialiHation of core functions as needed to
e/it an !2 state and passes control to the firmware resume vector. !ee section 49.3.2, J;%2!
%nitialiHation of Memor(,L for more details on ;%2! initialiHation.
;ecause the processor conte/t can 0e lost while in the !2 state, the transition to the !2 state re:uires that
the operating software flush all dirt( cache to d(namic 3AM =-3AM>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 36*
8.3.4.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
36+ Advanced Configuration and 'ower %nterface !pecification
8.3.4.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 369
System \_S3 State
The !3 state is logicall( lower than the !2 state and is assumed to conserve more power. The 0ehavior of
this state is defined as follows<
The processors are not e/ecuting instructions. The processor&comple/ conte/t is not maintained.
-(namic 3AM conte/t is maintained.
'ower 3esources are in a state compati0le with the s(stem !3 state. All 'ower 3esources that
suppl( a !(stem&1evel reference of !, !4, or !2 are in the 255 state.
-evices states are compati0le with the current 'ower 3esource states. 2nl( devices that solel(
reference 'ower 3esources that are in the 2N state for a given device state can 0e in that device state.
%n all other cases, the device is in the -3 =off> state.
-evices that are ena0led to wake the s(stem and that can do so from their current device state can
initiate a hardware event that transitions the s(stem state to !. This transition causes the processor to
0egin e/ecution at its 0oot location. The ;%2! performs initialiHation of core functions as necessar( to
e/it an !3 state and passes control to the firmware resume vector. !ee section 49.3.2, J;%2!
%nitialiHation of Memor(,L for more details on ;%2! initialiHation.
5rom the software viewpoint, this state is functionall( the same as the !2 state. The operational difference
can 0e that some 'ower 3esources that could 0e left 2N to 0e in the !2 state might not 0e availa0le to the
!3 state. As such, additional devices ma( need to 0e in a logicall( lower -, -4, -2, or -3 state for !3
than !2. !imilarl(, some device wake events can function in !2 0ut not !3.
;ecause the processor conte/t can 0e lost while in the !3 state, the transition to the !3 state re:uires that
the operating software flush all dirt( cache to -3AM.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
368 Advanced Configuration and 'ower %nterface !pecification
8.3.4.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 366
System \_S4 State
While the s(stem is in this state, it is in the s(stem !" sleeping state. The state is logicall( lower than the !3
state and is assumed to conserve more power. The 0ehavior of this state is defined as follows<
The processors are not e/ecuting instructions. The processor&comple/ conte/t is not maintained.
-3AM conte/t is not maintained.
'ower 3esources are in a state compati0le with the s(stem !" state. All 'ower 3esources that
suppl( a !(stem&1evel reference of !, !4, !2, or !3 are in the 255 state.
-evices states are compati0le with the current 'ower 3esource states. %n other words, all devices
are in the -3 state when the s(stem state is !".
-evices that are ena0led to wake the s(stem and that can do so from their !" device state can
initiate a hardware event that transitions the s(stem state to !. This transition causes the processor to
0egin e/ecution at its 0oot location.
After 2!'M has e/ecuted the C'T! control method and has put the entire s(stem state into main memor(,
there are two wa(s that 2!'M ma( handle the ne/t phase of the !" state transitionK saving and restoring
main memor(. The first wa( is to use the operating s(stemMs drivers to access the disks and file s(stem
structures to save a cop( of memor( to disk and then initiate the hardware !" se:uence 0( setting the
!1'C.N register 0it. When the s(stem wakes, the firmware performs a normal 0oot process and transfers
control to the 2! via the firmwareCwakingCvector loader. The 2! then restores the s(stemMs memor( and
resumes e/ecution.
The alternate method for entering the !" state is to utiliHe the ;%2! via the !";%2! transition. The ;%2!
uses firmware to save a cop( of memor( to disk and then initiates the hardware !" se:uence. When the
s(stem wakes, the firmware restores memor( from disk and wakes 2!'M 0( transferring control to the
5AC! waking vector.
The !";%2! transition is optional, 0ut an( s(stem that supports this mechanism must support entering the
!" state via the direct 2! mechanism. Thus the preferred mechanism for !" support is the direct 2!
mechanism as it provides 0roader platform support. The alternate !";%2! transition provides a wa( to
achieve !" support on operating s(stems that do not have support for the direct method.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
" Advanced Configuration and 'ower %nterface !pecification
8.3.4.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "4
8.3.4.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"2 Advanced Configuration and 'ower %nterface !pecification
System \_S5 State (Soft Of)
The !* state is similar to the !" state e/cept that 2!'M does not save an( conte/t. The s(stem is in the
soft off state and re:uires a complete 0oot when awakened =;%2! and 2!>. !oftware uses a different state
value to distinguish 0etween this state and the !" state to allow for initial 0oot operations within the ;%2!
to distinguish whether or not the 0oot is going to wake from a saved memor( image. 2!'M does not
disa0le wake events 0efore setting the !1'C.N 0it when entering the !* s(stem state. This provides
support for remote management initiatives 0( ena0ling 3emote !tart capa0ilit(. An AC'%&compliant 2!
must provide an end user accessi0le mechanism for disa0ling all wake devices, with the e/ception of the
s(stem power 0utton, from a single point in the user interface.
8.3.5 _SWS (System Wake Source)
This o0#ect provides a means for 2!'M to definitivel( determine the source of an event that caused the
s(stem to enter the ! state. $eneral&purpose event and fi/ed&feature hardware registers containing wake
event sources information are insufficient for this purpose as the source event information ma( not 0e
availa0le after transitions to the ! state from all other s(stem states =!4&!*>. To determine the source event
that caused the s(stem to transition to the ! state, 2!'M will evaluate the C!W! o0#ect, when it e/ists,
under the BC$'. scope =for all fi/ed&feature general&purpose events from the $'. ;locks>, under the BC!;
scope =for fi/ed&feature hardware events>, and within the scope of a $'. ;lock device =for $'. events
from this device>. C!W! o0#ects ma( e/ist in an( or all of these locations as necessar( for the platform to
determine the source event that caused the s(stem to transition to the ! state.
To ena0le 2!'M to determine the source of the ! state transition via the C!W! o0#ect, hardware or
firmware should detect and save the event that caused the transition so that it can 0e returned during C!W!
o0#ect evaluation. The single wake source for the s(stem ma( 0e latched in hardware during the transition
so that no false wake events can 0e returned 0( C!W!. An implementation that does not use hardware to
latch a single wake source for the s(stem and instead uses firmware to save the wake source must do so as
:uickl( as possi0le after the wakeup event occurs, so that C!W! does not return values that correspond to
events that occurred after the sleep&to&wake transition. !uch an implementation must also take care to
ensure that events that occur su0se:uent to the wakeup source 0eing saved do not overwrite the original
wakeup source. The source event data returned 0( C!W! must 0e determined for each transition into the !
state. The value returned 0( C!W! must also 0e persistent during the s(stemMs residenc( in the ! state as
2!'M ma( evaluate C!W! multiple times. %n this case, the platform must return the same source event
information for each invocation.
Arguments<
None
3esult Code
#ourceEent< DWord)on2t
Where<
#ourceEent is the inde/ of the $'. input that caused the s(stem to transition to the ! state if
2!'M evaluates C!W! under the BC$'. scope.
#ourceEent is the inde/ of the $'. input that caused the s(stem to transition to the ! state if
2!'M evaluates C!W! within the scope of a $'. ;lock device. %n this case the inde/ is relative
to the $'. 0lock device, and is not uni:ue s(stem&wide.
#ourceEent is the inde/ in the 'M4 !tatus register that caused the s(stem to transition to the !
state if 2!'M evaluates C!W! under the BC!; scope .
#ourceEent has all 0its set =3nes> if the event that caused the s(stem to transition to the ! state
cannot 0e determined when 2!'M evaluates C!W! under an( of the three scopes listed a0ove.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "3
After evaluating an C!W! o0#ect within the BC$'. scope or within the scope of a $'. 0lock device,
2!'M will invoke the CW// control method corresponding to the $'. inde/ returned 0( C!W! if it e/ists.
This allows the platform to further determine source event if the $'. is shared among multiple devices.
!ee !ection *.+.2.2." for details.
8.3.6 \_TTS (Transition To State)
The CTT! control method is e/ecuted 0( the 2!'M at the 0eginning of the sleep transition process for !4,
!2, !3, !", and orderl( !* shutdown. 2!'M will invoke CTT! 0efore it has notified an( native mode
device drivers of the sleep state transition. The sleeping state value =5or e/ample, 4, 2, 3, " or * for the !*
soft&off state> is passed to the CTT! control method.
The CTT! control method is also e/ecuted 0( the 2!'M at the end of an( sleep transition process when the
s(stem transitions to ! from !4, !2, !3, or !". 2!'M will invoke CTT! after it has notified an( native
mode device drivers of the end of the sleep state transition. The working state value => is passed to the
CTT! control method.
%f 2!'M a0orts the sleep transition process, 2!'M will still run CTT! for an ! transition to indicate the
2!'M has returned to the ! state. The platform must assume that if 2!'M invokes the CTT! control
method for an !4, !2, !3, or !" transition, that 2!'M will invoke CTT! control method for an !
transition 0efore returning to the ! state.
The platform must not make an( assumptions a0out the state of the machine when CTT! is called. 5or
e/ample, operation region accesses that re:uire devices to 0e configured and ena0led ma( not succeed, as
these devices ma( 0e in a non&decoding state due to plug and pla( or power management operations.
Arguments<
< The value of the sleeping state =4 for !4, 2 for !2, and so on>
8.3.7 \_WAK (System Wake)
After the s(stem wakes from a sleeping state, it will invoke the BCWAE method and pass the sleeping state
value that has ended. This operation occurs as(nchronousl( with other driver notifications in the s(stem
and is not the first action to 0e taken when the s(stem wakes. The AM1 code for this control method issues
device, thermal, and other notifications to ensure that 2!'M checks the state of devices, thermal Hones, and
so on, that could not 0e maintained during the s(stem sleeping state. 5or e/ample, if the s(stem cannot
determine whether a device was inserted or removed from a 0us while in the !2 state, the CWAE method
would issue a de2icec1ec3 t(pe of notification for that 0us when issued with the sleeping state value of 2
=for more information a0out t(pes of notifications, see section +.+.3, J-evice 20#ect NotificationsL>. Notice
that a device check notification from the BC!; node will cause 2!'M to re&enumerate the entire tree
44
.
@ardware is not o0ligated to track the state needed to suppl( the resulting statusK however, this method
must return status concerning the last sleep operation initiated 0( 2!'M. The result codes can 0e used to
provide additional information to 2!'M or user.
Arguments<
The value of the sleeping state =4 for !4, 2 for !2, and so on>.
3esult Code =2 -W23- package><
!tatus ;it field of defined conditions that occurred during sleep.
/ Wake was signaled and was successful
/4 Wake was signaled 0ut failed due to lack of power.
/2 Wake was signaled 0ut failed due to thermal condition.
2ther 3eserved
44
2nl( 0uses that support hardware&defined enumeration methods are done automaticall( at run&time. This
would include AC'%&enumerated devices.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"" Advanced Configuration and 'ower %nterface !pecification
'!! %f non&Hero, the effective !&state the power suppl( reall( entered.
This value is used to detect when the targeted !&state was not entered 0ecause of too much current
0eing drawn from the power suppl(. 5or e/ample, this might occur when some active deviceMs current
consumption pushes the s(stemMs power re:uirements over the low power suppl( mark, thus
preventing the lower power mode from 0eing entered as desired.
8.4 OSPM usage of _GTS, _PTS, _TTS, _WAK, and _BFS
2!'M will invoke C$T!, C'T!, CTT!, CWAE, and C;5! in the following order<
4.2!'M decides =through a polic( scheme> to place the s(stem into a sleeping state.
2.CTT!=!/> is run, where !/ is the desired sleep state to enter.
3. 2!'M notifies all native device drivers of the sleep state transition
".C'T! is run
*.2!'M readies s(stem for the sleep state transition
+.C$T! is run
9.2!'M writes the sleep vector and the s(stem enters the specified !/ sleep state.
8.!(stem Wakes up
6.C;5! is run
4.2!'M readies s(stem for the return from the sleep state transition
44.CWAE is run
42. 2!'M notifies all native device drivers of the return from the sleep state transition
43.CTT!=> is run to indicate the return to the ! state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "*
6igure .-+ :orking @ Sleeping State o!Cect evaluation flow
9 Processor Power and Performance State Confguration and Control
This section descri0es the configuration and control of the processorMs power and performance states. The
ma#or controls over the processors are<
'rocessor power states< C, C4, C2, C3, N Cn
'rocessor clock throttling
'rocessor performance states< ', '4, N 'n
These controls are used in com0ination 0( 2!'M to achieve the desired 0alance of the following
sometimes conflicting goals<
'erformance
'ower consumption and 0atter( life
Thermal re:uirements
Noise&level re:uirements
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"+ Advanced Configuration and 'ower %nterface !pecification
;ecause the goals interact with each other, the operating software needs to implement a polic( as to when
and where tradeoffs 0etween the goals are to 0e made
42
. 5or e/ample, the operating software would
determine when the audi0le noise of the fan is undesira0le and would trade off that re:uirement for lower
thermal re:uirements, which can lead to lower processing performance. .ach processor configuration and
control interface is discussed in the following sections along with how controls interacts with the various
goals.
9.1 Processor Power States
AC'% defines the power state of s(stem processors while in the $ working state
43
as 0eing either active
=e/ecuting> or sleeping =not e/ecuting>. 'rocessor power states include are designated C, C4, C2, C3, N
Cn. The C power state is an active power state where the C', e/ecutes instructions. The C4 through Cn
power states are processor sleeping states where the processor consumes less power and dissipates less heat
than leaving the processor in the C state. While in a sleeping state, the processor does not e/ecute an(
instructions. .ach processor sleeping state has a latenc( associated with entering and e/iting that
corresponds to the power savings. %n general, the longer the entr(Fe/it latenc(, the greater the power
savings when in the state. To conserve power, 2!'M places the processor into one of its supported sleeping
states when idle. While in the C state, AC'% allows the performance of the processor to 0e altered through
a defined JthrottlingL process and through transitions into multiple performance states ='&states>. A diagram
of processor power states is provided 0elow.
Interr(pt
Interr(pt
!+T
P>+D+5
T!T>&@<3
an"
DTA<val(e
T!T>&@<0
Perfor%ance
State P' Throttling
C3 C5 C-
P>+D+-
ARB>DIS<3
Interr(pt or
B*Access
,0
.or/ing
C0
42
A thermal warning leaves room for operating s(stem tradeoffs to occur =to start the fan or to reduce
performance>, 0ut a critical thermal alert does not occur.
43
Notice that these C', states map into the $ working state. The state of the C', is undefined in the $3
sleeping state, the Cx states onl( appl( to the $ state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "9
6igure /-+ Processor Power States
AC'% defines logic on a per&C', 0asis that 2!'M uses to transition 0etween the different processor power
states. This logic is optional, and is descri0ed through the 5A-T ta0le and processor o0#ects =contained in
the hierarchical namespace>. The fields and flags within the 5A-T ta0le descri0e the s(mmetrical features
of the hardware, and the processor o0#ect contains the location for the particular C',Ms clock logic
=descri0ed 0( the 'C;1E register 0lock and CC!T o0#ects>.
The 'C1D12 and 'C1D13 registers provide optional support for placing the s(stem processors into the C2
or C3 states. The 'C1D12 register is used to se:uence the selected processor into the C2 state, and the
'C1D13 register is used to se:uence the selected processor into the C3 state. Additional support for the C3
state is provided through the 0us master status and ar0iter disa0le 0its =;MC!T! in the 'M4C!T! register
and A3;C-%! in the 'M2CCNT register>. !(stem software reads the 'C1D12 or 'C1D13 registers to enter
the C2 or C3 power state. The @ardware must put the processor into the proper clock state precisel( on the
read operation to the appropriate 'C1D1/ register. The platform ma( alternativel( define interfaces
allowing 2!'M to enter C&states using the CC!T o0#ect, which is defined in !ection 8.".2.4, JCC!T =C
!tates>L.
'rocessor power state support is s(mmetric when presented via the 5A-T and 'C;1E interfacesK 2!'M
assumes all processors in a s(stem support the same power states. %f processors have non&s(mmetric power
state support, then the ;%2! will choose and use the lowest common power states supported 0( all the
processors in the s(stem through the 5A-T ta0le. 5or e/ample, if the C', processor supports all power
states up to and including the C3 state, 0ut the C',4 processor onl( supports the C4 power state, then
2!'M will onl( place idle processors into the C4 power state =C', will never 0e put into the C2 or C3
power states>. Notice that the C4 power state must 0e supported. The C2 and C3 power states are optional
=see the '32CCC4 flag in the 5A-T ta0le description in section *.2.+, J!(stem -escription Ta0le
@eaderL>.
The following sections descri0e processor power states in detail.
9.1.1 Processor Power State C0
While the processor is in the C power state, it e/ecutes instructions. While in the C power state, 2!'M
can generate a polic( to run the processor at less than ma/imum performance. The clock throttling
mechanism provides 2!'M with the functionalit( to perform this task in addition to thermal control. The
mechanism allows 2!'M to program a value into a register that reduces the processorMs performance to a
percentage of ma/imum performance.
dut, width
dut, 9alue
cloc: on time
cloc: off time
P%C&T
dut, offset dut, width
dut, 9alue
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"8 Advanced Configuration and 'ower %nterface !pecification
6igure /-& Throttling 1xa%ple
The 5A-T contains the dut( offset and dut( width values. The dut( offset value determines the offset
within the 'CCNT register of the dut( value. The dut( width value determines the num0er of 0its used 0(
the dut( value =which determines the granularit( of the throttling logic>. The performance of the processor
0( the clock logic can 0e e/pressed with the following e:uation<
X [ Performance
d'tysetting
d'tywidt1
=
2
4X
1Juation + 5ut) C)cle 1Juation
Nominal performance is defined as Jclose as possi0le, 0ut not 0elow the indicated performance level.L
2!'M will use the dut( offset and dut( width to determine how to access the dut( setting field. 2!'M will
then program the dut( setting 0ased on the thermal condition and desired power of the processor o0#ect.
2!'M calculates the nominal performance of the processor using the e:uation e/pressed in .:uation 4.
Notice that a d'tysetting of Hero is reserved.
5or e/ample, the clock logic could use the stop grant c(cle to emulate a divided processor clock fre:uenc(
on an %A processor =through the use of the !T'C1EY signal>. This signal internall( stops the processorMs
clock when asserted 12W. To implement logic that provides eight levels of clock control, the !T'C1EY
pin could 0e asserted as follows =to emulate the different fre:uenc( settings><
1 / Reser9ed 6alue
!
"
(
>
;
K
<
1 ! " ( > ; K <
"(tysetting
D(ty .i"th 1--bits2
S
T
P
C
+
K
B
S
i
g
n
a
l
CP* Cloc: Running
CP* Cloc: Stopped
6igure /-# 1xa%ple Control for the STPCLES
To start the throttling logic 2!'M sets the desired dut( setting and then sets the T@TC.N 0it @%$@. To
change the dut( setting, 2!'M will first reset the T@TC.N 0it 12W, then write another value to the dut(
setting field while preserving the other unused fields of this register, and then set the T@TC.N 0it @%$@
again.
The e/ample logic model is shown 0elow<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "6
// dut, width
T7T-%'TA
P%C&T4x
P%-6-(
Read
P%-6-"
Read
T7T%$&
P%C&T4>
Cloc: -ogic
S,stem
Ar0iter
ARB%'IS
PM"%C&T
BM%STS
PM!x%STS4>
BM%R-'
PM!x%C&T4!
6igure /-( ACPI Clock Logic >3ne per Processor?
%mplementation of the AC'% processor power state controls minimall( re:uires the support a single C',
sleeping state =C4>. All of the C', power states occur in the $F! s(stem stateK the( have no meaning
when the s(stem transitions into the sleeping state=!4&!">. AC'% defines the attri0utes =semantics> of the
different C', states =defines four of them>. %t is up to the platform implementation to map an appropriate
low&power C', state to the defined AC'% C', state.
AC'% clock control is supported through the optional processor register 0lock ='C;1E>. AC'% re:uires that
there 0e a uni:ue processor register 0lock for each C', in the s(stem. Additionall(, AC'% re:uires that the
clock logic for multiprocessor s(stems 0e s(mmetrical when using the 'C;1E and 5A-T interfacesK if the
' processor supports the C4, C2, and C3 states, 0ut '4 onl( supports the C4 state, then 2!'M will limit
all processors to enter the C4 state when idle.
The following sections define the different AC'% C', sleeping states.
9.1.2 Processor Power State C1
All processors must support this power state. This state is supported through a native instruction of the
processor =@1T for %A 32&0it processors>, and assumes no hardware support is needed from the chipset. The
hardware latenc( of this state must 0e low enough that 2!'M does not consider the latenc( aspect of the
state when deciding whether to use it. Aside from putting the processor in a power state, this state has no
other software&visi0le effects. %n the C4 power state, the processor is a0le to maintain the conte/t of the
s(stem caches.
The hardware can e/it this state for an( reason, 0ut must alwa(s e/it this state when an interrupt is to 0e
presented to the processor.
9.1.3 Processor Power State C2
This processor power state is optionall( supported 0( the s(stem. %f present, the state offers improved
power savings over the C4 state and is entered 0( using the 'C1D12 command register for the local
processor or an alternative mechanism as indicated 0( the CC!T o0#ect. The worst&case hardware latenc(
for this state is declared in the 5A-T and 2!'M can use this information to determine when the C4 state
should 0e used instead of the C2 state. Aside from putting the processor in a power state, this state has no
other software&visi0le effects. 2!'M assumes the C2 power state has lower power and higher e/it latenc(
than the C4 power state.
The C2 power state is an optional AC'% clock state that needs chipset hardware support. This clock logic
consists of an interface that can 0e manipulated to cause the processor comple/ to precisel( transition into a
C2 power state. %n a C2 power state, the processor is assumed capa0le of keeping its caches coherentK for
e/ample, 0us master and multiprocessor activit( can take place without corrupting cache conte/t.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"4 Advanced Configuration and 'ower %nterface !pecification
The C2 state puts the processor into a low&power state optimiHed around multiprocessor and 0us master
s(stems. 2!'M will cause an idle processor comple/ to enter a C2 state if there are 0us masters or Multiple
processor activit( =which will prevent 2!'M from placing the processor comple/ into the C3 state>. The
processor comple/ is a0le to snoop 0us master or multiprocessor C', accesses to memor( while in the C2
state.
The hardware can e/it this state for an( reason, 0ut must alwa(s e/it this state whenever an interrupt is to
0e presented to the processor.
9.1.4 Processor Power State C3
This processor power state is optionall( supported 0( the s(stem. %f present, the state offers improved
power savings over the C4 and C2 state and is entered 0( using the 'C1D13 command register for the local
processor or an alternative mechanism as indicated 0( the CC!T o0#ect. The worst&case hardware latenc(
for this state is declared in the 5A-T, and 2!'M can use this information to determine when the C4 or C2
state should 0e used instead of the C3 state. While in the C3 state, the processorMs caches maintain state 0ut
the processor is not re:uired to snoop 0us master or multiprocessor C', accesses to memor(.
The hardware can e/it this state for an( reason, 0ut must alwa(s e/it this state when an interrupt is to 0e
presented to the processor or when ;MC31- is set and a 0us master is attempting to gain access to
memor(.
2!'M is responsi0le for ensuring that the caches maintain coherenc(. %n a uniprocessor environment, this
can 0e done 0( using the 'M2CCNT.A3;C-%! 0us master ar0itration disa0le register to ensure 0us master
c(cles do not occur while in the C3 state. %n a multiprocessor environment, the processorsM caches can 0e
flushed and invalidated such that no d(namic information remains in the caches 0efore entering the C3
state.
There are two mechanisms for supporting the C3 power state<
@aving 2!'M flush and invalidate the caches prior to entering the C3 state.
'roviding hardware mechanisms to prevent masters from writing to memor( =uniprocessor&onl(
support>.
%n the first case, 2!'M will flush the s(stem caches prior to entering the C3 state. As there is normall(
much latenc( associated with flushing processor caches, 2!'M is likel( to onl( support this in
multiprocessor platforms for idle processors. 5lushing of the cache is accomplished through one of the
defined AC'% mechanisms =descri0ed 0elow in section 8.2, J5lushing CachesL>.
%n uniprocessor&onl( platforms that provide the needed hardware functionalit( =defined in this section>,
2!'M will attempt to place the platform into a mode that will prevent s(stem 0us masters from writing
into memor( while the processor is in the C3 state. This is accomplished 0( disa0ling 0us masters prior to
entering a C3 power state. ,pon a 0us master re:uesting an access, the C', will awaken from the C3 state
and re&ena0le 0us master accesses.
2!'M uses the ;MC!T! 0it to determine the power state to enter when considering a transition to or from
the C2FC3 power state. The ;MC!T! is an optional 0it that indicates when 0us masters are active. 2!'M
uses this 0it to determine the polic( 0etween the C2 and C3 power states< a lot of 0us master activit(
demotes the C', power state to the C2 =or C4 if C2 is not supported>, no 0us master activit( promotes the
C', power state to the C3 power state. 2!'M keeps a running histor( of the ;MC!T! 0it to determine
C', power state polic(.
The last hardware feature used in the C3 power state is the ;MC31- 0it. This 0it determines if the Cx
power state was e/ited as a result of 0us master re:uests. %f set, then the Cx power state was e/ited upon a
re:uest from a 0us master. %f reset, the power state was not e/ited upon 0us master re:uests. %n the C3 state,
0us master re:uests need to transition the C', 0ack to the C state =as the s(stem is capa0le of maintaining
cache coherenc(>, 0ut such a transition is not needed for the C2 state. 2!'M can optionall( set this 0it
when using a C3 power state, and clear it when using a C4 or C2 power state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "44
9.1.5 Additional Processor Power States
AC'% introduced optional processor power states 0e(ond C3 starting in AC'% 2.. These power states,
C"N Cn, are conve(ed to 2!'M through the CC!T o0#ect defined in section 8.".2.4, JCC!T =C&!tates>.L
These additional power states are characteriHed 0( e:uivalent operational semantics to the C4 through C3
power states, as defined in the previous sections, 0ut with different entr(Fe/it latencies and power savings.
!ee section 8.".2.4, JCC!T =C&!tates>,L for more information.
9.2 Flushing Caches
To support the C3 power state without using the A3;C-%! feature, the hardware must provide functionalit(
to flush and invalidate the processorsM caches =for an %A processor, this would 0e the W;%ND- instruction>.
To support the !4, !2 or !3 sleeping states, the hardware must provide functionalit( to flush the platform
caches. 5lushing of caches is supported 0( one of the following mechanisms<
'rocessor instruction to write 0ack and invalidate s(stem caches =W;%ND- instruction for %A
processors>.
'rocessor instruction to write 0ack 0ut not invalidate s(stem caches =W;%ND- instruction for %A
processors and some chipsets with partial supportK that is, the( donMt invalidate the caches>.
The AC'% specification e/pects all platforms to support the local C', instruction for flushing s(stem
caches =with support in 0oth the C', and chipset>, and provides some limited J0est effortL support for
s(stems that donMt currentl( meet this capa0ilit(. The method used 0( the platform is indicated through the
appropriate 5A-T fields and flags indicated in this section.
AC'% specifies parameters in the 5A-T that descri0e the s(stemMs cache capa0ilities. %f the platform
properl( supports the processorMs write 0ack and invalidate instruction =W;%ND- for %A processors>, then
this support is indicated to 2!'M 0( setting the W;%ND- flag in the 5A-T.
%f the platform supports neither of the first two flushing options, then 2!'M can attempt to manuall( flush
the cache if it meets the following criteria<
A cache&ena0led se:uential read of contiguous ph(sical memor( of not more than 2 M; will flush
the platform caches.
There are two additional 5A-T fields needed to support manual flushing of the caches<
51,!@C!%?., t(picall( twice the siHe of the largest cache in the s(stem.
51,!@C!T3%-., t(picall( the smallest cache line siHe in the s(stem.
9.3 Power, Performance, and Throttling State Dependencies
Cost and comple/it( trade&off considerations have driven into the platform control dependencies 0etween
logical processors when entering power, performance, and throttling states. These dependencies e/ist in
various forms in multi&processor, multi&threaded processor, and multi&core processor&0ased platforms.
These dependencies ma( also 0e hierarchical. 5or e/ample, a multi&processor s(stem consisting of
processors containing multiple cores containing multiple threads ma( have various dependencies as a result
of the hardware implementation.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"42 Advanced Configuration and 'ower %nterface !pecification
,nless 2!'M is aware of the dependenc( 0etween the logical processors, it might lead to scenarios where
one logical processor is implicitl( transitioned to a power, performance, or throttling state when it is
unwarranted, leading to incorrect F non&optimal s(stem 0ehavior. $iven knowledge of the dependencies,
2!'M can coordinate the transitions 0etween logical processors, choosing to initiate the transition when
doing so does not lead to incorrect or non&optimal s(stem 0ehavior. This 2!'M coordination is referred to
as !oftware =!W> Coordination. Alternatel(, it might 0e possi0le for the underl(ing hardware to coordinate
the state transition re:uests on multiple logical processors, causing the processors to transition to the target
state when the transition is guaranteed to not lead to incorrect or non&optimal s(stem 0ehavior. This
scenario is referred to as @ardware =@W> coordination. When hardware coordinates transitions, 2!'M
continues to initiate state transitions as it would if there were no dependencies. @owever, in this case it is
re:uired that hardware provide 2!'M with a means to determine actual state residenc( so that correct F
optimal control polic( can 0e realiHed.
'latforms containing logical processors with cross&processor dependencies in the power, performance, or
throttling state control areas use AC'% defined interfaces to group logical processors into what is referred to
as a dependenc( domain. The Coordination T(pe characteristic for a domain specifies whether 2!'M or
underl(ing hardware is responsi0le for the coordination. When 2!'M coordinates, the platform ma(
re:uire that 2!'M transition A11 =/5C> or ANS 2N. =/5-> of the processors 0elonging to the domain
into a particular target state. 2!'M ma( choose at its discretion to perform coordination even though the
underl(ing hardware supports hardware coordination. %n this case, 2!'M must transition all logical
processors in the dependenc( domain to the particular target state.
There are no dependencies implied 0etween a processorMs C&states, '&states or T&states. @ence, for e/ample
it is possi0le to use the same dependenc( domain num0er for specif(ing dependencies 0etween '&states
among one set of processors and C&states among another set of processors without an( dependencies 0eing
implied 0etween the '&!tate transitions on a processor in the first set and C&state transitions on a processor
in the second set.
9.4 Declaring Processors
.ach processor in the s(stem must 0e declared in the AC'% namespace in either the BC!; or BC'3 scope 0ut
not 0oth. -eclaration of processor in the BC'3 scope is re:uired for platforms desiring compati0ilit( with
AC'% 4.&0ased 2!'M implementations. 'rocessors are declared either via the A!1 Processor statement
or the A!1 5evice statement. A Processor definition declares a processor o0#ect that provides processor
configuration information and points to the processor register 0lock ='C;1E>. A 5evice definition for a
processor is declared using the AC'%9 hardware identifier =@%->. %n this case, processor configuration
information is provided e/clusivel( 0( o0#ects in the processor deviceMs o0#ect list.
When the platform uses the A'%C interrupt model, 2!'M associates processors declared in the namespace
with entries in the MA-T. 'rior to AC'% 3., this was accomplished using the processor o0#ectMs
'rocessor%- and the AC'% 'rocessor %- fields in MA-T entries. ,%- fields have 0een added to MA-T
entries in AC'% 3.. ;( e/panding processor declaration using 5evice definitions, ,%- o0#ect values under
a processor device can now 0e used to associate processor devices with entries in the MA-T. This removes
the previous 2*+ processor declaration limit.
'rocessor&specific o0#ects ma( 0e included in the processor o0#ectMs optional o0#ect list or declared within
the processor deviceMs scope. These o0#ects serve multiple purposes including providing alternative
definitions for the registers descri0ed 0( the processor register 0lock ='C;1E> and processor performance
state control. 2ther AC'%&defined device&related o0#ects are also allowed in the processor o0#ectMs o0#ect
list or under the processor deviceMs scope =for e/ample, the uni:ue identifier o0#ect C,%->.
With device&like characteristics attri0uted to processors, it is implied that a processor device driver will 0e
loaded 0( 2!'M to, at a minimum, process device notifications. 2!'M will enumerate processors in the
s(stem using the AC'% Namespace, processor&specific native identification instructions, and optionall( the
C@%- method.
2!'M will ignore definitions of AC'%&defined o0#ects in an o0#ect list of a processor o0#ect declared under
the BC'3 namespace.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "43
5or more information on the declaration of the processor o0#ect, see section 49.*.63, J'rocessor =-eclare
'rocessor>.L 'rocessor&specific o0#ects are descri0ed in the following sections.
9.4.1 _PDC (Processor Driver Capabilities)
This optional o0#ect is a method that is used 0( 2!'M to communicate to the platform the level of
processor power management support provided 0( 2!'M. This o0#ect is a child o0#ect of the processor.
2!'M evaluates C'-C prior to evaluating an( other processor power management o0#ects returning
configuration information.
The C'-C o0#ect provides 2!'M a mechanism to conve( to the platform the capa0ilities supported 0(
2!'M for processor power management. This allows the platform to modif( the AC'% namespace o0#ects
returning configuration information for processor power management 0ased on the level of support
provided 0( 2!'M. ,sing this method provides a mechanism for 2.Ms to provide support for new
technologies on legac( 2!es, while also allowing 2!'M to leverage new technologies on platforms
capa0le of supporting them. This method is evaluated once during processor device initialiHation, and will
not 0e re&evaluated during resume from a sleep state transition. The platform must preserve state
information across !4&!3 sleep state transitions.
S)ntax
_PD) (PDCBuffer)LB !ull
Argu%ents
PDCBuffer
-WordConst ;uffer =3evision%-, Count. Capa0ilities-W23-4.G.Capa0ilities-W23-n>
Re1s1onID
The revision %- of the Capa41l1t1esD56RD format.
Count
The num0er of Capa41l1t1esD56RD values in the 0uffer.
Capa41lt1esD56RD78n
Capa0ilities -Words, where each 0it defines capa0ilities and features supported 0( 2!'M for
processor configuration and power management as specified 0( the C', manufacturer.
The use of C'-C is deprecated in AC'% 3. in favor of C2!C. 5or 0ackwards compati0ilit(, C'-C ma( 0e
implemented using C2!C as follows<
;ethod(_PD)$4)

)reateDword5ield (&r,($ ($ R%@S)


)reateDword5ield (&r,($ .$ S#7%)
)reate5ield (&r,($ I.$ Subtract (;ultipl1 (SiCe0f (&r,()$ =)$ I.)$ BX55)
_0S) (<oXX#D ('cHH4H3e3EITIcE.a.=E=T4HEF=3.cGIIbfab*)$ R%@S$ 7ero$ S#7%$ BX55)
/
9.4.2 Processor Power State Control
AC'% defines two processor power state =C state> control interfaces. These are<
4> The 'rocessor 3egister ;lockMs ='C;1EMs> 'C1D12 and 'C1D13 registers coupled with 5A-T
'C1D1/C1AT values and
2> The CC!T o0#ect in the processorMs o0#ect list.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"4" Advanced Configuration and 'ower %nterface !pecification
'C;1E 0ased C state controls are descri0ed in !ection ", JAC'% @ardware !pecificationL and !ection 8.4,
J'rocessor 'ower !tatesL. CC!T 0ased C state controls e/pand the functionalit( of the 'C;1E 0ased
controls allowing the num0er and t(pe of C states to 0e d(namic and accommodate C', architecture
specific C state entr( and e/it mechanisms as indicated 0( registers defined using the 5unctional 5i/ed
@ardware address space.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "4*
9.4.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"4+ Advanced Configuration and 'ower %nterface !pecification
_CST (C States)
CC!T is an optional o0#ect that provides an alternative method to declare the supported processor power
states =C !tates>. Dalues provided 0( the CC!T o0#ect override 'C1D1/ values in 'C;1E and
'C1D1/C1AT values in the 5A-T. The CC!T o0#ect allows the num0er of processor power states to 0e
e/panded 0e(ond C4, C2, and C3 to an ar0itrar( num0er of power states. The entr( semantics for these
e/panded states, =in other words>, the considerations for entering these states, are conve(ed to 2!'M 0(
the C&stateCT(pe field and correspond to the entr( semantics for C4, C2, and C3 as descri0ed in sections
8.4.2 through 8.4.". CC!T defines ascending C&states characteriHed 0( lower power and higher entr(Fe/it
latenc(.
S)ntax
_)S< LB C#9Pac%a&e
"eturn 7alue
C#9Pac%a&e< Pac+a,e =Count, C#tate,N, C#tate> where<
Count< B1te)on2t
The num0er of C#tate packages included in C#9Pac%a&e
CState< Pac+a,e =Re&1ster. 9:pe. ;atenc:. Po<er>
Where<
Re&1ster< Re,i2ter<erm
A register that 2!'M reads to place the processor in the corresponding C state.
9:pe< B1te)on2t
The C !tate t(pe =for e/ample, 4\C4, 2\C2, and so on>. This field conve(s the semantics
to 0e used 0( 2!'M when enteringFe/iting the C state. ?ero is not a valid value
;atenc:< Word)on2t
The worst&case latenc( in microseconds to enter and e/it the C !tate. There are no
latenc( restrictions.
Po<er< DWord)on2t
The average power consumption in milliwatts of the processor when in the corresponding
C !tate.
The platform must e/pose a CC!T o0#ect for either all or none of its processors. %f the CC!T o0#ect e/ists,
2!'M uses the C state information specified in the CC!T o0#ect in lieu of 'C1D12 and 'C1D13 registers
defined in 'C;1E and the 'C1D1/C1AT values defined in the 5A-T. Also notice that if the CC!T o0#ect
e/ists and the C'TC o0#ect does not e/ist, 2!'M will use the 'rocessor Control 3egister defined in
'C;1E and the CC!tateC3egister registers in the CC!T o0#ect.
The platform ma( change the num0er or t(pe of C !tates availa0le for 2!'M use d(namicall( 0( issuing a
0otif) events on the processor o0#ect with a notification value of /84. This will cause 2!'M to re&
evaluate an( CC!T o0#ect residing under the processor o0#ect notified. 5or e/ample, the platform might
notif( 2!'M that the num0er of supported C !tates has changed as a result of an as(nchronous AC
insertion F removal event.
The platform must specif( uni:ue CC!tateC3egister addresses for all entries within a given CC!T o0#ect.
CC!T eliminates the AC'% 4. restriction that all processors must have C !tate parit(. With CC!T, each
processor can have its own characteristics independent of other processors. 5or e/ample, processor can
support C4, C2 and C3, while processor 4 supports onl( C4.
The fields in the processor structure remain for 0ackward compati0ilit(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "49
1=AMPL1
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PBl+ 212tem #0 addre22
I ) // PBl+6en

!ame(_)S<$ Pac+a,e()

.$ // <here are four )E2tate2 defined here with three 2emantic2


// <he third and fourth )E2tate2 defined have the 2ame )F entr1 2emantic2
Pac+a,e()Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/$ 4$ 3($ 4(((/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4I4)/$ 3$ .($ TG(/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4I3)/$ F$ I($ G((/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4IF)/$ F$ 4(($ 3G(/
/)
/
Notice in the e/ample a0ove that 2!'M should anticipate the possi0ilit( of a CC!T o0#ect providing more
than one entr( with the same CC!tateCT(pe value. %n this case 2!'M must decide which CC!tateC3egister
it will use to enter that C state.
1=AMPL1
This is an e/ample usage of the CC!T o0#ect using the t(pical values as defined in AC'% 4..
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PB6A 212tem #0 addre22
I ) // PB6A 6en

!ame(_)S<$ Pac+a,e()

3$ // <here are two )E2tate2 defined here W )3 and )F


Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-43.)/$ 3$ 2$ TG(/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-43G)/$ F$ IG$ G((/
/)
/
The platform will issue a 0otif)=BC!;.C',, /84) to inform 2!'M to re&evaluate this o0#ect when the
num0er of availa0le processor power states changes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"48 Advanced Configuration and 'ower %nterface !pecification
9.4.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "46
_CSD (C-State Dependency)
This optional o0#ect provides C&state control cross logical processor dependenc( information to 2!'M.
The CC!- o0#ect evaluates to a packaged list of information that correlates with the C&state information
returned 0( the CC!T o0#ect. .ach packaged list entr( identifies the C&state for which the dependenc( is
0eing specified =as an inde/ into the CC!T o0#ect list>, a dependenc( domain num0er for that C&state, the
coordination t(pe for that C&state and the num0er of logical processors 0elonging to the domain for the
particular C&state. %t is possi0le that a particular C&state ma( 0elong to multiple domains. That is, it is
possi0le to have multiple entries in the CC!- list with the same C!tate%nde/ value.
S)ntax
_)SD LB C#DPac%a&e
"eturn 7alue
C#DPac%a&e< Pac+a,e =C#tateDep,N, C#tateDep>
Where<
CState5ep< Pac+a,e =Nu24er6fEntr1es, Re1s1on. Do2a1n. Coor"9:pe. Nu2Processors,
In"e=>
Where<
Nu24er6fEntr1es< B1te)on2t
The num0er of entries in the C#tateDep package including this field. Current value is +.
Re1s1on< B1te)on2t
The revision num0er of the C#tateDep package format. Current value is .
Do2a1n< DWord)on2t
The dependenc( domain num0er to which this C state entr( 0elongs.
Coor"9:pe< DWord)on2t
The t(pe of coordination that e/ists =hardware> or is re:uired =software> as a result of the
underl(ing hardware dependenc(. Could 0e either /5C =!WCA11>, /5- =!WCANS>
or /5. =@WCA11> indicating whether 2!'M is responsi0le for coordinating the C&state
transitions among processors with dependencies =and needs to initiate the transition on all
or an( processor in the domain> or whether the hardware will perform this coordination.
Nu2Processors< DWord)on2t
The num0er of processors 0elonging to the domain for the particular C&state. 2!'M will not
start performing power state transitions to a particular C&state until this num0er of processors
0elonging to the same domain for the particular C&state have 0een detected and started.
In"e=< DWord)on2t
%ndicates the inde/ of the C&!tate entr( in the CC!T o0#ect for which the dependenc(
applies.
$iven that the num0er or t(pe of availa0le C !tates ma( change d(namicall(, AC'% supports Notif( events
on the processor o0#ect, with Notif( events of t(pe /84 causing 2!'M to re&evaluate an( CC!T o0#ects
residing under the particular processor o0#ect notified. 2n receipt of Notif( events of t(pe /84, 2!'M
should re&evaluate an( present CC!- o0#ects also.
1=AMPL1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"2 Advanced Configuration and 'ower %nterface !pecification
This is an e/ample usage of the CC!- structure in a 'rocessor structure in the name space. The e/ample
represents a two processor configuration. The C4&t(pe state can 0e independentl( entered on each
processor. 5or the C2&t(pe state, there e/ists dependence 0etween the two processors, such that one
processor transitioning to the C2&t(pe state, causes the other processor to transition to the C2&t(pe state. A
similar dependence e/ists for the C3&t(pe state. 2!'M will 0e re:uired to coordinate the C2 and C3
transitions 0etween the two processors. Also 2!'M can initiate a transition on either processor to cause
0oth to transition to the common target C&state.
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PBl+ 212tem #0 addre22
I ) // PBl+6en

!ame (_)S<$ Pac+a,e()

F$ // <here are three )E2tate2 defined here with three 2emantic2


Pac+a,e()Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/$ 4$ 3($ 4(((/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4I4)/$ 3$ .($ TG(/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4I3)/$ F$ I($ G((/
/)
!ame(_)SD$ Pac+a,e()

Pac+a,e()I$ ($ ($ (-5D$ 3$ 4/$ // I entrie2$ Revi2ion ($ Domain ($ 0SP;


)oordinate
// #nitiate on &n1 Proc$ 3 Proc2$ #nde- 4 ()3Et1pe)
Pac+a,e()I$ ($ ($ (-5D$ 3$ 3/ // I entrie2$ Revi2ion ($ Domain ($ 0SP;
)oordinate
// #nitiate on &n1 Proc$ 3 Proc2$ #nde- 3 ()FEt1pe)
/)
/
Proce22or (
\_SB.)PX4$ // Proce22or !ame
3$ // &)P# Proce22or number
$ // PBl+ 212tem #0 addre22
) // PBl+6en

!ame(_)S<$ Pac+a,e()

F$ // <here are three )E2tate2 defined here with three 2emantic2


Pac+a,e()Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/$ 4$ 3($ 4(((/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4I4)/$ 3$ .($ TG(/$
Pac+a,e()Re2ource<emplate()Re,i2ter(S12tem#0$ =$ ($ (-4I3)/$ F$ I($ G((/
/)
!ame(_)SD$ Pac+a,e()

Pac+a,e()I$ ($ ($ (-5D$ 3$ 4/$ // I entrie2$ Revi2ion ($ Domain ($ 0SP;


)oordinate
// #nitiate on an1 Proc$ 3 Proc2$ #nde- 4 ()3Et1pe)
Pac+a,e()I$ ($ ($ (-5D$ 3$ 3/ // I entrie2$ Revi2ion ($ Domain ($ 0SP;
)oordinate
// #nitiate on an1 Proc$ 3 Proc2$ #nde- 3 ()FEt1pe)
/)
/
When the platform issues a 0otif)=BC!;.C',, /84) to inform 2!'M to re&evaluate CC!T when the
num0er of availa0le processor power states changes, 2!'M should also evaluate CC!-.
9.4.3 Processor Throttling Controls
AC'% defines two processor throttling =T state> control interfaces. These are<
4> The 'rocessor 3egister ;lockMs ='C;1EMs> 'CCNT register and
2> The com0ined C'TC, CT!!, and CT'C o0#ects in the processorMs o0#ect list.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "24
'C;1E 0ased throttling state controls are descri0ed in !ection ", JAC'% @ardware !pecificationL and
!ection 8.4.4, J'rocessor 'ower !tate CL. Com0ined C'TC, CT!!, and CT'C 0ased throttling state
controls e/pand the functionalit( of the 'C;1E 0ased control allowing the num0er of T states to 0e
d(namic and accommodate C', architecture specific T state control mechanisms as indicated 0( registers
defined using the 5unctional 5i/ed @ardware address space. While platform definition of the C'TC, CT!!,
and CT'C o0#ects is optional, all three o0#ects must e/ist under a processor for 2!'M to successfull(
perform processor throttling via these controls.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"22 Advanced Configuration and 'ower %nterface !pecification
9.4.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "23
_PTC (Processor Throttling Control)
C'TC is an optional o0#ect that defines a processor throttling control interface alternative to the %F2 address
spaced&0ased 'C;1E throttling control register ='CCNT> descri0ed in section ", JAC'% @ardware
!pecificationL. The processor throttling control register mechanism remains as defined in section 8.4.4, J
'rocessor 'ower !tate C.L
The C'TC o0#ect contains data in the following format<
!ame (_P<)$ Pac+a,e()

Processor_Control_Register //Re2ource<emplate<ermE:eneric Re,i2ter De2criptor)


Processor_Status_Register //Re2ource<emplate<ermE:eneric Re,i2ter De2criptor)
/) // %nd of _P<)
The platform must e/pose a C'TC o0#ect for either all or none of its processors. Notice that if the C'TC
o0#ect e/ists, the specified register is used instead of the 'CCNT register specified in the 'rocessor term.
Also notice that if the C'TC o0#ect e/ists and the CC!T o0#ect does not e/ist, 2!'M will use the processor
control register from the C'TC o0#ect and the 'C1D1/ registers from the 'C;1E.
1=AMPL1
This is an e/ample usage of the C'TC o0#ect in a 'rocessor o0#ect list<
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PBl+ 212tem #0 addre22
I ) // PBl+6en
//0b9ect 6i2t
!ame(_P<)$ Re2ource<emplate()

Re,i2ter(55i-ed"W$ ($ ($ ()
Re,i2ter(55i-ed"W$ ($ ($ ()
/) //%nd of _P<) 0b9ect
/ // %nd of 0b9ect 6i2t
1=AMPL1
This is an e/ample usage of the C'TC o0#ect using the values defined in AC'% 4.. This is an illustrative
e/ample to demonstrate the mechanism with well&known values.
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PB6A 212tem #0 addre22
I ) // PB6A 6en
//0b9ect 6i2t
!ame(_P<)$ // F3 bit wide #0 2paceEba2ed re,i2ter at the ?P_B6AB addre22
Re2ource<emplate()

Re,i2ter(S12tem#0$ F3$ ($ (-43()


Re,i2ter(S12tem#0$ F3$ ($ (-43()
/) //%nd of _P<) 0b9ect
/ // %nd of 0b9ect 6i2t
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"2" Advanced Configuration and 'ower %nterface !pecification
9.4.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "2*
_TSS (Throttling Supported States)
This optional o0#ect indicates to 2!'M the num0er of supported processor throttling states that an( given
s(stem can support. This o0#ect evaluates to a packaged list of information a0out availa0le throttling states
including internal C', core fre:uenc(, t(pical power dissipation, control register values needed to
transition 0etween throttling states, and status register values that allow 2!'M to verif( throttling state
transition status after an( 2!&initiated transition change re:uest. The list is sorted in descending order 0(
t(pical power dissipation. As a result, the Heroth entr( descri0es the highest throttling state and the OnthM
entr( descri0es the lowest throttling state.
!ame (_<SS$ Pac+a,e()
// 5ield !ame 5ield <1pe
Pac+a,e () // <hrottle State ( Definition W <(

FreqPercentage$ // DWord)on2t
Power$ // DWord)on2t
TransitionLatency$ // DWord)on2t
Control$ // DWord)on2t
Status // DWord)on2t
/$
.
.
.
Pac+a,e () // <hrottle State n Definition W <n

FreqPercentage$ // DWord)on2t
Power$ // DWord)on2t
TransitionLatency$ // DWord)on2t
Control$ // DWord)on2t
Status // DWord)on2t
/
/) // %nd of _<SS ob9ect
.ach throttling state entr( contains five data fields as follows<
)re:Percentage %ndicates the percent of the core C', operating fre:uenc( that this throttling
state will invoke. The range for this field is 4&4. This percentage applies independent of the
processorMs performance state ='&state>. That is, this throttling state will invoke the percentage
indicated of the Core)re: field of theC'!! entr( corresponding to the '&state for which the processor
is resident.
Power %ndicates the t(pical power dissipation =in milliWatts>.
'ransitionLatenc&; %ndicates the worst&case latenc( in microseconds that the C', is unavaila0le
during a transition from an( performance state to this performance state.
Control; %ndicates the value to 0e written to the 'erformance Control 3egister ='.35CCT31> in
order to initiate a transition to the performance state.
tatus; %ndicates the value that 2!'M will compare to a value read from the Throttle !tatus
3egister =T@32TT1.C!TAT,!> to ensure that the transition to the throttling state was successful.
2!'M ma( alwa(s place the C', in the lowest power state, 0ut additional states are onl( availa0le
when indicated 0( the CT'C method. A value of Hero indicates the transition to the Throttling state is
as(nchronous, and as such no status value comparison is re:uired.
When providing the CT!!, the platform must suppl( a CT!! entr( whose )re:Percentage field value is
4. This provides a means for 2!'M to disa0le throttling.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"2+ Advanced Configuration and 'ower %nterface !pecification
9.4.3.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "29
_TPC (Throttling Present Capabilities)
This optional o0#ect is a method that d(namicall( indicates to 2!'M the num0er of throttling states
currentl( supported 0( the platform. This method returns a num0er that indicates the CT!! entr( num0er of
the highest throttling state that 2!'M can use at a given time. 2!'M ma( choose the corresponding state
entr( in the CT!! as indicated 0( the value returned 0( the CT'C method or an( lower power =higher
num0ered> state entr( in the CT!!.
Arguments<
None
3eturned Dalue<
Num0er of states supported =integer>
I states .. n
th
state availa0le =all states availa0le>
4 I state 4 .. n
th
state availa0le
2 I state 2 .. n
th
state availa0le
N
n I state n availa0le onl(
%n order to support d(namic changes of CT'C o0#ect, Notif( events on the processor o0#ect of t(pe /82
will cause 2!'M to reevaluate an( CT'C o0#ect in the processor o0#ect list. This allows AM1 code to
notif( 2!'M when the num0er of supported throttling states ma( have changed as a result of an
as(nchronous event.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"28 Advanced Configuration and 'ower %nterface !pecification
9.4.3.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "26
_TSD (T-State Dependency)
This optional o0#ect provides T&state control cross logical processor dependenc( information to 2!'M. The
CT!- o0#ect evaluates to a packaged list of information that correlates with the T&state information returned
0( the CT!! o0#ect. .ach packaged list entr( identifies a dependenc( domain num0er for the logical
processorMs T&states, the coordination t(pe for that T&state and the num0er of logical processors 0elonging to
the domain.
S)ntax
_<SD LB 9#DPac%a&e
"eturn 7alue
9#DPac%a&e< Pac+a,e =9#tateDep,N, 9#tateDep>
Where<
TState5ep< Pac+a,e =Nu24er6fEntr1es, Re1s1on. Do2a1n. Coor"9:pe. Nu2Processors>
Where<
Nu24er6fEntr1es< B1te)on2t
The num0er of entries in the 9#tateDep package including this field. Current value is *.
Re1s1on< B1te)on2t
The revision num0er of the 9#tateDep package format. Current value is .
Do2a1n< DWord)on2t
The dependenc( domain num0er to which this T&state entr( 0elongs.
Coor"9:pe< DWord)on2t
The t(pe of coordination that e/ists =hardware> or is re:uired =software> as a result of the
underl(ing hardware dependenc(. Could 0e either /5C =!WCA11>, /5- =!WCANS>
or /5. =@WCA11> indicating whether 2!'M is responsi0le for coordinating the T&state
transitions among processors with dependencies =and needs to initiate the transition on all
or an( processor in the domain> or whether the hardware will perform this coordination.
Nu2Processors< DWord)on2t
The num0er of processors 0elonging to the domain for this logical processorMs T&states.
2!'M will not start performing power state transitions to a particular T&state until this
num0er of processors 0elonging to the same domain have 0een detected and started.
1=AMPL1
This is an e/ample usage of the CT!- structure in a 'rocessor structure in the name space. The e/ample
represents a two processor configuration with three T&states per processor. 5or all T&states, there e/ists
dependence 0etween the two processors, such that one processor transitioning to a particular T&state, causes
the other processor to transition to the same T&state. 2!'M will 0e re:uired to coordinate the T&state
transitions 0etween the two processors and can initiate a transition on either processor to cause 0oth to
transition to the common target T&state.
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PBl+ 212tem #0 addre22
I) // PBl+6en
//0b9ect 6i2t
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"3 Advanced Configuration and 'ower %nterface !pecification
!ame(_P<)$ Re2ource<emplate()

Re,i2ter (S12tem#0$ F3$ ($ (-43()


Re,i2ter (S12tem#0$ F3$ ($ (-43()
/) //%nd of _P<) 0b9ect
!ame (_<SS$ Pac+a,e()

Pac+a,e()
(-I.$ // 5re8uenc1 Percenta,e (4((^$ <hrottlin, 055 2tate)
(-($ // Power
(-($ // <ran2ition 6atenc1
(-T$ // )ontrol <"<_%!>( <"<6_D<S>444
(-($ // Statu2
/
Pac+a,e()
(-G=$ // 5re8uenc1 Percenta,e (=T.G^)
(-($ // Power
(-($ // <ran2ition 6atenc1
(-5$ // )ontrol <"<_%!>4 <"<6_D<S>444
(-($ // Statu2
/
Pac+a,e()
(-.B$ // 5re8uenc1 Percenta,e (TG^)
(-($ // Power
(-($ // <ran2ition 6atenc1
(-%$ // )ontrol <"<_%!>4 <"<6_D<S>44(
(-($ // Statu2
/
/)
!ame (_<SD$ Pac+a,e()

Pac+a,e()G$ ($ ($ (-5D$ 3/ // G entrie2$ Revi2ion ($ Domain ($ 0SP;


)oordinate$ 3 Proc2
/) // %nd of _<SD ob9ect
;ethod (_<P)$ () // <hrottlin, Pre2ent )apabilitie2 method

#f (\_SB.&))

Return(() // &ll <hrottle State2 are available for u2e.


/
%l2e

Return(3) // <hrottle State2 ( an 4 won]t be u2ed.


/
/ // %nd of _<P) method
/ // %nd of proce22or ob9ect li2t
Proce22or (
\_SB.)PX4$ // Proce22or !ame
3$ // &)P# Proce22or number
$ // PBl+ 212tem #0 addre22
) // PBl+6en
//0b9ect 6i2t
!ame(_P<)$ Re2ource<emplate()

Re,i2ter (S12tem#0$ F3$ ($ (-43()


Re,i2ter (S12tem#0$ F3$ ($ (-43()
/) //%nd of _P<) 0b9ect
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "34
!ame (_<SS$ Pac+a,e()

Pac+a,e()
(-I.$ // 5re8uenc1 Percenta,e (4((^$ <hrottlin, 055 2tate)
(-($ // Power
(-($ // <ran2ition 6atenc1
(-T$ // )ontrol <"<_%!>( <"<6_D<S>444
(-($ // Statu2
/
Pac+a,e()
(-G=$ // 5re8uenc1 Percenta,e (=T.G^)
(-($ // Power
(-($ // <ran2ition 6atenc1
(-5$ // )ontrol <"<_%!>4 <"<6_D<S>444
(-($ // Statu2
/_
Pac+a,e()
(-.B$ // 5re8uenc1 Percenta,e (TG^)
(-($ // Power
(-($ // <ran2ition 6atenc1
(-%$ // )ontrol <"<_%!>4 <"<6_D<S>44(
(-($ // Statu2
/
/)
!ame (_<SD$ Pac+a,e()

Pac+a,e()G$ ($ ($ (-5D$ 3/ // G entrie2$ Revi2ion ($ Domain ($ 0SP;


)oordinate$ 3 Proc2
/) // %nd of _<SD ob9ect
;ethod (_<P)$ () // <hrottlin, Pre2ent )apabilitie2 method

#f (\_SB.&))

Return(() // &ll <hrottle State2 are available for u2e.


/
%l2e

Return(3) // <hrottle State2 ( an 4 won]t be u2ed.


/
/ // %nd of _<P) method
/ // %nd of proce22or ob9ect li2t
9.4.4 Processor Performance Control
'rocessor performance control is implemented through three optional o0#ects whose presence indicates to
2!'M that the platform and C', are capa0le of supporting multiple performance states. The platform must
suppl( all three o0#ects if processor performance control is implemented. The platform must e/pose
processor performance control o0#ects for either all or none of its processors. The processor performance
control o0#ects define the supported processor performance states, allow the processor to 0e placed in a
specific performance state, and report the num0er of performance states currentl( availa0le on the s(stem.
%n a multiprocessing environment, all C',s must support the same num0er of performance states and each
processor performance state must have identical performance and power&consumption parameters.
'erformance o0#ects must 0e present under each processor o0#ect in the s(stem for 2!'M to utiliHe this
feature.
'rocessor performance control o0#ects include the OC'CTM package, OC'!!M package, and the OC''CM
method as detailed 0elow.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"32 Advanced Configuration and 'ower %nterface !pecification
9.4.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "33
_PCT (Performance Control)
This optional o0#ect declares an interface that allows 2!'M to transition the processor into a performance
state. 2!'M performs processor performance transitions 0( writing the performance stateIspecific control
value to a 'erformance Control 3egister ='.35CCT31>.
2!'M ma( select a processor performance state as indicated 0( the performance state value returned 0(
the C''C method, or an( lower power =higher num0ered> state. The control value to write is contained in
the corresponding C'!! entr(Ms JControlL field.
!uccess or failure of the processor performance transition is determined 0( reading a 'erformance !tatus
3egister ='.35C!TAT,!> to determine the processorMs current performance state. %f the transition was
successful, the value read from '.35C!TAT,! will match the J!tatusL field in the C'!! entr( that
corresponds to the desired processor performance state.
This o0#ect evaluates to a package that declares the a0ove&mentioned transition control and status addresses
as follows<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"3" Advanced Configuration and 'ower %nterface !pecification
!ame (_P)<$ Pac+a,e()

Perf_Ctrl_Register$ //Re2ource<emplate<ermE:eneric Re,i2ter De2criptor


Perf_Status_Register //Re2ource<emplate<ermE:eneric Re,i2ter De2criptor
/) // %nd of _P)<
9.4.4.2 Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "3*
_PSS (Performance Supported States)
This optional o0#ect indicates to 2!'M the num0er of supported processor performance states that an(
given s(stem can support. This o0#ect evaluates to a packaged list of information a0out availa0le
performance states including internal C', core fre:uenc(, t(pical power dissipation, control register values
needed to transition 0etween performance states, and status register values that allow 2!'M to verif(
performance transition status after an( 2!&initiated transition change re:uest. The list is sorted in
descending order 0( t(pical power dissipation. As a result, the Heroth entr( descri0es the highest
performance state and the OnthM entr( descri0es the lowest performance state.
!ame (_PSS$ Pac+a,e()
// 5ield !ame 5ield <1pe
Pac+a,e () // Performance State ( Definition W P(

CoreFreq$ // DWord)on2t
Power$ // DWord)on2t
TransitionLatency$ // DWord)on2t
BusMasterLatency$ // DWord)on2t
Control$ // DWord)on2t
Status // DWord)on2t
/$
.
.
.
Pac+a,e () // Performance State n Definition W Pn

CoreFreq$ // DWord)on2t
Power$ // DWord)on2t
TransitionLatency$ // DWord)on2t
BusMasterLatency$ // DWord)on2t
Control$ // DWord)on2t
Status // DWord)on2t
/
/) // %nd of _PSS ob9ect
.ach performance state entr( contains si/ data fields as follows<
Core)re: %ndicates the core C', operating fre:uenc( =in M@H>.
Power %ndicates the t(pical power dissipation =in milliWatts>.
'ransitionLatenc&; %ndicates the worst&case latenc( in microseconds that the C', is unavaila0le
during a transition from an( performance state to this performance state.
#usMasterLatenc&; %ndicates the worst&case latenc( in microseconds that ;us Masters are
prevented from accessing memor( during a transition from an( performance state to this performance
state.
Control; %ndicates the value to 0e written to the 'erformance Control 3egister ='.35CCT31> in
order to initiate a transition to the performance state.
tatus; %ndicates the value that 2!'M will compare to a value read from the 'erformance !tatus
3egister ='.35C!TAT,!> to ensure that the transition to the performance state was successful. 2!'M
ma( alwa(s place the C', in the lowest power state, 0ut additional states are onl( availa0le when
indicated 0( the C''C method.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"3+ Advanced Configuration and 'ower %nterface !pecification
9.4.4.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "39
_PPC (Performance Present Capabilities)
This optional o0#ect is a method that d(namicall( indicates to 2!'M the num0er of performance states
currentl( supported 0( the platform. This method returns a num0er that indicates the C'!! entr( num0er of
the highest performance state that 2!'M can use at a given time. 2!'M ma( choose the corresponding
state entr( in the C'!! as indicated 0( the value returned 0( the C''C method or an( lower power =higher
num0ered> state entr( in the C'!!.
Arguments<
None
3eturned Dalue<
Num0er of states supported =integer>
states .. n
th
state availa0le =all states availa0le>
4 state 4 .. n
th
state availa0le
2 state 2 .. n
th
state availa0le
N
n state n availa0le onl(
%n order to support d(namic changes of C''C o0#ect, Notif( events on the processor o0#ect. Notif( events
of t(pe /8 will cause 2!'M to reevaluate an( C''C o0#ects residing under the particular processor
o0#ect notified. This allows AM1 code to notif( 2!'M when the num0er of supported states ma( have
changed as a result of an as(nchronous event =AC insertionFremoval, docked, undocked, and so on>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"38 Advanced Configuration and 'ower %nterface !pecification
9.4.4.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "36
Processor Performance Control Example
1=AMPL1H
This is an e/ample of processor performance control o0#ects in a processor o0#ect list.
%n this e/ample, a uniprocessor platform that has processor performance capa0ilities with support for three
performance states as follows<
4. * M@H =8.2W> supported at an( time
2. + M@H =4".6W> supported onl( when AC powered
3. +* M@H =24.*W> supported onl( when docked
%t takes no more than * microseconds to transition from one performance state to an( other performance
state.
-uring a performance transition, 0us masters are una0le to access memor( for a ma/imum of 3
microseconds.
The '.35CCT31 and '.35C!TAT,! registers are implemented as 5unctional 5i/ed @ardware.
The following A!1 o0#ects are implemented within the s(stem<
BC!;.-2CE< .valuates to 4 if s(stem is docked, Hero otherwise.
BC!;.AC< .valuates to 4 if AC is connected, Hero otherwise.
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PBl+ 212tem #0 addre22
I ) // PBl+6en

!ame(_P)<$ Pac+a,e () // Performance )ontrol ob9ect

Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/$ // P%R5_)<R6


Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/ // P%R5_S<&<XS
/) // %nd of _P)< ob9ect
!ame (_PSS$ Pac+a,e()

Pac+a,e()IG($ 34G(($ G(($ F(($ (-(($ (-(=/$ // Performance State Cero (P()
Pac+a,e()I(($ 4.H(($ G(($ F(($ (-(4$ (-(G/$ // Performance State one (P4)
Pac+a,e()G(($ =3(($ G(($ F(($ (-(3$ (-(I/ // Performance State two (P3)
/) // %nd of _PSS ob9ect
;ethod (_PP)$ () // Performance Pre2ent )apabilitie2 method

#f (\_SB.D0)A)

Return(() // &ll _PSS 2tate2 available (IG($ I(($ G(().


/
#f (\_SB.&))

Return(4) // State2 4 and 3 available (I(($ G(().


/
%l2e

Return(3) // State 3 available (G(()


/
/ // %nd of _PP) method
/ // %nd of proce22or ob9ect li2t
The platform will issue a 0otif)=BC!;.C',, /8> to inform 2!'M to re&evaluate this o0#ect when the
num0er of availa0le processor performance states changes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"" Advanced Configuration and 'ower %nterface !pecification
9.4.4.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ""4
_PSD (P-State Dependency)
This optional o0#ect provides '&state control cross logical processor dependenc( information to 2!'M. The
C'!- o0#ect evaluates to a packaged list of information that correlates with the '&state information returned
0( the C'!! o0#ect. .ach packaged list entr( identifies a dependenc( domain num0er for the logical
processorMs '&states, the coordination t(pe for that '&state and the num0er of logical processors 0elonging
to the domain.
S)ntax
_PSD LB P#DPac%a&e
"eturn 7alue
P#DPac%a&e< Pac+a,e =P#tateDep,N, P#tateDep>
Where<
PState5ep< Pac+a,e =Nu24er6fEntr1es, Re1s1on. Do2a1n. Coor"9:pe. Nu2Processors>
Where<
Nu24er6fEntr1es< B1te)on2t
The num0er of entries in the P#tateDep package including this field. Current value is *.
Re1s1on< B1te)on2t
The revision num0er of the P#tateDep package format. Current value is .
Do2a1n< DWord)on2t
The dependenc( domain num0er to which this '&state entr( 0elongs.
Coor"9:pe< DWord)on2t
The t(pe of coordination that e/ists =hardware> or is re:uired =software> as a result of the
underl(ing hardware dependenc(. Could 0e either /5C =!WCA11>, /5- =!WCANS>
or /5. =@WCA11> indicating whether 2!'M is responsi0le for coordinating the '&state
transitions among processors with dependencies =and needs to initiate the transition on all
or an( processor in the domain> or whether the hardware will perform this coordination.
Nu2Processors< DWord)on2t
The num0er of processors 0elonging to the domain for this logical processorMs '&states.
2!'M will not start performing power state transitions to a particular '&state until this
num0er of processors 0elonging to the same domain have 0een detected and started.
1=AMPL1
This is an e/ample usage of the C'!- structure in a 'rocessor structure in the name space. The e/ample
represents a two processor configuration with three performance states per processor. 5or all performance
states, there e/ists dependence 0etween the two processors, such that one processor transitioning to a
particular performance state, causes the other processor to transition to the same performance state. 2!'M
will 0e re:uired to coordinate the '&state transitions 0etween the two processors and can initiate a transition
on either processor to cause 0oth to transition to the common target '&state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
""2 Advanced Configuration and 'ower %nterface !pecification
Proce22or (
\_SB.)PX($ // Proce22or !ame
4$ // &)P# Proce22or number
(-43($ // PBl+ 212tem #0 addre22
I ) // PBl+6en

!ame(_P)<$ Pac+a,e () // Performance )ontrol ob9ect

Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/$ // P%R5_)<R6


Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/ // P%R5_S<&<XS
/) // %nd of _P)< ob9ect
!ame (_PSS$ Pac+a,e()

Pac+a,e()IG($ 34G(($ G(($ F(($ (-(($ (-(=/$ // Performance State Cero (P()
Pac+a,e()I(($ 4.H(($ G(($ F(($ (-(4$ (-(G/$ // Performance State one (P4)
Pac+a,e()G(($ =3(($ G(($ F(($ (-(3$ (-(I/ // Performance State two (P3)
/) // %nd of _PSS ob9ect
;ethod (_PP)$ () // Performance Pre2ent )apabilitie2 method

/ // %nd of _PP) method


!ame (_PSD$ Pac+a,e()

Pac+a,e()G$ ($ ($ (-5D$ 3/ // G entrie2$ Revi2ion ()$ Domain ($ 0SP;


// )oordinate$ #nitiate on an1 Proc$ 3 Proc2
/) // %nd of _PSD ob9ect
/ // %nd of proce22or ob9ect li2t
Proce22or (
\_SB.)PX4$ // Proce22or !ame
3$ // &)P# Proce22or number
$ // PBl+ 212tem #0 addre22
) // PBl+6en

!ame(_P)<$ Pac+a,e () // Performance )ontrol ob9ect

Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/$ // P%R5_)<R6


Re2ource<emplate()Re,i2ter(55i-ed"W$ ($ ($ ()/ // P%R5_S<&<XS
/) // %nd of _P)< ob9ect
!ame (_PSS$ Pac+a,e()

Pac+a,e()IG($ 34G(($ G(($ F(($ (-(($ (-(=/$ // Performance State Cero (P()
Pac+a,e()I(($ 4.H(($ G(($ F(($ (-(4$ (-(G/$ // Performance State one (P4)
Pac+a,e()G(($ =3(($ G(($ F(($ (-(3$ (-(I/ // Performance State two (P3)
/) // %nd of _PSS ob9ect
;ethod (_PP)$ () // Performance Pre2ent )apabilitie2 method

/ // %nd of _PP) method


!ame (_PSD$ Pac+a,e()

Pac+a,e()G$ ($ ($ (-5D$ 3/ // G entrie2$ Revi2ion ($ Domain ($ 0SP;


// )oordinate$ #nitiate on an1 Proc$ 3 Proc2
/) // %nd of _PSD ob9ect
/ // %nd of proce22or ob9ect li2t
10 ACPI-Devices and Device Specifc Objects
This section descri0es AC'% defined devices and device&specific o0#ects. The s(stem status indicator
o0#ects, declared under the BC!% scope in the AC'% Namespace, are also specified in this section.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ""3
10.1 \_SI System Indicators
AC'% provides an interface for a variet( of simple and icon&st(le indicators on a s(stem. All indicator
controls are in the BC!% portion of the namespace. The following ta0le lists all defined s(stem indicators.
=Notice that there are also per&device indicators specified for 0atter( devices>.
Ta!le ,-+ S)ste% Indicator Control Methods
3!Cect 5escription
C!!T !(stem status indicator
CM!$ Messages waiting indicator
10.1.1 _SST (System Status)
This optional o0#ect is a control method that 2!'M invokes to set the s(stem status indicator as desired.
Arguments<
No s(stem state indication. %ndicator off.
4 Working
2 Waking
3 !leeping. ,sed to indicate s(stem state !4, !2 or !3.
" !leeping with conte/t saved to non&volatile storage.
10.1.2 _MSG (Message)
This control method sets the s(stemMs message&waiting status indicator.
Arguments<
Num0er of messages waiting
10.1.3 BLT (Battery Level Threshold)
This optional control method is used 0( 2!'M to indicate to the platform the userMs preference for various
0atter( level thresholds. This method allows platform 0atter( indicators to 0e s(nchroniHed with 2!'M
provided 0atter( notification levels. Note that if C;1T is implemented on a multi&0atter( s(stem, it is
re:uired that the power unit for all 0atteries must 0e the same. !ee section 4.2 for more details on 0atter(
levels.
Arguments<
Argument 4< -W23-<
/4 I /95555555 =in units of mWh or mAh, depending on the Power Bnits value>
,serMs preference for 0atter( warning level. %f the level specified is less than the design capacit( of
warning, it ma( 0e ignored 0( the platform so that the platform can ensure a successful wake on low
0atter(.
Argument 2< -W23-<
/4 I /95555555 =in units of mWh or mAh, depending on the Power Bnits value>
,serMs preference for 0atter( low level. %f this level is less than the design capacit( of low, it ma(
0e ignored 0( the platform.
Argument 3< -W23-<
/4 I /95555555 =in units of mWh or mAh, depending on the Power Bnits value>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
""" Advanced Configuration and 'ower %nterface !pecification
,serMs preference for 0atter( wake level. %f this level is less than the platformMs current wake on low
0atter( level, it ma( 0e ignored 0( the platform. %f the platform does not support a configura0le
wake on low 0atter( level, this ma( 0e ignored 0( the platform..
10.2 Control Method Ambient Light Sensor Device
The following section illustrates the operation and definition of the Control Method Am0ient 1ight !ensor
=A1!> device.
The am0ient light sensor device can optionall( support power management o0#ects =e.g. C'!, C'!3> to
allow the 2! to manage the deviceMs power consumption.
The 'lug and 'la( %- of an AC'% control method am0ient light sensor device is AC'%8.
Ta!le ,-&H Control Method A%!ient Light Sensor 5evice
3!Cect 5escription
CA1% The current am0ient light illuminance reading in lu/ =lumen per s:uare meter>. V3e:uiredW
CA1C The current am0ient light color chromacit( reading, specified using / and ( coordinates per the
C%. S/( color model. V2ptionalW
CA1T The current am0ient light color temperature reading in degrees Eelvin. V2ptionalW
CA13 3eturns a set of am0ient light illuminance to displa( 0rightness mappings that can 0e used 0(
an 2! to cali0rate its am0ient light polic(. V3e:uiredW
CA1' Am0ient light sensor polling fre:uenc( in tenths of seconds. V2ptionalW
10.2.1 Overview
This definition provides a standard interface 0( which the 2! ma( :uer( properties of the am0ient light
environment the s(stem is currentl( operating in, as well as the a0ilit( to detect meaningful changes in
these values when the environment changes. Two am0ient light properties are currentl( supported 0( this
interface< ill'minance and color.
Am0ient light illuminance readings are o0tained via the CA1% method. %lluminance readings indicate the
amount of light incident upon =falling on> a specified surface area. Dalues are specified in l'x =lumen per
s:uare meter> and give an indication of how J0rightL the environment is. 5or e/ample, an overcast da( is
roughl( 4 lu/, a t(pical office environment 3&" lu/, and a diml(&lit conference room around 4
lu/.
A possi0le use of am0ient light illuminance data 0( the 2! is to automaticall( ad#ust the 0rightness =or
l'minance> of the displa( device I e.g. increase displa( luminance in 0rightl(&lit environments and
decrease displa( luminance in diml(&lit environments. Note that 1uminance is a measure of light radiated
=reflected, transmitted, or emitted> 0( a surface, and is t(picall( measured in nits. The CA13 method
provides a set of am0ient light illuminance to displa( luminance mappings that can 0e used 0( an 2! to
cali0rate its polic( for a given platform configuration.
Am0ient light color readings are o0tained via the CA1T andFor CA1C methods. Two methods are defined
to allow var(ing t(pesFcomple/ities of am0ient light sensor hardware to 0e used. CA1T returns color
temperature readings in degrees Eelvin. Color temperature values correlate a light source to a standard
0lack 0od( radiator and give an indication of the t(pe of light source present in a given environment =e.g.
da(light, fluorescent, incandescent>. A1C returns color chromacit( readings per the C%. S/( color model.
Chromacit( / and ( coordinates provide a more straightforward indication of am0ient light color
characteristics. Note that the C%. S/( color model is defined 0( the %nternational Commission on
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ""*
%llumination =a00reviated as C%. from its 5rench title Commission %nternationale de lU.clairage> and is
0ased on human perception instead of a0solute color.
A possi0le use of am0ient light color data 0( the 2! is to automaticall( ad#ust the color of displa(ed images
depending on the environment the images are 0eing viewed in. This ma( 0e especiall( important for
reflectiveFtransflective displa(s where the t(pe of am0ient light ma( have a large impact on the colors
perceived 0( the user.
10.2.2 _ALI (Ambient Light Illuminance)
This control method returns the current am0ient light illuminance reading in lu/ =lumen per s:uare meter>.
./pected values range from e4 lu/ for a dark room, e3 lu/ for a t(pical office environment, and 4,Z
lu/ for da(time outdoor environments I although readings ma( var( depending on the location of the
sensor to the light source. !pecial values are reserved to indicate out of range conditions =see 0elow>.
Arguments<
None
3esult Code<
?ero< The current reading is 0elow the supported range or sensitivit( of the sensor.
2nes< The current reading is a0ove the supported range or sensitivit( of the sensor.
All other values< The current am0ient light 0rightness in lu/ =lumens per s:uare meter>.
10.2.3 _ALT (Ambient Light Temperature)
This optional control method returns the current am0ient light color temperature reading in degrees Eelvin
=fE>. 1ower color temperatures impl( warmer light =emphasis on (ellow and red>K higher color
temperatures impl( a colder light =emphasis on 0lue>. This value can 0e used to gauge various properties of
the lighting environment I for e/ample, the t(pe of light source. ./pected values range from e4*fE for
candlelight, e3fE for a 2&Watt incandescent 0ul0, and e**fE for full sunlight on a summer da( I
although readings ma( var( depending on the location of the sensor to the light source. !pecial values are
reserved to indicate out of range conditions =see 0elow>.
Arguments<
None
3esult Code<
?ero< The current reading is 0elow the supported range or sensitivit( of the sensor.
2nes< The current reading is a0ove the supported range or sensitivit( of the sensor.
All other values< The current am0ient light temperature in degrees Eelvin.
10.2.4 _ALC (Ambient Light Color Chromacity)
This optional control method returns the current am0ient light color chromacit( readings per the C%. S/(
color model. The x and y =chromacit(> coordinates are specified using a fi/ed 4
&"
notation due to the lack
of floating point values in AC'%. Dalid values are within the range =/> through 4 =/294>. A
single 32&0it integer value is used, where the / coordinate is stored in the high word and the ( coordinate in
the low word. 5or e/ample, the value /C39C-A would 0e used to specif( the white point for the C%.
!tandard %lluminant -+* =a standard representation of average da(light> with / \ .3429 and ( \ .326.
!pecial values are reserved to indicate out of range conditions =see 0elow>.
Arguments<
None
3esult Code<
?ero< The current reading is 0elow the supported range or sensitivit( of the sensor.
2nes< The current reading is a0ove the supported range or sensitivit( of the sensor.
All other values< The current am0ient light color chromacit( / and ( coordinate values, per the
C%. S/( color model.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
""+ Advanced Configuration and 'ower %nterface !pecification
10.2.5 _ALR (Ambient Light Response)
This o0#ect evaluates to a package of ambient lig1t ill'minance to display l'minance mappings that can 0e
used 0( an 2! to cali0rate its am0ient light polic( for a given sensor configuration. The 2! can use this
information to e/trapolate an A1! response curve & noting that these values ma( 0e treated differentl(
depending on the 2! implementation 0ut should 0e used in some form to cali0rate A1! polic(.
The data set is specified as a package of packages, where each tuple =inner package> consists of the pair of
integer values of the form<
?di2pla1 luminance ad9u2tmentB$ ?ambient li,ht illuminanceB/
'ackage elements should 0e listed in monotonicall( increasing order 0ased upon the am0ient light
illuminance value =the S&coordinate on the graph> to simplif( parsing 0( the 2!.
Am0ient light illuminance values are specified in lu/ =lumens per s:uare meter>. -ispla( luminance =or
0rightness> ad#ustment values are specified using relative percentages in order simplif( the means 0( which
these ad#ustments are applied in lieu of changes to the userMs displa( 0rightness preference. A value of 4
is used to indicate no =X> displa( 0rightness ad#ustment given the lack of signed data t(pes in AC'%.
Dalues less than 4 indicate a negative ad#ustment =dimming>K values greater than 4 indicate a positive
ad#ustment =0rightening>. 5or e/ample, a displa( 0rightness ad#ustment value of 9* would 0e interpreted as
a &2*X ad#ustment, and a value of 44 as a Z4X ad#ustment.
6igure ,-+H A five-point ALS "esponse Curve
5igure 6&4 illustrates the use of five points to appro/imate an e/ample response curve, where the dotted
line represents an appro/imation of the desired response =solid curve>. ./trapolation of the values 0etween
these points is 2!&specific I although for the purposes of this e/ample weMll assume a piecewise linear
appro/imation. The A1! response curve =CA13> would 0e specified as follows<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ""9
!ame(_&6R$ Pac+a,e(G)
Pac+a,eT($ (/$ // ;in ( EF(^ ad9u2t at ( lu-)
Pac+a,eTF$ 4(/$ // ( E3T^ ad9u2t at 4( lu-)
Pac+a,e=G$ =(/$ // ( E4G^ ad9u2t at =( lu-)
Pac+a,e4(($F((/$ // Ba2eline ( (^ ad9u2t at F(( lu-)
Pac+a,e4G($4(((/ // ;a- (DG(^ ad9u2t at 4((( lu-)
/)
Within this data set e/ist three points of particular interest< baseline. min. and max. The baseline value
represents an am0ient light illuminance value =in lu/> for the environment where this s(stem is most likel(
to 0e used. When the s(stem is operating in this am0ient environment the A1! polic( will appl( no =X>
ad#ustment to the default displa( 0rightness setting. 5or e/ample, given a s(stem with a 3 lu/ baseline,
operating in a t(pical office am0ient environment =e3 lu/>, configured with a default displa( 0rightness
setting of *X =e.g. + nits>, the A1! polic( would appl( no 0acklight ad#ustment, resulting in an a0solute
displa( 0rightness setting of + nits.
(in and max are used to indicate cutoff points in order to prevent an over&Healous response 0( the A1!
polic( and to influence the polic(Ms mode of operation. 5or e/ample, the min and max points from the
figure a0ove would 0e specified as =9,> and =4*,4> respectivel( I where min indicates a ma/imum
negative ad#ustment of 3X and max represents a ma/imum positive ad#ustment of *X. ,sing a large
displa( 0rightness ad#ustment for max allows an A1! response that approaches a full(&0right displa(
=4X a0solute> in ver( 0right am0ient environments regardless of the userMs displa( 0rightness preference.
,sing a small value for max =e.g. X a 3 lu/> would influence the A1! polic( to limit the use of this
technolog( solel( as a power&saving feature =never 0righten the displa(>. Conversel(, setting min to a X
ad#ustment instructs A1! polic( to 0righten 0ut never dim.
A minimum of two data points are re:uired in the return package, interpreted as min and max. Note that the
baseline value does not have to 0e e/plicitl( statedK it can 0e derived from the response curve. Addition
elements can 0e provided to fine&tune the response 0etween these points. 5igure 6&2 illustrates the use of
two data points to achieve a response similar to =0ut simpler than> that descri0ed in 5igure 6&4.
6igure ,-&H A two-point ALS "esponse Curve
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
""8 Advanced Configuration and 'ower %nterface !pecification
This e/ample lacks an e/plicit baseline and includes a min with an am0ient light value a0ove lu/. The
baseline can easil( 0e e/trapolated 0( A1! 'olic( =e.g. X ad#ustment at e3 lu/>. All am0ient light
0rightness settings 0elow min =2 lu/> would 0e treated in a similar fashion 0( A1! polic( =e.g. &3X
ad#ustment>. This two&point response curve would 0e modeled as<
!ame(_&6R$ Pac+a,e(F)
Pac+a,eT($ F(/$ // ;in ( EF(^ ad9u2t at F( lu-)
Pac+a,e4G($4(((/ // ;a- (DG(^ ad9u2t at 4((( lu-)
/)
This model can 0e used to conve( a wide range of am0ient light to displa( 0rightness responses. 5or
e/ample, a transflective displa( I a technolog( where illumination of the displa( can 0e achieved 0(
reflecting availa0le am0ient light, 0ut also augmented in diml(&lit environments with a 0acklight I could 0e
modeled as illustrated in 5igure 6&3.
6igure ,-#H 1xa%ple "esponse Curve for a Transflective 5ispla)
This three&point appro/imation would result in an A1! response that allows the 0acklight to increase as the
am0ient lighting decreases. %n this e/ample, no 0acklight ad#ustment is needed in 0right environments
=4Z lu/>, ma/imum 0acklight ma( 0e needed in dim environments =e3 lu/>, 0ut a lower 0acklight
setting ma( 0e used in a ver(&dark room =e lu/> I resulting in an el0ow around 3 lu/. This response
would 0e modeled in CA13 as follows<
!ame(_&6R$ Pac+a,e(F)
Pac+a,e4=($ (/ ( D=(^ ad9u2t at ( lu-)
Pac+a,e3(($ F(/$ // ;a- (D4((^ ad9u2t at F( lu-)
Pac+a,e($ 4(((/$ // ;in ( (^ ad9u2t at 4$((( lu-)
/)
Note the ordering of package elements< monotonicall( increasing from the lowest am0ient light value =
lu/> to the 0rightness =4 lu/>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ""6
The transflective displa( e/ample also highlights the need for non&Hero values for the userMs displa(
0rightness preference I which weMll refer to as the reference displa( 0rightness value. This re:uirement is
derived from the modelMs use of relative ad#ustments. 5or e/ample, appl(ing an( ad#ustment to a X
reference displa( 0rightness value alwa(s results in a X a0solute displa( 0rightness setting. 1ikewise,
using a ver( small reference displa( 0rightness =e.g. *X> results in a muted response =e.g. Z3X of *X \
+.*X a0solute>. The solution is to appl( a reasona0l( large value =e.g. *X> as the reference displa(
0rightness setting I even in the case where no 0acklight is applied. This allows relative ad#ustments to 0e
applied in a meaningful fashion while conve(ing to the user that the displa( is still usa0le =via reflected
light> under t(pical am0ient conditions.
The 2! derives the userMs displa( 0rightness preference =this reference value> either from the ;rightness
Control 1evels =C;C1> o0#ect or another 2!&specific mechanism. !ee section 4.2.8, J3elationship to
;acklight Control MethodsL, for more information.
10.2.6 _ALP (Ambient Light Polling)
This optional o0#ect evaluates to a recommended polling fre:uenc( =in tenths of seconds> for this am0ient
light sensor. A value of Hero I or the a0sence of this o0#ect when other A1! o0#ects are defined I indicates
that 2!'M does not need to poll the sensor in order to detect meaningful changes in am0ient light =the
hardware is capa0le of generating as(nchronous notifications>.
The use of polling is allowed 0ut strongl( discouraged 0( this specification. 2.Ms should design s(stems
that as(nchronousl( notif( 2!'M whenever a meaningful change in the am0ient light occursPrelieving
the 2! of the overhead associated with polling.
This value is specified as tenths of seconds. 5or e/ample, a value of 4 would 0e used to indicate a 4
second polling fre:uenc(. As this is a recommended value, 2!'M will consider other factors when
determining the actual polling fre:uenc( to use.
Arguments<
None
3esult Code<
?ero< 'olling 0( the 2! is not re:uired.
All other values< The recommended polling fre:uenc(, in tenths of seconds.
10.2.7 Ambient Light Sensor Events
To communicate meaningful changes in A1! illuminance to 2!'M, AM1 code should issue a
Not1f:(als_device$ (-=() whenever the lu/ reading changes more than 4X =from the last
reading that resulted in a notification>. 2!'M receives this notification and evaluates the CA1% control
method to determine the current am0ient light status. The 2! then ad#usts the displa( 0rightness 0ased
upon its A1! polic( =derived from CA13>.
The definition of what constitutes a meaningf'l c1ange is left to the s(stem integrator, 0ut should 0e at a
level of granularit( that provides an appropriate response without overl( ta/ing the s(stem with
unnecessar( interrupts. 5or e/ample, an A1! configuration ma( 0e tuned to generate events for all changes
in am0ient light illuminance that result in a minimum g*X displa( 0rightness response =as defined 0(
CA13>.
To communicate meaningful changes in A1! color temperature to 2!'M, AM1 code should issue a
Not1f:(als_device$ (-=4) whenever the lu/ reading changes more than 4X =from the last
reading that resulted in a notification>. 2!'M receives this notification and evaluates the CA1T and CA1C
control method to determine the current am0ient light color temperature.
To communicate meaningful changes in A1! response to 2!'M, AM1 code should issue a
Not1f:(als_device$ (-=3) whenever the set of points used to conve( am0ient light response has
changed. 2!'M receives this notification and evaluates the CA13 o0#ect to determine the current response
points.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"* Advanced Configuration and 'ower %nterface !pecification
10.2.8 Relationship to Backlight Control Methods
The ;rightness Control 1evels =C;C1> method I descri0ed in section I can 0e used to indicate user&
selecta0le displa( 0rightness levels. The information provided 0( this method indicates the availa0le
displa( 0rightness settings, the recommended default 0rightness settings for AC and -C operation, and the
a0solute ma/imum and minimum 0rightness settings. These values indirectl( influence the operation of the
2!'MMs A1! polic(.
-ispla( 0rightness ad#ustments produced 0( A1! polic( are relative to the current user 0acklight setting,
and the resulting a0solute value must 0e mapped =rounded> to one of the levels specified in C;C1. This
introduces the re:uirement for fine&grain displa( 0rightness control in order to achieve a responsive A1!
s(stem I which t(picall( materialiHes as a need for additional entries in the C;C1 list in order to provide
reasona0le resolution to the 2! =e.g. 3&4X granularit(>. Note that user 0rightness controls =e.g. hotke(s>
are not re:uired to make use of all levels specified in C;C1.
10.3 Battery Device
A 0atter( device is re:uired to either have an AC'% !mart ;atter( Ta0le or a Control Method ;atter(
interface. %n the case of an AC'% !mart ;atter( Ta0le, the -efinition ;lock needs to include a ;usF-evice
'ackage for the !M;us host controller. This will install an 2! specific driver for the !M;us, which in turn
will locate the !mart ;atter( !(stem Manager or !mart ;atter( !elector and !mart ;atter( Charger !M;us
devices.
The Control Method ;atter( interface is defined in section 4.2, JControl Method ;atteries.L
10.4 Control Method Lid Device
'latforms containing lids conve( lid status =open F closed> to 2!'M using a Control Method 1id -evice.
To implement a control method lid device, AM1 code should issue a Not1f:(lid_device$ (-=()
for the device whenever the lid status has changed. The C1%- control method for the lid device must 0e
implemented to report the current state of the lid as either opened or closed.
The lid device can support C'3W and C'!W methods to select the wake functions for the lid when the lid
transitions from closed to opened.
The 'lug and 'la( %- of an AC'% control method lid device is 'N'C-.
Ta!le ,-( Control Method Lid 5evice
3!Cect 5escription
C1%- 3eturns the current status of the lid.
10.4.1 _LID
.valuates to the current status of the lid.
3esult Code<
?ero< The lid is closed
Non&Hero< The lid is open
10.5 Control Method Power and Sleep Button Devices
The s(stemMs power or sleep 0utton can either 0e implemented using the fi/ed register space as defined in
section ".9.2.2, J;uttons,L or implemented in AM1 code as a control method power 0utton device. %n either
case, the power 0utton override function or similar unconditional s(stem power or reset functionalit( is still
implemented in e/ternal hardware.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "*4
To implement a control method power&0utton or sleep&0utton device, implement AM1 code that delivers
two t(pes of notifications concerning the device. The first is Notif(==b:ect, /8> to signal that the 0utton
was pressed while the s(stem was in the ! state to indicate that the user wants the machine to transition
from ! to some sleeping state. The other notification is Notif(==b:ect, /2> to signal that the 0utton was
pressed while the s(stem was in an !4 to !" state and to cause the s(stem to wake. When the 0utton is used
to wake the s(stem, the wake notification =Notif(==b:ect, /2>> must occur after 2!'M actuall( wakes,
and a 0utton&pressed notification =Notif(==b:ect, /8>> must not occur.
The Wake Notification indicates that the s(stem is awake 0ecause the user pressed the 0utton and therefore
a complete s(stem resume should occur =for e/ample, turn on the displa( immediatel(, and so on>.
10.6 Embedded Controller Device
2peration of the em0edded controller host controller register interface re:uires that the em0edded
controller driver has AC'%&specific knowledge. !pecificall(, the driver needs to provide an Joperational
regionL of its em0edded controller address space, and needs to use a general&purpose event =$'.> to
service the host controller interface. 5or more information a0out an AC'%&compati0le em0edded controller
device, see section 43, JAC'% .m0edded Controller %nterface !pecification.L
The em0edded controller device o0#ect provides the C@%- of an AC'%&integrated em0edded controller
device of 'N'C6 and the host controller register locations using the device standard methods. %n
addition, the em0edded controller must 0e declared as a named device o0#ect that includes a set of control
methods. 5or more information, see section 42.44, J-efining an .m0edded Controller -evice in AC'%
NamespaceL>.
10.7 Fan Device
A fan device is assumed to 0e in operation when it is in the - state. Thermal Hones reference fan device=s>
as 0eing responsi0le primaril( for cooling within that Hone. Notice that multiple fan devices can 0e present
for an( one thermal Hone. The( might 0e actual different fans, or the( might 0e used to implement one fan
of multiple speeds =for e/ample, 0( turning 0oth JfansL on the one fan will run full speed>.
The 'lug and 'la( %- of a fan device is 'N'C;. 5or more information a0out fan devices, see section 42,
JThermal Management.L
10.8 Generic Container Device
A generic container device is a 0ridge that does not re:uire a special 2! driver 0ecause the 0ridge does not
provide or re:uire an( features not descri0ed within the normal AC'% device functions. The resources the
0ridge re:uires are specified via normal AC'% resource mechanisms. -evice enumeration for child devices
is supported via AC'% namespace device enumeration and 2! drivers re:uire no other features of the 0us.
!uch a 0ridge device is identified with the 'lug and 'la( %- of 'N'A* or 'N'A+.
A generic 0us 0ridge device is t(picall( used for integrated 0ridges that have no other means of controlling
them and that have a set of well&known devices 0ehind them. 5or e/ample, a porta0le computer can have a
Jgeneric 0us 0ridgeL known as an .%2 0us that 0ridges to some num0er of !uper&%F2 devices. The 0ridged
resources are likel( to 0e positivel( decoded as either a function of the 0ridge or the integrated devices. %n
this e/ample, a generic 0us 0ridge device would 0e used to declare the 0ridge then child devices would 0e
declared 0elow the 0ridgeK representing the integrated !uper&%F2 devices.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"*2 Advanced Configuration and 'ower %nterface !pecification
10.9 ATA Controller Devices
There are two t(pes of ATA Controllers< %-. controllers =also known as ATA controllers> and !erial ATA
=!ATA> controllers. %-. controllers are those using the traditional %-. programming interface, and ma(
support 'arallel ATA ='&ATA> or !ATA connections. !ATA controllers ma( 0e designed to operate in
emulation mode onl(, native mode onl(, or the( ma( 0e designed to support 0oth native and non&native
!ATA modes. 3egardless of the mode supported, !ATA controllers are designed to work solel( with drives
supporting the !erial ATA ph(sical interface. As descri0ed 0elow, !ATA controllers are treated similarl( 0ut
not identicall( to traditional %-. controllers.
'latforms that contain controllers that support native and non&native !ATA modes must take steps to ensure
the proper o0#ects are placed in the namespace for the mode in which the( are operating.
Ta!le ,-A ATA Specific 3!Cects
3!Cect 5escription Controller
T)pe
C$T5 2ptional o0#ect that returns the ATA task file needed to re&initialiHe the
drive to 0oot up defaults.
;oth
C$TM 2ptional o0#ect that returns the %-. controller timing information. %-.&onl(
C!TM 2ptional control method that sets the %-. controllerMs transfer timing
settings.
%-.&onl(
C!-- 2ptional control method that informs the platform of the t(pe of device
attached to a port.
!ATA&onl(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "*3
10.9.1 Objects for Both ATA and SATA Controllers
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"*" Advanced Configuration and 'ower %nterface !pecification
10.9.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "**
10.9.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"*+ Advanced Configuration and 'ower %nterface !pecification
_GTF (Get Task File)
This optional o0#ect returns a 0uffer containing the ATA commands used to restore the drive to 0oot up
defaults =that is, the state of the drive after '2!T>. The returned 0uffer is an arra( with each element in the
arra( consisting of seven 8&0it register values =*+ 0its> corresponding to ATA task registers 454 thru 459.
.ach entr( in the arra( defines a command to the drive.
This o0#ect ma( appear under !ATA port device o0#ects or under %-. channel o0#ects.
ATA task file arra( definition<
!even register values for command 4
3eg values< =454, 452, 453, 45", 45*, 45+, 459>
!even register values for command 2
3eg values< =454, 452, 453, 45", 45*, 45+, 459>
!even register values for command 3
3eg values< =454, 452, 453, 45", 45*, 45+, 459>
.tcNN
After powering up the drive, 2!'M will send these commands to the drive, in the order specified. 2n
!ATA @;As, 2!'M evaluates C!-- 0efore evaluating C$T5. The %-. driver ma( modif( some of the
feature commands or append its own to 0etter tune the drive for 2!'M features 0efore sending the
commands to the drive.
This Control Method is listed under each drive device o0#ect. C$T5 must 0e called after calling C!TM.
Arguments<
None
3esult Code<
A 0uffer that is a 0(te stream of ATA commands to send to the drive.
./ample of the return from C$T5<
;ethod(_:<5$ (-($ !otSerialiCed)

Return(:<5()
/
!ame(:<5($ Buffer((-4c)

(-(F$ (-(($ (-(($ (-(($ (-(($ (-a($ (-ef$ (-(F$ (-(($ (-(($ (-(($ (-(($
(-a($ (-ef$ (-(($ (-4($ (-(($ (-(($ (-(($ (-a($ (-cI$ (-(($ (-(($ (-(($
(-(($ (-(($ (-a($ (-H4
/
10.9.2 IDE Controller Device
Most device drivers can save and restore the registers of their device. 5or %-. controllers and drives, this is
not true 0ecause there are several drive settings for which ATA does not provide mechanisms to read.
5urther, there is no industr( standard for setting timing information for %-. controllers. ;ecause of this,
AC'% interface mechanisms are necessar( to provide the operating s(stem information a0out the current
settings for the drive and channel, and for setting the timing for the channel.
2!'M and the %-. driver will follow these steps when powering off the %-. su0s(stem<
4. The %-. driver will call the C$TM control method to get the current transfer timing settings for
the %-. channel. This includes information a0out -MA and '%2 modes.
2. The %-. driver will call the standard 2! services to power down the drives and channel.
3. As a result, 2!'M will e/ecute the appropriate C'!3 methods and turn off unneeded power
resources.
To power on the %-. su0s(stem, 2!'M and the %-. driver will follow these steps<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "*9
4. The %-. driver will call the standard 2! services to turn on the drives and channel.
2. As a result, 2!'M will e/ecute the appropriate C'! methods and turn on re:uired power
resources.
3. The %-. driver will call the C!TM control method passing in transfer timing settings for the
channel, as well as the ATA drive %- 0lock for each drive on the channel. The C!TM control
method will configure the %-. channel 0ased on this information.
". 5or each drive on the %-. channel, the %-. driver will run the C$T5 to determine the ATA
commands re:uired to reinitialiHe each drive to 0oot up defaults.
*. The %-. driver will finish initialiHing the drives 0( sending these ATA commands to the drives,
possi0l( modif(ing or adding commands to suit the features supported 0( the operating s(stem.
The following shows the namespace for these o0#ects<
\_SB // S12tem bu2
P)#( // P)# bu2
#D%4 // 5ir2t #D% channel
_&DR // #ndicate2 addre22 of the channel on the P)# bu2
_:<; // )ontrol method to ,et current #D% channel 2ettin,2
_S<; // )ontrol method to 2et current #D% channel 2ettin,2
_PR( // Power re2ource2 needed for D( power 2tate
DR@4 // Drive (
_&DR // #ndicate2 addre22 of ma2ter #D% device
_:<5 // )ontrol method to ,et ta2+ file
DR@3 // Drive 4
_ _&DR // #ndicate2 addre22 of 2lave #D% device
_ _:<5 // )ontrol method to ,et ta2+ file
#D%3 // Second #D% channel
_&DR // #ndicate2 addre22 of the channel on the P)# bu2
_:<; // )ontrol method to ,et current #D% channel 2ettin,2
_S<; // )ontrol method to 2et current #D% channel 2ettin,2
_ _PR( //Power re2ource2 needed for D( power 2tate
DR@4 // Drive (
_&DR // #ndicate2 addre22 of ma2ter #D% device
_:<5 // )ontrol method to ,et ta2+ file
DR@3 // Drive 4
_&DR // #ndicate2 addre22 of 2lave #D% device
_:<5 // )ontrol method to ,et ta2+ file
The se:uential order of operations is as follows<
Powering down<
Call C$TM.
'ower down drive =calls C'!3 method and turns off power planes>.
Powering up<
'ower up drive =calls C'! method if present and turns on power planes>.
Call C!TM passing info from C$TM =possi0l( modified>, with %- data from
each drive.
%nitialiHe the channel.
Ma( modif( the results of C$T5.
5or each drive<
Call C$T5.
./ecute task file =possi0l( modified>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"*8 Advanced Configuration and 'ower %nterface !pecification
10.9.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "*6
IDE Controller-specifc Objects
10.9.2.1.1 _GTM (Get Timing Mode)
This Control Method returns the current settings for the %-. channel.
This control method is listed under each channel device o0#ect.
Arguments<
None
3esult Code<
A 0uffer with the current settings for the %-. channel<
Buffer ()
P#0 Speed ( //DW0RD
D;& Speed ( //DW0RD
P#0 Speed 4 //DW0RD
D;& Speed 4 //DW0RD
5la,2 //DW0RD
/
Ta!le ,-- D;TM Method "esult Codes
6ield 6or%at 5escription
'%2 !peed -W23- The '%2 0us&c(cle timing for drive in nanoseconds. /55555555
indicates that this mode is not supported 0( the channel. %f the chipset
cannot set timing parameters independentl( for each drive, this field
represents the timing for 0oth drives.
-MA !peed -W23- The -MA 0us&c(cle for drive timing in nanoseconds. %f ;it of the
5lags register is set, this -MA timing is for ,ltra-MA mode,
otherwise the timing is for multi&word -MA mode. /55555555
indicates that this mode is not supported 0( the channel. %f the chipset
cannot set timing parameters independentl( for each drive, this field
represents the timing for 0oth drives.
'%2 !peed 4 -W23- The '%2 0us&c(cle timing for drive 4 in nanoseconds. /55555555
indicates that this mode is not supported 0( the channel. %f the chipset
cannot set timing parameters independentl( for each drive, this field
must 0e /55555555.
-MA !peed 4 -W23- The -MA 0us&c(cle timing for drive 4 in nanoseconds. %f ;it of the
5lags register is set, this -MA timing is for ,ltra-MA mode,
otherwise the timing is for multi&word -MA mode. /55555555
indicates that this mode is not supported 0( the channel. %f the chipset
cannot set timing parameters independentl( for each drive, this field
must 0e /55555555.
5lags -W23- Mode flags
;itVW< 4 indicates using ,ltra-MA on drive
;itV4W< 4 indicates %2Channel3ead( is used on drive
;itV2W< 4 indicates using ,ltra-MA on drive 4
;itV3W< 4 indicates %2Channel3ead( is used on drive 4
;itV"W< 4 indicates chipset can set timing independentl( for each drive
;itsV*&34W< reserved =must 0e >
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"+ Advanced Configuration and 'ower %nterface !pecification
10.9.2.1.2 _STM (Set Timing Mode)
This Control Method sets the %-. channelMs transfer timings to the setting re:uested. The AM1 code is
re:uired to convert and set the nanoseconds timing to the appropriate transfer mode settings for the %-.
controller. C!TM ma( also make ad#ustments so that C$T5 control methods return the correct commands
for the current channel settings.
This control method takes three arguments< Channel timing information =as descri0ed in Ta0le 6&+>, and the
ATA drive %- 0lock for each drive on the channel. The channel timing information is not guaranteed to 0e
the same values as returned 0( C$TMK the 2! ma( tune these values as needed.
The ATA drive %- 0lock is the raw data returned 0( the %dentif( -rive, ATA command, which has the
command code Jech.L The C!TM control method is responsi0le for correcting for drives that misreport
their timing information.
Arguments<
Arg ;uffer Channel timing information =formatted as descri0ed in Ta0le 6&+>
Arg4 ;uffer ATA drive %-. 0lock for drive
Arg2 ;uffer ATA drive %-. 0lock for drive 4
3esult Code<
None
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "+4
10.9.3 Serial ATA (SATA) Controller Device
10.9.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"+2 Advanced Configuration and 'ower %nterface !pecification
Defnitions
H<A M @ost ;us Adapter
0ative SATA aware I 3efers to s(stem software =;%2!, option 32M, operating s(stem, etc> that
comprehends a particular !ATA @;A implementation and understands its programming interface
and power management 0ehavior.
0on-native SATA aware & 3efers to s(stem software =;%2!, option 32M, operating s(stem, etc>
that does not comprehend a particular !ATA @;A implementation and does not understand its
programming interface or power management 0ehavior. T(picall(, non&native !ATA aware
software will use a !ATA @;AMs emulation interface =e.g. task file registers> to control the @;A
and access its devices.
1%ulation %ode I 2ptional mode supported 0( a !ATA @;A. Allows non&native !ATA aware
software to access !ATA devices via traditional task file registers.
0ative %ode I 2ptional mode supported 0( a !ATA @;A. Allows native !ATA aware software to
access !ATA devices via registers that are specific to the @;A.
H)!rid 5evice M 3efers to a !ATA @;A that implements 0oth an emulation and a native
programming interface.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "+3
10.9.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"+" Advanced Configuration and 'ower %nterface !pecification
Overview
A !ATA @;A differs from an %-. controller in a num0er of wa(s. 5irst, it can save its complete device
conte/t. !econd, it replaces %-. channels, which ma( support up to 2 attached devices, with ports, which
support onl( a single attached device, unless a port multiplier is present. !ee the !ATA spec
=http<FFwww.serialata.orgFcollateralFinde/.shtml> for more information. 5inall(, !ATA does not re:uire
timing information from the platform, allowing a simplification in how !ATA controllers are represented in
AC'%. =C$TM and C!TM are replaced 0( the simpler C!-- method.>
All ports, even those attached off a port multiplier, are represented as children directl( under the !ATA
controller device. This is practical 0ecause the !ATA specification does not allow a port multiplier to 0e
attached to a port multiplier. .ach portMs CA-3 indicates to which root port the( are connected, as well as
the port multiplier location, if applica0le. =!ee Ta0le +&2 for CA-3 format.>
!ince this specification onl( covers the configuration of mother0oard devices, it is also the case that the
control methods defined in this section cannot 0e used to send taskfiles to devices attached via either an
add&in !ATA @;A, or attached via a mother0oard !ATA @;A, if used with a port multiplier that is not also
on the mother0oard.
The following shows an e/ample !ATA namespace<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "+*
\_SB E S12tem bu2
P)#( E P)# bu2
S&<& E S&<& )ontroller device
_ &DR E #ndicate2 addre22 of the controller on the P)# bu2
_ PR( E Power re2ource2 needed for D( power 2tate
PR<( E Port ( device
_&DR E #ndicate2 ph12ical port and port multiplier topolo,1
_SDD E #dentif1 information for drive attached to thi2 port
_:<5 E )ontrol method to ,et ta2+ file
PR<n E Port n device
_&DR E #ndicate2 ph12ical port and port multiplier topolo,1
_SDD E #dentif1 information for drive attached to thi2 port
_:<5 E )ontrol method to ,et ta2+ file
10.9.3.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"++ Advanced Configuration and 'ower %nterface !pecification
SATA controller-specifc control methods
%n order to ensure proper interaction 0etween 2!'M, the firmware, and devices attached to the !ATA
controller, it is a re:uirement that 2!'M e/ecute the C!-- and C$T5 control methods when certain events
occur. 2!'MMs response to events must 0e as follows<
C3M"1S1T' Initial 3S load' device insertion' H<A 5# to 5$ transition' as)nchronous loss of signalH
4. 2!'M sends %-.NT%5S -.D%C. or %-.NT%5S 'ACE.T -.D%C. command to the attached device.
2. 2! e/ecutes C!--. C!-- control method re:uires 4 argument that consists of the data 0lock received
from an attached device as a result of a host issued %-.NT%5S -.D%C. or %-.NT%5S 'ACE.T
-.D%C. command.
3. After the C!-- method completes, the 2! e/ecutes the C$T5 method. ,sing the task file information
provided 0( C$T5, the 2! then sends the C$T5 taskfiles to the attached device.
5evice re%oval and H<A 5$ to 5# transitionH
4. No 2!'M action re:uired.
10.9.3.3.1 _SDD (Set Device Data)
This optional o0#ect is a control method that conve(s to the platform the t(pe of device connected to the
port. The C!-- o0#ect ma( e/ist under a !ATA port device o0#ect. The platform t(picall( uses the
information conve(ed 0( the C!-- o0#ect to construct the values returned 0( the C$T5 o0#ect.
2!'M conve(s to the platform the ATA drive %- 0lock, which is the raw data returned 0( the %dentif(
='acket> -evice, ATA command =command code Jech.L>. 'lease see the ATAFATA'%&+ specification for
more details.
Arguments<
Arg ;uffer ATA drive identif( 0lock, contents descri0ed 0( the ATA specification
3esult Code<
None
10.10 Floppy Controller Device Objects
10.10.1 _FDE (Floppy Disk Enumerate)
.numerating devices attached to a flopp( disk controller is a time&consuming function. %n order to speed up
the process of flopp( enumeration, AC'% defines an optional enumeration o0#ect that is defined directl(
under the device o0#ect for the flopp( disk controller. %t returns a 0uffer of five 32&0it values. The first four
values are ;oolean values indicating the presence or a0sence of the four flopp( drives that are potentiall(
attached to the controller. A non&Hero value indicates that the flopp( device is present. The fifth value
returned indicates the presence or a0sence of a tape controller. -efinitions of the tape presence value can 0e
found in Ta0le 6&9.
Arguments<
None
3esult Code<
A 0uffer containing values that indicate the presence or a0sence of flopp( devices.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "+9
Buffer ()
5lopp1 ( // Boolean DW0RD
5lopp1 4 // Boolean DW0RD
5lopp1 3 // Boolean DW0RD
5lopp1 F // Boolean DW0RD
<ape // See table below
/
Ta!le ,-. Tape Presence
7alue 5escription
,nknown if device is present
4 -evice is present
2 -evice is never present
)2 3eserved
10.10.2 _FDI (Floppy Disk Information)
This o0#ect returns information a0out a flopp( disk drive. This information is the same as that returned 0(
the %NT 43 5unction 8@ on %A&'Cs.
3esult Code<
Pac+a,e
Drive !umber //BS<%
Device <1pe //BS<%
;a-imum )1linder !umber //W0RD
;a-imum Sector !umber //W0RD
;a-imum "ead !umber //W0RD
di2+_2pecif1_4 //BS<%
di2+_2pecif1_3 //BS<%
di2+_motor_wait //BS<%
di2+_2ector_2iC //BS<%
di2+_eot //BS<%
di2+_rw_,ap //BS<%
di2+_dtl //BS<%
di2+_formt_,ap //BS<%
di2+_fill //BS<%
di2+_head_2ttl //BS<%
di2+_motor_2trt //BS<%
/
Ta!le ,-/ ACPI 6lopp) 5rive Infor%ation
6ield 6or%at 5efinition
-rive Num0er ;ST. As reported 0( C%NT 43 5unction 8@
-evice T(pe ;ST. As reported 0( C%NT 43 5unction 8@
Ma/imum C(linder Num0er W23- As reported 0( C%NT 43 5unction 8@
Ma/imum !ector Num0er W23- As reported 0( C%NT 43 5unction 8@
Ma/imum @ead Num0er W23- As reported 0( C%NT 43 5unction 8@
-iskCspecif(C4 ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCspecif(C2 ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCmotorCwait ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCsectorCsiH ;ST. As reported in .!<-4 from %NT 43 5unction 8@
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"+8 Advanced Configuration and 'ower %nterface !pecification
6ield 6or%at 5efinition
-iskCeot ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCrwCgap ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCdtl ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCformtCgap ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCfill ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCheadCsttl ;ST. As reported in .!<-4 from %NT 43 5unction 8@
-iskCmotorCstrt ;ST. As reported in .!<-4 from %NT 43 5unction 8@
10.10.3 _FDM (Floppy Disk Drive Mode)
This control method switches the mode =33'MF3+3'M> of all flopp( disk drives attached to this
controller. %f this control method is implemented, the platform must reset the mode of all drives to 33'M
mode after a -x to - transition of the controller.
Arguments<
I !et the mode of all drives to 33'M mode.
4 I !et the mode of all drives to 3+3'M mode.
3esult Code<
None
10.11 GPE Block Device
The $'. ;lock device is an optional device that allows a s(stem designer to descri0e $'. 0locks 0e(ond
the two that are descri0ed in the 5A-T. Control methods associated with the $'. pins of $'. 0lock
devices e/ist as children of the $'. ;lock device, not within the BC$'. namespace.
A $'. ;lock device consumes %F2 or memor( address space, as specified 0( its C'3! or CC3! child
o0#ects. The interrupt vector used 0( the $'. 0lock does not need to 0e the same as the !C%C%NT field. The
interrupt used 0( the $'. 0lock device is specified in the CC3! and C'3! methods associated with the
$'. 0lock.
A $'. ;lock device must have a C@%- or a CC%- of JAC'%+.L
0oteH A s(stem designer must descri0e the $'. 0lock necessar( to 0ootstrap the s(stem in the 5A-T as a
$'.F$'.4 0lock. $'. ;lock devices cannot 0e used to implement these $'. inputs.
To represent the $'. 0lock associated with the 5A-T, the s(stem designer needs onl( to include the
AC'%+ device in the tree, and not have an( CC3!, C'3!, C!3!, or other $'.&specific methods
associated with that 0lock. An( 0lock that does not represent the $'. 0lock of the 5A-T must contain the
C1//, C.//, CW//, CC3!, C'3!, or C!3! methods re:uired to useFprogram that 0lock. 2!'M assumes the
first AC'%+ device without a CC3! is the $'. device that is associated with the 5A-T.
// &S6 e-ample of root :P% bloc+
Device(\_SB.P)#(.:P%()
!ame(_"#D$*&)P#(((I*)
!ame(_X#D$4)
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "+6
// &S6 e-ample of a nonEroot :P% bloc+
Device(\_SB.P)#(.:P%4)
!ame(_"#D$ *&)P#(((I*)
!ame(_X#D$ 3)
!ame(_)RS$ Buffer ()
#0(Decode4I$ 5)(($ 5)(F$ .$ .$)
#RJ( 6evel$ &ctive"i,h$ Shared$) G /
/)
;ethod(_6(3) Y /
;ethod(_%(T) Y /
;ethod(_W(.) Y /
Notice that it is legal to replace the %F2 descriptors with Memor( descriptors if the register is memor(
mapped.
%f the s(stem must run an( $'.s to 0ootstrap the s(stem =for e/ample, when .m0edded Controller events
are re:uired>, the associated 0lock of $'.s must 0e descri0ed in the 5A-T. This register 0lock is not
relocata0le and will alwa(s 0e availa0le for the life of the operating s(stem 0oot.
The $'. 0lock associated with the AC'%+ device can 0e stopped, e#ected, reprogrammed, and so on.
The s(stem can also have multiple such $'. 0locks.
10.11.1 Matching Control Methods for General-Purpose Events in a GPE
Block Device
When a $'. -evice raises an interrupt, 2!'M e/ecutes a corresponding control method =as descri0ed in
section *.+.2.2.3, JGueuing the Matching Control Method for ./ecutionL>. These control methods =of the
form C1//, C.//, and CW//> for $'. -evices are not within the BC$'. namespace. The( are children of
the $'. ;lock device.
5or e/ample<
Device(:P%G)
!ame(_"#D$ '&)P#(((I*)
;ethod(_6(3) Y /
;ethod(_%(T) Y /
;ethod(_W(.) Y /
/
10.12 Module Device
This optional device is a container o0#ect that acts as a 0us node in a namespace. %t ma( contain child
o0#ects that are devices or 0uses. The module device is declared using the AC'%" hardware identifier
=@%->.
%f the module device contains a CC3! o0#ect, the J0usL descri0ed 0( this o0#ect is assumed to have these
resources availa0le for consumption 0( its child devices. %f a CC3! o0#ect is present, an( resources not
produced in the module deviceMs CC3! o0#ect ma( not 0e allocated to child devices.
'roviding a CC3! o0#ect is undesira0le in some module devices. 5or e/ample, consider a module device
used to descri0e an add&in 0oard containing multiple host 0ridges without an( shared resource decoding
logic. %n this case the resource ranges availa0le to the host 0ridges are not controlled 0( an( entit( residing
on the add&in 0oard, impl(ing that a CC3! o0#ect in the associated module device would not descri0e an(
real feature of the underl(ing hardware.
To account for cases like this, the s(stem designer ma( optionall( omit the module deviceMs CC3! o0#ect. %f
no CC3! o0#ect is present, 2!'M will assume that the module device is a simple container o0#ect that does
not produce the resources consumed 0( its child devices. %n this case, 2!'M will assign resources to the
child devices as if the( were direct children of the module deviceUs parent o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"9 Advanced Configuration and 'ower %nterface !pecification
5or an e/ample with a module device CC3! o0#ect present, consider a Module -evice containing three
child memor( devices. %f the CC3! o0#ect for the Module -evice contains memor( from 2 $; through +
$;, then the child memor( devices ma( onl( 0e assigned addresses within this range.
./ample<
Device (\_SB.!0D()
!ame (_"#D$ P&)P#(((.P) // ;odule device
!ame (_X#D$ ()
!ame (_PRS$ Re2ource<emplate()
Word#0 (
Re2ourceProducer$
;in5i-ed$ // _;#5
;a-5i-ed$$$ // _;&5
(-(((($ // _:R&
(-(((($ // _;#!
(-T555$ // _;&R
(-($ // _<R&
(-=((() // _6%!
DWord;emor1 (
Re2ourceProducer$$ // 5or ;ain ;emor1 D P)#
;in!ot5i-ed$ // _;#5
;a-!ot5i-ed$ // _;&5
)acheable$ // _;%;
ReadWrite$ // _RW
(-(5555555$ // _:R&
(-.((((((($ // _;#!
(-T5555555$ // _;&R
(-($ // _<R&
(-(((((((() // _6%!
/)
;ethod (_SRS$ 4) ... /
;ethod (_)RS$ () ... /
Device (;%;() // ;ain ;emor1 (3GI;B module)
!ame (_"#D$ %#S&#D(PP!P()=(P))
!ame (_X#D$ ()
;ethod (_S<&$ () // #f memor1 not pre2ent EEB Return((-(()
// %l2e if memor1 i2 di2abled EEB Return((-(D)
// %l2e EEB Return((-(5)
/
!ame (_PRS$ Re2ource<emplate ()
DWord;emor1 ($$$$
)acheable$ // _;%;
ReadWrite$ // _RW
(-(5555555$ // _:R&
(-.((((((($ // _;#!
(-T5555555$ // _;&R
(-($ // _<R&
(-4((((((() // _6%!
/)
;ethod (_)RS$ () ... /
;ethod (_SRS$ 4) ... /
;ethod (_D#S$ () ... /
/
Device (;%;4) // ;ain ;emor1 (G43;B module)
!ame (_"#D$ %#S&#D(PP!P()=(P))
!ame (_X#D$ 4)
;ethod (_S<&$ () // #f memor1 not pre2ent EEB Return((-(()
// %l2e if memor1 i2 di2abled EEB Return((-(D)
// %l2e EEB Return((-(5)
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "94
!ame (_PRS$ Re2ource<emplate ()
DWord;emor1 ($$$$
)acheable$ // _;%;
ReadWrite$ // _RW
(-45555555$ // _:R&
(-.((((((($ // _;#!
(-T5555555$ // _;&R
(-($ // _<R&
(-3((((((() // _6%!
/)
;ethod (_)RS$ () ... /
;ethod (_SRS$ 4) ... /
;ethod (_D#S$ () ... /
/
Device (P)#() // P)# Root Brid,e
!ame (_"#D$ %#S&#D(PP!P(&(FP))
!ame (_X#D$ ()
!ame (_BB!$ (-(()
!ame (_PRS$ Re2ource<emplate ()
WordBu2!umber (
Re2ourceProducer$
;in5i-ed$ // _;#5
;a-5i-ed$$ // _;&5
(-(($ // _:R&
(-(($ // _;#!
(-T5$ // _;&R
(-($ // _<R&
(-=() // _6%!
Word#0 (
Re2ourceProducer$
;in5i-ed$ // _;#5
;a-5i-ed$$$ // _;&5
(-(((($ // _:R&
(-(((($ // _;#!
(-()5T$ // _;&R
(-($ // _<R&
(-()5=) // _6%!
Word#0 (
Re2ourceProducer$
;in5i-ed$ // _;#5
;a-5i-ed$$$ // _;&5
(-(((($ // _:R&
(-(D(($ // _;#!
(-T555$ // _;&R
(-($ // _<R&
(-TF(() // _6%!
DWord;emor1 (
Re2ourceProducer$$
;in!ot5i-ed$ // _;#5
;a-!ot5i-ed$ // _;&5
!on)acheable$ // _;%;
ReadWrite$ // _RW
(-(5555555$ // _:R&
(-.((((((($ // _;#!
(-T5555555$ // _;&R
(-($ // _<R&
(-(((((((() // _6%!
/)
;ethod (_)RS$ () ... /
;ethod (_SRS$ 4) ... /
/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"92 Advanced Configuration and 'ower %nterface !pecification
10.13 Memory Devices
Memor( devices allow a platform designer to optionall( descri0e the d(namic properties of memor(. %f a
platform cannot have memor( added or removed while the s(stem is active, then memor( devices are not
necessar(. Memor( devices ma( descri0e e/actl( the same ph(sical memor( that the !(stem Address Map
interfaces descri0e =see section 4*, J!(stem Address Map %nterfacesL>. The( do not descri0e how that
memor( is, or has 0een, used. %f a region of ph(sical memor( is marked in the !(stem Address Map
interface as Address3ange3eserved or Address3angeND! and it is also descri0ed in a memor( device, then
it is the responsi0ilit( of the 2! to guarantee that the memor( device is never disa0led.
%t is not necessar( to descri0e all memor( in the s(stem with memor( devices if there is some memor( in
the s(stem that is static in nature. %f, for instance, the memor( that is used for the first 4+ M; of s(stem
3AM cannot 0e e#ected, inserted, or disa0led, that memor( ma( onl( 0e represented 0( the !(stem Address
Map interfaces. ;ut if memor( can 0e e#ected, inserted, or disa0led, it must 0e represented 0( a memor(
device.
10.13.1 Address Decoding
Memor( devices must provide a CC3! o0#ect that descri0es the ph(sical address space that the memor(
decodes. %f the memor( can decode alternative ranges in ph(sical address space, the devices ma( also
provide C'3!, C!3! and C-%! o0#ects. 2ther device o0#ects ma( also appl( if the device can 0e e#ected.
10.13.2 Example: Memory Device
Scope (\_SB)
Device (;%;()
!ame (_"#D$ %#S&#D ('P!P()=(*))
!ame (_)RS$ Re2ource<emplate ()
Jword;emor1
Re2ource)on2umer$
$
;in5i-ed$
;a-5i-ed$
)acheable$
ReadWrite$
(-5555555$
(-4((((((($
(-F((((((($
($
$$)
/
/
/
10.14 _UPC (USB Port Capabilities)
This optional o0#ect is a method that allows the platform to communicate to the operating s(stem, certain
,!; port capa0ilities that are not provided for through current ,!; host 0us adaptor specifications =e.g.
,@C%, 2@C% and .@C%>. %f implemented 0( the platform, this o0#ect will 0e present for each ,!; port
=child> on a given ,!; host 0us adaptorK operating s(stem software can e/amine these characteristics at
0oot time in order to gain knowledge a0out the s(stemMs ,!; topolog(, availa0le ,!; ports, etc. This
method is applica0le to ,!; root hu0 ports as well as ports that are implemented through integrated ,!;
hu0s.
S)ntax
_XP) LB XP)Pac+a,e
"eturn 7alue
$PCPac%a&e< Pac+a,e =PortIsConnecta!le' PortConnectorT)pe' "eserved$' "eserved+>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "93
Where<
PortIsConnecta4le< B1te)on2t
%f this value is non&Hero =/55>, then the port is connecta0le. %f this value is Hero =/>, then
the port is not connecta0le.
Note< The definition of a Uconnecta0leU port is dependent upon the implementation of the ,!;
port within a particular platform. 5or e/ample,
%f a ,!; port is user visi0le

=as indicated 0( the C'1- o0#ect> and connecta0le, then
an end user can freel( connect and disconnect ,!; devices to the ,!; port.
%f a ,!; port is not user visi0le and is connecta0le, then an end user cannot freel(
connect and disconnect ,!; devices to the ,!; port. A ,!; device that is directl(
dhard&wiredd to a ,!; port is an e/ample of a ,!; port that is not user visi0le and
is connecta0le.
%f a ,!; port is not user visi0le and is not connecta0le, then the ,!; port is
ph(sicall( implemented 0( the ,!; host controller, 0ut is not 0eing used 0( the
platform and therefore cannot 0e accessed 0( an end user.
%t is illegal for a ,!; port to 0e specified as visi0le and not connecta0le.
PortConnector9:pe< B1te)on2t
This field is used to specif( the host connector t(pe. %t is ignored 0( 2!'M if the port is
not user visi0le<
/< T)pe TAU connector
/4< Mini-A< connector
/2< 1xpressCard
/3 & /5.< "eserved
/55< Proprietar) connector
Resere"*< -word)on2t
This value is reserved for future use and must 0e Hero.
Resere"7< -word)on2t
This value is reserved for future use and must 0e Hero.
1=AMPL1
The following is an e/ample of a port characteristics o0#ect implemented for a ,!; host controllerMs root
hu0 where<
3 'orts are implementedK 'ort 4 is not user visi0leFnot connecta0le and 'orts 2 and 3 are user
visi0le and connecta0le.
'ort 2 is located on the 0ack panel
'ort 3 has an integrated 2 port hu0. Note that 0ecause this port hosts an integrated hu0, it is
therefore not shara0le with another host controller =e.g. %f the integrated hu0 is a ,!;2. hu0, the
port can never 0e shared with a ,!;4.4 companion controller>.
The ports availa0le through the em0edded hu0 are located on the front panel and are ad#acent to
one another.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"9" Advanced Configuration and 'ower %nterface !pecification
//
// Root hub device for thi2 ho2t controller. <hi2 controller implement2 F root hub port2.
//
Device( R"XB)
!ame( _&DR$ (-(((((((() // root "XB alwa12 ha2 a value of (
// Root hub$ port 4
Device( PR<4)
// &ddre22 ob9ect for port 4. <hi2 value mu2t be 4
!ame( _&DR$ (-(((((((4)
// XSB port capabilitie2 ob9ect. <hi2 ob9ect return2 the 212tem
// 2pecific XSB port confi,uration information for port number 4
// Because t>1s port 1s not connecta4le 1t 1s assu2e" to 4e not 1s14le.
?? 9>erefore a _P;D "escr1ptor 1s not re0u1re".
!ame( _XP)$ Pac+a,e()
(-(($ // Port i2 not connectable
(-55$ // )onnector t1pe (!/& for nonEvi2ible port2)
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 W mu2t be Cero
/ // Device( PR<4)
//
// Root "ub$ Port 3
//
Device( PR<3)
// &ddre22 ob9ect for port 3. <hi2 value mu2t be 3
!ame(_&DR$ (-(((((((3)
!ame( _XP)$ Pac+a,e()
(-55$ // Port i2 connectable
(-(($ // )onnector t1pe W <1pe `&]
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 W mu2t be Cero
// provide ph12ical port location info
!ame( _P6D$ Buffer( (-4()
(-((((((=4$ // Revi2ion 4$ #,nore color
// )olor (i,nored)$ width and hei,ht not
(-(((((((($ // re8uired a2 thi2 i2 a 2tandard XSB `&] t1pe
// connector
(-(((((cIH$ // X2er vi2ible$ Bac+ panel$ @ertical
// )enter$ 2hape L vert. rectan,le
(-(((((((F/) // e9ectable$ re8uire2 0PS; e9ect a22i2tance
/ // Device( PR<3)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "9*
//
// Root "ub$ Port F
//
Device( PR<F)
// &ddre22 ob9ect for port F. <hi2 value mu2t be F
!ame(_&DR$ (-(((((((F)
// Because t>1s port 1s not connecta4le 1t 1s assu2e" to 4e not 1s14le.
?? 9>erefore a _P;D "escr1ptor 1s not re0u1re".
!ame( _XP)$ Pac+a,e()
(-(($ // Port i2 not connectable
(-55$ // )onnector t1pe (!/& for nonEvi2ible port2)
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 E mu2t be Cero
// Declare the inte,rated hub ob9ect
Device( #"XB)
// &ddre22 ob9ect for the hub. <hi2 value mu2t be (
!ame(_&DR$ (-(((((((()
// #nte,rated hub$ port 4
Device( PR<4)
// &ddre22 ob9ect for the port. Becau2e the port i2 implemented on
// inte,rated hub port Q4$ thi2 value mu2t be 4
!ame( _&DR$ (-(((((((4)
// XSB port characteri2tic2 ob9ect. <hi2 ob9ect return2 the 212tem
// 2pecific XSB port confi,uration information for inte,rated hub port
// number 4
!ame( _XP)$ Pac+a,e()
(-55$ // Port i2 connectable
(-(($ // )onnector t1pe W <1pe `&]
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 W mu2t be Cero
// provide ph12ical port location info
!ame( _P6D$ Buffer( (-4()
(-((((((=4$ // Revi2ion 4$ #,nore color
// )olor (i,nored)$ width and hei,ht not
(-(((((((($ // re8uired a2 thi2 i2 a 2tandard XSB `&] t1pe
// connector
(-((((4(a4$ // X2er vi2ible$ front panel$ @ertical
// lower$ horC. 6eft$ 2hape L horC. rectan,le
(-(((((((F/) // e9ectable$ re8uire2 0PS; e9ect a22i2tance
/ // Device( PR<4)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"9+ Advanced Configuration and 'ower %nterface !pecification
//
// #nte,rated hub$ port 3
//
Device( PR<3)
// &ddre22 ob9ect for the port. Becau2e the port i2 implemented on
// inte,rated hub port Q3$ thi2 value mu2t be 3
!ame( _&DR$ (-(((((((3)
// XSB port characteri2tic2 ob9ect. <hi2 ob9ect return2 the 212tem
// 2pecific XSB port confi,uration information for inte,rated hub port
// number 3
!ame( _XP)$ Pac+a,e()
(-55$ // Port i2 connectable
(-(($ // )onnector t1pe W <1pe `&]
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 W mu2t be Cero
!ame( _P6D$ Buffer( (-4()
(-((((((=4$ // Revi2ion 4$ #,nore color
// )olor (i,nored)$ width and hei,ht not
(-(((((((($ // re8uired a2 thi2 i2 a 2tandard XSB `&] t1pe
// connector
(-((((43a4$ // X2er vi2ible$ front panel$ @ertical
// lower$ horC. ri,ht$ 2hape L horC. rectan,le
(-(((((((F/) // e9ectable$ re8uire2 0PS; e9ect a22i2tance
/ // Device( PR<3)
/ // Device( #"XB)
/ // Device( PR<F)
/ // Device( R"XB)
10.14.1 USB 2.0 Host Controllers and _UPC and _PLD
'latforms implementing ,!;2. host controllers that consist of one or more ,!;4.4 compliant companion
controllers =e.g. ,@C% or 2@C%> must implement a C,'C and a C'1- o0#ect for each port ,!; port that
can 0e routed 0etween the .@C% host controller and its associated companion controller. This is re:uired
0ecause a ,!; 'ort Capa0ilities o0#ect implemented for a port that is a child of an .@C% host controller
ma( not 0e availa0le if the 2!'M disa0les the parent host controller. 5or e/ample, if root port 4 on an
.@C% host controller is routa0le to root port 4 on its companion controller, then the namespace must
provide a C,'C and a C'1- o0#ect under each host controllerMs associated port 4 child o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "99
1=AMPL1
Scope( \_SB)
@
Device(P)#()
@
// "o2t controller (%")#)
Device( XSB()
// P)# deviceQ/5unctionQ for thi2 "). %ncoded a2 2pecified in the &)P#
// 2pecification
!ame(_&DR$ (-1111CCCC)
// Root hub device for thi2 ") Q4.
Device(R"XB)
!ame(_&DR$ (-(((((((() // mu2t be Cero for XSB root hub
// Root hub$ port 4
Device(PR<4)
!ame(_&DR$ (-(((((((4)
// XSB port confi,uration ob9ect. <hi2 ob9ect return2 the 212tem
// 2pecific XSB port confi,uration information for port number 4
// Aust 2atc> t>e _$PC "eclarat1on for $#B7.RB$B.PR97 as 1t 1s t>1s
// >ost controllerCs co2pan1on
!ame( _XP)$ Pac+a,e()
(-55$ // Port i2 connectable
(-(($ // )onnector t1pe W <1pe `&]
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 W mu2t be Cero
// provide ph12ical port location info for port 4
// Aust 2atc> t>e _$PC "eclarat1on for $#B7.RB$B.PR97 as 1t 1s t>1s
// >ost controllerCs co2pan1on
!ame( _P6D$ Buffer( (-4()
(-((((((=4$ // Revi2ion 4$ #,nore color
// )olor (i,nored)$ width and hei,ht not
(-(((((((($ // re8uired a2 thi2 i2 a 2tandard XSB `&] t1pe
// connector
(-((((4(a4$ // X2er vi2ible$ front panel$ @ertical
// lower$ horC. 6eft$ 2hape L horC. rectan,le
(-(((((((F/) // e9ectable$ re8uire2 0PS; e9ect a22i2tance
/ // Device( PR<4)
//
// Define other port2$ control method2$ etc
Y
Y
/ // Device( R"XB)
/ // Device( XSB()
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"98 Advanced Configuration and 'ower %nterface !pecification
// )ompanion "o2t controller (0")# or X")#)
Device( XSB4)
// P)# deviceQ/5unctionQ for thi2 "). %ncoded a2 2pecified in the &)P#
// 2pecification
!ame(_&DR$ (-1111CCCC)
// Root hub device for thi2 ") Q4.
Device(R"XB)
!ame(_&DR$ (-(((((((() // mu2t be Cero for XSB root hub
// Root hub$ port 4
Device(PR<4)
!ame(_&DR$ (-(((((((4)
// XSB port confi,uration ob9ect. <hi2 ob9ect return2 the 212tem
// 2pecific XSB port confi,uration information for port number 4
// Aust 2atc> t>e _$PC "eclarat1on for $#B*.RB$B.PR97 as t>1s >ost
// controller 1s a co2pan1on to t>e EBCI >ost controller
// provide ph12ical port location info for port 4
!ame( _XP)$ Pac+a,e()
(-55$ // Port i2 connectable
(-(($ // )onnector t1pe W <1pe `&]
(-(((((((($ // Re2erved ( W mu2t be Cero
(-((((((((/) // Re2erved 4 W mu2t be Cero
?? Aust 2atc> t>e _P;D "eclarat1on for $#B*.RB$B.PR97 as t>1s >ost
?? controller 1s a co2pan1on to t>e EBCI >ost controller
!ame( _P6D$ Buffer( (-4()
(-((((((=4$ // Revi2ion 4$ #,nore color
// )olor (i,nored)$ width and hei,ht not
(-(((((((($ // re8uired a2 thi2 i2 a 2tandard XSB `&] t1pe
// connector
(-((((4(a4$ // X2er vi2ible$ front panel$ @ertical
// lower$ horC. 6eft$ 2hape L horC. rectan,le
(-(((((((F/) // e9ectable$ re8uire2 0PS; e9ect a22i2tance
/ // Device( PR<4)
//
// Define other port2$ control method2$ etc
Y
Y
/ // Device( R"XB)
/ // Device( XSB4)
/ // Device( P)#()
/ // Scope( _\SB)
10.15 Device Object Name Collision
-evices containing 0oth C@%- and CC%- ma( have device specific control methods pertaining to 0oth the
device %- in the C@%- and the device %- in the CC%-. These device specific control methods are defined 0(
the device owner =a standard 0od( or a vendor or a group of vendor partners>. !ince these o0#ect names are
not controlled 0( a central authorit(, there is a likelihood that the names of o0#ects will conflict 0etween
two defining parties. The C-!M o0#ect descri0ed in the ne/t section solves this conflict.
10.15.1 _DSM (Device Specifc Method)
This optional o0#ect is a control method that ena0les devices to provide device specific control functions
that are consumed 0( the device driver.
Arguments<
Arg =;uffer>< BBID
Arg4 =%nteger>< $e2ision ID
Arg2 =%nteger>< &'nction Index
Arg3 ='ackage>< Arg'ments
BBID I ,niversal ,ni:ue %dentifier =4+ ;(te ;uffer>
$e2ision ID I the functionMs revision. This revision is specific to the ,,%-.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "96
&'nction Index I 3epresents a specific function whose meaning is specific to the ,,%- and 3evision %-.
5unction indices should start with 4. 5unction num0er Hero is a :uer( function =see the special return code
defined 0elow>.
Arg'ments I a package containing the parameters for the function specified 0( the BBID, $e2ision ID and
&'nction Index. !uccessive revisions of &'nction Arg'ments must 0e 0ackward compati0le with earlier
revisions. !ee section 6, JAC'% -evices and -evice !pecific 20#ectsL, for an( C-!M definitions for AC'%
devices. New ,,%-s ma( also 0e created 0( 2.Ms and %@Ds for custom devices and other interface or
device governing 0odies =e.g. the 'C% !%$>, as long as the ,,%- is different from other pu0lished ,,%-s.
2nl( the issuer of a ,,%- can authoriHe a new &'nction Index, $e2ision ID or &'nction Arg'ment for that
,,%-.
3esult Code<
Return If Function Index is zero, the return is a 0uffer, with one 0it for each function inde/, starting
with Hero. ;it indicates support for at least one function for the specified ,,%- and 3evision %-. %f set to
Hero, no functions are supported for the specified ,,%- and 3evision %-. %f set to one, at least one function
is supported. 5or all other 0its in the 0uffer, a 0it is set to Hero to indicate if the function inde/ is not
supported for the specific ,,%- and 3evision %-. %f the 0it representing a particular function inde/ would
lie outside of the 0uffer, it should 0e assumed to 0e =that is, not supported>.
%f &'nction index is non&Hero, the return is any data object. The type and meaning of the returned data
object depends on the UUID and Revision ID.
I%ple%entation 0ote
!ince the purpose of the C-!M method is to avoid the name space collision, the implementation of this
method shall not use an( other method or data o0#ect which is not defined in this specification unless its
driver and usage is completel( under the control of the platform vendor.
./ample<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"8 Advanced Configuration and 'ower %nterface !pecification
// _DS; W Device Specific ;ethod
//
// &r,(> XX#D Xni8ue function identifier
// &r,4> #nte,er Revi2ion 6evel
// &r,3> #nte,er 5unction #nde- (( L Return Supported 5unction2)
// &r,F> Pac+a,e Parameter2
5unction(_DS;$#nt0b9$Buffer0b9/$Buffer0b9$ #nt0b9$ #nt0b9$ Pac+a,e0b9/)

//
// Switch ba2ed on which uni8ue function identifier wa2 pa22ed in
//
2witch(&r,()

//
// 5ir2t function identifier
//
ca2e(<oXX#D('=HFf((aIEII(cE.H.eEbcfdEF(.Ff.fbITc(*))

2witch(&r,3)

//
// 5unction (> Return 2upported function2$ ba2ed on revi2ion
//
ca2e(()

2witch(&r,4)

// revi2ion (> function2 4E. are 2upported


ca2e(() return (Buffer() (-45/)/
// revi2ion 4> function2 4EG are 2upported
ca2e(4) return (Buffer() (-F5/)/
/
// revi2ion 3D> function2 4ET are 2upported
return (Buffer() (-T5/)
/
//
// 5unction 4>
//
ca2e(4)

Y function 4 code Y
Return(7ero)
/
//
// 5unction 3>
//
ca2e(3)

Y function 3 code Y
Return(Buffer()(-((/)
/
ca2e(F) Y function F code Y/
ca2e(.) Y function . code Y/
ca2e(G) if (66e22(&r,4$4) Brea+PointK Y function G code Y /
ca2e(I) if (66e22(&r,4$3) Brea+PointK Y function I code Y )
ca2e(T) if (66e22(&r,4$F) Brea+PointK Y function T code Y )
default Brea+Point /
/
/
//
// Second function identifier
//
ca2e(<oXX#D('4(TededdEdF=4E.fdTE=daHE(=eHaIcTHI..*))

//
// 5unction (> Return 2upported function2 (there i2 onl1 one revi2ion)
//
if (6%8ual(&r,3$7ero))
return (Buffer() (-F/) // onl1 one function 2upported
//
// 5unction 4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "84
//
if (6%8ual(&r,3$0ne))

Y function 4 code Y
Return(Xnicode('te-t*))
/
//
// 5unction 3D> Runtime %rror
//
el2e
Brea+PointK
/
/
//
// #f not one of the function identifier2 we reco,niCe$ then return a buffer
// with bit ( 2et to ( indicatin, no function2 2upported.
//
return(Buffer()(/)
/
10.16 PC/AT RTC/CMOS Devices
Most computers contain an 3TC device which also contains 0atter(&0acked 3AM represented as a linear
arra( of 0(tes. There is a standard mechanism for accessing the first +" 0(tes of non&volatile 3AM in
devices that are compati0le with the Motorola 3TCFCM2! device that was in the %;M 'CFAT. Newer
devices usuall( contain at least 428 0(tes of 0atter(&0acked 3AM. New 'N' %-s were assigned for these
devices.
Certain 0(tes within the 0atter(&0acked 3AM have pre&defined values. %n particular, the time, date, month,
(ear, centur(, alarm time and 3TC periodic interrupt are read&onl(.
10.16.1 PC/AT-compatible RTC/CMOS Devices (PNP0B00)
The standard 'CFAT&compati0le 3TCFCM2! device is denoted 0( the 'n' %- 'N';. %f an AC'%
platform uses a device that is compati0le with this device, it ma( descri0e this in its AC'% namespace. A!1
ma( then read and write this as a linear +"&0(te arra(. %f 'N'; is used, A!1 and AC'% operating
s(stems ma( not assume that an( e/tensions to the CM2! e/ist.
0oteH This means that the C.NT,3S field in the 5i/ed AC'% -escription Ta0le ma( onl( contain values
0etween and +3.
This is an e/ample of how this device could 0e descri0ed<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"82 Advanced Configuration and 'ower %nterface !pecification
Device (R<)()
!ame(_"#D$ %#S&#D(PP!P(B((P))
!ame (_5#R$ Pac+a,e(4)
%#S&#D(PP!P(B((P) /
)
!ame(_)RS$ Re2ource<emplate()
#0(Decode4I$ (-T($ (-T($ (-4$ (-3)
/

0perationRe,ion();S4$ );0S$ ($ (-.()

5ield();S4$ B1te&cc$ !o6oc+$ Pre2erve)
&cce22&2(B1te&cc$ ()$
);(($ =$
$3GI$
);(4$ =$
);(3$ 4I$
$ 34I$
);(F$ =
/
10.16.2 Intel PIIX4-compatible RTC/CMOS Devices (PNP0B01)
The %ntel '%%A" contains an 3TCFCM2! device that is compati0le with the one in the 'CFAT. ;ut it
contains 2*+ 0(tes of non&volatile 3AM. The first +" 0(tes are accessed via the same mechanism as the +"
0(tes in the 'CFAT. The upper 462 0(tes are accessed through an interface that is onl( used on %ntel chips.
=!ee 82394A; 'C%&T2&%!A F %-.AC.1.3AT23 ='%%A"> for details.>
An( platform containing this device or one that is compati0le with it ma( use the 'N' %- 'N';4. This
will allow an AC'%&compati0le 2! to recogniHe the 3TCFCM2! device as using the programming interface
of the '%%A". Thus, the arra( of 0(tes that A!1 can read and write with this device is 2*+ 0(tes long.
0oteH This also means that the C.NT,3S field in the 5i/ed AC'% -escription Ta0le ma( contain values
0etween and 2**.
This is an e/ample of how this device could 0e descri0ed<

Device (R<)()
!ame(_"#D$ %#S&#D(PP!P(B(4P))
!ame (_5#R$ Pac+a,e(4)
%#S&#D(PP!P(B(4P) /
)
!ame(_)RS$ Re2ource<emplate()
#0(Decode4I$ (-T($ (-T($ (-4$ (-3)
#0(Decode4I$ (-T3$ (-T3$ (-4$ (-3)
/

0perationRe,ion();S4$ );0S$ ($ (-4(()

5ield();S4$ B1te&cc$ !o6oc+$ Pre2erve)
&cce22&2(B1te&cc$ ()$
);(($ =$
$3GI$
);(4$ =$
);(3$ 4I$
$ 33.$
);(F$ =$
$ 4=.$
)%!<$ =
/
10.16.3 Dallas Semiconductor-compatible RTC/CMOS Devices (PNP0B02)
-allas !emiconductor 3TCFCM2! devices are compati0le with the one in the 'CFAT, 0ut the( contain 2*+
0(tes of non&volatile 3AM or more. The first +" 0(tes are accessed via the same mechanism as the +" 0(tes
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "83
in the 'CFAT. The upper 0(tes are accessed through an interface that is onl( used on -allas !emiconductor
chips.
An( platform containing this device or one that is compati0le with it ma( use the 'N' %- 'N';2. This
will allow an AC'%&compati0le 2! to recogniHe the 3TCFCM2! device as using the -allas !emiconductor
programming interface. Thus, the arra( of 0(tes that A!1 can read and write with this device is 2*+ 0(tes
long.
-escription of these devices is similar to the '%%A" e/ample a0ove, and the C.NT,3S field of the 5A-T
ma( also contain values 0etween and 2**.
10.17 Control Method User Presence Detection Device
The following section illustrates the operation and definition of the Control Method ,ser 'resence
-etection =,'-> device.
The user presence detection device can optionall( support power management o0#ects =e.g. C'!, C'!3> to
allow the 2! to manage the deviceMs power consumption.
The 'lug and 'la( %- of an AC'% control method user presence detection device is AC'%6.
Ta!le ,-,H Control Method 2ser Presence 5etection 5evice
3!Cect 5escription
C,'- The current user presence detection reading. V3e:uiredW
C,'' ,ser presence detection polling fre:uenc( in tenths of seconds. V2ptionalW
10.17.1 _UPD (User Presence Detect)
This control method returns the user presence detection reading, indicating whether or not the user is
currentl( present from the perspective of this sensor. Three states are currentl( defined for ,'- sensor
readings< absent, present, and 'n3nown, represented 0( the values /, /4, and /55 respectivel(. The
unknown state is used to conve( that the sensor is currentl( una0le to determine user presence due to some
environmental or other transient factor. All other values are reserved.
Arguments<
None
3esult Code<
/< Absent# A user is not currentl( detected 0( this sensor.
/4< Present# A user is currentl( detected 0( this sensor.
/55< Bn3nown< The sensor is currentl( una0le to determine if a user is present or a0sent.
10.17.2 _UPP (User Presence Polling)
This optional o0#ect evaluates to a recommended polling fre:uenc( =in tenths of seconds> for this user
presence sensor. A value of Hero I or the a0sence of this o0#ect when other ,'- o0#ects are defined I
indicates that the 2! does not need to poll the sensor in order to detect meaningful changes in user presence
=the hardware is capa0le of generating as(nchronous notifications>.
The use of polling is allowed 0ut strongl( discouraged 0( this specification. 2.Ms should design s(stems
that as(nchronousl( notif( 2!'M whenever a meaningful change in user presence occursPrelieving the
2! of the overhead associated with polling.
This value is specified as tenths of seconds. 5or e/ample, a value of 4 would 0e used to indicate a 4
second polling fre:uenc(. As this is a recommended value, 2!'M will consider other factors when
determining the actual polling fre:uenc( to use.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"8" Advanced Configuration and 'ower %nterface !pecification
Arguments<
None
3esult Code<
?ero< 'olling 0( the 2! is not re:uired.
All other values< The recommended polling fre:uenc(, in tenths of seconds.
10.17.3 User Presence Sensor Events
To communicate changes in user presence to 2!'M, AM1 code should issue a Not1f:(ud_device$
(-=() whenever a change in user presence has occurred. The 2! receives this notification and calls the
C,'- control method to determine the current user presence status.
,'- notifications should 0e generated whenever a transition occurs 0etween one of the user presence states
=a0sent, present, or unknown> I 0ut at a level of granularit( that provides an appropriate response without
overl( ta/ing the s(stem with unnecessar( interrupts.
10.18 I/O APIC Device
This optional device descri0es a discrete %F2 A'%C device that is not 0us enumerated =e.g., as a 'C% device>.
-escri0ing such a device in the AC'% name space is onl( necessar( if hot plug of this device is supported.
%f hot plug of this device is not supported, an MA-T %F2 A'%C =section *.2.44.+,L%F2 A'%CL> entr( or %F2
!A'%C =section *.2.44.42, J%F2 !A'%C !tructureL> entr( is sufficient to descri0e this device.
An %F2 A'%C device is an %F2 unit that complies with either of the A'%C interrupt models supported 0(
AC'%. These interrupt models are descri0ed !ection *.2.44.+,L%F2 A'%CL and !ection *.2.44.42,L%F2
!A'%C !tructureL. %f the device is an %F2 unit that complies with the A'%C interrupt model, it is declared
using the AC'%A identifier. %f this device is an %F2 unit that complies with the !A'%C interrupt model,
it is declared using the AC'%; identifier. %f this device complies with 0oth the A'%C and !A'%C
interrupt models =%F2/A'%C>, it is declared using the AC'%6 identifier.
An %F2 A'%C device declared using an( of the a0ove identifiers must contain a C$!; o0#ect as defined in
!ection +.2.*, JC$!; =$lo0al !(stem %nterrupt ;ase>L to report its $lo0al !(stem %nterrupt ;ase. %t must
also contain a CC3! o0#ect that reports the 0ase address of the %F2 A'%C device. The CC3! o0#ect is
re:uired to contain onl( one resource, a memor( resource pointing to the %F2 A'%C register 0ase.
Note< 0ecause the CC3! and C$!; methods provide sufficient information, it is not necessar( to provide
CMAT under an %F2 A'%C device.
5or an %F2 A'%C device that is descri0ed 0oth in the MA-T and in the name space, the 0ase address
descri0ed in the MA-T entr( must 0e the same as the 0ase address in the %2 A'%C device CC3! at 0oot
time. 2!'M must use the information from the MA-T until such a time as the CC3! and C$!; methods
in the name space device can 0e processed. At this point 2!'M must ignore the MA-T entr(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "8*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"8+ Advanced Configuration and 'ower %nterface !pecification
11 Power Source Devices
This section specifies the 0atter( and AC adapter device o0#ects 2!'M uses to manage power resources.
A 0atter( device is re:uired to either have a !mart ;atter( su0s(stem or a Control Method ;atter( interface
as descri0ed in this section. 2!'M is re:uired to 0e a0le to connect and manage a 0atter( on either of these
interfaces. This section descri0es these interfaces.
%n the case of a compati0le AC'% !mart ;atter( Ta0le, the -efinition ;lock needs to include a ;usF-evice
package for the !M;&@C. This will install an 2!&specific driver for the !M;us, which in turn will locate
the components of the !mart ;atter( su0s(stem. %n addition to the 0atter( or 0atteries, the !mart ;atter(
su0s(stem includes a charger and a manager device to handle su0s(stems with multiple 0atteries.
The !mart ;atter( !(stem Manager is one implementation of a manager device that is capa0le of
ar0itrating among the availa0le power sources =AC power and 0atteries> for a s(stem. %t provides a superset
of the !mart ;atter( !elector functionalit(, such as safel( responding to power events =AC versus 0atter(
power>, inserting and removing 0atteries and notif(ing the 2! of all such changes. Additionall(, the !mart
;atter( !(stem Manager is capa0le of handling configurations including simultaneous charging and
discharging of multiple 0atteries. ,nlike the !mart ;atter( !elector that shares responsi0ilit( for
configuring the 0atter( s(stem with 2!'M, the !mart ;atter( !(stem Manager alone controls the safe
configuration of the 0atter( s(stem and simpl( issues status changes to 2!'M when the configuration
changes. !mart ;atter( !(stem Manager is the recommended solution for handling multiple&0atter(
s(stems.
11.1 Smart Battery Subsystems
The !mart ;atter( su0s(stem is defined 0( the<
!(stem Management ;us !pecification =!M;!>
!mart ;atter( -ata !pecification =!;-!>
!mart ;atter( Charger !pecification =!;C!>
!mart ;atter( !(stem Manager !pecification =!;!M>
!mart ;atter( !elector !pecification =!;!!>
An AC'%&compati0le !mart ;atter( su0s(stem consists of<
An !M;&@C =C', to !M;&@C> interface
At least one !mart ;atter(
A !mart ;atter( Charger
.ither a !mart ;atter( !(stem Manager or a !mart ;atter( !elector if more than one !mart
;atter( is supported
%n such a su0s(stem, a standard wa( of communicating with a !mart ;atter( and !mart ;atter( Charger is
through the !M;us ph(sical protocols. The !mart ;atter( !(stem Manager or !mart ;atter( !elector
provides event notification =0atter( insertionFremoval, and so on> and charger !M;us routing capa0ilit( for
an( !mart ;atter( su0s(stem. A t(pical !mart ;atter( su0s(stem is illustrated 0elow<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "89
SMBus
7ost
Controller
)1x@+
SBS
Charger
1x=
SBS
S,stem
Manager
1xA
SBS
Batter,1
1xB
SBS
Batter,!
1xB
SBS
Batter,"
1xB
SBS
Batter,(
1xB
SMBus
SMBus
SMBus
SMBus
SMBus
SMBus
7ost
Interface
6igure +$-+ T)pical S%art <atter) Su!s)ste% >S<S?
!M;us defines a fi/ed 9&0it slave address per device. This means that all 0atteries in the s(stem have the
same address =defined to 0e /;>. The slave addresses associated with !mart ;atter( su0s(stem
components are shown in the following ta0le.
Ta!le +$-+ 1xa%ple SM<us 5evice Slave Addresses
SM<us 5evice 5escription SM<us Slave Address >A$-A-?
!M;us @ost !lave %nterface /8
!mart ;atter( ChargerFCharger !elector or Charger !(stem Manager /6
!mart ;atter( !(stem Manager or !mart ;atter( !elector /A
!mart ;atter( /;
.ach !M;us device has up to 2*+ registers that are addressed through the !M;us protocolMs Command
value. !M;us devices are addressed 0( providing the slave address with the desired registerMs Command
value. .ach !M;us register can have non&linear registersK that is, command register 4 can have a 32&0(te
string, while command register 2 can have a 0(te, and command register 3 can have a word.
The !M;us host slave interface provides a standard mechanism for the host C', to generate !M;us
protocol commands that are re:uired to communicate with !M;us devices =in other words, the !mart
;atter( components>. AC'% defines such an !M;&@C that resides in em0edded controller address spaceK
however, an 2! can support an( !M;&@C that has a native !M;&@C device driver.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"88 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "86
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"6 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "64
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"62 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "63
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"6" Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "6*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"6+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "69
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
"68 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ "66
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
* Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*2 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*" Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ **
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*8 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*4 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *44
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*42 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *43
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*4" Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *4*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*4+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *49
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*48 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *46
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*2 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *24
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*22 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *23
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*2" Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *2*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*2+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *29
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*28 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *26
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*3 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *34
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*32 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *33
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*3" Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *3*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*3+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *39
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*38 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *36
The !mart ;atter( !(stem Manager provides a standard programming model to control multiple
!mart ;atteries in a !mart ;atter( su0s(stem. A !mart ;atter( !(stem Manager provides the following
t(pes of 0atter( management functions<
.vent notification for 0atter( insertion and removal
.vent notification for AC power connected or disconnected
!tatus of which !mart ;atter( is communicating with the !M;&@C
!tatus of which !mart ;atter(=s> are powering the s(stem
!tatus of which !mart ;atter(=s> are connected to the charger
!tatus of which !mart ;atteries are present in the s(stem
.vent notification when the !mart ;atter( !(stem Manager switches from one power source to
another
@ardware&switching to an alternate !mart ;atter( when the !mart ;atter( suppl(ing power runs
low
@ardware switching 0etween 0atter(&powered and AC&powered powered operation
The !mart ;atter( !(stem Manager function can reside in a standalone !M;us slave device =!mart ;atter(
!(stem Manager that responds to the /A slave address>, ma( 0e present within a smart charger device
=!mart ;atter( Charger that responds to the /6 slave address>, or ma( 0e com0ined within the em0edded
controller =that responds to the /A slave address>. %f 0oth a !mart ;atter( Charger and a standalone !mart
;atter( !(stem Manager are present in the same !mart ;atter( su0s(stem, then the driver assumes that the
standalone !mart ;atter( !(stem Manager is wired to the 0atteries.
The !mart ;atter( charger is an !M;us device that provides a standard programming model to control the
charging of !mart ;atteries present in a !mart ;atter( su0s(stem. 5or single 0atter( s(stems, the !mart
;atter( Charger is also responsi0le for notif(ing the s(stem of the 0atter( and AC status.
The !mart ;atter( provides intelligent chemistr(&independent power to the s(stem. The !mart ;atter( is
capa0le of informing the !mart ;atter( charger of its charging re:uirements =which provides chemistr(
independence> and providing 0atter( status and alarm features needed for platform 0atter( management.
11.1.1 ACPI Smart Battery Status Change Notifcation Requirements
The !mart ;atter( !(stem Manager, the !mart ;atter( !elector, and the !mart ;atter( Charger each have
an optional mechanism for notif(ing the s(stem that the 0atter( configuration or AC status has changed.
AC'% re:uires that this interrupt mechanism 0e through the !M;us Alarm Notif( mechanism.
5or s(stems using an em0edded controller as the !M;us host, a 0atter( s(stem device issues a status
change notification 0( either mastering the !M;us to send the notification directl( to the !M;us host, or
0( emulating it in the em0edded controller. %n either case, the process is the same. After the notification is
received or emulated, the em0edded controller asserts an !C%. The source of the !C% is identified 0( a $'.
that indicates the !C% was caused 0( the em0edded controller. The em0edded controllerMs status register
alarm 0it is set, indicating that the !M;us host received an alarm message. The Alarm Address 3egister
contains the address of the !M;us device that originated the alarm and the Alarm -ata 3egisters contain
the contents of that deviceMs status register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*" Advanced Configuration and 'ower %nterface !pecification
11.1.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *"4
Smart Battery Charger
This re:uires a !mart ;atter( Charger, on a 0atter( or AC status change, to generate an !M;us Alarm
Notif(. The contents of the !mart ;atter( ChargerMs Charger!tatus=> command register =/43> is placed in
the em0edded controllerMs Alarm -ata 3egisters, the !mart ;atter( ChargerMs slave address
4"
=/6> is
placed in the em0edded controllerMs Alarm Address 3egister and the .CMs !tatus 3egisterMs Alarm 0it is set.
The em0edded controller then asserts an !C%.
4"
Notice that the 4. !M;us protocol specification is am0iguous a0out the definition of the Jslave addressL
written into the command field of the host controller. %n this case, the slave address is actuall( the
com0ination of the 9&0it slave address and the Write protocol 0it. Therefore, 0it of the initiating deviceMs
slave address is aligned to 0it 4 of the host controllerMs slave command register, 0it 4 of the slave address is
aligned to 0it 2 of the controllerMs slave command register, and so on.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*"2 Advanced Configuration and 'ower %nterface !pecification
11.1.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *"3
Smart Battery Charger with optional System Manager or Selector
A !mart ;atter( Charger that contains the optional !(stem Manager or !elector function =as indicated 0(
the Charger!pec%nfo=> command register, /44, 0it "> is re:uired to generate an !M;us Alarm Notif( on a
0atter( or AC status change. The content of the !mart ;atter( Charger with an optional !(stem Manager,
the ;atter(!(stem!tate=> command register =/24> =or in the case of an optional !elector, the
!elector!tate=> =/4> >, is placed in the .CMs Alarm -ata 3egisters, the !mart ;atter( ChargerMs slave
address =/6> is placed in the em0edded controllerMs Alarm Address 3egister, and the em0edded
controllerMs !tatus 3egisterMs Alarm 0it is set. The em0edded controller then asserts an !C%.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*"" Advanced Configuration and 'ower %nterface !pecification
11.1.1.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *"*
Smart Battery System Manager
The !mart ;atter( !(stem Manager is re:uired to generate an !M;us Alarm Notif( on a 0atter( or AC
status change. The content of the !mart ;atter( !(stem ManagerMs ;atter(!(stem!tate=> command register
=/4> is placed in the .CMs Alarm -ata 3egisters, the !mart ;atter( !(stem ManagerMs slave address
=/A> is placed in the .CMs Alarm Address 3egister, and the em0edded controllerMs !tatus 3egisterMs
Alarm 0it is set. The em0edded controller then asserts an !C%.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*"+ Advanced Configuration and 'ower %nterface !pecification
11.1.1.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *"9
Smart Battery Selector
The re:uirements for the !mart ;atter( !elector are the same as the re:uirements for the !mart ;atter(
!(stem Manager, with the e/ception that the contents of the !elector!tate=> command register =/4> are
used instead of ;atter(!(stem!tate=>. The !mart ;atter( !elector is a su0set of the !mart ;atter( !(stem
Manager and does not have the added support for simultaneous chargeFdischarge of multiple 0atteries. The
!(stem Manager is the preferred implementation.
11.1.2 Smart Battery Objects
The !mart ;atter( su0s(stem re:uires a num0er of o0#ects to define its interface. These are summariHed
0elow<
Ta!le +$-& S%art <atter) 3!Cects
3!Cect 5escription
C@%- This is the hardware %- named o0#ect that contains a string. 5or !mart ;atter( su0s(stems, this
o0#ect returns the value of JAC'%2.L This identifies the !mart ;atter( su0s(stem to the
!mart ;atter( driver.
C!;! This is the !mart ;atter( named o0#ect that contains a -W23-. This named o0#ect returns the
configuration of the !mart ;atter( su0s(stem and is encoded as follows<
I Ma/imum of one !mart ;atter( and no !mart ;atter( !(stem Manager or !mart ;atter(
!elector.
4 I Ma/imum of one !mart ;atter( and a !mart ;atter( !(stem Manager or !mart ;atter(
!elector.
2 I Ma/imum of two !mart ;atteries and a !mart ;atter( !(stem Manager or !mart ;atter(
!elector.
3 I Ma/imum of three !mart ;atteries and a !mart ;atter( !(stem Manager or !mart ;atter(
!elector.
" I Ma/imum of four !mart ;atteries and a !mart ;atter( !(stem Manager or !mart ;atter(
!elector.
The ma/imum num0er of 0atteries is for the s(stem. Therefore, if the platform is capa0le of
supporting four 0atteries, 0ut onl( two are normall( present in the s(stem, then this field should
return ". Notice that a value of indicates a ma/imum support of one 0atter( and there is no
!mart ;atter( !(stem Manager or !mart ;atter( !elector present in the s(stem.
11.1.3 Smart Battery Subsystem Control Methods
As the !M;us is not an enumera0le 0us, all devices on the 0us must 0e declared in the AC'% name space.
As the !mart ;atter( driver understands !mart ;atter(, !mart ;atter( Charger, and !mart ;atter( !(stem
Manager or !mart ;atter( !electorK onl( a single device needs to 0e declared per !mart ;atter( su0s(stem.
The driver gets information a0out the su0s(stem through the hardware %- =which defines a !mart ;atter(
su0s(stem> and the num0er of !mart ;atteries supported on this su0s(stem =C!;! named o0#ect>. The
AC'% !mart ;atter( ta0le indicates the energ( levels of the platform at which the s(stem should warn the
user and then enter a sleeping state. The !mart ;atter( driver then reflects these as threshold alarms for the
!mart ;atteries.
The C!;! control method returns the configuration of the !mart ;atter( su0s(stem. This named o0#ect
returns a -W23- value with a num0er from to ". %f the num0er of 0atteries is greater than , then the
!mart ;atter( driver assumes that a !mart ;atter( !(stem Manager or !mart ;atter( !elector is present. %f
, then the !mart ;atter( driver assumes a single !mart ;atter( and neither a !mart ;atter( !(stem
Manager nor !mart ;atter( !elector is present.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*"8 Advanced Configuration and 'ower %nterface !pecification
A !mart ;atter( device declaration in the AC'% name space re:uires the C$1E o0#ect if potentiall(
contentious accesses to device resources are performed 0( non&2! code. !ee section +.*.9, JC$1E =$lo0al
1ock>,L for details a0out the C$1E o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *"6
11.1.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
** Advanced Configuration and 'ower %nterface !pecification
Example: Single Smart Battery Subsystem
This section illustrates how to define a !mart ;atter( su0s(stem containing a single !mart ;atter( and
charger. The platform implementation is illustrated 0elow<
$m0edded
Controller
Ports2 1xK"3 1xKK
Off set2 1x@1
Luer,2 1x(1
SMBus
7ost
Controller
)1x@+
SBS
Charger
1x=
SBS
Batter,
1xB
SMBus
7ost
Interface
6igure +$-& Single S%art <atter) Su!s)ste%
%n this e/ample, the platform is using an !M;&@C that resides within the em0edded controller and meets
the AC'% standard for an em0edded controller interface and !M;&@C interface. The em0edded controller
interface sits at s(stem %F2 port addresses /+2 and /++. The !M;&@C is at 0ase address /8 within
em0edded controller address space =as defined 0( the AC'% em0edded controller specification> and
responds to events on :uer( value /3.
%n this e/ample the !mart ;atter( su0s(stem onl( supports a single !mart ;atter(. The A!1 code for
descri0ing this interface is shown 0elow<
Device (%)()
!ame (_"#D$ %#S&#D(PP!P()(HP))
!ame (_)RS$
Re2ource<emplate () // port (-I3 and (-II
#0 (Decode4I$ (-I3$ (-I3$ ($ 4)$
#0 (Decode4I$ (-II$ (-II$ ($ 4)
/
)
!ame (_:P%$ ()
Device (S;B()
!ame (_"#D$ P&)P#(((4P) // Smart Batter1 "o2t )ontroller
!ame (_%)$ (-=(F() // %) off2et ((-=()$ Juer1 ((-F()
Device (SBS() // Smart Batter1 Sub212tem
!ame (_"#D$ P&)P#(((3P) // Smart Batter1 Sub212tem #D
!ame(_SBS$ (-4) // #ndicate2 2upport for one batter1
/ // end of SBS(
/ // end of S;B(
/ // end of %)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ **4
11.1.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
**2 Advanced Configuration and 'ower %nterface !pecification
Multiple Smart Battery Subsystem: Example
This section illustrates how to define a !mart ;atter( su0s(stem that contains three !mart ;atteries, a
!mart ;atter( !(stem Manager, and a !mart ;atter( Charger. The platform implementation is illustrated
0elow<
&%be""e" Controller
Ports2 1x!113 1x!1!
Offset2 1x=1
Luer,2 1x(!
SMBus
7ost
Controller
)1x@+
SBS
Charger
1x=
SBS
S,stem
Manager
1xA
SBS
Batter,1
1xB
SBS
Batter,!
1xB
SBS
Batter,"
1xB
6irtual
SMBus
6irtual
SMBus
SMBus
SMBus
SMBus
7ost
Interface
6igure +$-# S%art <atter) Su!s)ste%
%n this e/ample, the platform is using an !M;&@C that resides within the em0edded controller and meets
the AC'% standard for an em0edded controller interface and !M;&@C interface. The em0edded controller
interface sits at s(stem %F2 port addresses /4 and /44. The !M;&@C resides at 0ase address /6
within em0edded controller address space =as defined 0( the AC'% em0edded controller specification> and
responds to events on :uer( value /34.
%n this e/ample the !mart ;atter( su0s(stem supports three !mart ;atteries. The !mart ;atter( Charger
and !mart ;atter( !(stem Manager reside within the em0edded controller, meet the !mart ;atter( !(stem
Manager and !mart ;atter( Charger interface specification, and respond to their 9&0it addresses =/A and
/6 respectivel(>. The A!1 code for descri0ing this interface is shown 0elow<
Device (%)4)
!ame (_"#D$ %#S&#D(PP!P()(HP))
!ame (_)RS$
Re2ource<emplate () // port (-4(( and (-4(4
#0(Decode4I$ (-4(($ (-4(($ ($ 3)
/
)
!ame (_:P%$ 4)
Device (S;B4)
!ame (_"#D$ P&)P#(((4P) // Smart Batter1 "o2t )ontroller
!ame (_%)$ (-H(F4) // %) off2et ((-H()$ Juer1 ((-F4)
Device (SBS4) // Smart Batter1 Sub212tem
!ame (_"#D$ P&)P#(((3P) // Smart Batter1 Sub212tem #D
!ame (_SBS$ (-F) // #ndicate2 2upport for three batterie2
/ // end of SBS4
/ // end of S;B4
/ // end of %)
11.2 Control Method Batteries
The following section illustrates the operation and definition of the Control Method ;atter(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ **3
11.2.1 Battery Events
The AM1 code handling an !C% for a 0atter( event notifies the s(stem of which 0atter(Ms status ma( have
changed. The 2! uses the C;!T control method to determine the current status of the 0atteries and what
action, if an(, should 0e taken =for more information a0out the C;!T control method, see section 4.2.2,
J;atter( Control MethodsL>. The t(pical action is to notif( applications monitoring the 0atter( status to
provide the user with an up&to&date displa( of the s(stem 0atter( state. ;ut in some cases, the action ma(
involve generating an alert or even forcing a s(stem into a sleeping state. %n an( case, an( changes in
0atter( status should generate an !C% in a timel( manner to keep the s(stem power state ,% consistent with
the actual state of the s(stem 0atter( =or 0atteries>.
,nlike most other devices, when a 0atter( is inserted or removed from the s(stem, the device itself =the
0atter( 0a(> is still considered to 0e present in the s(stem. 5or most s(stems, the C!TA for this device will
alwa(s return a value with 0its &3 set and will toggle 0it " to indicate the actual presence of a 0atter( =see
section +.3.9, JC!TA V!tatusWL>. When this insertion or removal occurs, the AM1 code handler for this
event should issue a 0otif)=batteryFde2ice, /84> to indicate that the static 0atter( information has
changed. 5or s(stems that have 0atter( slots in a docking station or 0atteries that cannot 0e surprise&
removed, it ma( 0e 0eneficial or necessar( to indicate that the entire device has 0een removed. %n this case,
the standard methods and notifications descri0ed in section +.3, J-evice %nsertion, 3emoval, and !tatus
20#ects,L should 0e used.
When the present state of the 0atter( has changed or when the trip point set 0( the C;T' control method is
reached or crossed, the hardware will assert a general purpose event. The AM1 code handler for this event
issues a 0otif)=batteryFde2ice, /8> on the 0atter( device. This notification is also sent when the !tatus
5lags returned from C;M- change.
%n the case where the remaining 0atter( capacit( 0ecomes criticall( low, the AM1 code handler issues a
0otif)=batteryFde2ice, /8> and reports the 0atter( critical flag in the C;!T o0#ect. The 2! performs an
emergenc( shutdown. 5or a full description of the critical 0atter( state, see section 3.6.", J1ow ;atter(
1evels.L
!ometimes the value to 0e returned from C;!T or C;%5 will 0e temporaril( unknown. %n this case, the
method ma( return the value /55555555 as a placeholder. When the value 0ecomes known, the
appropriate notification =/8 for C;!T or /84 for ;%5> should 0e issued, in like manner to an( other
change in the data returned 0( these methods. This will cause 2!'M to re&evaluate the methodPo0taining
the correct data value.
When one or more of the status flags returned 0( the C;M- control method change, AM1 code issues a
0otif)=batteryFde2ice, /82> on the 0atter( device unless this change occurs during a call to C;MC and the
value of the status flags in C;M- match the value passed in to C;MC. %f the value of the status 0its cannot
0e set to reflect the action re:uested 0( the e/ecuting C;MC, the AM1 code will issue this notification.
5or e/ample, calling C;MC with 0it set to initiate a cali0ration c(cle while AC power is not availa0le
will cause AM1 to issue a 0otif)=batteryFde2ice, /82>.
11.2.2 Battery Control Methods
The Control Method ;atter( is a 0atter( with an AM1 code interface 0etween the 0atter( and the host 'C.
The 0atter( interface is completel( accessed 0( AM1 code control methods, allowing the 2.M to use an(
t(pe of 0atter( and an( kind of communication interface supported 0( AC'%. 2!'M re:uires accurate
0atter( data to perform optimal power management polic( and to provide the end user with a meaningful
estimation of remaining 0atter( life. As such, control methods that return 0atter( information should
calculate this information rather than return hard coded data.
A Control Method ;atter( is descri0ed as a device o0#ect. .ach device o0#ect supporting the Control
Method ;atter( interface contains the following additional control methods. When there are two or more
0atteries in the s(stem, each 0atter( will have an independent device o0#ect in the name space.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
**" Advanced Configuration and 'ower %nterface !pecification
Ta!le +$-# <atter) Control Methods
3!Cect 5escription
C;%5 3eturns static information a0out a 0atter( =in other words, model num0er, serial num0er, design
voltage, and so on>.
C2!C 2!'M Capa0ilities conve(ance for 0atteries.
C;!T 3eturns the current 0atter( status =in other words, d(namic information a0out the 0atter(, such
as whether the 0atter( is currentl( charging or discharging, an estimate of the remaining 0atter(
capacit(, and so on>.
C;T' !ets the ;atter( Trip point, which generates an !C% when 0atter(capacit( reaches the specified
point.
C'C1 1ist of pointers to the device o0#ects representing devices powered 0( the 0atter(.
C!TA 3eturns general status of the 0atter( =for a description of the C!TA control method, see section
+.3.9, JC!TA =!tatusWL>.
C;TM 3eturns estimated runtime at the present average rate of drain, or the runtime at a specified
rate.
C;M- 3eturns 0atter( information related to 0atter( recali0ration and charging control.
C;MC Control cali0ration and charging
A Control Method ;atter( device declaration in the AC'% name space re:uires the C$1E o0#ect if
potentiall( contentious accesses to device resources are performed 0( non&2! code. !ee section +.*.9,
JC$1E =$lo0al 1ock>,L for details a0out the C$1E o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ***
11.2.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
**+ Advanced Configuration and 'ower %nterface !pecification
_BIF (Battery Information)
This o0#ect returns the static portion of the Control Method ;atter( information. This information remains
constant until the 0atter( is changed.
Arguments<
None
3esult Code<
Pac+a,e
// &S)##7 i2 &S)## character 2trin, terminated with a (-((.
Power Xnit //DW0RD
De2i,n )apacit1 //DW0RD
6a2t 5ull )har,e )apacit1 //DW0RD
Batter1 <echnolo,1 //DW0RD
De2i,n @olta,e //DW0RD
De2i,n )apacit1 of Warnin, //DW0RD
De2i,n )apacit1 of 6ow //DW0RD
Batter1 )apacit1 :ranularit1 4 //DW0RD
Batter1 )apacit1 :ranularit1 3 //DW0RD
;odel !umber //&S)##7
Serial !umber //&S)##7
Batter1 <1pe //&S)##7
0%; #nformation //&S)##7
/
Ta!le +$-( D<I6 Method "esult Codes
6ield 6or%at 5escription
'ower ,nit -W23- %ndicates the units used 0( the 0atter( to report its capacit( and
chargeFdischarge rate information to the 2!.
/ I Capacit( information is reported in VmWhW and
chargeFdischarge rate information in VmWW.
/4 I Capacit( information is reported in VmAhW and
chargeFdischarge rate information in VmAW.
-esign Capacit( -W23- ;atter(Ms design capacit(. -esign Capacit( is the nominal capacit( of a
new 0atter(. The Design Capacity value is e/pressed as power VmWhW or
current VmAhW depending on the Power Bnit value.
/ I /95555555 =in VmWhW or VmAhW >
/55555555 I ,nknown design capacit(
1ast 5ull Charge
Capacit(
-W23- 'redicted 0atter( capacit( when full( charged. The ,ast &'ll C1arge
Capacity value is e/pressed as power =mWh> or current =mAh>
depending on the Power Bnit value.
/h I /95555555 =in VmWhW or VmAhW >
/55555555 I ,nknown last full charge capacit(
;atter(
Technolog(
-W23- / I 'rimar( =for e/ample, non&rechargea0le>
/4 I !econdar( =for e/ample, rechargea0le>
-esign Doltage -W23- Nominal voltage of a new 0atter(.
/ I /95555555 in VmDW
/55555555 I ,nknown design voltage
-esign capacit( of
Warning
-W23- 2.M&designed 0atter( warning capacit(. !ee section 3.6.", J1ow
;atter( 1evels.L
/ I /95555555 in VmWhW or VmAhW
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ **9
6ield 6or%at 5escription
-esign Capacit(
of 1ow
-W23- 2.M&designed low 0atter( capacit(. !ee section 3.6.", J1ow ;atter(
1evels.L
/ I /95555555 in VmWhW or VmAhW
;atter( Capacit(
$ranularit( 4
-W23- ;atter( capacit( granularit( 0etween low and warning in VmAhW or
VmWhW. That is, this is the smallest increment in capacit( that the 0atter(
is capa0le of measuring. !ee note 0elow for more details
;atter( Capacit(
$ranularit( 2
-W23- ;atter( capacit( granularit( 0etween warning and 5ull in VmAhW or
VmWhW. That is, this is the smallest increment in capacit( that the 0atter(
is capa0le of measuring. This ma( 0e a different value than ;atter(
Capacit( $ranularit( 4 to accommodate s(stems where the granularit(
accurac( ma( change depending on the 0atter( level. !ee note 0elow for
more details.
Model Num0er A!C%%? 2.M&specific Control Method ;atter( model num0er
!erial Num0er A!C%%? 2.M&specific Control Method ;atter( serial num0er
;atter( T(pe A!C%%? The 2.M&specific Control Method ;atter( t(pe
2.M %nformation A!C%%? 2.M&specific information for the 0atter( that the
,% uses to displa( the 2.M information a0out the ;atter(. %f the 2.M
does not support this information, this should 0e reserved as /.
0otesH
A secondar(&t(pe 0atter( should report the corresponding capacit( =e/cept for ,nknown>.
2n a multiple&0atter( s(stem, all 0atteries in the s(stem should return the same granularit(.
2perating s(stems prefer these control methods to report data in terms of power =watts>.
2n a multiple&0atter( s(stem, all 0atteries in the s(stem must use the same power unit.
The definition of 0atter( capacit( granularit( has 0een clarified. 5or 2!'M to determine if
s(stems support the clarified definition of 0atter( capacit( granularit(, 2!'M ma( evaluate an
C2!C method at the 0atter( scope to indicate support for this capa0ilit(, and for the platform to
indicate if it supports these e/tended capa0ilities.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
**8 Advanced Configuration and 'ower %nterface !pecification
11.2.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ **6
_OSC Defnition for Control Method Battery
C2!C for control method 0atter( is uni:uel( identified 0( the ,,%-< f+/fc./!-$f+A-(,./-!.,#-
A#f/##a+d#A!
The 3evision 4 capa0ilities descri0ed under this C2!C are defined in Ta0le 4&*.
Ta!le +$-A Control Method <atter) D3SC Capa!ilities 5:3"5& <it 5efinitions
Capa!ilities
5:3"5&
!its
Interpretation
& 2! does not support revised 0atter( granularit( definition.
4 & 2! supports revised 0atter( granularit( definition.
4 & 2! does not support specif(ing wake on low 0atter( user preference.
4 & 2! supports specif(ing wake on low 0atter( user preference, !ee section 6.4.3,
JC;1T ;atter( 1evel Threshold> for more information.
2&34 3eserved
;its defined in Capa0ilities -W23-2 provide information regarding 2! supported features. Contents in
-W23-2 are passed one&wa(K the 2! will disregard the corresponding 0its of -W23-2 in the 3eturn
Code.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*+ Advanced Configuration and 'ower %nterface !pecification
11.2.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *+4
_BST (Battery Status)
This o0#ect returns the present 0atter( status. Whenever the )attery State value changes, the s(stem will
generate an !C% to notif( the 2!.
Arguments<
None
3esult Code<
Pac+a,e
Batter1 State //DW0RD
Batter1 Pre2ent Rate //DW0RD
Batter1 Remainin, )apacit1 //DW0RD
Batter1 Pre2ent @olta,e //DW0RD
/
Ta!le +$-- D<ST Method "esult Codes
6ield 6or%at 5escription
;atter(
!tate
-W23- ;it values. Notice that the C1arging 0it and the Disc1arging 0it are mutuall(
e/clusive and must not 0oth 0e set at the same time. .ven in critical state,
hardware should report the corresponding chargingFdischarging state.
;it I 4 indicates the 0atter( is discharging.
;it4 I 4 indicates the 0atter( is charging.
;it2 I 4 indicates the 0atter( is in the critical energ( state =see section 3.6.",
J1ow ;atter( 1evelsL>. This does not mean 0atter( failure.
;atter(
'resent
3ate
-W23- 3eturns the power or current 0eing supplied or accepted through the 0atter(Ms
terminals =direction depends on the )attery State value>. The )attery Present
$ate value is e/pressed as power VmWhW or current VmAhW depending on the
Power Bnit value.
;atteries that are rechargea0le and are in the discharging state are re:uired to
return a valid )attery Present $ate value.
/ I /95555555 in VmWW or VmAW
/55555555 I ,nknown rate
;atter(
3emaining
Capacit(
-W23- 3eturns the estimated remaining 0atter( capacit(. The )attery $emaining
Capacity value is e/pressed as power VmWhW or current VmAhW depending on
the Power Bnit value.
;atteries that are rechargea0le are re:uired to return a valid )attery
$emaining Capacity value.
/ I /95555555 in VmWhW or VmAhW
/55555555 I ,nknown capacit(
;atter(
'resent
Doltage
-W23- 3eturns the voltage across the 0atter(Ms terminals.
;atteries that are rechargea0le must report )attery Present Aoltage.
/ I /95555555 in VmDW
/55555555 I ,nknown voltage
0oteH 2nl( a primar( 0atter( can report unknown voltage.
Notice that when the 0atter( is a primar( 0atter( =a non&rechargea0le 0atter( such as an Alkaline&
Manganese 0atter(> and cannot provide accurate information a0out the 0atter( to use in the calculation of
the remaining 0atter( life, the Control Method ;atter( can report the percentage directl( to 2!. %t does so
0( reporting the 1ast 5ull Charged Capacit( \4 and ;atter('resent3ate\/55555555. This means that
;atter( 3emaining Capacit( directl( reports the 0atter(Ms remaining capacit( VXW as a value in the range
through 4 as follows<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*+2 Advanced Configuration and 'ower %nterface !pecification
Re%aining Battery Percentage9:; <
Battery Re%aining Capacity 9<0 E 300;
+ast 6(ll Charge" Capacity 9<300;
= 300
Re%aining Battery +ife 9h; <
Battery Re%aining Capacity 9%Ah$%.h;
Battery Present Rate 9<0'66666666;
< (n/no#n
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *+3
11.2.2.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*+" Advanced Configuration and 'ower %nterface !pecification
_BTP (Battery Trip Point)
This o0#ect is used to set a trip point to generate an !C% whenever the )attery $emaining Capacity reaches
or crosses the value specified in the C;T' o0#ect. !pecificall(, if )attery $emaining Capacity is less than
the last argument passed to C;T', a notification must 0e issued when the value of )attery $emaining
Capacity rises to 0e greater than or e:ual to this trip&point value. !imilarl(, if )attery $emaining Capacity
is greater than the last argument passed to C;T', a notification must 0e issued when the value of )attery
$emaining Capacity falls to 0e less than or e:ual to this trip&point value. The last argument passed to C;T'
will 0e kept 0( the s(stem.
%f the 0atter( does not support this function, the C;T' control method is not located in the name space. %n
this case, the 2! must poll the )attery $emaining Capacity value.
Arguments<
1evel at which to set the trip point<
/4 I /95555555 =in units of mWh or mAh, depending on the Power Bnits value>
/ I Clear the trip point
3esult Code<
None
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *+*
11.2.2.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*++ Advanced Configuration and 'ower %nterface !pecification
_BTM (Battery Time)
This optional o0#ect returns the estimated runtime of the 0atter( while it is discharging.
Arguments<
3ate at which the 0atter( is e/pected to discharge<
/ I indicates that the 0atter( will continue discharging at the current rate. The rate
should 0e 0ased on the average rate of drain, not the current rate of drain.
/4 I /95555555 I the rate =in mA or mW>.
3esult Code<
/ I !pecified rate is too large for 0atteries to suppl(. %f the argument was /,
C;TM should onl( return / if the 0atter( is critical.
/4 I /5555555. I .stimated runtime in seconds.
/55555555 I 3untime is unknown.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *+9
11.2.2.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*+8 Advanced Configuration and 'ower %nterface !pecification
_BMD (Battery Maintenance Data)
This optional o0#ect returns information a0out the 0atter(Ms capa0ilities and current state in relation to
0atter( cali0ration and charger control features. %f the C;MC o0#ect =defined 0elow> is present under a
0atter( device, this o0#ect must also 0e present. Whenever the Stat's &lags value changes, AM1 code will
issue a 0otif)=batteryFde2ice, /82>. %n addition, AM1 will issue a 0otif)=batteryFde2ice, /82> if
evaluating C;MC did not result in causing the Stat's &lags to 0e set as indicated in that argument to
C;MC. AM1 is not re:uired to issue 0otif)=batteryFde2ice, /82> if the Stat's &lags change while
evaluating C;MC unless the change does not correspond to the argument passed to C;MC..
Arguments<
None
3esult Code<
Pac+a,e Statu2 5la,2 //DW0RD
)apabilit1 5la,2 //DW0RD
Recalibrate )ount //DW0RD
Juic+ Recalibrate <ime //DW0RD
Slow Recalibrate <ime //DW0RD/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *+6
Ta!le +$-. D<M5 Method "esult Codes
6ield 6or%at 5escription
!tatus
5lags
-W23- ;it values. ;it is mutuall( e/clusive with ;it4 and ;it2. %f the charger is
0eing manuall( controlled, there cannot 0e an AM1 controlled cali0ration
c(cle.
;it I 4 indicates the 0atter( is running an AM1 controlled cali0ration c(cle
;it4 I 4 indicates that charging has 0een disa0led.
;it2 I 4 indicates the 0atter( is configured to discharge while AC power is
availa0le.
;it3 I 4 indicates that the 0atter( should 0e recali0rated.
;it" I 4 indicates that the 2! should put the s(stem into stand0( to speed
charging during a cali0ration c(cle. This is optional =0ased on user
preference> if J!low 3ecali0rate TimeL is not e:ual to /.
;it* I ;it34 I reserved.
Capa0ilit(
5lags
-W23- ;it values that descri0e the capa0ilities of the 0atter( s(stem. These 0its allows
a 0atter( s(stem with more limited capa0ilities to still 0e cali0rated 0( 2!'M.
;it I 4 indicates that an AM1 controlled cali0ration c(cle is supported.
;it4 I 4 indicates that disa0ling the charger is supported.
;it2 I 4 indicates that discharging while running on AC is supported.
;it3 I 4 indicates that calling C;MC for one 0atter( will affect the state of all
0atteries in the s(stem. This is for 0atter( s(stems that cannot control
0atteries individuall(.
;it" I 4 indicates that cali0ration should 0e done 0( first full( charging the
0atter( and then discharging it. Not setting this 0it will indicate that
cali0ration can 0e done 0( simpl( discharging the 0atter(.
;it" I ;it34 I reserved.
3ecali0rate
Count
-W23- This is used 0( 0atter( s(stems that canMt detect when cali0ration is re:uired,
0ut wish to recommend that the 0atter( should 0e cali0rated after a certain
num0er of c(cles. Counting the num0er of c(cles and partial c(cles is done 0(
the 2!.
/ I 2nl( cali0rate when !tatus 5lag 0it 3 is set.
/ I /55555555 I cali0rate 0atter( after detecting this man(
0atter( c(cles.
Guick
3ecali0rate
Time
-W23- 3eturns the estimated time it will take to cali0rate the 0atter( if the s(stem is
put into stand0( whenever Stat's &lags ;it" is set. While the AM1 controlled
cali0ration c(cle is in progress, this returns the remaining time in the
cali0ration c(cle.
/ I indicates that stand0( while cali0rating the 0atter( is not
supported. The s(stem should remain in ! until cali0ration is
completed.
/4 I /5555555. I estimated recali0ration time in seconds.
/55555555 I indicates that the estimated time to recali0rate the 0atter( is
unknown.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*9 Advanced Configuration and 'ower %nterface !pecification
6ield 6or%at 5escription
!low
3ecali0rate
Time
-W23- 3eturns the estimated time it will take to cali0rate the 0atter( if Stat's &lag
;it" is ignored. While the AM1 controlled cali0ration c(cle is in progress, this
returns the remaining time in the cali0ration c(cle.
/ I indicates that 0atter( cali0ration ma( not 0e successful if
Stat's &lags ;it" is ignored.
/4 I /5555555. I estimated recali0ration time in seconds.
/55555555 I indicates that the estimated time to recali0rate the 0atter( is
unknown.
!ee section 3.6.*, J;atter( Cali0rationL for an overview of ;atter( Cali0ration.
The Capability &lags and $ecalibration Co'nt are used to indicate what functions are controlled 0( AM1
and what functions are controlled 0( 2!'M as descri0ed in section 3.6.*, J;atter( Cali0rationL. %f the
s(stem does not implement an AM1 controlled cali0ration c(cle =0it >, it ma( indicate using 0it 4 and 0it 2
that the 2! can control a generic cali0ration c(cle without prompting the user to remove the power cord.
$ecalibration Co'nt ma( 0e used to indicate that the ;%2! cannot determine when cali0ration should 0e
preformed so 0it 3 of the Stat's &lags will never 0e set. %n that case, 2!'M will attempt to count the
num0er of c(cles.
;it3 is used 0( s(stems that do not have individual control over the 0atteries and can onl( perform
cali0ration on all 0atteries in the s(stem at once. 2n such a s(stem, if one 0atter( re:uests cali0ration and
another 0atter( does not, the 2! ma( suggest that the user remove the 0atter( that doesnMt need cali0ration,
0efore initiating the cali0ration c(cle. When this 0it is set, reading the 3ecali0rate Time from either 0atter(
should give the time to recali0rate all 0atteries present in the s(stem.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *94
11.2.2.7
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*92 Advanced Configuration and 'ower %nterface !pecification
_BMC (Battery Maintenance Control)
This o0#ect is used to initiate cali0ration c(cles or to control the charger and whether or not a 0atter( is
powering the s(stem. This o0#ect is onl( present under a 0atter( device if the C;M- Capabilities &lags
have 0it , 4, or 2 set.
Arguments<
5lags indicating which features to ena0le<
;it I !et to initiate an AM1 controlled cali0ration c(cle. Clear to end the cali0ration c(cle.
;it4 I !et to disa0le charging. Clear to ena0le charging.
;it2 I !et to allow the 0atter( to discharge while AC power is availa0le. Clear to prevent
discharging while AC power is availa0le.
3esult Code<
None
!ee section 3.6.* for an overview of ;atter( Cali0ration.
.valuating this o0#ect with 0it set will initiate an AM1 controlled recali0ration c(cle if C;M- indicates
that this is supported. The cali0ration c(cle is controlled 0( the platform and will t(picall( include
disa0ling the AC adapter and discharging the 0atter(, then charging the 0atter(. While the 0atter( is
charging, the ;%2! should set ;it" of the !tatus flags returned 0( C;M- if it is possi0le to put the s(stem
into stand0( during cali0ration to speed up charging. .valuating this with ;it e:ual to will a0ort the
cali0ration c(cle if one is in process. %f the ;%2! determines that the cali0ration c(cle must 0e a0orted =for
e/ample AC power is lost>, or the cali0ration completes successfull(, the ;%2! will end the c(cle
automaticall(, clear the C;M- Stat's &lag ;it, and send a notif( /82. While the cali0ration c(cle is in
process, the 0atter( will report data normall(, so the 2! must disa0le 0atter( alarms.
;it4 and ;it2 ma( not 0e used in con#unction with the AM1 controlled cali0ration c(cle. @aving ;it set
will override ;it4 and ;it2. ;it4 will prevent the 0atter( from charging even though AC power is
connected. ;it2 will allow the s(stem to draw its power from the 0atter( even though AC power is
availa0le. When the 0atter( is no longer capa0le of delivering current, this setting is automaticall( cleared,
and the s(stem will continue running off AC power without interruption. %n addition, if AC power is lost
this 0it will 0e cleared. When AC power comes 0ack, the 2! must set the 0it again if the user wants to
continue discharging. When the s(stem clears this 0it automaticall(, it will result in a change in the Stat's
&lags returned 0( C;M-. This will cause a notif( /82. ;it4 is onl( cleared automaticall( if an AM1
controlled cali0ration c(cle is initiated.
When a 0atter( is discharging 0ecause ;it2 is set, the C'!3 method of the AC adapter device will report
that AC is offline 0ecause the s(stem is not running off of the AC adapter. %f the 0atteries are controlled
individuall( =;it3 of the C;M- Capabilities &lags>, setting either 0atter( to discharge will cause C'!3 to
report AC offline. %f more than one 0atter( in the s(stem has ;it2 set to discharge the 0atter(, it is up to the
s(stem to decide which 0atter( to discharge, so onl( on a s(stem that discharges the 0atteries one at a time,
a 0atter( with ;it2 set ma( not 0e discharging if another 0atter( in the s(stem is 0eing discharged.
%f ;atteries are not controlled individuall(, calling C;MC will initiate cali0ration, disa0le charge, andFor
allow discharge on all 0atteries in the s(stem. The state of these 0atteries will 0e reflected in the C;M-
Stat's &lags for all 0atteries.
11.3 AC Adapters and Power Source Objects
The 'ower !ource o0#ects descri0e the power source used to run the s(stem.
Ta!le +$-/ Power Source Control Methods
3!Cect 5escription
C'!3 3eturns present power source device.
C'C1 1ist of pointers to powered devices.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *93
11.3.1 _PSR (Power Source)
3eturns the current power source devices. ,sed for the AC adapter and is located under the AC adapter
o0#ect in name space. ,sed to determine if s(stem is running off the AC adapter. This will report that the
s(stem is not running on the AC adapter if an( of the 0atteries in the s(stem is 0eing forced to discharge
through C;MC.
Arguments<
None
3esult Code<
/ I 2ff&line
/4 I 2n&line
11.3.2 _PCL (Power Consumer List)
This o0#ect evaluates to a list of pointers, each pointing to a device or a 0us powered 0( the power source
device. 'ointing to a 0us indicates that all devices under the 0us are powered 0( the power source device.
11.4 Example: Power Source Name Space
The AC'% name space for a computer with an AC adapter and two 0atteries associated with a docking
station that has an AC adapter and a 0atter( is shown in 5igure 4&".
Root
S,stem Bus
AC Adapter!
G%SB
A'P! d
BAT! d Batter, !
Status of the BAT! O0Iect %STA
Batter,! Information %BI.
Batter,! Status %BST
%PSR
BAT" d
Batter, "
Status of the BAT" O0Iect %STA
Batter," Information %BI.
Batter," Trip Point %BTP
PCI1
'OC# d
A'P" d
%PSR
Power Source T,pe
Power Source T,pe
%BTP Batter,! Trip Point
Power Class -ist %PC-
%BST Batter," Status
%PC-
Power Class -ist
Power Class -ist %PC-
Power Class -ist %PC-
Plug and Pla, I' for the BAT! %7I'
Plug and Pla, I' for the BAT" %7I'
AC Adapter "
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*9" Advanced Configuration and 'ower %nterface !pecification
6igure +$-( Power Source 0a%e Space 1xa%ple that Includes a 5ocking Station
12
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *9*
13 Thermal Management
This section descri0es the AC'% thermal model and specifies the AC'% Namespace o0#ects 2!'M uses for
thermal management of the platform.
13.1 Thermal Control
AC'% defines interfaces that allow 2!'M to 0e proactive in its s(stem cooling policies. With 2!'M in
control of the operating environment, cooling decisions can 0e made 0ased on the s(stemMs application
load, the userMs preference towards performance or energ( conservation, and thermal heuristics. $raceful
shutdown of devices or the entire s(stem at critical heat levels 0ecomes possi0le as well. The following
sections descri0e the AC'% thermal model and the AC'% Namespace o0#ects availa0le to 2!'M to appl(
platform thermal management polic(.
The AC'% thermal model is 0ased around conceptual platform regions called t1ermal <ones that ph(sicall(
contain devices, thermal sensors, and cooling controls. $enerall( speaking, the entire platform is one large
thermal Hone, 0ut the platform can 0e partitioned into several AC'% thermal Hones if necessar( to ena0le
optimal thermal management.
AC'% Thermal Hones are a logical collection of interfaces to temperature sensors, trip points, thermal
propert( information, and thermal controls. Thermal Hone interfaces appl( either thermal Hone wide or to
specific devices, including processors, contained within the thermal Hone. AC'% defines namespace o0#ects
that provide the thermal Hone&wide interfaces in section 44.3, JThermal 20#ectsL. A su0set of these o0#ects
ma( also 0e defined under devices. 2! implementations compati0le with the AC'% 3. thermal model,
interface with these o0#ects 0ut also support 2! native device driver interfaces that perform similar
functions at the device level. This allows the integration of devices with em0edded thermal sensors and
controls, perhaps not accessi0le 0( AM1, to participate in the AC'% thermal model through their inclusion
in the AC'% thermal Hone. 2!'M is responsi0le for appl(ing an appropriate thermal polic( when a thermal
Hone contains 0oth thermal o0#ects and native 2! device driver interfaces for thermal control.
!ome devices in a thermal Hone ma( 0e comparativel( large producers of thermal load in relation to other
devices in the thermal Hone. -evices ma( also have var(ing degrees of thermal sensitivit(. 5or e/ample,
some devices ma( tolerate operation at a significantl( higher temperature than other devices. As such, the
platform can provide 2!'M with information a0out the platformMs device topolog( and the resulting
influence of one deviceMs thermal load generation on another device. This information must 0e
comprehended 0( 2!'M for it to achieve optimal thermal management through the application of cooling
controls.
AC'% e/pects all temperatures to 0e represented in tenths of degrees. This resolution is deemed sufficient to
ena0le 2!'M to perform ro0ust platform thermal management.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*9+ Advanced Configuration and 'ower %nterface !pecification
6igure ++-+ ACPI Ther%al Ione
13.1.1 Active, Passive, and Critical Policies
There are three cooling policies that 2!'M uses to control the thermal state of the hardware. The policies
are acti2e. passi2e and critical!
Active Cooling. 2!'M takes a direct action such as turning on a fan. Appl(ing active cooling
controls t(picall( consume power and produce some amount of noise, 0ut are a0le to cool a
thermal Hone without limiting s(stem performance. Active cooling temperature trip points declare
the temperature thresholds 2!'M uses to decide when to start or stop different active cooling
devices.
Passive Cooling. 2!'M reduces the power consumption of devices to reduce the temperature of a
thermal Hone, such as slowing =throttling> the processor clock. Appl(ing passive cooling controls
t(picall( produces no user&noticea0le noise. 'assive cooling temperature trip points specif( the
temperature thresholds where 2!'M will start or stop passive cooling.
Critical Trip Points. These are threshold temperatures at which 2!'M performs an orderl(, 0ut
critical, shutdown of a device or the entire s(stem. The C@2T o0#ect declares the critical
temperature at which 2!'M ma( choose to transition the s(stem into the !" sleeping state, if
supported, The CC3T o0#ect declares the critical temperature at which 2!'M must perform a
critical shutdown.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *99
When a thermal Hone appears in the AC'% Namespace or when a new device 0ecomes a mem0er of a
thermal Hone, 2!'M retrieves the temperature thresholds =trip points> at which it e/ecutes a cooling polic(.
When 2!'M receives a temperature change notification, it evaluates the thermal HoneMs temperature
interfaces to retrieve current temperature values. 2!'M compares the current temperature values against
the temperature thresholds. %f an( temperature is greater than or e:ual to a corresponding active trip point
then 2!'M will turn on the associated active cooling device=s>. %f an( temperature is greater than or e:ual
to a corresponding passive trip point then 2!'M will perform passive cooling. %f the CTM' o0#ect returns a
value greater than or e:ual to the value returned 0( the C@2T o0#ect then 2!'M ma( choose to transition
the s(stem into the !" sleeping state, if supported. %f the CTM' o0#ect returns a value greater than or e:ual
to the value returned 0( the CC3T o0#ect then 2!'M must shut the s(stem down. .m0edded @ot and
Critical trip points ma( also 0e e/posed 0( individual devices within a thermal Hone. ,pon passing of these
trip points, 2!'M must decide whether to shut down the device or the entire s(stem 0ased upon device
criticalit( to s(stem operation. 2!'M must also evaluate the thermal HoneMs temperature interfaces when
an( thermal Hone appears in the namespace =for e/ample, during s(stem initialiHation> and must initiate a
cooling polic( as warranted independent of receipt of a temperature change notification. This allows 2!'M
to cool s(stems containing a thermal Hone whose temperature has alread( e/ceeded temperature thresholds
at initialiHation time.
An optimall( designed s(stem that uses several thresholds can notif( 2!'M of thermal increase or
decrease 0( raising an event ever( several degrees. This ena0les 2!'M to anticipate thermal trends and
incorporate heuristics to 0etter manage the s(stemMs temperature.
To implement a preference towards performance or energ( conservation, 2!'M can re:uest that the
platform change the priorit( of active cooling =performance> versus passive cooling =energ(
conservationFsilence> 0( evaluating the C!C' =!et Cooling 'olic(> o0#ect for the thermal Hone or a
corresponding 2!&specific interface to individual devices within a thermal Hone.
13.1.2 Dynamically Changing Cooling Temperature Trip Points
The platform or its devices can change the active and passive cooling temperature trip points and notif(
2!'M to reevaluate the trip point interfaces to esta0lish the new polic( threshold settings. The following
are the primar( uses for this t(pe of thermal notification<
When 2!'M changes the platformMs cooling polic( from one cooling mode to another.
When a swappa0le 0a( device is inserted or removed. A swappa0le 0a( is a slot that can
accommodate several different devices that have identical form factors, such as a C-&32M drive,
disk drive, and so on. Man( mo0ile 'Cs have this concept alread( in place.
After the crossing of an active or passive trip point is signaled to implement h(steresis.
%n each situation, 2!'M must 0e notified to re&evaluate the thermal HoneMs trip points via the AM1 code
e/ecution of a 0otif)=t1ermalF<one, /84> statement or via an 2! specific interface invoked 0( device
drivers for Hone devices participating in the thermal model.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*98 Advanced Configuration and 'ower %nterface !pecification
13.1.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *96
OSPM Change of Cooling Policy
When 2!'M changes the platformMs cooling polic( from one cooling mode to the other, the following
occurs<
4. 2!'M notifies the platform of the new cooling mode 0( running the !et Cooling 'olic( =C!C'>
control method in all thermal Hones and invoking the 2!&specific !et Cooling 'olic( interface to all
participating devices in each thermal Hone.
2. Thresholds are updated in the hardware and 2!'M is notified of the change.
3. 2!'M re&evaluates the active and passive cooling temperature trip points for the Hone and all devices
in the Hone to o0tain the new temperature thresholds.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*8 Advanced Configuration and 'ower %nterface !pecification
13.1.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *84
Resetting Cooling Temperatures to Adjust to Bay Device Insertion or
Removal
The platform can ad#ust the thermal Hone temperature to accommodate the ma/imum operating temperature
of a 0a( device as necessar(. 5or e/ample<
4. @ardware detects that a device was inserted into or removed from the 0a(, updates the temperature
thresholds, and then notifies 2!'M of the thermal polic( change and device insertion events.
2. 2!'M re&enumerates the devices and re&evaluates the active and passive cooling temperature trip
points.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*82 Advanced Configuration and 'ower %nterface !pecification
13.1.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *83
Resetting Cooling Temperatures to Implement Hysteresis
An 2.M can 0uild h(steresis into platform thermal design 0( d(namicall( resetting cooling temperature
thresholds. 5or e/ample<
4. When the temperature increases to the designated threshold, 2!'M will turn on the associated active
cooling device or perform passive cooling.
2. The platform resets the threshold value to a lower temperature =to implement h(steresis> and notifies
2!'M of the change. ;ecause of this new threshold value, the fan will 0e turned off at a lower
temperature than when it was turned on =therefore implementing a negative h(steresis>.
3. When the temperature hits the lower threshold value, 2!'M will turn off the associated active cooling
device or cease passive cooling. The hardware will reset CACx to its original value and notif( 2!'M
that the trip points have once again 0een altered.
13.1.3 Detecting Temperature Changes
The a0ilit( of the platform and its devices to as(nchronousl( notif( an AC'%&compati0le 2! of meaningful
changes in the thermal HoneMs temperature is a highl( desira0le capa0ilit( that relieves 2!'M from
implementing a poll&0ased polic( and generall( results in a much more responsive and optimal thermal
polic( implementation. .ach notification instructs 2!'M to evaluate whether a trip point has 0een crossed
and allows 2!'M to anticipate temperature trends for the thermal Hone.
%t is recogniHed that much of the hardware used to implement thermal Hone functionalit( toda( is not
capa0le of generating AC'%&visi0le notifications =!C%s> or onl( can do so with wide granularit( =for
e/ample, onl( when the temperature crosses the critical threshold>. %n these environments, 2!'M must poll
the thermal HoneMs temperature periodicall( to implement an effective polic(.
While AC'% specifies a mechanism that ena0les 2!'M to poll thermal Hone temperature, platform reliance
on thermal Hone polling is strongl( discouraged 0( this specification. 2.Ms should design s(stems that
as(nchronousl( notif( 2!'M whenever a meaningful change in the HoneMs temperature occurs I relieving
2!'M of the overhead associated with polling. %n some cases, em0edded controller firmware can
overcome limitations of e/isting thermal sensor capa0ilities to provide the desired as(nchronous
notification.
Notice that the CT?' =thermal Hone polling> o0#ect is used to indicate whether a thermal Hone must 0e
polled 0( 2!'M, and if so, a recommended polling fre:uenc(. !ee section 43.3.48, JCT?',L for more
information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*8" Advanced Configuration and 'ower %nterface !pecification
13.1.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *8*
Temperature Change Notifcations
Thermal Hone&wide temperature sensor hardware that supports as(nchronous temperature change
notifications does so using an !C%. The AM1 code that responds to this !C% must e/ecute a
0otif)=t1ermalF<one, /8> statement to inform 2!'M that a meaningful change in temperature has
occurred. Alternativel(, devices with em0edded temperature sensors ma( signal their associated device
drivers and the drivers ma( use an 2!&specific interface to signal 2!'MMs thermal polic( driver. A device
driver ma( also invoke a device specific control method that e/ecutes a 0otif)=t1ermalF<one, /8>
statement. When 2!'M receives this thermal notification, it will evaluate the thermal HoneMs temperature
interfaces to evaluate the current temperature values. 2!'M will then compare the values to the
corresponding cooling polic( trip point values =either Hone&wide or device&specific>. %f the temperature has
crossed over an( of the polic( thresholds, then 2!'M will activel( or passivel( cool =or stop cooling> the
s(stem, or shut the s(stem down entirel(.
;oth the num0er and granularit( of thermal Hone trip points are 2.M&specific. @owever, it is important to
notice that since 2!'M can use heuristic knowledge to help cool the s(stem, the more events 2!'M
receives the 0etter understanding it will have of the s(stemMs thermal characteristic.
(;
(1
>1
>;
;1
;;
K1
K;
<1
<;
@1
@;
=1
=;
";
Temperature Change
$9ents )SCIs+
%CRT2 Critical shutdown threshold
%AC12 .an high speed threshold
%AC!2 .an low speed threshold
%PS62 Passi9e cooling threshold
6igure ++-& Ther%al 1vents
5or e/ample, the simple thermal Hone illustrated a0ove includes hardware that will generate a temperature
change notification using a * Celsius granularit(. All thresholds =C'!D, CAC4, CAC, and CC3T> e/ist
within the monitored range and fall on * 0oundaries. This granularit( is appropriate for this s(stem as it
provides sufficient opportunit( for 2!'M to detect when a threshold is crossed as well as to understand the
thermal HoneMs 0asic characteristics =temperature trends>.
0oteH The AC'% specification defines Eelvin as the standard unit for a0solute temperature values. All
thermal Hone o0#ects must report temperatures in Eelvin when reporting a0solute temperature values. All
figures and e/amples in this section of the specification use Celsius for reasons of clarit(. AC'% allows
Eelvin to 0e declared in precision of 4F4
th
of a degree =for e/ample, 34.*>. Eelvin is e/pressed as FE \
T/C Z 293.2.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*8+ Advanced Configuration and 'ower %nterface !pecification
13.1.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *89
13.1.3.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*88 Advanced Configuration and 'ower %nterface !pecification
Polling
Temperature sensor hardware that is incapa0le of generating thermal change events, or that can do so for
onl( a few thresholds should inform 2!'M to implement a poll&0ased polic(. 2!'M does this to ensure
that temperature changes across threshold 0oundaries are alwa(s detecta0le.
'olling can 0e done in con#unction with hardware notifications. 5or e/ample, thermal Hone hardware that
onl( supports a single threshold might 0e configured to use this threshold as the critical temperature trip
point. Assuming that hardware monitors the temperature at a finer granularit( than 2!'M would, this
environment has the 0enefit of 0eing more responsive when the s(stem is overheating.
A thermal Hone advertises the need to 0e polled 0( 2!'M via the CT?' o0#ect. The a0sence of this control
method informs 2!'M to implement polling using an 2!&provided default fre:uenc(. !ee section 43.3.48,
JCT?',L for more information.
13.1.4 Active Cooling
Active cooling devices t(picall( consume power and produce some amount of noise when ena0led. These
devices attempt to cool a thermal Hone through the removal of heat rather than limiting the performance of
a device to address an adverse thermal condition.
The active cooling interfaces in con#unction with the active cooling lists allow the platform to use an active
device that offers var(ing degrees of cooling capa0ilit( or multiple cooling devices. The active cooling
temperature trip points designate the temperature where Active cooling is engaged or disengaged
=depending upon the direction in which the temperature is changing>. 5or thermal Hone&wide active cooling
controls, the CA1x o0#ect evaluates to a list of devices that activel( cool the Hone. 5or e/ample<
%f a standard single&speed fan is the Active cooling device, then CAC evaluates to the temperature
where active cooling is engaged and the fan is listed in CA1.
%f the Hone uses two independentl( controlled single&speed fans to regulate the temperature, then
CAC will evaluate to the ma/imum cooling temperature using two fans, and CAC4 will evaluate
to the standard cooling temperature using one fan.
%f a Hone has a single fan with a low speed and a high speed, the CAC will evaluate to the
temperature associated with running the fan at high&speed, and CAC4 will evaluate to the
temperature associated with running the fan at low speed. CA1 and CA14 will 0oth point to
different device o0#ects associated with the same ph(sical fan, 0ut control the fan at different
speeds.
5or A!1 coding e/amples that illustrate these points, see sections 44.*, JThermal ?one %nterface
3e:uirements,L and 44.+, JThermal ?one ./amples.L
13.1.5 Passive Cooling
'assive cooling controls are a0le to cool a thermal Hone without creating noise and without consuming
additional power =actuall( saving power>, 0ut do so 0( decreasing the performance of the devices in the
Hone .
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *86
13.1.5.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*6 Advanced Configuration and 'ower %nterface !pecification
Processor Clock Throttling
The processor passive cooling threshold =C'!D> in con#unction with the processor list =C'!1> allows the
platform to indicate the temperature at which a passive control, for e/ample clock throttling, will 0e applied
to the processor=s> residing in a given thermal Hone. ,nlike other cooling policies, during passive cooling
of processors 2!'M ma( take the initiative to activel( monitor the temperature in order to cool the
platform.
2n an AC'%&compati0le platform that properl( implements C', throttling, the temperature transitions will
0e similar to the following figure, in a coola0le environment, running a coola0le workload<
C
P
*

P
e
r
f
o
r
m
a
n
c
e
Time
T
e
m
p
e
r
a
t
u
r
e
P
%TSP )Sampling period+
!11M
;1M
T
t
T
n / !
T
n
6igure ++-# Te%perature and CP2 Perfor%ance 7ersus Ti%e
The following e:uation should 0e used 0( 2!'M to assess the optimum C', performance change
necessar( to lower the thermal HoneMs temperature<
1Juation S+< ' VXW \ CTC4 [ = Tn & Tn&4 > Z CTC2 [ =Tn & Tt>
Where<
Tn \ current temperature
Tt \ target temperature =C'!D>
The two coefficients CTC4 and CTC2 and the sampling period CT!' are hardware&dependent constants the
2.M must suppl( to 2!'M =for more information, see section 44.3, JThermal 20#ectsL>. The CT!' o0#ect
contains a time interval that 2!'M uses to poll the hardware to sample the temperature. Whenever the time
value returned 0( CT!' has elapsed, 2!'M will evaluate CTM' to sample the current temperature =shown
as Tn in the a0ove e:uation>. Then 2!'M will use the sampled temperature and the passive cooling
temperature trip point =C'!D> =which is the target temperature Tt> to evaluate the e:uation for '. The
granularit( of ' is determined 0( the C', dut( width of the s(stem.
0ote< .:uation Y4 has an implied formula.
1Juation S&< 'n \ 'n&4 Z @WV& ' W where X T\ 'n T\ 4X
5or .:uation Y2, whenever 'n&4 Z ' lies outside the range &4X, then 'n will 0e truncated to &4X.
5or hardware that cannot assume all possi0le values of 'n 0etween and 4X, a hardware&specific
mapping function @W is used.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *64
%n addition, the hardware mapping function in .:uation Y2 should 0e interpreted as follows<
5or a0solute temperatures<
4. %f the right hand side of .:uation Y4 is negative, @WV 'W is rounded to the ne/t availa0le higher
setting of fre:uenc(.
2. %f the right hand side of .:uation Y4 is positive, @WV'W is rounded to the ne/t availa0le lower setting
of fre:uenc(.
5or relative temperatures<
4. %f the right hand side of .:uation Y4 is positive, @WV 'W is rounded to the ne/t availa0le higher
setting of fre:uenc(.
2. %f the right hand side of .:uation Y4 is negative, @WV'W is rounded to the ne/t availa0le lower setting
of fre:uenc(.
The calculated 'n 0ecomes 'n&4 during the ne/t sampling period.
5or more information a0out C', throttling, see section 8.4.4, 'rocessor 'ower !tate C.L A detailed
e/planation of this thermal feed0ack e:uation is 0e(ond the scope of this specification.
13.1.6 Critical Shutdown
When the thermal Hone&wide temperature sensor value reaches the threshold indicated 0( CC3T, 2!'M
must immediatel( shut the s(stem down. The s(stem must disa0le the power either after the temperature
reaches some hardware&determined level a0ove CC3T or after a predetermined time has passed. ;efore
disa0ling power, platform designers should incorporate some time that allows 2!'M to run its critical
shutdown operation. There is no re:uirement for a minimum shutdown operation window that commences
immediatel( after the temperature reaches CC3T. This is 0ecause<
Temperature might rise rapidl( in some s(stems and slowl( on others, depending on casing design
and environmental factors.
!hutdown can take several minutes on a server and onl( a few seconds on a hand&held device.
;ecause of this indistinct discrepanc( and the fact that a critical heat situation is a remarka0l( rare
occurrence, AC'% does not specif( a target window for a safe shutdown. %t is entirel( up to the 2.M to
0uild in a safe 0uffer that it sees fit for the target platform.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*62 Advanced Configuration and 'ower %nterface !pecification
13.2 Cooling Preferences
A ro0ust 2!'M implementation provides the means for the end user to conve( a preference =or a level of
preference> for either performance or energ( conservation to 2!'M. Allowing the end user to choose this
preference is most critical to mo0ile s(stem users where ma/imiHing s(stem run&time on a 0atter( charge
often has higher priorit( over realiHing ma/imum s(stem performance. 5or e/ample, if a user is taking
notes on her 'C in a :uiet environment, such as a li0rar( or a corporate meeting, she ma( want the s(stem
to emphasiHe passive cooling so that the s(stem operates :uietl(, even at the cost of s(stem performance.
A user preference towards performance corresponds to the Active cooling mode while a userMs preference
towards energ( conservation or :uiet corresponds to the 'assive cooling mode. AC'% defines an interface to
conve( the cooling mode to the platform. Active cooling can 0e performed with minimal 2!'M thermal
polic( intervention. 5or e/ample, the platform indicates through thermal Hone parameters that crossing a
thermal trip point re:uires a fan to 0e turned on. 'assive cooling re:uires 2!'M thermal polic( to
manipulate device interfaces that reduce performance to reduce thermal Hone temperature.
.ither cooling mode will 0e activated onl( when the thermal condition re:uires it. When the thermal Hone
is at an optimal temperature level where it does not warrant an( cooling, 0oth modes result in a s(stem
operating at its ma/imum potential with all fans turned off.
Thermal Hones supporting the !et Cooling 'olic( interface allow the user to switch the s(stemMs cooling
mode emphasis. !ee section 43.3.9, JC!C',L for more information.
Acti9e Cooling Thresholds )%ACx+ Passi9e Cooling Threshold )%PS6+
(;
(1
>1
>;
;1
;;
K1
K;
<1
<;
@1
@;
=1
=;
";
6igure ++-( Active and Passive Threshold 7alues
As illustrated in 5igure 44&", the platform must conve( the value for each threshold to instruct 2!'M to
initiate the cooling policies at the desired target temperatures. The platform can emphasiHe active or passive
cooling modes 0( assigning different threshold values. $enerall(, if CAC/ is set lower than C'!D, then the
s(stem emphasiHes active cooling. Conversel(, if C'!D is set lower than CAC/, then the emphasis is placed
on passive cooling.
5or e/ample, a thermal Hone that includes a processor and one single&speed fan ma( use C'!D to indicate
the temperature value at which 2!'M would ena0le passive cooling and CAC to indicate the temperature
at which the fan would 0e turned on. %f the value of C'!D is less than CAC then the s(stem will favor
passive cooling =for e/ample, C', clock throttling>. 2n the other hand, if CAC is less than C'!D the
s(stem will favor active cooling =in other words, using the fan>. !ee 5igure 44&* 0elow.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *63
%CRT
%PS6
%AC1
(;
(1
>1
>;
;1
;;
K1
K;
<1
<;
@1
@;
=1
=;
";
Active Cooling
Preference
%CRT
%AC1
%PS6
(;
(1
>1
>;
;1
;;
K1
K;
<1
<;
@1
@;
=1
=;
";
Passive Cooling
Preference
6igure ++-A Cooling Preferences
The e/ample on the left ena0les active cooling =for e/ample, turn on a fan> when 2!'M detects the
temperature has risen a0ove *. %f for some reason the fan does not reduce the s(stem temperature, then at
9* 2!'M will initiate passive cooling =for e/ample, C', throttling> while still running the fan. %f the
temperature continues to clim0, 2!'M will :uickl( shut the s(stem down when the temperature reaches
6C. The e/ample on the right is similar 0ut the CAC and C'!D threshold values have 0een swapped to
emphasiHe passive cooling.
The AC'% thermal model allows fle/i0ilit( in the thermal Hone design. An 2.M that needs a less ela0orate
thermal implementation ma( consider using onl( a single threshold =for e/ample, CC3T>. Comple/ thermal
implementations can 0e modeled using multiple active cooling thresholds and devices, or through the use
of additional thermal Hones.
13.2.1 Evaluating Thermal Device Lists
The 0otif)=t1ermalF<one, /82> statement is used to inform 2!'M that a change has 0een made to the
thermal Hone device lists. This thermal event instructs 2!'M to re&evaluate the CA1/, C'!1, and CT?-
o0#ects.
5or e/ample, a s(stem that supports the d(namic insertions of processors might issue this notification to
inform 2!'M of changes to C'!1 following the insertion or removal of a processor. 2!'M would re&
evaluate all thermal device lists and ad#ust its polic( accordingl(.
Notice that this notification can 0e used with the 0otif)=t1ermalF<one, /84> statement to inform 2!'M to
0oth re&evaluate all device lists and all thresholds.
Alternativel(, devices ma( include the CT?M =Thermal ?one Mem0er> o0#ect their device scope to conve(
their thermal Hone association to 2!'M. !ection 44.3.49, JCT?M =Thermal ?one Mem0er>L, for more
information.
13.2.2 Evaluating Device Thermal Relationship Information
The 0otif)=t1ermalF<one, /83> statement is used to inform 2!'M that a change has 0een made to the
thermal influence information. This thermal event instructs 2!'M to re&evaluate the CT3T o0#ect. The
thermal influence 0etween devices ma( change when active cooling moves air across device packages as
compared to when onl( passive cooling controls are applied.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*6" Advanced Configuration and 'ower %nterface !pecification
13.3 Thermal Objects
20#ects related to thermal management are listed in Ta0le 44&44
Ta!le ++-+ Ther%al 3!Cects
3!Cect 5escription
CACx 3eturns active cooling polic( threshold values in tenths of degrees.
CA1x 1ist of active cooling device o0#ects.
CC3T 3eturns critical trip point in tenths of degrees where 2!'M must perform a critical shutdown.
C@2T 3eturns critical trip point in tenths of degrees where 2!'M ma( choose to transition the s(stem
into !".
C'!1 1ist of processor device o0#ects for clock throttling.
C'!D 3eturns the passive cooling polic( threshold value in tenths of degrees.
C3TD Conve(s whether temperatures are e/pressed in terms of a0solute or relative values.
C!C' !ets platform cooling polic( =active or passive>.
CTC4 Thermal constant for passive cooling.
CTC2 Thermal constant for passive cooling.
CTM' 3eturns the thermal HoneMs current temperature in tenths of degrees.
CT'T Conve(s the temperature of a devices internal temperature sensor to the platform when a
temperature trip point is crossed.
CT3T Ta0le of values that conve( the Thermal 3elationship 0etween devices
CT!' Thermal sampling period for 'assive cooling in tenths of seconds.
CT!T Conve(s the minimum separation for a devicesM programma0le temperature trip points.
CT?- 1ist of devices whose temperature is measured 0( this thermal Hone.
CT?M 3eturns the thermal Hone for which a device is a mem0er.
CT?' Thermal Hone polling fre:uenc( in tenths of seconds.
With the e/ception of CT'T, CT!T, and the CT?M o0#ects, the o0#ects descri0ed in the following sections
ma( e/ist under a thermal Hone. -evices with em0edded thermal sensors and controls ma( contain static
cooling temperature trip points or d(namic cooling temperature trip points that must 0e programmed 0( the
deviceMs driver. %n this case, thermal o0#ects defined under a device serve to conve( the platform specific
values for these settings to the devices driver.
13.3.1 _ACx (Active Cooling)
This optional o0#ect, if present under a thermal Hone, returns the temperature trip point at which 2!'M
must start or stop Active cooling, where x is a value 0etween and 6 that designates multiple active cooling
levels of the thermal Hone. %f the Active cooling device has one cooling level =that is, JonL> then that
cooling level must 0e defined as CAC. %f the cooling device has two levels of capa0ilit(, such as a high fan
speed and a low fan speed, then the( must 0e defined as CAC and CAC4 respectivel(. The smaller the
value of x, the greater the cooling strength CACx represents. %n the a0ove e/ample, CAC represents the
greater level of cooling =the faster fan speed> and CAC4 represents the lesser level of cooling =the slower
fan speed>. 5or ever( CACx method, there must 0e a matching CA1x o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *6*
%f this o0#ect it present under a device, the deviceMs driver evaluates this o0#ect to determine the deviceMs
corresponding active cooling temperature trip point. This value ma( then 0e used 0( the deviceMs driver to
program an internal device temperature sensor trip point. When this o0#ect is present under a device, either
the device must contain a native 2! device driver interface supporting a corresponding active cooling
control or there must 0e a matching CA1/ o0#ect under the thermal Hone of which the device is a mem0er.
Arguments<
None
3esult Code<
Active cooling temperature threshold in tenths of degrees.
The result code is an integer value that represents tenths of degrees. 5or e/ample, 3.E is represented 0(
the integer 3.
13.3.2 _ALx (Active List)
This o0#ect is defined under a thermal Hone and evaluates to a list of Active cooling devices to 0e turned on
when the corresponding CACx temperature threshold is e/ceeded. 5or e/ample, these devices could 0e
fans.
Arguments<
None
3esult Code<
A package consisting of references to all active cooling devices that should 0e engaged when the
associated active cooling threshold =CAC/> is e/ceeded.
13.3.3 _CRT (Critical Temperature)
This o0#ect, when defined under a thermal Hone, returns the critical temperature at which 2!'M must
shutdown the s(stem. %f this o0#ect it present under a device, the deviceMs driver evaluates this o0#ect to
determine the deviceMs critical cooling temperature trip point. This value ma( then 0e used 0( the deviceMs
driver to program an internal device temperature sensor trip point.
Arguments<
None
3esult Code<
Critical temperature threshold in tenths of degrees.
The result is an integer value that represents tenths of degrees. 5or e/ample, 3.E is represented 0( the
integer 3.
13.3.4 _HOT (Hot Temperature)
This o0#ect, when defined under a thermal Hone, returns the critical temperature at which 2!'M ma(
choose to transition the s(stem into the !" sleeping state. The platform vendor should define C@2T to 0e
far enough 0elow CC3T so as to allow 2!'M enough time to transition the s(stem into the !" sleeping
state. While dependent on the amount of installed memor(, on t(pical platforms 2!'M implementations
can transition the s(stem into the !" sleeping state in tens of seconds. %f this o0#ect it present under a
device, the deviceMs driver evaluates this o0#ect to determine the deviceMs hot cooling temperature trip point.
This value ma( then 0e used 0( the deviceMs driver to program an internal device temperature sensor trip
point.
Arguments<
None
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*6+ Advanced Configuration and 'ower %nterface !pecification
3esult Code<
Critical temperature threshold in tenths of degrees.
The result is an integer value that represents tenths of degrees. 5or e/ample, 3.E is represented 0( the
integer 3.
13.3.5 _PSL (Passive List)
This o0#ect is defined under a thermal Hone and evaluates to a list of processor o0#ects to 0e used for
passive cooling.
Arguments<
None
3esult Code<
A package consisting of references to all processor o0#ects that will 0e used for passive cooling when
the HoneMs passive cooling threshold =C'!D> is e/ceeded.
13.3.6 _PSV (Passive)
This optional o0#ect, if present under a thermal Hone, evaluates to the temperature at which 2!'M must
activate passive cooling polic(.
%f this o0#ect it present under a device, the deviceMs driver evaluates this o0#ect to determine the deviceMs
corresponding passive cooling temperature trip point. This value ma( then 0e used 0( the deviceMs driver to
program an internal device temperature sensor trip point. When this o0#ect is present under a device, the
device must contain a native 2! device driver interface supporting a passive cooling control.
Arguments<
None
3esult Code<
'assive cooling temperature threshold in tenths of degrees.
The result code is an integer value that represents tenths of degrees. 5or e/ample, 3. Eelvin is
represented 0( 3.
13.3.7 _RTV (Relative Temperature Values)
This optional o0#ect ma( 0e present under a device or a thermal Hone and is evaluated 0( 2!'M to
determine whether the values returned 0( temperature trip point and current operating temperature
interfaces under the corresponding device or thermal Hone represent a0solute or relative temperature values.
%f the C3TD o0#ect is not present or is present and evaluates to Hero then 2!'M assumes that all values
returned 0( temperature trip point and current operating temperature interfaces under the device or thermal
Hone represent a0solute temperature values e/pressed in tenths of degrees Eelvin.
%f the C3TD o0#ect is present and evaluates to a non Hero value then all values returned 0( temperature trip
point and current operating temperature interfaces under the corresponding device or thermal Hone
represent temperature values relative to a Hero point that is defined as the ma/imum value of the deviceMs or
thermal HoneMs critical cooling temperature trip point. %n this case, temperature trip point and current
operating temperature interfaces return values in units that are tenths of degrees !elow the Hero point.
2!'M evaluates the C3TD o0#ect 0efore evaluating an( other temperature trip point or current operating
temperature interfaces.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *69
Arguments<
None
3esult Code<
%nteger indicating whether values returned 0( temperature trip point and current operating temperature
interfaces represent a0solute of relative temperature values.
13.3.8 _SCP (Set Cooling Policy)
This optional o0#ect is a control method that 2!'M invokes to set the platformMs cooling mode polic(
setting. The platform ma( use the evaluation of C!C' to reassign CACx and C'!D temperature trip points
according to the mode or limits conve(ed 0( 2!'M. 2!'M will automaticall( evaluate CACx and C'!D
o0#ects after e/ecuting C!C'. This o0#ect ma( e/ist under a thermal Hone or a device.
Arguments<
Arg =%nteger>< (ode
Arg4 =%nteger>< Aco'stic ,imit
Arg2 =%nteger>< Power ,imit
Where<
(ode I \ Active, 4 \ 'assive
Aco'stic ,imit I !pecifies the ma/imum accepta0le acoustic level that active cooling devices ma(
generate. Dalues are 4 to * where 4 means no acoustic tolerance and * means ma/imum acoustic tolerance.
Power ,imit I !pecifies the ma/imum accepta0le power level that active cooling devices ma( consume.
Dalues are from 4 to * where 4 means no power ma( 0e used to cool and * means ma/imum power ma( 0e
used to cool.
3esult Code<
None
./ample<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
*68 Advanced Configuration and 'ower %nterface !pecification
// 5an )ontrol i2 defined a2 follow2>
// Speed 4 (5an i2 0ff)> &cou2tic 6imit 4$ Power 6imit 4$ ?L I.)
// Speed 3> &cou2tic 6imit 3$ Power 6imit 3$ IG) E T.)
// Speed F> &cou2tic 6imit F$ Power 6imit F$ TG) E =.)
// Speed .> &cou2tic 6imit .$ Power 6imit .$ =G) E H.)
// Speed G> &cou2tic 6imit G$ Power 6imit G$ BL HG)
// _S)P !otifie2 the platform the current coolin, mode.
// &r,( L ;ode
// ( E &ctive coolin,
// 4 E Pa22ive coolin,
// &r,4 L &cou2tic 6imit
// 4 L !o acou2tic tolerance
// ...
// G L ma-imum acou2tic tolerance
// &r,3 L Power 6imit
// 4 L !o power ma1 be u2ed to cool
// ...
// G L ma-imum power ma1 be u2ed to cool
;ethod(_S)P$F$SerialiCed)

// Store the )oolin, ;ode in !@S and u2e a2 needed in


// the re2t of the &S6 )ode.
Store(&r,($ )<SP)
// Set PS@< to account for a 6e,ac1 0S that doe2 not pa22
// in either the acou2tic limit or Power 6imit.
#f(&r,()

Store(I($PS@<)
/
%l2e

Store(HT$PS@<)
/
#f ()ondRef0f (_0S#$6ocal())

#f (\_0S# (PF.( _S)P %-ten2ion2P))



// Determine Power 6imit.
//
// !0<%4> PS@< L Pa22ive )oolin, <rip Point 2tored
// in !@S in )el2iu2.
//
// !0<%3> . &ctive )oolin, <rip2 Point2 corre2pond to G
// uni8ue Power 6imit re,ion2 and G uni8ue acou2tic limit
// re,ion2.
//
// !0<%F> <hi2 code will define Pa22ive coolin, 2o that
// )PX throttlin, will be initiated within the Power 6imit
// Re,ion pa22ed in 2uch that the ne-t hi,her Power 6imit
// Re,ion will not be reached.
Switch(&r,3)

)a2e(4) // Power 6imit L 4.

// Sta1 in &cou2tic 6imit 4.


Store(I($PS@<) // Pa22ive L I().
/
)a2e(3) // Power 6imit L 3.

// Store "i,he2t 2upported &cou2tic 6evel


// at thi2 Power 6imit (4 or 3).
Store(T($PS@<)
#f(6e8ual(&r,4$4))

// Sta1 in &cou2tic 6evel 4.


Store(I($PS@<)
/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ *66
)a2e(F) // Power 6imit L F.

// Store "i,he2t 2upported &cou2tic 6evel


// at thi2 Power 6imit (4$ 3$ or F).
Store(=($PS@<)
#f(6e8ual(&r,4$3))

// Sta1 in &cou2tic 6evel 4 or 3.


Store(T($PS@<)
/
#f(6e8ual(&r,4$4))

// Sta1 in &cou2tic 6evel 4.


Store(I($PS@<)
/
/
)a2e(.) // Power 6imit L ..

// Store "i,he2t 2upported &cou2tic 6evel


// at thi2 Power 6imit (4$ 3$ F$ or .).
Store(H($PS@<)
#f(6e8ual(&r,4$F))

// Sta1 in &cou2tic 6evel 4 or 3.


Store(=($PS@<)
/
#f(6e8ual(&r,4$3))

// Sta1 in &cou2tic 6evel 4 or 3.


Store(T($PS@<)
/
#f(6e8ual(&r,4$4))

// Sta1 in &cou2tic 6evel 4.


Store(I($PS@<)
/
/
)a2e(G) // Power 6imit L G.

// Store "i,he2t 2upported &cou2tic 6evel


// at thi2 Power 6imit (4$ 3$ F$ .$ or G).
Store(HT$PS@<)
#f(6e8ual(&r,4$.))

// Sta1 in &cou2tic 6evel 4 or 3.


Store(H($PS@<)
/
#f(6e8ual(&r,4$F))

// Sta1 in &cou2tic 6evel 4 or 3.


Store(=($PS@<)
/
#f(6e8ual(&r,4$3))

// Sta1 in &cou2tic 6evel 4 or 3.


Store(T($PS@<)
/
#f(6e8ual(&r,4$4))

// Sta1 in &cou2tic 6evel 4.


Store(I($PS@<)
/
/ // )a2e G
/ // Switch &r, 3
/ // _0S# E %-tended _S)P
/ // )ondRef0f _0S#
/ // ;ethod _S)P
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+ Advanced Configuration and 'ower %nterface !pecification
13.3.9 _TC1 (Thermal Constant 1)
This o0#ect evaluates to the constant CTC4 for use in the 'assive cooling formula<
'erformance VXW\ CTC4 [ = Tn & Tn&4 > Z CTC2 [ =Tn. & Tt>
Arguments<
None
3esult Code<
%nteger value of thermal constant Y4.
13.3.10 _TC2 (Thermal Constant 2)
This o0#ect evaluates to the constant CTC2 for use in the 'assive cooling formula<
'erformance VXW\ CTC4 [ = Tn & Tn&4 > Z CTC2 [=Tn & Tt+
Arguments<
None
3esult Code<
%nteger value of thermal constant Y2.
13.3.11 _TMP (Temperature)
This control method returns the thermal HoneMs current operating temperature.
Arguments<
None
3esult Code<
The current temperature of the thermal Hone in tenths of degrees. 5or e/ample, 3.E is represented 0(
the integer 3.
13.3.12 _TPT (Trip Point Temperature)
This optional o0#ect ma( 0e present under a device and is invoked 0( 2!'M to indicate to the platform that
the devicesM em0edded temperature sensor has crossed a cooling temperature trip point. After invocation,
2!'M immediatel( evaluates the devicesM Active and 'assive cooling temperature trip point values. This
ena0les the platform to implement h(steresis.
Arguments<
Current value of deviceMs em0edded temperature sensor in tenths of degrees.
3esult Code<
None
13.3.13 _TRT (Thermal Relationship Table)
This o0#ect evaluates to a package of packages each of which descri0es the thermal relationship 0etween
devices within a thermal Hone. 2!'M uses the com0ined information a0out the thermal relationships of all
devices in the thermal Hone to make thermal polic( decisions.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +4
!ame (_<R<$ Pac+a,e()
// 5ield !ame 5ield <1pe
Pac+a,e () // 5ir2t <hermal Relation2hip Pac+a,e Data

Source!evice$ // 0b9ectReference to a Device 0b9ect
Target!evice$ // 0b9ectReference to a Device 0b9ect
T"er#al$nfluence% // #nte,er
T"er#alSa#lingPeriod% // #nte,er
Reserved&% // #nte,er
Reserved2% // #nte,er
Reserved'% // #nte,er
Reserved( // #nte,er
/$
.
.
.
Pac+a,e () // 6a2t <hermal Relation2hip Pac+a,e Data

Source!evice$ // 0b9ectReference to a Device 0b9ect
Target!evice$ // 0b9ectReference to a Device 0b9ect
T"er#al$nfluence% // #nte,er
T"er#alSa#lingPeriod% // #nte,er
Reserved&% // #nte,er
Reserved2% // #nte,er
Reserved'% // #nte,er
Reserved( // #nte,er
/
/) // %nd of _<R< ob9ect
.ach Thermal 3elationship Ta0le entr( contains eight data fields as follows<
ource"evice The device that is influencing the device indicated 0( TargetDe2ice.
'arget"evice The device that is influenced 0( the device indicated 0( So'rceDe2ice
'hermalInfluence; %ndicates the thermal influence of So'rceDe2ice on TargetDe2ice represented as
tenths of degrees Eelvin that the device indicated 0( So'rceDe2ice raises the temperature of the device
indicated 0( TargetDe2ice per Watt of thermal load that So'rceDe2ice generates.
'hermalamplingPeriod; The minimum period of time in tenths of seconds that 2!'M should wait
after appl(ing a passive control to the device indicated 0( So'rceDe2ice to detect its impact on the
device indicated 0( TargetDe2ice.
*eserved4; 3eserved for future use.
*eserved2; 3eserved for future use.
*eserved1! 3eserved for future use.
*eserved7; 3eserved for future use.
13.3.14 _TSP (Thermal Sampling Period)
This o0#ect evaluates to a thermal sampling period =in tenths of seconds> used 0( 2!'M to implement the
'assive cooling e:uation. This value, along with CTC4 and CTC2, will ena0le 2!'M to provide the proper
h(steresis re:uired 0( the s(stem to accomplish an effective passive cooling polic(. The granularit( of the
sampling period is .4 seconds. 5or e/ample, if the sampling period is 3. seconds, then CT!' needs to
report 3K if the sampling period is .* seconds, then it will report *. 2!'M can normaliHe the sampling
over a longer period if necessar(.
Arguments<
None
3esult Code<
Thermal sampling period for passive cooling, in tenths of seconds.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+2 Advanced Configuration and 'ower %nterface !pecification
13.3.15 _TST (Temperature Sensor Threshold)
This optional o0#ect ma( 0e present under a device and is evaluated 0( 2!'M to determine the minimum
separation for a devicesM programma0le temperature trip points. When a device contains multiple
programma0le temperature trip points, it ma( not 0e necessar( for 2!'M to poll the deviceMs temperature
after crossing a temperature trip point when performing passive cooling control polic(. To eliminate
polling, the device can program intermediate trip points of interest =higher or lower than the current
temperature> and signal the crossing of the intermediate trip points to 2!'M. The distance 0etween the
current temperature and these intermediate trip points ma( 0e platform specific and must 0e set far enough
awa( from the current temperature so as to not to miss the crossing of a meaningful temperature point. The
CT!T o0#ect conve(s the recommended minimum separation 0etween the current temperature and an
intermediate temperature trip point to 2!'M.
Arguments<
None
3esult Code<
Temperature sensor threshold in tenths of degrees.
13.3.16 _TZD (Thermal Zone Devices)
This optional o0#ect evaluates to a package of device names. .ach name corresponds to a device in the
AC'% namespace that is associated with the thermal Hone. The temperature reported 0( the thermal Hone is
roughl( correspondent to that of each of the devices.
The list of devices returned 0( the control method need not 0e a complete and a0solute list of devices
affected 0( the thermal Hone. @owever, the package should at least contain the devices that would uni:uel(
identif( where this thermal Hone is located in the machine. 5or e/ample, a thermal Hone in a docking station
should include a device in the docking station, a thermal Hone for the C-&32M 0a(, should include the
C-&32M.
Arguments<
None
3esult Code<
A package consisting of references to devices associated with the thermal Hone.
13.3.17 _TZM (Thermal Zone Member)
This optional o0#ect ma( e/ist under an( device definition and evaluates to a reference to the thermal Hone
of which the device is a mem0er.
Arguments<
None
3esult Code<
A reference to the thermal Hone of which the device is a mem0er.
13.3.18 _TZP (Thermal Zone Polling)
This optional o0#ect evaluates to a recommended polling fre:uenc( =in tenths of seconds> for this thermal
Hone. A value of Hero indicates that 2!'M does not need to poll the temperature of this thermal Hone in
order to detect temperature changes =the hardware is capa0le of generating as(nchronous notifications>.
Notice that the a0sence of CT?' informs 2!'M to implement polling using an 2!&provided default
fre:uenc(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +3
The use of polling is allowed 0ut strongl( discouraged 0( this specification. 2.Ms should design s(stems
that as(nchronousl( notif( 2!'M whenever a meaningful change in the HoneMs temperature occursP
relieving the 2! of the overhead associated with polling. !ee section 43.4.3, J-etecting Temperature
Changes,L for more information.
This value is specified as tenths of seconds with a 4 second granularit(. A minimum value of 3 seconds
=CT?' evaluates to 3> and a ma/imum value of 3 seconds =in other words, * minutes> =CT?' evaluates
to 3> ma( 0e specified. As this is a recommended value, 2!'M will consider other factors when
determining the actual polling fre:uenc( to use.
Arguments<
None
3esult Code<
The recommended polling fre:uenc(, in tenths of seconds. A value of Hero indicates that polling is not
necessar(.
13.4 Native OS Device Driver Thermal Interfaces
2! implementations compati0le with the AC'% 3. thermal model, interface with the thermal o0#ects of a
thermal Hone 0ut also comprehend the thermal Hone devicesM 2! native device driver interfaces that
perform similar functions to the thermal o0#ects at the device level.
The recommended native 2! device driver thermal interfaces that ena0le 2!'M to perform optimal
performance F thermal management include<
3eading a value from a deviceMs em0edded thermal sensor
3eading a value that indicates whether temperature and trip point values are reported in a0solute
or relative temperatures
!etting the platformMs cooling mode polic( setting
3eading the em0edded thermal sensorMs threshold
3eading the deviceMs active and passive cooling temperature trip points
3eading the deviceMs association to a thermal Hone
!ignaling the crossing of a thermal trip point
3eading the desired polling fre:uenc( at which to check the devices temperature if the device
cannot signal 2!'M or signal 2!'M optimall( =0oth 0efore and after a temperature trip point is
crossed>
!etting F limiting a deviceMs performance F throttling states
.ngaging F disengaging a deviceMs active cooling controls
These interfaces are 2! specific and as such the 2! vendor defines the e/act interface definition for each
target operating s(stem.
13.5 Thermal Zone Interface Requirements
While not all thermal Hone interfaces are re:uired to 0e present in each thermal Hone, 2!'M levies
conditional re:uirements for the presence of specific thermal Hone interfaces 0ased on the e/istence of
other related thermal Hone interfaces. These interfaces ma( 0e implemented 0( thermal Hone&wide o0#ects
or 0( 2!&specific device driver e/posed thermal interfaces. The re:uirements are outlined 0elow<
A thermal Hone must contain at least one temperature interfaceK either the CTM' o0#ect or a
mem0er device temperature interface.
A thermal Hone must contain at least one trip point =critical, near critical, active, or passive>..
%f CAC/ is defined then an associated CA1/ must 0e defined =e.g. defining CAC re:uires CA1
also 0e defined>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+" Advanced Configuration and 'ower %nterface !pecification
%f C'!D is defined then either the C'!1 or CT?- o0#ects must e/ist. The C'!1 and CT?- o0#ects
ma( 0oth e/ist.
%f C'!1 is defined then<
%f a linear performance control register is defined =via either 'C;1E or the C'TC, CT!!, CT'C
o0#ects> for a processor defined in C'!1 or for a processor device in the Hone as indicated 0(
CT?M then the CTC4, CTC2, and o0#ects must e/ist. The CT!' o0#ect must also 0e defined if the
device re:uires polling.
%f a linear performance control register is not defined =via either 'C;1E or the C'TC, CT!!, CT'C
o0#ects> for a processor defined in C'!1 or for a processor device in the Hone as indicated 0(
CT?M then the processor must support processor performance states =in other words, the
processorMs processor o0#ect must include C'CT, C'!!, and C''C>.
%f C'!D is defined and C'!1 is not defined then at least one device in thermal Hone, as indicated
0( either the CT?- device list or devicesM CT?M o0#ects, must support device performance states.
C!C' is optional.
CT?- is optional outside of the C'!D re:uirement outlined a0ove.
%f C@2T is defined then the s(stem must support the !" sleeping state.
13.6 Thermal Zone Examples
13.6.1 Example: The Basic Thermal Zone
The following A!1 descri0es a 0asic configuration where the entire s(stem is treated as a single thermal
Hone. Cooling devices for this thermal Hone consist of a processor and one single&speed fan. This is an
e/ample onl(.
Notice that this thermal Hone o0#ect =T?> is defined in the BC!; scope. Thermal Hone o0#ects should
appear in the namespace under the portion of the s(stem that comprises the thermal Hone. 5or e/ample, a
thermal Hone that is isolated to a docking station should 0e defined within the scope of the docking station
device. ;esides providing for a well&organiHed namespace, this configuration allows 2!'M to d(namicall(
ad#ust its thermal polic( as devices are added or removed from the s(stem.
Scope(\_SB)
Proce22or(
)PX($
4$ // uni8ue number for thi2 proce22or
(-44($ // 212tem #0 addre22 of Pbl+ Re,i2ter2
(-(I // len,th in b1te2 of PBl+
) /
Scope(\_SB.P)#(.#S&()
Device(%)()
!ame(_"#D$ %#S&#D(PP!P()(HP)) // #D for thi2 %)
// current re2ource de2cription for thi2 %)
!ame(_)RS$ Re2ource<emplate()
#0(Decode4I$(-I3$(-I3$($4)
#0(Decode4I$(-II$(-II$($4)
/)
!ame(_:P%$ () // :P% inde- for thi2 %)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +*
// create %)a2 re,ion and field for thermal 2upport
0perationRe,ion(%)($ %mbedded)ontrol$ ($ (-55)
5ield(%)($ B1te&cc$ 6oc+$ Pre2erve)
;0D%$ 4$ // thermal polic1 (8uiet/perform)
5&!$ 4$ // fan power (on/off)
$ I$ // re2erved
<;P$ 4I$ // current temp
&)($ 4I$ // active coolin, temp (fan hi,h)
$ 4I$ // re2erved
PS@$ 4I$ // pa22ive coolin, temp
"0< 4I$ // critical S. temp
)R<$ 4I // critical temp
/
// followin, i2 a method that 0SP; will 2chedule after
// it receive2 an S)# and 8uerie2 the %) to receive value T
;ethod(_J(T)
!otif1 (\_SB.P)#(.#S&(.%)(.<7($ (-=()
/ // end of !otif1 method
// fan coolin, on/off E en,a,ed at &)( temp
PowerRe2ource(P5&!$ ($ ()
;ethod(_S<&) Return (\_SB.P)#(.#S&(.%)(.5&!) / // chec+ power 2tate
;ethod(_0!) Store (0ne$ \_SB.P)#(.#S&(.%)(.5&!) / // turn on fan
;ethod(_055) Store ( 7ero$ \_SB.P)#(.#S&(.%)(.5&!) / // turn off fan
/
// )reate 5&! device ob9ect
Device (5&!)
// Device #D for the 5&!
!ame(_"#D$ %#S&#D(PP!P()(BP))
// li2t power re2ource for the fan
!ame(_PR($ Pac+a,e()P5&!/)
/
// create a thermal Cone
<hermal7one (<7()
;ethod(_<;P) Return (\_SB.P)#(.#S&(.%)(.<;P )/ // ,et current temp
;ethod(_&)() Return (\_SB.P)#(.#S&(.%)(.&)() / // fan hi,h temp
!ame(_&6($ Pac+a,e()\_SB.P)#(.#S&(.%)(.5&!/) // fan i2 act cool dev
;ethod(_PS@) Return (\_SB.P)#(.#S&(.%)(.PS@) / // pa22ive coolin, temp
!ame(_PS6$ Pac+a,e ()\_SB.)PX(/) // pa22ive coolin, device2
;ethod(_"0<) Return (\_SB.P)#(.#S&(.%)(."0<) / // ,et critical S. temp
;ethod(_)R<) Return (\_SB.P)#(.#S&(.%)(.)R<) / // ,et critical temp
;ethod(_S)P$ 4) Store (&r,4$ \_SB.P)#(.#S&(.%)(.;0D%) / // 2et coolin, mode
!ame(_<)4$ .) // bo,u2 e-ample con2tant
!ame(_<)3$ F) // bo,u2 e-ample con2tant
!ame(_<SP$ 4G() // pa22ive 2amplin, L 4G 2ec
!ame(_<7P$ () // pollin, not re8uired
/ // end of <7(
/ // end of %)0
/ // end of \_SB.P)#(.#S&( 2copeE
/ // end of \_SB 2cope
13.6.2 Example: Multiple-Speed Fans
The following A!1 descri0es a thermal Hone consisting of a processor and one dual&speed fan. As with the
previous e/ample, this thermal Hone o0#ect =T?> is defined in the BC!; scope and represents the entire
s(stem. This is an e/ample onl(.
Scope(\_SB)
Proce22or(
)PX($
4$ // uni8ue number for thi2 proce22or
(-44($ // 212tem #0 addre22 of Pbl+ Re,i2ter2
(-(I // len,th in b1te2 of PBl+
) /
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
++ Advanced Configuration and 'ower %nterface !pecification
Scope(\_SB.P)#(.#S&()
Device(%)()
!ame(_"#D$ %#S&#D(PP!P()(HP)) // #D for thi2 %)
// current re2ource de2cription for thi2 %)
!ame(_)RS$ Re2ource<emplate()
#0(Decode4I$(-I3$(-I3$($4)
#0(Decode4I$(-II$(-II$($4)
/)
!ame(_:P%$ () // :P% inde- for thi2 %)
// create %)a2 re,ion and field for thermal 2upport
0perationRe,ion(%)($ %mbedded)ontrol$ ($ (-55)
5ield(%)($ B1te&cc$ 6oc+$ Pre2erve)
;0D%$ 4$ // thermal polic1 (8uiet/perform)
5&!($ 4$ // fan 2tren,th hi,h/off
5&!4$ 4$ // fan 2tren,th low/off
$ G$ // re2erved
<;P$ 4I$ // current temp
&)($ 4I$ // active coolin, temp (hi,h)
&)4$ 4I$ // active coolin, temp (low)
PS@$ 4I$ // pa22ive coolin, temp
"0< 4=$ // critical S. temp
)R<$ 4I // critical temp
/
// followin, i2 a method that 0SP; will 2chedule after it
// receive2 an S)# and 8uerie2 the %) to receive value T
;ethod(_J(T)
!otif1 (\_SB.P)#(.#S&(.%)(.<7($ (-=()
/ end of !otif1 method
// fan coolin, mode hi,h/off E en,a,ed at &)( temp
PowerRe2ource(5!4($ ($ ()
;ethod(_S<&) Return (\_SB.P)#(.#S&(.%)(.5&!() / // chec+ power 2tate
;ethod(_0!) Store (0ne$ \_SB.P)#(.#S&(.%)(.5&!() / // turn on fan at hi,h
;ethod(_055) Store (7ero$ \_SB.P)#(.#S&(.%)(.5&!() /// turn off fan
/
// fan coolin, mode low/off E en,a,ed at &)4 temp
PowerRe2ource(5!44$ ($ ()
;ethod(_S<&) Return (\_SB.P)#(.#S&(.%)(.5&!4) / // chec+ power 2tate
;ethod(_0!) Store (0ne$ \_SB.P)#(.#S&(.%)(.5&!4) / // turn on fan at low
;ethod(_055) Store (7ero$ \_SB.P)#(.#S&(.%)(.5&!4) /// turn off fan
/
// 5ollowin, i2 a 2in,le fan with two 2peed2. <hi2 i2 repre2ented
// b1 creatin, two lo,ical fan device2. When 5!3 i2 turned on then
// the fan i2 at a low 2peed. When 5!4 and 5!3 are both on then
// the fan i2 at hi,h 2peed.
//
// )reate 5&! device ob9ect 5!4
Device (5!4)
// Device #D for the 5&!
!ame(_"#D$ %#S&#D(PP!P()(BP))
!ame(_X#D$ ()
!ame(_PR($ Pac+a,e()5!4($ 5!44/)
/
// )reate 5&! device ob9ect 5!3
Device (5!3)
// Device #D for the 5&!
!ame(_"#D$ %#S&#D(PP!P()(BP))
!ame(_X#D$ 4)
!ame(_PR($ Pac+a,e()5!4(/)
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +9
// create a thermal Cone
<hermal7one (<7()
;ethod(_<;P) Return (\_SB.P)#(.#S&(.%)(.<;P )/ // ,et current temp
;ethod(_&)() Return (\_SB.P)#(.#S&(.%)(.&)() / // fan hi,h temp
;ethod(_&)4) Return (\_SB.P)#(.#S&(.%)(.&)4) / // fan low temp
!ame(_&6($ Pac+a,e() \_SB.P)#(.#S&(.%)(.5!4/) // active coolin, (hi,h)
!ame(_&64$ Pac+a,e() \_SB.P)#(.#S&(.%)(.5!3/) // active coolin, (low)
;ethod(_PS@) Return (\_SB.P)#(.#S&(.%)(.PS@) / // pa22ive coolin, temp
!ame(_PS6$ Pac+a,e() \_SB.)PX(/) // pa22ive coolin, device2
;ethod(_"0<) Return (\_SB.P)#(.#S&(.%)(."0<) / // ,et critical S. temp
;ethod(_)R<) Return (\_SB.P)#(.#S&(.%)(.)R<) / // ,et crit. temp
;ethod(_S)P$ 4) Store (&r,4$ \_SB.P)#(.#S&(.%)(.;0D%) / // 2et coolin, mode
!ame(_<)4$ .) // bo,u2 e-ample con2tant
!ame(_<)3$ F) // bo,u2 e-ample con2tant
!ame(_<SP$ 4G() // pa22ive 2amplin, L 4G 2ec
!ame(_<7P$ () // pollin, not re8uired
/ // end of <7(
/ // end of %)0
/ // end of \_SB.P)#(.#S&( 2cope
/ // end of \_SB 2cope
13.6.3 Example: Thermal Zone with Multiple Devices
Scope(\_SB)
Device()PX()
!ame(_"#D$ P&)P#(((TP)
!ame(_X#D$ ()
//
// 6oad additional ob9ect2 if F.( <hermal model 2upport i2 available
//
;ethod(_#!#$ ()
#f (\_0S#(PF.( <hermal ;odelP))
6oad<able(PSSD<P$ PPmRefP$ P)pu(P$ P\\_SB.)PX(P) // F.( <hermal ;odel
/
/
// 5or brevit1$ mo2t proce22or ob9ect2 have been e-cluded
// from thi2 e-ample (2uch a2 _PSS$ _)S<$ _P)<$ _PP)$ etc.)
// Proce22or <hrottle )ontrol ob9ect
!ame(_P<)$ Re2ource<emplate()
Re,i2ter(S12tem#0$ F3$ ($ (-43() // Proce22or )ontrol
Re,i2ter(S12tem#0$ F3$ ($ (-43() // Proce22or Statu2
/)
// <hrottlin, Supported State2
// <he value2 2hown are for e-emplar1 purpo2e2 onl1
!ame(_<SS$ Pac+a,e()
// Read> fre8 percenta,e$ power$ latenc1$ control$ 2tatu2
Pac+a,e() (-I.$ 4((($ (-($ (-T$ (-(/$ // <hrottle off (4((^)
Pac+a,e() (-G=$ =(($ (-($ (-5$ (-(/$ // =T.G^
Pac+a,e() (-.B$ I(($ (-($ (-%$ (-(/$ // TG^
Pac+a,e() (-F5$ .(($ (-($ (-D$ (-(/ // I3.G^
/)
// <hrottlin, Pre2ent )apabilitie2
// <he value2 2hown are for e-emplar1 purpo2e2 onl1
;ethod(_<P))
#f(\_SB.&))
Return(() // &ll throttle 2tate2 available
/ %l2e
Return(3) // <hrottle 2tate2 BL 3 are available
/
/
/ // end of )PX( 2cope
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+8 Advanced Configuration and 'ower %nterface !pecification
Device()PX4)
!ame(_"#D$ P&)P#(((TP)
!ame(_X#D$ 4)
//
// 6oad additional ob9ect2 if F.( <hermal model 2upport i2 available
//
;ethod(_#!#$ ()
#f (\_0S#(PF.( <hermal ;odelP))
6oad<able(PSSD<P$ PPmRefP$ P)pu4P$ P\\_SB.)PX4P) // F.( <hermal ;odel
/
/
// 5or brevit1$ mo2t proce22or ob9ect2 have been e-cluded
// from thi2 e-ample (2uch a2 _PSS$ _)S<$ _P)<$ _PP)$ _P<)$ etc.)
// Proce22or <hrottle )ontrol ob9ect
!ame(_P<)$ Re2ource<emplate()
Re,i2ter(S12tem#0$ F3$ ($ (-43() // Proce22or )ontrol
Re,i2ter(S12tem#0$ F3$ ($ (-43() // Proce22or Statu2
/)
// <hrottlin, Supported State2
// <he value2 2hown are for e-emplar1 purpo2e2 onl1
!ame(_<SS$ Pac+a,e()
// Read> fre8 percenta,e$ power$ latenc1$ control$ 2tatu2
Pac+a,e() (-I.$ 4((($ (-($ (-T$ (-(/$ // <hrottle off (4((^)
Pac+a,e() (-G=$ =(($ (-($ (-5$ (-(/$ // =T.G^
Pac+a,e() (-.B$ I(($ (-($ (-%$ (-(/$ // TG^
Pac+a,e() (-F5$ .(($ (-($ (-D$ (-(/ // I3.G^
/)
// <hrottlin, Pre2ent )apabilitie2
// <he value2 2hown are for e-emplar1 purpo2e2 onl1
;ethod(_<P))
#f(\_SB.&))
Return(() // &ll throttle 2tate2 available
/ %l2e
Return(3) // <hrottle 2tate2 BL 3 are available
/
/
/ // end of )PX4 2cope
Scope(\_SB.P)#(.#S&()
Device(%)()
!ame(_"#D$ %#S&#D(PP!P()(HP)) // #D for thi2 %)
//
// 6oad additional ob9ect2 if F.( <hermal model 2upport i2 available
//
;ethod(_#!#$ ()
#f (\_0S#(PF.( <hermal ;odelP))
6oad<able(PSSD<P$ PPmRefP$ P<CFP$ P\\_SB.P)#(.#S&(.%)(P) // F.( <C
/
/
// )urrent re2ource de2cription for thi2 %)
!ame(_)RS$
Re2ource<emplate()
#0(Decode4I$(-I3$(-I3$($4)
#0(Decode4I$(-II$(-II$($4)
/)
!ame(_:P%$ () // :P% inde- for thi2 %)
// )reate %)a2 re,ion and field for thermal 2upport
0perationRe,ion(%)($ %mbedded)ontrol$ ($ (-55)
5ield(%)($ B1te&cc$ 6oc+$ Pre2erve)
;0D%$ 4$ // thermal polic1 (8uiet/perform)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +6
5&!($ 4$ // fan 2tren,th hi,h/off
$ I$ // re2erved
<;P$ 4I$ // current temp
&)($ 4I$ // active coolin, temp
PS@$ 4I$ // pa22ive coolin, temp
"0<$ 4I$ // critical S. temp
)R<$ 4I // critical temp
/
// 5ollowin, i2 a method that 0SP; will 2chedule after it
// fan coolin, mode hi,h/off E en,a,ed at &)( temp
PowerRe2ource(5!4($ ($ ()
;ethod(_S<&) Return (\_SB.P)#(.#S&(.%)(.5&!() / // chec+ power 2tate
;ethod(_0!) Store (0ne$ \_SB.P)#(.#S&(.%)(.5&!() / // turn on fan at hi,h
;ethod(_055) Store (7ero$ \_SB.P)#(.#S&(.%)(.5&!() /// turn off fan
/
// 5ollowin, i2 a 2in,le fan with one 2peed.
// )reate 5&! device ob9ect 5!4
Device (5!4)
// Device #D for the 5&!
!ame(_"#D$ %#S&#D(PP!P()(BP))
!ame(_X#D$ ()
!ame(_PR($ Pac+a,e()5!4(/)
/
// Receive2 an S)# and 8uerie2 the %) to receive value T
;ethod(_J(T)
!otif1 (\_SB.P)#(.#S&(.%)(.<7($ (-=()
/ // end of !otif1 method
// )reate 2tandard 2pecific thermal Cone
<hermal7one (<7()
;ethod(_<;P) Return (\_SB.P)#(.#S&(.%)(.<;P )/ // ,et current temp
!ame(_PS6$ Pac+a,e() \_SB.)PX($ \_SB.)PX4/) // pa22ive coolin, device2
!ame(_&6($ Pac+a,e() \_SB.P)#(.#S&(.%)(.5!4/) // active coolin,
;ethod(_&)() Return (\_SB.P)#(.#S&(.%)(.&)() / // fan temp (hi,h)
;ethod(_&)4) Return (\_SB.P)#(.#S&(.%)(.&)4) / // fan temp (low)
;ethod(_PS@) Return (\_SB.P)#(.#S&(.%)(.PS@) / // pa22ive coolin, temp
;ethod(_"0<) Return (\_SB.P)#(.#S&(.%)(."0<) / // ,et critical S. temp
;ethod(_)R<) Return (\_SB.P)#(.#S&(.%)(.)R<) / // ,et crit. temp
!ame(_<)4$ .) // bo,u2 e-ample con2tant
!ame(_<)3$ F) // bo,u2 e-ample con2tant
;ethod(_S)P$ 4) Store (&r,($ \_SB.P)#(.#S&(.%)(.;0D%) / // 2et coolin, mode
!ame(_<SP$ 4G() // pa22ive 2amplin, L 4G 2ec
/ // end of <7(
/ // end of %)0
/ // end of \_SB.P)#(.#S&( 2cope
/ // end of \_SB 2cope
//
// &)P# F.( <hermal ;odel SSD<
//
DefinitionBloc+ (
P<7&SSD<.amlP$
PSSD<P$
(-(4$
PPmRefP$
P<CFP$
(-F(((
)

%-ternal(\_SB.P)#(.#S&(.%)($ Device0b9)
Scope(\_SB.P)#(.#S&(.%)()

// )reate an &)P# F.( 2pecific thermal Cone


<hermal7one (<7()
// <hi2 <R< i2 for e-emplar1 purpo2e2 onl1
!ame(_<R<$ Pac+a,e()
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+4 Advanced Configuration and 'ower %nterface !pecification
// <hermal relation2hip pac+a,e data. & pac+a,e i2 ,enerated for
// each permutation of device 2et2. 3 device2 L . entrie2.
// Read> 2ource$ tar,et$ thermal influence$ 2amplin, period$ . re2erved
Pac+a,e () \_SB.)PX($ \_SB.)PX($ 3($ 4$ ($ ($ ($ (/$
Pac+a,e () \_SB.)PX($ \_SB.)PX4$ 4($ 4G$ ($ ($ ($ (/$
Pac+a,e () \_SB.)PX4$ \_SB.)PX($ 4($ 4G$ ($ ($ ($ (/$
Pac+a,e () \_SB.)PX4$ \_SB.)PX4$ 3($ 4$ ($ ($ ($ (/
/) // end of <R<
/ // end of <7(
/ // end of %)( Scope
/ // end of SSD<
//
// )PX( F.( <hermal ;odel SSD<
//
DefinitionBloc+ (
P)PX(SSD<.amlP$
PSSD<P$
(-(4$
PPmRefP$
P)PX(P$
(-F(((
)

%-ternal(\_SB.)PX($ Device0b9)
Scope(\_SB.)PX()

//
// &dd the ob9ect2 re8uired for F.( e-tended thermal 2upport
//
// )reate a re,ion and field2 for thermal 2upportK the platform
// fill2 in the value2 and trap2 on write2 to enable h12tere2i2.
// <he 0peration Re,ion location i2 invalid
0perationRe,ion()P(($ S12tem;emor1$ (-(((((((($ (-=)
5ield()P(($ B1te&cc$ 6oc+$ Pre2erve)
S)P$ 4$ // thermal polic1 (pa22ive/active)
R<@$ 4$ // ab2olute or relative temperature
$ I$ // re2erved
&)($ 4I$ // active coolin, temp
PS@$ 4I$ // pa22ive coolin, temp
)R<$ 4I$ // critical temp
<P<$ 4I$ // <emp trip point cro22ed
<S<$ = // <emp 2en2or thre2hold
/
;ethod(_<7;$ () Return(\_SB.P)#(.#S&(.<7() / // thermal Cone member
// Some thermal Cone method2 are now located under the
// thermal device participatin, in the F.( thermal model.
// <he2e method2 provide device 2pecific thermal information
;ethod(_S)P$ 4) Store (&r,($ \_SB.)PX(.S)P) / // 2et coolin, mode
;ethod(_R<@) Return (\_SB.)PX(.R<@) / // ab2olute or relative temp
;ethod(_&)() Return (\_SB.)PX(.&)() / // active coolin, (fan) temp
;ethod(_PS@) Return (\_SB.)PX(.PS@) / // pa22ive coolin, temp
;ethod(_)R<) Return (\_SB.)PX(.)R<) / // critical temp
!ame(_<)4$ .) // thermal con2tant 4 (#!@&6#D)
!ame(_<)3$ F) // thermal con2tant 3 (#!@&6#D)
;ethod(_<P<$ 4) Store (&r,($ \_SB.)PX(.<P<)/ // trip point temp
;ethod(_<S<) Return (\_SB.)PX(.<S<) / // temp 2en2or thre2hold
/ // end of )PX( 2cope
/ // end of SSD<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +44
//
// )PX( F.( <hermal ;odel SSD<
//
DefinitionBloc+ (
P)PX4SSD<.amlP$
PSSD<P$
(-(4$
PPmRefP$
P)PX4P$
(-F(((
)

%-ternal(\_SB.)PX4$ Device0b9)
Scope(\_SB.)PX4)

//
// &dd the ob9ect2 re8uired for F.( e-tended thermal 2upport
//
// )reate a re,ion and field2 for thermal 2upportK the platform
// fill2 in the value2 and trap2 on write2 to enable h12tere2i2.
// <he 0peration Re,ion location i2 invalid
0perationRe,ion()P(4$ S12tem#0$ (-(((((((=$ (-=)
5ield()P(4$ B1te&cc$ 6oc+$ Pre2erve)
S)P$ 4$ // thermal polic1 (pa22ive/active)
R<@$ 4$ // ab2olute or relative temperature
$ I$ // re2erved
&)($ 4I$ // active coolin, temp
PS@$ 4I$ // pa22ive coolin, temp
)R<$ 4I$ // critical temp
<P<$ 4I$ // <emp trip point cro22ed
<S<$ = // <emp 2en2or thre2hold
/
;ethod(_<7;$ () Return(\_SB.P)#(.#S&(.<7() / // thermal Cone member
// Some thermal Cone method2 are now located under the
// thermal device participatin, in the F.( thermal model.
// <he2e method2 provide device 2pecific thermal information
;ethod(_S)P$ 4) Store (&r,($ \_SB.)PX4.S)P) / // 2et coolin, mode
;ethod(_R<@) Return (\_SB.)PX4.R<@) / // ab2olute or relative temp
;ethod(_&)() Return (\_SB.)PX4.&)() / // active coolin, (fan) temp
;ethod(_PS@) Return (\_SB.)PX4.PS@) / // pa22ive coolin, temp
;ethod(_)R<) Return (\_SB.)PX4.)R<) / // critical temp
!ame(_<)4$ .) // thermal con2tant 4 (#!@&6#D)
!ame(_<)3$ F) // thermal con2tant 3 (#!@&6#D)
;ethod(_<P<$ 4) Store (&r,($ \_SB.)PX4.<P<)/ // trip point temp
;ethod(_<S<) Return (\_SB.)PX4.<S<) / // temp 2en2or thre2hold
/ // end of )PX4 2cope
/ // end of SSD<
14 ACPI Embedded Controller Interface Specifcation
AC'% defines a standard hardware and software communications interface 0etween an 2! driver and an
em0edded controller. This allows an( 2! to provide a standard driver that can directl( communicate with
an em0edded controller in the s(stem, thus allowing other drivers within the s(stem to communicate with
and use the resources of s(stem em0edded controllers. This in turn ena0les the 2.M to provide platform
features that the 2! 2!'M and applications can take advantage of.
AC'% also defines a standard hardware and software communications interface 0etween an 2! driver and
an .m0edded Controller&0ased !M;&@C =.C&!M;&@C>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+42 Advanced Configuration and 'ower %nterface !pecification
The AC'% standard supports multiple em0edded controllers in a s(stem, each with its own resources. .ach
em0edded controller has a flat 0(te&addressa0le %F2 space, currentl( defined as 2*+ 0(tes. 5eatures
implemented in the em0edded controller have an event J:uer(L mechanism that allows feature hardware
implemented 0( the em0edded controller to gain the attention of an 2! driver or A!1FAM1 code handler.
The interface has 0een specified to work on the most popular em0edded controllers on the market toda(,
onl( re:uiring changes in the wa( the em0edded controller is JwiredL to the host interface.
Two interfaces are specified<
A private interface, e/clusivel( owned 0( the em0edded controller driver.
A shared interface, used 0( the em0edded controller driver and some other driver.
This interface is separate from the traditional 'C ke(0oard controller. !ome 2.Ms might choose to
implement the AC'% .m0edded Controller %nterface =.C%> within the same em0edded controller as the
ke(0oard controller function, 0ut the .C% re:uires its own uni:ue host resources =interrupt event and access
registers>.
This interface does support sharing the .C% with an inter&environment interface =such as !M%> and relies on
the AC'%&defined J$lo0al 1ockL protocol. 5or information a0out the $lo0al 1ock interface, see section
*.2.4.4, J$lo0al 1ock.L ;oth the shared and private .C interfaces are descri0ed in the following sections.
The .C% has 0een designed such that a platform can use it in either the legac( or AC'% modes with minimal
changes 0etween the two operating environments. This is to encourage standardiHation for this interface to
ena0le faster development of platforms as well as opening up features within these controllers to higher
levels of software.
14.1 Embedded Controller Interface Description
.m0edded controllers are the general class of microcontrollers used to support 2.M&specific
implementations. The AC'% specification supports em0edded controllers in an( platform design, as long as
the microcontroller conforms to one of the models descri0ed in this section. The em0edded controller is a
uni:ue feature in that it can perform comple/ low&level functions through a simple interface to the host
microprocessor=s>.
Although there is a large variet( of microcontrollers in the market toda(, the most commonl( used
em0edded controllers include a host interface that connects the em0edded controller to the host data 0us,
allowing 0i&directional communications. A 0i&directional interrupt scheme reduces the host processor
latenc( in communicating with the em0edded controller.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +43
Currentl(, the most common host interface architecture incorporated into microcontrollers is modeled after
the standard %A&'C architecture ke(0oard controller. This ke(0oard controller is accessed at /+ and /+"
in s(stem %F2 space. 'ort /+ is termed the data register, and allows 0i&directional data transfers to and
from the host and em0edded controller. 'ort /+" is termed the commandFstatus registerK it returns port
status information upon a read, and generates a command se:uence to the em0edded controller upon a
write. This same class of controllers also includes a second decode range that shares the same properties as
the ke(0oard interface 0( having a commandFstatus register and a data register. The following diagram
graphicall( depicts this interface.
$C STAT*S
R$5IST$R
$C O*TP*T
B*..$R
$C I&P*T
B*..$R
I&T$R.AC$
ARBITRATIO&
CO'$
SMI
I&T$R.AC$
CO'$
SCI
I&T$R.AC$
CO'$
COMMA&' RIT$ )SMI/SCI+
'ATARIT$ )SMI/SCI+
'ATA R$A' )SMI/SCI+
STAT*S R$A' )SMI/SCI+
$C%SCI%$&
$C%SMI%$&
$C%SMI%STS
$C%SCI%STS
$C%SMI
$C%SCI
I/O
MAI&
.IRMAR$
6igure +&-+ Shared Interface
The diagram a0ove depicts the general register model supported 0( the AC'% .m0edded Controller
%nterface.
The first method uses an em0edded controller interface shared 0etween 2!'M and the s(stem management
code, which re:uires the $lo0al 1ock semaphore overhead to ar0itrate ownership. The second method is a
dedicated em0edded controller decode range for sole use 0( 2!'M driver. The following diagram
illustrates the em0edded controller architecture that includes a dedicated AC'% interface.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+4" Advanced Configuration and 'ower %nterface !pecification
SCI
I&T$R.AC$
CO'$
I/O
$C%SCI%$&
$C%SCI%STS
$C%SCI
SCI STAT*S
R$5IST$R
SCI O*TP*T
B*..$R
SCI I&P*T
B*..$R
COMMA&' RIT$ )SCI+
'ATARIT$ )SCI+
'ATAR$A' )SCI+
STAT*S R$A' )SCI+
SMI STAT*S
R$5IST$R
SMI O*TP*T
B*..$R
SMI I&P*T
B*..$R
SMI
I&T$R.AC$
CO'$
COMMA&' RIT$ )SMI+
'ATARIT$ )SMI+
'ATAR$A' )SMI+
STAT*S R$A' )SMI+
$C%SMI%$&
$C%SMI%STS
$C%SMI
MAI&
.IRMAR$
6igure +&-& Private Interface
The private interface allows 2!'M to communicate with the em0edded controller without the additional
software overhead associated with using the $lo0al 1ock. !everal common s(stem configurations can
provide the additional em0edded controller interfaces<
Non&shared em0edded controller. This will 0e the most common case where there is no need for
the s(stem management handler to communicate with the em0edded controller when the s(stem
transitions to AC'% mode. 2!'M processes all normal t(pes of s(stem management events, and the
s(stem management handler does not need to take an( actions.
%ntegrated ke(0oard controller and em0edded controller. This provides three host interfaces as
descri0ed earlier 0( including the standard ke(0oard controller in an e/isting component =chip set, %F2
controller> and adding a discrete, standard em0edded controller with two interfaces for s(stem
management activities.
!tandard ke(0oard controller and em0edded controller. This provides three host interfaces 0(
providing a ke(0oard controller as a distinct component, and two host interfaces are provided in the
em0edded controller for s(stem management activities.
Two em0edded controllers. This provides up to four host interfaces 0( using two em0edded
controllersK one controller for s(stem management activities providing up to two host interfaces, and
one controller for ke(0oard controller functions providing up to two host interfaces.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +4*
.m0edded controller and no ke(0oard controller. 5uture platforms might provide ke(0oard
functionalit( through an entirel( different mechanism, which would allow for two host interfaces in an
em0edded controller for s(stem management activities.
To handle the general em0edded controller interface =as opposed to a dedicated interface> model, a method
is availa0le to make the em0edded controller a sharea0le resource 0etween multiple tasks running under the
operating s(stemMs control and the s(stem management interrupt handler. This method, as descri0ed in this
section, re:uires several changes<
Additional e/ternal hardware
.m0edded controller firmware changes
!(stem management interrupt handler firmware changes
2perating software changes
Access to the shared em0edded controller interface re:uires additional software to ar0itrate 0etween the
operating s(stemMs use of the interface and the s(stem management handlerMs use of the interface. This is
done using the $lo0al 1ock as descri0ed in section *.2.4.4, J$lo0al 1ock.L
This interface sharing protocol also re:uires em0edded controller firmware changes, in order to ensure that
collisions do not occur at the interface. A collision could occur if a 0(te is placed in the s(stem output
0uffer and an interrupt is then generated. There is a small window of time when the incorrect recipient
could receive the data. This pro0lem is resolved 0( ensuring that the firmware in the em0edded controller
does not place an( data in the output 0uffer until it is re:uested 0( 2!'M or the s(stem management
handler.
More detailed algorithms and descriptions are provided in the following sections.
14.2 Embedded Controller Register Descriptions
The em0edded controller contains three registers at two address locations< .CC!C and .CC-ATA. The
.CC!C, or .m0edded Controller !tatusFCommand register, acts as two registers< a status register for reads
to this port and a command register for writes to this port. The .CC-ATA =.m0edded Controller -ata
register> acts as a port for transferring data 0etween the host C', and the em0edded controller.
14.2.1 Embedded Controller Status, EC_SC (R)
This is a read&onl( register that indicates the current status of the em0edded controller interface.
<it. <it- <itA <it( <it# <it& <it+ <it$
I;0 SMID17T SCID17T <2"ST CM5 I;0 I<6 3<6
Where<
%$N< %gnored
!M%C.DT< 4 I %ndicates !M% event is pending =re:uesting !M% :uer(>.
I No !M% events are pending.
!C%C.DT< 4 I %ndicates !C% event is pending =re:uesting !C% :uer(>.
I No !C% events are pending.
;,3!T< 4 I Controller is in 0urst mode for polled command processing.
I Controller is in normal mode for interrupt&driven command processing.
CM-< 4 I ;(te in data register is a command 0(te =onl( used 0( controller>.
I ;(te in data register is a data 0(te =onl( used 0( controller>.
%;5< 4 I %nput 0uffer is full =data read( for em0edded controller>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+4+ Advanced Configuration and 'ower %nterface !pecification
I %nput 0uffer is empt(.
2;5< 4 I 2utput 0uffer is full =data read( for host>.
I 2utput 0uffer is empt(.
The 2utput ;uffer 5ull =2;5> flag is set when the em0edded controller has written a 0(te of data into the
command or data port 0ut the host has not (et read it. After the host reads the status 0(te and sees the 2;5
flag set, the host reads the data port to get the 0(te of data that the em0edded controller has written. After
the host reads the data 0(te, the 2;5 flag is cleared automaticall( 0( hardware. This signals the em0edded
controller that the data has 0een read 0( the host and the em0edded controller is free to write more data to
the host.
The %nput ;uffer 5ull =%;5> flag is set when the host has written a 0(te of data to the command or data port,
0ut the em0edded controller has not (et read it. After the em0edded controller reads the status 0(te and sees
the %;5 flag set, the em0edded controller reads the data port to get the 0(te of data that the host has written.
After the em0edded controller reads the data 0(te, the %;5 flag is automaticall( cleared 0( hardware. This
is the signal to the host that the data has 0een read 0( the em0edded controller and that the host is free to
write more data to the em0edded controller.
The !C% event =!C%C.DT> flag is set when the em0edded controller has detected an internal event that
re:uires the operating s(stemMs attention. The em0edded controller sets this 0it in the status register, and
generates an !C% to 2!'M. 2!'M needs this 0it to differentiate command&complete !C%s from notification
!C%s. 2!'M uses the :uer( command to re:uest the cause of the !C%C.DT and take action. 5or more
information, see section 43.3, J.m0edded Controller Command !et.L>
The !M% event =!M%C.DT> flag is set when the em0edded controller has detected an internal event that
re:uires the s(stem management interrupt handlerMs attention. The em0edded controller sets this 0it in the
status register 0efore generating an !M%.
The ;urst =;,3!T> flag indicates that the em0edded controller has received the 0urst ena0le command
from the host, has halted normal processing, and is waiting for a series of commands to 0e sent from the
host. This allows 2!'M or s(stem management handler to :uickl( read and write several 0(tes of data at a
time without the overhead of !C%s 0etween the commands.
14.2.2 Embedded Controller Command, EC_SC (W)
This is a write&onl( register that allows commands to 0e issued to the em0edded controller. Writes to this
port are latched in the input data register and the input 0uffer full flag is set in the status register. Writes to
this location also cause the command 0it to 0e set in the status register. This allows the em0edded controller
to differentiate the start of a command se:uence from a data 0(te write operation.
14.2.3 Embedded Controller Data, EC_DATA (R/W)
This is a readFwrite register that allows additional command 0(tes to 0e issued to the em0edded controller,
and allows 2!'M to read data returned 0( the em0edded controller. Writes to this port 0( the host are
latched in the input data register, and the input 0uffer full flag is set in the status register. 3eads from this
register return data from the output data register and clear the output 0uffer full flag in the status register.
14.3 Embedded Controller Command Set
The em0edded controller command set allows 2!'M to communicate with the em0edded controllers.
AC'% defines the commands and their 0(te encodings for use with the em0edded controller that are shown
in the following ta0le.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +49
Ta!le +&-+ 1%!edded Controller Co%%ands
1%!edded Controller Co%%and Co%%and <)te 1ncoding
3ead .m0edded Controller =3-C.C> /8
Write .m0edded Controller =W3C.C> /84
;urst .na0le .m0edded Controller =;.C.C> /82
;urst -isa0le .m0edded Controller =;-C.C> /83
Guer( .m0edded Controller =G3C.C> /8"
14.3.1 Read Embedded Controller, RD_EC (0x80)
This command 0(te allows 2!'M to read a 0(te in the address space of the em0edded controller. This
command 0(te is reserved for e/clusive use 0( 2!'M, and it indicates to the em0edded controller to
generate !C%s in response to related transactions =that is, %;5\ or 2;5\4 in the .C !tatus 3egister>,
rather than !M%s. This command consists of a command 0(te written to the .m0edded Controller
Command register =.CC!C>, followed 0( an address 0(te written to the .m0edded Controller -ata register
=.CC-ATA>. The em0edded controller then returns the 0(te at the addressed location. The data is read at
the data port after the 2;5 flag is set.
14.3.2 Write Embedded Controller, WR_EC (0x81)
This command 0(te allows 2!'M to write a 0(te in the address space of the em0edded controller. This
command 0(te is reserved for e/clusive use 0( 2!'M, and it indicates to the em0edded controller to
generate !C%s in response to related transactions =that is, %;5\ or 2;5\4 in the .C !tatus 3egister>,
rather than !M%s. This command allows 2!'M to write a 0(te in the address space of the em0edded
controller. %t consists of a command 0(te written to the .m0edded Controller Command register =.CC!C>,
followed 0( an address 0(te written to the .m0edded Controller -ata register =.CC-ATA>, followed 0( a
data 0(te written to the .m0edded Controller -ata 3egister =.CC-ATA>K this is the data 0(te written at the
addressed location.
14.3.3 Burst Enable Embedded Controller, BE_EC (0x82)
This command 0(te allows 2!'M to re:uest dedicated attention from the em0edded controller and =e/cept
for critical events> prevents the em0edded controller from doing tasks other than receiving command and
data from the host processor =either the s(stem management interrupt handler or 2!'M>. This command is
an optimiHation that allows the host processor to issue several commands 0ack to 0ack, in order to reduce
latenc( at the em0edded controller interface. When the controller is in the 0urst mode, it should transition
to the 0urst disa0le state if the host does not issue a command within the following guidelines<
5irst Access I " microseconds
!u0se:uent Accesses I * microseconds each
Total ;urst Time I 4 millisecond
%n addition, the em0edded controller can disengage the 0urst mode at an( time to process a critical event. %f
the em0edded controller disa0les 0urst mode for an( reason other than the 0urst disa0le command, it should
generate an !C% to 2!'M to indicate the change.
While in 0urst mode, the em0edded controller follows these guidelines for 2!'M driver<
!C%s are generated as normal, including %;5\ and 2;5\4.
Accesses should 0e responded to within * microseconds.
;urst mode is entered in the following manner<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+48 Advanced Configuration and 'ower %nterface !pecification
2!'M driver writes the ;urst .na0le .m0edded Controller, ;.C.C =/82> command 0(te and then the
.m0edded Controller will prepare to enter the ;urst mode. This includes processing an( routine activities
such that it should 0e a0le to remain dedicated to 2!'M interface for e 4 microsecond.
The .m0edded Controller sets the ;urst 0it of the .m0edded Controller !tatus 3egister, puts the ;urst
Acknowledge 0(te =/6> into the !C% output 0uffer, sets the 2;5 0it, and generates an !C% to signal
2!'M that it is in ;urst mode.
;urst mode is e/ited the following manner<
2!'M driver writes the ;urst -isa0le .m0edded Controller, ;-C.C =/83> command 0(te and then the
.m0edded Controller will e/it ;urst mode 0( clearing the ;urst 0it in the .m0edded Controller !tatus
register and generating an !C% signal =due to %;5\>.
The .m0edded Controller clears the ;urst 0it of the .m0edded Controller !tatus 3egister.
14.3.4 Burst Disable Embedded Controller, BD_EC (0x83)
This command 0(te releases the em0edded controller from a previous 0urst ena0le command and allows it
to resume normal processing. This command is sent 0( 2!'M or s(stem management interrupt handler
after it has completed its entire :ueued command se:uence to the em0edded controller.
14.3.5 Query Embedded Controller, QR_EC (0x84)
2!'M driver sends this command when the !C%C.DT flag in the .CC!C register is set. When the
em0edded controller has detected a s(stem event that must 0e communicated to 2!'M, it first sets the
!C%C.DT flag in the .CC!C register, generates an !C%, and then waits for 2!'M to send the :uer(
=G3C.C> command. 2!'M detects the em0edded controller !C%, sees the !C%C.DT flag set, and sends the
:uer( command to the em0edded controller. ,pon receipt of the G3C.C command 0(te, the em0edded
controller places a notification 0(te with a value 0etween &2**, indicating the cause of the notification.
The notification 0(te indicates which interrupt handler operation should 0e e/ecuted 0( 2!'M to process
the em0edded controller !C%. The :uer( value of Hero is reserved for a spurious :uer( result and indicates
Jno outstanding event.L
14.4 SMBus Host Controller Notifcation Header (Optional), OS_SMB_EVT
This :uer( command notification header is the special return code that indicates events with an !M;us
controller implemented within an em0edded controller. These events include<
Command completion
Command error
Alarm reception
The actual notification value is declared in the .C&!M;&@C device o0#ect in the AC'% Namespace.
14.5 Embedded Controller Firmware
The em0edded controller firmware must o0e( the following rules in order to 0e AC'%&compati0le<
SMI Processing. Although it is not e/plicitl( stated in the command specification section, a shared
em0edded controller interface has a separate command set for communicating with each environment
it plans to support. %n other words, the em0edded controller knows which environment is generating
the command re:uest, as well as which environment is to 0e notified upon event detection, and can
then generate the correct interrupts and notification values. This implies that a s(stem management
handler uses commands that parallel the functionalit( of all the commands for AC'% including :uer(,
read, write, and an( other implemented specific commands.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +46
SCI@SMI Task Kueuing. %f the s(stem design is sharing the interface 0etween 0oth a s(stem
management interrupt handler and 2!'M, the em0edded controller should alwa(s 0e prepared to
:ueue a notification if it receives a command. The em0edded controller onl( sets the appropriate event
flag in the status =.CC!C> register if the controller has detected an event that should 0e communicated
to the 2! or s(stem management handler. The em0edded controller must 0e a0le to field commands
from either environment without loss of the notification event. At some later time, the 2! or s(stem
management handler issues a :uer( command to the em0edded controller to re:uest the cause of the
notification event.
0otification Manage%ent. The use of the em0edded controller means using the :uer( =G3C.C>
command to notif( 2!'M of s(stem events re:uiring action. %f the em0edded controller is shared with
the operating s(stem, the !M% handler uses the !M%C.DT flag and an !M% :uer( command =not
defined in this document> to receive the event notifications. The em0edded controller doesnMt place
event notifications into the output 0uffer of a shared interface unless it receives a :uer( command from
2!'M or the s(stem management interrupt handler.
14.6 Interrupt Model
The .C %nterrupt Model uses pulsed interrupts to speed the clearing process. The %nterrupt is firmware
generated using an .C general&purpose output and has the waveform shown in 5igure 42&3. The em0edded
controller !C% is alwa(s wired directl( to a $'. input, and 2!'M driver treats this as an edge event =the
.C !C% $'. cannot 0e shared>.
T
7O-'
Interrupt detected
Interrupt ser9iced
and cleared
6igure +&-# 1C Interrupt :avefor%
14.6.1 Event Interrupt Model
The em0edded controller must generate !C%s for the events listed in the following ta0le.
Ta!le +&-& 1vents for :hich 1%!edded Controller Must ;enerate SCIs
1vent 5escription
%;5\ !ignals that the em0edded controller has read the last command or data from the
input 0uffer and the host is free to send more data.
2;5\4 !ignals that the em0edded controller has written a 0(te of data into the output
0uffer and the host is free to read the returned data.
!C%C.DT\4 !ignals that the em0edded controller has detected an event that re:uires 2!
attention. 2!'M should issue a :uer( =G3C.C> command to find the cause of the
event.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+2 Advanced Configuration and 'ower %nterface !pecification
14.6.2 Command Interrupt Model
The em0edded controller must generate !C%s for commands as follows<
"ead Command =3 ;(tes>
;(te Y4 =Command 0(te @eader> %nterrupt on %;5\
;(te Y2 =Address 0(te to read> No %nterrupt
;(te Y3 =-ata read to host> %nterrupt on 2;5\4
:rite Command =3 ;(tes>
;(te Y4 =Command 0(te @eader> %nterrupt on %;5\
;(te Y2 =Address 0(te to write> %nterrupt on %;5\
;(te Y3 =-ata to read > %nterrupt on %;5\
Kuer) Command =2 ;(tes>
;(te Y4 =Command 0(te @eader> No %nterrupt
;(te Y2 =Guer( value to host> %nterrupt on 2;5\4
<urst 1na!le Command =2 ;(tes>
;(te Y4 =Command 0(te @eader> No %nterrupt
;(te Y2 =;urst acknowledge 0(te> %nterrupt on 2;5\4
<urst 5isa!le Command =4 ;(te>
;(te Y4 =Command 0(te @eader> %nterrupt on %;5\
14.7 Embedded Controller Interfacing Algorithms
To initiate communications with the em0edded controller, 2!'M or s(stem management handler ac:uires
ownership of the interface. This ownership is ac:uired through the use of the $lo0al 1ock =descri0ed in
section *.2.4.4, J$lo0al 1ockL>, or is owned 0( default 0( 2!'M as a non&shared resource =and the
$lo0al 1ock is not re:uired for accessi0ilit(>.
After ownership is ac:uired, the protocol alwa(s consists of the passing of a command 0(te. The command
0(te will indicate the t(pe of action to 0e taken. 5ollowing the command 0(te, Hero or more data 0(tes can
0e e/changed in either direction. The data 0(tes are defined according to the command 0(te that is
transferred.
The em0edded controller also has two status 0its that indicate whether the registers have 0een read. This is
used to ensure that the host or em0edded controller has received data from the em0edded controller or host.
When the host writes data to the command or data register of the em0edded controller, the input 0uffer flag
=%;5> in the status register is set within 4 microsecond. When the em0edded controller reads this data from
the input 0uffer, the input 0uffer flag is reset. When the em0edded controller writes data into the output
0uffer, the output 0uffer flag =2;5> in the status register is set. When the host processor reads this data
from the output 0uffer, the output 0uffer flag is reset.
14.8 Embedded Controller Description Information
Certain aspects of the em0edded controllerMs operation have 2.M&defina0le values associated with them.
The following is a list of values that are defined in the software la(ers of the AC'% specification<
!tatus flag indicating whether the interface re:uires the use of the $lo0al 1ock.
;it position of em0edded controller interrupt in general&purpose status register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +24
-ecode address for commandFstatus register.
-ecode address for data register.
;ase address and :uer( value of an( .C&!M;us controller.
5or implementation details of the a0ove listed information, see sections 42.44, J-efining an .m0edded
Controller -evice in AC'% Namespace,L and 42.42, J-efining an .C !M;us @ost Controller in AC'%
Namespace.L
An em0edded controller will re:uire the inclusion of the $1E method in its AC'% namespace if potentiall(
contentious accesses to device resources are performed 0( non&2! code. !ee section +.*.9, JC$1E =$lo0al
1ock>L for details a0out the C$1E method.
14.9 SMBus Host Controller Interface via Embedded Controller
This section specifies a standard interface that an AC'%&compati0le 2! can use to communicate with
em0edded controller&0ased !M;us host controllers =.C&!M;&@C>. This interface allows the host
processor =under control of 2!'M> to manage devices on the !M;us. T(pical devices residing on the
!M;us include !mart ;atteries, !mart ;atter( Chargers, contrastF0acklight control, and temperature
sensors.
The .C&!M;&@C interface consists of a 0lock of registers that reside in em0edded controller space. These
registers are used 0( software to initiate !M;us transactions and receive !M;us notifications. ;( using a
well&defined register set, 2! software can 0e written to operate with an( vendorMs em0edded controller
hardware.
Certain !M;us segments have special re:uirements that the host controller filters certain !M;us
commands =for e/ample, to prevent an errant application or virus from potentiall( damaging the 0atter(
su0s(stem>. This is most easil( accomplished 0( implementing the host interface controller through an
em0edded controllerPas em0edded controller can easil( filter out potentiall( pro0lematic commands.
Notice that an .C&!M;&@C interface will re:uire the inclusion of the $1E method in its AC'% namespace
if potentiall( contentious accesses to device resources are performed 0( non&2! code. !ee section +.*.9,
JC$1E =$lo0al 1ock>L for details on using the C$1E method.
14.9.1 Register Description
The .C&!M;us host interface is a flat arra( of registers that are arranged se:uentiall( in the em0edded
controller address space.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+22 Advanced Configuration and 'ower %nterface !pecification
14.9.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +23
Status Register, SMB_STS
This register indicates general status on the !M;us. This includes !M;&@C command completion status,
alarm received status, and error detection status =the error codes are defined later in this section>. This
register is cleared to Heroes =e/cept for the A13M 0it> whenever a new command is issued using a write to
the protocol =!M;C'3TC1> register. This register is alwa(s written with the error code 0efore clearing the
protocol register. The !M;&@C :uer( event =that is, an !M;&@C interrupt> is raised after the clearing of
the protocol register.
0oteH 2!'M must ensure the A13M 0it is cleared after it has 0een serviced 0( writing OM to the
!M;C!T! register.
<it. <it- <itA <it( <it# <it& <it+ <it$
5301 AL"M "1S STAT2S
Where<
-2N.< %ndicates the last command has completed and no error.
A13M< %ndicates an !M;us alarm message has 0een received.
3.!< 3eserved
!TAT,!< %ndicates !M;us communication status for one of the reasons listed in the following
ta0le.
Ta!le +&-# SM<us Status Codes
Status
Code 0a%e 5escription
h !M;us 2E %ndicates the transaction has 0een successfull( completed.
9h !M;us ,nknown 5ailure %ndicates failure 0ecause of an unknown !M;us error.
4h !M;us -evice Address
Not Acknowledged
%ndicates the transaction failed 0ecause the slave device address was
not acknowledged.
44h !M;us -evice .rror
-etected
%ndicates the transaction failed 0ecause the slave device signaled an
error condition.
42h !M;us -evice Command
Access -enied
%ndicates the transaction failed 0ecause the !M;us host does not
allow the specific command for the device 0eing addressed. 5or
e/ample, the !M;us host might not allow a caller to ad#ust the !mart
;atter( ChargerMs output.
43h !M;us ,nknown .rror %ndicates the transaction failed 0ecause the !M;us host encountered
an unknown error.
49h !M;us -evice Access
-enied
%ndicates the transaction failed 0ecause the !M;us host does not
allow access to the device addressed. 5or e/ample, the !M;us host
might not allow a caller to directl( communicate with an !M;us
device that controls the s(stemMs power planes.
48h !M;us Timeout %ndicates the transaction failed 0ecause the !M;us host detected a
timeout on the 0us.
46h !M;us @ost ,nsupported
'rotocol
%ndicates the transaction failed 0ecause the !M;us host does not
support the re:uested protocol.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+2" Advanced Configuration and 'ower %nterface !pecification
Status
Code 0a%e 5escription
4Ah !M;us ;us( %ndicates that the transaction failed 0ecause the !M;us host reports
that the !M;us is presentl( 0us( with some other transaction. 5or
e/ample, the !mart ;atter( might 0e sending charging information to
the !mart ;atter( Charger.
45h !M;us '.C =C3C&8>
.rror
%ndicates that a 'acket .rror Checking ='.C> error occurred during
the last transaction.
All other error codes are reserved.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +2*
14.9.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+2+ Advanced Configuration and 'ower %nterface !pecification
Protocol Register, SMB_PRTCL
This register determines the t(pe of !M;us transaction generated on the !M;us. %n addition to indicating
the protocol t(pe to the !M;&@C, a write to this register initiates the transaction on the !M;us. Notice that
0it 9 of the protocol value is used to indicate whether packet error checking should 0e emplo(ed. A value of
4 =one> in this 0it indicates that '.C format should 0e used for the specified protocol, and a value of
=Hero> indicates the standard =non&'.C> format should 0e used.
<it. <it- <itA <it( <it# <it& <it+ <it$
P1C P"3T3C3L
Where<
'32T2C21< / I Controller Not %n ,se
/4 I 3eserved
/2 I Write Guick Command
/3 I 3ead Guick Command
/" I !end ;(te
/* I 3eceive ;(te
/+ I Write ;(te
/9 I 3ead ;(te
/8 I Write Word
/6 I 3ead Word
/A I Write ;lock
/; I 3ead ;lock
/C I 'rocess Call
/- I ;lock Write&;lock 3ead 'rocess Call
5or e/ample, the protocol value of /6 would 0e used to communicate to a device that supported the
standard read word protocol. %f this device also supported packet error checking for this protocol, a value of
/86 =read word wit1 P*C> could optionall( 0e used. !ee the !M;us specification for more information on
packet error checking.
When 2!'M initiates a new command such as write to the !M;C'3TC1 register, the !M;us controller
first updates the !M;C!T! register and then clears the !M;C'3TC1 register. After the !M;C'3TC1
register is cleared, the host controller :uer( value is raised.
All other protocol values are reserved.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +29
14.9.1.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+28 Advanced Configuration and 'ower %nterface !pecification
Address Register, SMB_ADDR
This register contains the 9&0it address to 0e generated on the !M;us. This is the first 0(te to 0e sent on the
!M;us for all of the different protocols.
<it. <it- <itA <it( <it# <it& <it+ <it$
A55"1SS >A-HA$? "1S
Where<
3.!< 3eserved
A--3.!!< 9&0it !M;us address. This address is not Hero aligned =in other words, it is onl( a 9&
0it address =A+<A> that is aligned from 0it 4&9>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +26
14.9.1.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+3 Advanced Configuration and 'ower %nterface !pecification
Command Register, SMB_CMD
This register contains the command 0(te that will 0e sent to the target device on the !M;us and is used for
the following protocols< send 0(te, write 0(te, write word, read 0(te, read word, process call, 0lock read
and 0lock write. %t is not used for the :uick commands or the receive 0(te protocol, and as such, its value is
a JdonMt careL for those commands.
<it. <it- <itA <it( <it# <it& <it+ <it$
C3MMA05
Where<
C2MMAN-< Command 0(te to 0e sent to !M;us device.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +34
14.9.1.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+32 Advanced Configuration and 'ower %nterface !pecification
Data Register Array, SMB_DATA[i], i=0-31
This 0ank of registers contains the remaining 0(tes to 0e sent or received in an( of the different protocols
that can 0e run on the !M;us. The !M;C-ATAViW registers are defined on a per&protocol 0asis and, as
such, provide efficient use of register space.
<it. <it- <itA <it( <it# <it& <it+ <it$
5ATA
Where<
-ATA< 2ne 0(te of data to 0e sent or received =depending upon protocol>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +33
14.9.1.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+3" Advanced Configuration and 'ower %nterface !pecification
Block Count Register, SMB_BCNT
This register contains the num0er of 0(tes of data present in the !M;C-ATAViW registers preceding an(
write 0lock and following an( read 0lock transaction. The data siHe is defined on a per protocol 0asis.
<it. <it- <itA <it( <it# <it& <it+ <it$
"1S <C0T
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +3*
14.9.1.7
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+3+ Advanced Configuration and 'ower %nterface !pecification
Alarm Address Register, SMB_ALRM_ADDR
This register contains the address of an alarm message received 0( the host controller, at slave address /8,
from the !M;us master that initiated the alarm. The address indicates the slave address of the device on the
!M;us that initiated the alarm message. The status of the alarm message is contained in the
!M;CA13MC-ATA/ registers. 2nce an alarm message has 0een received, the !M;&@C will not receive
additional alarm messages until the A13M status 0it is cleared.
<it. <it- <itA <it( <it# <it& <it+ <it$
A55"1SS >A-HA$? "1S
Where<
3.!< 3eserved
A--3.!!< !lave address =A+<A> of the !M;us device that initiated the !M;us alarm message.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +39
14.9.1.8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+38 Advanced Configuration and 'ower %nterface !pecification
14.9.1.8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +36
Alarm Data Registers, SMB_ALRM_DATA[0], SMB_ALRM_DATA[1]
These registers contain the two data 0(tes of an alarm message received 0( the host controller, at slave
address /8, from the !M;us master that initiated the alarm. These data 0(tes indicate the specific reason
for the alarm message, such that 2!'M can take actions. 2nce an alarm message has 0een received, the
!M;&@C will not receive additional alarm messages until the A13M status 0it is cleared.
<it. <it- <itA <it( <it# <it& <it+ <it$
5ATA >5.H5$?
Where<
-ATA< -ata 0(te received in alarm message.
The alarm address and alarm data registers are not read 0( 2!'M until the alarm status 0it is set. 2!'M
driver then reads the 3 0(tes, and clears the alarm status 0it to indicate that the alarm registers are now
availa0le for the ne/t event.
14.9.2 Protocol Description
This section descri0es how to initiate the different protocols on the !M;us through the interface descri0ed
in section 43.6.4, J3egister -escriptions.L The registers should all 0e written with the appropriate values
0efore writing the protocol value that starts the !M;us transaction. All transactions can 0e completed in
one pass.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+" Advanced Configuration and 'ower %nterface !pecification
14.9.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +"4
Write Quick
5ata SentH
!M;CA--3< Address of !M;us device.
!M;C'3TC1< Write /2 to initiate the write :uick protocol.
5ata "eturnedH
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+"2 Advanced Configuration and 'ower %nterface !pecification
14.9.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +"3
Read Quick
5ata SentH
!M;CA--3< Address of !M;us device.
!M;C'3TC1< Write /3 to initiate the read :uick protocol.
5ata "eturnedH
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+"" Advanced Configuration and 'ower %nterface !pecification
14.9.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +"*
14.9.2.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+"+ Advanced Configuration and 'ower %nterface !pecification
Send Byte
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C'3TC1< Write /" to initiate the send 0(te protocol, or /8" to initiate the send 0(te
protocol with '.C.
5ata "eturnedH
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +"9
14.9.2.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+"8 Advanced Configuration and 'ower %nterface !pecification
Receive Byte
5ata SentH
!M;CA--3< Address of !M;us device.
!M;C'3TC1< Write /* to initiate the receive 0(te protocol, or /8* to initiate the receive 0(te
protocol with '.C.
5ata "eturnedH
!M;C-ATAVW< -ata 0(te received.
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
14.9.2.5
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +"6
Write Byte
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C-ATAVW< -ata 0(te to 0e sent.
!M;C'3TC1< Write /+ to initiate the write 0(te protocol, or /8+ to initiate the write 0(te
protocol with '.C.
5ata "eturnedH
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+* Advanced Configuration and 'ower %nterface !pecification
14.9.2.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +*4
14.9.2.6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+*2 Advanced Configuration and 'ower %nterface !pecification
Read Byte
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C'3TC1< Write /9 to initiate the read 0(te protocol, or /89 to initiate the read 0(te
protocol with '.C.
5ata "eturnedH
!M;C-ATAVW< -ata 0(te received.
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +*3
14.9.2.7
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+*" Advanced Configuration and 'ower %nterface !pecification
Write Word
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C-ATAVW< 1ow data 0(te to 0e sent.
!M;C-ATAV4W< @igh data 0(te to 0e sent.
!M;C'3TC1< Write /8 to initiate the write word protocol, or /88 to initiate the write word
protocol with '.C.
5ata "eturnedH
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
14.9.2.8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +**
Read Word
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C'3TC1< Write /6 to initiate the read word protocol, or /86 to initiate the read word
protocol with '.C.
5ata "eturnedH
!M;C-ATAVW< 1ow data 0(te received.
!M;C-ATAV4W< @igh data 0(te received.
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+*+ Advanced Configuration and 'ower %nterface !pecification
14.9.2.9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +*9
14.9.2.9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+*8 Advanced Configuration and 'ower %nterface !pecification
Write Block
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C-ATAV&34W< -ata 0(tes to write =4&32>.
!M;C;CNT< Num0er of data 0(tes =4&32> to 0e sent.
!M;C'3TC1< Write /A to initiate the write 0lock protocol, or /8A to initiate the write 0lock
protocol with '.C.
5ata "eturnedH
!M;C'3TC1< / to indicate command completion.
!M;C!T!< !tatus code for transaction.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +*6
14.9.2.10
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
++ Advanced Configuration and 'ower %nterface !pecification
Read Block
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C'3TC1< Write /; to initiate the read 0lock protocol, or /8; to initiate the read 0lock
protocol with '.C.
5ata "eturnedH
!M;C;CNT< Num0er of data 0(tes =4&32> received.
!M;C-ATAV&34W< -ata 0(tes received =4&32>.
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
14.9.2.11
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ++4
Process Call
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C-ATAVW< 1ow data 0(te to 0e sent.
!M;C-ATAV4W< @igh data 0(te to 0e sent.
!M;C'3TC1< Write /C to initiate the process call protocol, or /8C to initiate the process call
protocol with '.C.
5ata "eturnedH
!M;C-ATAVW< 1ow data 0(te received.
!M;C-ATAV4W< @igh data 0(te received.
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
++2 Advanced Configuration and 'ower %nterface !pecification
14.9.2.12
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ++3
Block Write-Block Read Process Call
5ata SentH
!M;CA--3< Address of !M;us device.
!M;CCM-< Command 0(te to 0e sent.
!M;C-ATAV&34W< -ata 0(tes to write =4&34>.
!M;C;CNT< Num0er of data 0(tes =4&34> to 0e sent.
!M;C'3TC1< Write /- to initiate the write 0lock&read 0lock process call protocol, or /8- to
initiate the write 0lock&read 0lock process call protocol with '.C.
5ata "eturnedH
!M;C;CNT< Num0er of data 0(tes =4&34> received.
!M;C-ATAV&34W< -ata 0(tes received =4&34>.
!M;C!T!< !tatus code for transaction.
!M;C'3TC1< / to indicate command completion.
0oteH The following restrictions appl(< The aggregate data length of the write and read 0locks must not
e/ceed 32 0(tes and each 0lock =write and read> must contain at least 4 0(te of data.
14.9.3 SMBus Register Set
The register set for the !M;&@C has the following format. All registers are 8 0it.
Ta!le +&-( SM< 1C Interface
L3CATI30 "1;IST1" 0AM1 51SC"IPTI30
;A!.Z !M;C'3TC1 'rotocol register
;A!.Z4 !M;C!T! !tatus register
;A!.Z2 !M;CA--3 Address register
;A!.Z3 !M;CCM- Command register
;A!.Z" !M;C-ATAVW -ata register Hero
;A!.Z* !M;C-ATAV4W -ata register one
;A!.Z+ !M;C-ATAV2W -ata register two
;A!.Z9 !M;C-ATAV3W -ata register three
;A!.Z8 !M;C-ATAV"W -ata register four
;A!.Z6 !M;C-ATAV*W -ata register five
;A!.Z4 !M;C-ATAV+W -ata register si/
;A!.Z44 !M;C-ATAV9W -ata register seven
;A!.Z42 !M;C-ATAV8W -ata register eight
;A!.Z43 !M;C-ATAV6W -ata register nine
;A!.Z4" !M;C-ATAV4W -ata register ten
;A!.Z4* !M;C-ATAV44W -ata register eleven
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
++" Advanced Configuration and 'ower %nterface !pecification
Ta!le +&-( SM< 1C Interface (continued)
;A!.Z4+ !M;C-ATAV42W -ata register twelve
;A!.Z49 !M;C-ATAV43W -ata register thirteen
;A!.Z48 !M;C-ATAV4"W -ata register fourteen
;A!.Z46 !M;C-ATAV4*W -ata register fifteen
;A!.Z2 !M;C-ATAV4+W -ata register si/teen
;A!.Z24 !M;C-ATAV49W -ata register seventeen
;A!.Z22 !M;C-ATAV48W -ata register eighteen
;A!.Z23 !M;C-ATAV46W -ata register nineteen
;A!.Z2" !M;C-ATAV2W -ata register twent(
;A!.Z2* !M;C-ATAV24W -ata register twent(&one
;A!.Z2+ !M;C-ATAV22W -ata register twent(&two
;A!.Z29 !M;C-ATAV23W -ata register twent(&three
;A!.Z28 !M;C-ATAV2"W -ata register twent(&four
;A!.Z26 !M;C-ATAV2*W -ata register twent(&five
;A!.Z3 !M;C-ATAV2+W -ata register twent(&si/
;A!.Z34 !M;C-ATAV29W -ata register twent(&seven
;A!.Z32 !M;C-ATAV28W -ata register twent(&eight
;A!.Z33 !M;C-ATAV26W -ata register twent(&nine
;A!.Z3" !M;C-ATAV3W -ata register thirt(
;A!.Z3* !M;C-ATAV34W -ata register thirt(&one
;A!.Z3+ !M;C;CNT ;lock Count 3egister
;A!.Z39 !M;CA13MCA--3 Alarm address
;A!.Z38 !M;CA13MC-ATAVW Alarm data register Hero
;A!.Z36 !M;CA13MC-ATAV4W Alarm data register one
14.10 SMBus Devices
The em0edded controller interface provides the s(stem with a standard method to access devices on the
!M;us. %t does not define the data andFor access protocol=s> used 0( an( particular !M;us device. 5urther,
the em0edded controller can =and pro0a0l( will> serve as a gatekeeper to prevent accidental or malicious
access to devices on the !M;us.
!ome !M;us devices are defined 0( their address and a specification that descri0es the data and the
protocol used to access that data. 5or e/ample, the !mart ;atter( !(stem devices are defined 0( a series of
specifications including<
!mart ;atter( -ata specification
!mart ;atter( Charger specification
!mart ;atter( !elector specification
!mart ;atter( !(stem Manager specification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ++*
The em0edded controller can also 0e used to emulate =in part or totall(> an( !M;us device.
14.10.1 SMBus Device Access Restrictions
%n some cases, the em0edded controller interface will not allow access to a particular !M;us device. !ome
!M;us devices can and do communicate directl( 0etween themselves. ,ne/pected accesses can interfere
with their normal operation and cause unpredicta0le results.
14.10.2 SMBus Device Command Access Restriction
There are cases where part of an !M;us deviceMs commands are pu0lic while others are private. ./traneous
attempts to access these commands might cause interference with the !M;us deviceMs normal operation.
The !mart ;atter( and the !mart ;atter( Charger are good e/amples of devices that should not have their
entire command set e/posed. The !mart ;atter( commands the !mart ;atter( Charger to suppl( a specific
charging voltage and charging current. Attempts 0( an(one to alter these values can cause damage to the
0atter( or the mo0ile s(stem. To protect the s(stemMs integrit(, the em0edded controller interface can
restrict access to these commands 0( returning one of the following error codes< -evice Command Access
-enied =/42> or -evice Access -enied =/49>.
14.11 Defning an Embedded Controller Device in ACPI Namespace
An em0edded controller device is created using the named device o0#ect. The em0edded controllerMs device
o0#ect re:uires the following elements<
Ta!le +&-A 1%!edded Controller 5evice 3!Cect Control Methods
3!Cect 5escription
CC3! Named o0#ect that returns the .m0edded ControllerMs current resource settings. .m0edded
Controllers are considered static resourcesK hence onl( return their defined resources. The
em0edded controller resides onl( in s(stem %F2 or memor( space. The first address region
returned is the data port, and the second address region returned is the statusFcommand port for
the em0edded controller. C3! is a standard device configuration control method defined in
section +.2.4, JCC3! =Current 3esource !ettings>.L
C@%- Named o0#ect that provides the .m0edded ControllerMs 'lug and 'la( identifier. This value is
set to 'N'C6. C@%- is a standard device configuration control method defined in section
+.4.", JC@%- =@ardware %->.L
C$'. Named 20#ect that evaluates to either an integer or a package. %f C$'. evaluates to an integer,
the value is the 0it assignment of the !C% interrupt within the $'./C!T! register of a $'.
0lock descri0ed in the 5A-T that the em0edded controller will trigger.
%f C$'. evaluates to a package, then that package contains two elements. The first is an o0#ect
reference to the $'. ;lock device that contains the $'. register that will 0e triggered 0( the
em0edded controller. The second element is numeric =integer> that specifies the 0it assignment
of the !C% interrupt within the $'./C!T! register of the $'. ;lock device referenced 0( the
first element in the package. This control method is specific to the em0edded controller.
14.11.1 Example: EC Defnition ASL Code
./ample A!1 code that defines an em0edded controller device is shown 0elow<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+++ Advanced Configuration and 'ower %nterface !pecification
Device(%)()
// PnP #D
!ame(_"#D$ %#S&#D('P!P()(H*))
// Return2 the ')urrent Re2ource2* of %)
!ame(_)RS$
Re2ource<emplate() // port (-I3 and (-II
#0(Decode4I$ (-I3$ (-I3$ ($ 4)$
#0(Decode4I$ (-II$ (-II$ ($ 4)
/
)
// Define that the %) S)# i2 bit ( of the :P_S<S re,i2ter
!ame(_:P%$ ()
0perationRe,ion(%)0R$ %mbedded)ontrol$ ($ (-55)
5ield(%)0R$ B1te&cc$ 6oc+$ Pre2erve)
// 5ield definition2 ,o here
/
/
14.12 Defning an EC SMBus Host Controller in ACPI Namespace
An .C&!M;&@C device is defined using the named device o0#ect. The .C&!M;& @CMs device o0#ect
re:uires the following elements<
Ta!le +&-- 1C SM<us HC 5evice 3!Cects
3!Cect 5escription
C@%- Named o0#ect that provides the .C&!M;& @CMs 'lug and 'la( identifier. This value is 0e set to
AC'%4. C@%- is a standard device configuration control method defined in section +.4.",
JC@%- =@ardware %->.L
C.C Named o0#ect that evaluates to a W23- that defines the !M;us attri0utes needed 0( the
!M;us driver. C.C is the .m0edded Controller 2ffset Guer( Control Method. The most
significant 0(te is the address offset in em0edded controller space of the !M;us controllerK the
least significant 0(te is the :uer( value for all !M;us events.
14.12.1 Example: EC SMBus Host Controller ASL-Code
./ample A!1 code that defines an !M;&@C from within an em0edded controller device is shown 0elow<
Device(%)()

!ame(_"#D$ %#S&#D(PP!P()(HP))
!ame(_)RS$ Re2ource<emplate()

#0(Decode4I$ (-I3$ (-I3$ ($ 4)$ // Statu2 port
#0(Decode4I$ (-II$ (-II$ ($ 4) // command port
/)
!ame(_:P%$ ()
Device (S;B()

!ame(_"#D$ P&)P#(((4P) // %)ES;BE")


!ame(_X#D$ () // Xni8ue device identifier
!ame(_%)$ (-3(F() // %) off2et (-3($ 8uer1 bit (-F(
>
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ++9
Device (S;B4)

!ame(_"#D$ P&)P#(((4P) // %)ES;BE")


!ame(_X#D$ 4) // Xni8ue device identifier
!ame(_%)$ (-=(F4) // %) off2et (-=($ 8uer1 bit (-F4
>
/
/ // end of %)(
15 ACPI System Management Bus Interface Specifcation
This section descri0es the !(stem Management ;us =!M;us> generic address space and the use of this
address space to access !M;us devices from AM1.
,nlike other address spaces, !M;us operation regions are inherentl( non-linear, where each offset within
an !M;us address space represents a varia0le&siHed =from to 32 0(tes> field. $iven this uni:ueness,
!M;us operation regions include restrictions on their field definitions and re:uire the use of an !M;us&
specific data 0uffer for all transactions.
The !M;us interface presented in this section is intended for use with an( hardware implementation
compati0le with the !M;us specification. !M;us hardware is 0roadl( classified as either non&.CI0ased or
.C&0ased. .C&0ased !M;us implementations compl( with the standard register set defined in section 43,
AC'% .m0edded Controller %nterface !pecification.L
Non&.C !M;us implementations can emplo( an( hardware interface and are t(picall( used for their cost
savings when !M;us securit( is not re:uired. NonI.C&0ased !M;us implementations re:uire the
development of hardware specific drivers for each 2! implementation. !ee section 4*.2, J-eclaring
!M;us @ost Controller 20#ects,L for more information.
!upport of the !M;us generic address space 0( AC'%&compati0le operating s(stems is optional. As such,
the !mart ;atter( !(stem %mplementerMs 5orum =!;!&%5> has defined an !M;us interface 0ased on a
standard set of control methods. This interface is documented in the S()'s Control (et1od Interface
Specification, availa0le from the !;!&%5 We0 site at< http<FFwww.s0s&forum.orgF.
15.1 SMBus Overview
!M;us is a two&wire interface 0ased upon the %QC protocol. The !M;us is a low&speed 0us that provides
positive addressing for devices, as well as 0us ar0itration. 5or more information, refer to the complete set
of !M;us specifications pu0lished 0( the !;!&%5.
15.1.1 SMBus Slave Addresses
!lave addresses are specified using a 9&0it non&shifted notation. 5or e/ample, the slave address of the
!mart ;atter( !elector device would 0e specified as /A =440>, not /4" =440> as might 0e found in
other documents. These two different forms of addresses result from the format in which addresses are
transmitted on the !M;us.
-uring transmission over the ph(sical !M;us, the slave address is formatted in an 8&0it 0lock with 0its 9&4
containing the address and 0it containing the readFwrite 0it. A!1 code, on the other hand, presents the
slave address simpl( as a 9&0it value making it the responsi0ilit( of the 2! =driver> to shift the value if
needed. 5or e/ample, the A!1 value would have to 0e shifted left 4 0it 0efore 0eing written to the
!M;CA--3 register in the .C 0ased !M;us as descri0ed in section 42.6.4.3, JAddress 3egister,
!M;CA--3.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
++8 Advanced Configuration and 'ower %nterface !pecification
15.1.2 SMBus Protocols
There are seven possi0le command protocols for an( given !M;us slave device, and a device ma( use an(
or all of the protocols to communicate. The protocols and associated access t(pe indicators are listed 0elow.
Notice that the protocols values are similar to those defined for the .C&0ased !M;us in section 42.6.4.2,
J'rotocol 3egister, !M;C'3TC1,L e/cept that protocol pairs =for e/ample, 3ead ;(te, Write ;(te> have
0een #oined.
Ta!le +#-+ SM<us Protocol T)pes
7alue T)pe 5escription
/2 !M;Guick !M;us 3eadFWrite Guick 'rotocol
/" !M;!end3eceive !M;us !endF3eceive ;(te 'rotocol
/+ !M;;(te !M;us 3eadFWrite ;(te 'rotocol
/8 !M;Word !M;us 3eadFWrite Word 'rotocol
/A !M;;lock !M;us 3eadFWrite ;lock 'rotocol
/C !M;'rocessCall !M;us 'rocess Call 'rotocol
/- !M;;lock'rocessCall !M;us Write ;lock&3ead ;lock 'rocess Call 'rotocol
All other protocol values are reserved.
Notice that 0it 9 of the protocol value is used 0( this interface to indicate to the !M;&@C whether or not
packet error checking ='.C> should 0e emplo(ed for a transaction. 'acket error checking is descri0ed in
section 9." of the System (anagement )'s Specification. Aersion 1!1. This highl( desira0le capa0ilit(
improves the relia0ilit( and ro0ustness of !M;us communications.
The 0it encoding of the protocol value is shown 0elow. 5or e/ample, the value /8+ would 0e used to
specif( the '.C version of the !M;us 3eadFWrite ;(te protocol.
Bit < N Pac:et $rror Chec:ing
Bits K21 N Protocol
> ; ! " ( K < 1
6igure +#-+ <it 1ncoding 1xa%ple
Notice that 0it of the protocol value is alwa(s Hero =even num0er he/adecimal values>. %n a manner
similar to the slave address, software that implements the !M;us interface is responsi0le for setting this 0it
to indicate whether the transaction is a read =for e/ample, 3ead ;(te> or write =for e/ample, Write ;(te>
operation.
5or e/ample, software implanting this interface for .C&!M;us segments would set 0it for read
transactions. 5or the !M;;(te protocol =/+>, this would result in the value /9 0eing placed into the
!M;C'3TC1 register =or /89 if '.C is re:uested> for write transactions.
15.1.3 SMBus Status Codes
The use of status codes helps AM1 determine whether an !M;us transaction was successful. %n general, a
status code of Hero indicates success, while a non&Hero value indicates failure. The !M;us interface uses
the same status codes defined for the .C&!M;us =see section 42.6.4.4, J!tatus 3egister, !M;C!T!L>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ ++6
15.1.4 SMBus Command Values
!M;us devices ma( optionall( support up to 2*+ device&specific commands. 5or these devices, each
command 2al'e supported 0( the device is modeled 0( this interface as a separate 2irt'al register.
'rotocols that do not transmit a command value =for e/ample, 3eadFWrite Guick and !endF3eceive ;(te>
are modeled using a single virtual register =with a command value \ />.
15.2 Declaring SMBus Host Controller Objects
.C&0ased !M;us 4.&compati0le @Cs should 0e modeled in the AC'% namespace as descri0ed in section
43.42, J-efining an .m0edded Controller !M;us @ost Controller in AC'% Namespace.L An e/ample
definition is given 0elow. ,sing the @%- value JAC'%4L identifies that this !M;&@C is implemented
on an em0edded controller using the standard !M;us register set defined in section 42.6, !M;us @ost
Controller %nterface via .m0edded Controller.L
Device (S;B()

!ame(_"#D$ P&)P#(((4P) // %)Eba2ed S;Bu2 4.( compatible "o2t )ontroller


!ame(_%)$ (-3(F() // %) off2et (-3($ 8uer1 bit (-F(
>
/
.C&0ased !M;us 2.&compati0le host controllers should 0e defined similarl( in the name space as follows<
Device (S;B()

!ame(_"#D$ P&)P#(((GP) // %)Eba2ed S;Bu2 3.( compatible "o2t )ontroller


!ame(_%)$ (-3(F() // %) off2et (-3($ 8uer1 bit (-F(
>
/
NonI.C&0ased !M;&@Cs should 0e modeled in a manner similar to the .C&0ased !M;us @C. An
e/ample definition is given 0elow. These devices use a vendor&specific hardware identifier =@%-> to specif(
the t(pe of !M;&@C =do not use JAC'%4L or JAC'%*L>. ,sing a vendor&specific @%- allows the
correct software to 0e loaded to service this segmentMs !M;us address space.
Device(S;B()

!ame(_"#D$ P?@endorESpecific "#DBP) // @endorESpecific "#D


>
/
3egardless of the t(pe of hardware, some 2! software element =for e/ample, the !M;us @C driver> must
register with 2!'M to support all !M;us operation regions defined for the segment. This software allows
the generic !M;us interface defined in this section to 0e used on a specific hardware implementation 0(
translating 0etween the conceptual =for e/ample, !M;us address space> and ph(sical =for e/ample, process
of writingFreading registers> models. ;ecause of this linkage, !M;us operation regions must 0e defined
immediatel( within the scope of the corresponding !M;us device.
15.3 Declaring SMBus Devices
The !M;us, as defined 0( the !M;us 4. !pecification, is not an enumera0le 0us. As a result, an !M;us
4.&compati0le !M;&@C driver cannot discover child devices on the !M;us and load the appropriate
corresponding device drivers. As such, !M;us 4.&compati0le devices are declared in the AC'%
namespace, in like manner to other mother0oard devices, and enumerated 0( 2!'M.
The !M;us 2. specification adds mechanisms ena0ling device enumeration on the 0us while providing
compati0ilit( with e/isting devices. AC'% defines and associates the JAC'%*L @%- value with an .C&
0ased !M;us 2.&compati0le host controller. 2!'M will enumerate !M;us 4.&compati0le devices when
declared in the namespace under an !M;us 2.&compati0le host controller.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+9 Advanced Configuration and 'ower %nterface !pecification
The responsi0ilit( for the definition of AC'% namespace o0#ects, re:uired 0( an !M;us 2.&compati0le
host controller driver to enumerate nonI0us&enumera0le devices, is relegated to the !mart ;atter( !(stem
%mplementers 5orum =http<FFwww.s0s&forum.org>.
!tarting in AC'% 2., CA-3 is used to associate !M;us devices with their lowest !M;us slave address.
15.4 Declaring SMBus Operation Regions
.ach !M;us operation region definition identifies a single !M;us slave address. 2peration regions are
defined onl( for those !M;us devices that need to 0e accessed from AM1. As with other regions, !M;us
operation regions are onl( accessi0le via the 6ield term =see section 4*.*, J-eclaring !M;us 5ieldsL>.
This interface models each !M;us device as having a 2*+&0(te linear address range. .ach 0(te offset
within this range corresponds to a single command value =for e/ample, 0(te offset /42 e:uates to
command value /42>, with a ma/imum of 2*+ command values. ;( doing this, !M;us address spaces
appear linear and can 0e processed in a manner similar to the other address space t(pes.
The s(nta/ for the 3peration"egion term =from section 49.*.86, J2peration3egion =-eclare 2peration
3egionWL> is descri0ed 0elow.
6perat1onRe&1on '
Region)a#e% // !ameStrin,
RegionSace% // Re,ionSpaceAe1word
*ffset% // <erm&r,LB#nte,er
Lengt" // <erm&r,LB#nte,er
(
Where<
$egion;ame specifies a name for this slave device =for e/ample, J!;-L>.
$egionSpace must 0e set to SM<us =operation region t(pe value /">.
=ffset is a word&siHed value specif(ing the slave address and initial command value offset for the
target device. The slave address is stored in the high 0(te and the command value offset is stored in the
low 0(te. 5or e/ample, the value /"2 would 0e used for an !M;us device residing at slave address
/"2 with an initial command value offset of Hero =>.
,engt1 is set to the /4 =2*+>, representing the ma/imum num0er of possi0le command values,
for regions with an initial command value offset of Hero =>. The difference of these two values is used
for regions with non&Hero offsets. 5or e/ample, a region with an =ffset value of /"24 would have a
corresponding ,engt1 of /5 =/4 minus /4>.
5or e/ample, the !mart ;atter( !u0s(stem =illustrated 0elow> consists of the !mart ;atter( Charger at
slave address /6, the !mart ;atter( !(stem Manager at slave address /A, and one or more 0atteries
=multiple/ed> at slave address /;. =Notice that 5igure 43&2 represents the logical connection of a !mart
;atter( !u0s(stem. The actual ph(sical connections of the !mart ;atter(=s> and the !mart ;atter( Charger
are made through the !mart ;atter( !(stem Manager.> All devices support the 3eadFWrite Word protocol.
;atteries also support the 3eadFWrite ;lock protocol.
& C
F S M B 1 F
S m a r t B a t t e r ,
S , s t e m M a n a g e r
B 1 x 1 A C
B 1 x 1 B C
S m a r t B a t t e r ,
' e 9 i c e ) s +
B 1 x 1 = C
S m a r t B a t t e r ,
C h a r g e r
6igure +#-& S%art <atter) Su!s)ste% 5evices
The following A!1 code shows the use of the 2peration3egion term to descri0e these !M;us devices<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +94
Device (S;B()

!ame(_"#D$ P&)P#(((4P) // %)ES;Bu2 "o2t )ontroller


!ame(_%)$ (-3(F() // %) off2et (-3($ 8uer1 bit (-F(
0perationRe,ion(SB)($ S;Bu2$ (-(H(($ (-4(() // Smart Batter1 )har,er
0perationRe,ion(SBS($ S;Bu2$ (-(&(($ (-4(() // Smart Batter1 Selector
0perationRe,ion(SBD($ S;Bu2$ (-(B(($ (-4(() // Smart Batter1 Device(2)
>
/
Notice that these operation regions in this e/ample are defined within the immediate conte/t of the
OowningM .C&!M;us device. .ach definition corresponds to a separate slave address =device>, and happens
to use an initial command value offset of Hero =>.
15.5 Declaring SMBus Fields
As with other regions, !M;us operation regions are onl( accessi0le via the 5ield term. .ach field element
is assigned a uni:ue command value and represents a virtual register on the targeted !M;us device.
The s(nta/ for the 6ield term =from section 49.*.38, J.vent =-eclare .vent !(nchroniHation 20#ectWL> is
descri0ed 0elow.
D1el"'
Region)a#e% // !ameStrin,LB0perationRe,ion
+ccessTye% // &cce22<1peAe1word
Loc,Rule% // 6oc+RuleAe1word
-dateRule // XpdateRuleAe1word W ignored
( )5ieldXnit6i2t/
Where<
$egion;ame specifies the operation region name previousl( defined for the device.
AccessType must 0e set to <ufferAcc. This indicates that access to field elements will 0e done
using a region&specific data 0uffer. 5or this access t(pe, the field handler is not aware of the data
0ufferMs contents which ma( 0e of an( siHe. When a field of this t(pe is used as the source argument in
an operation it simpl( evaluates to a 0uffer. When used as the destination, however, the 0uffer is
passed 0i&directionall( to allow data to 0e returned from write operations. The modified 0uffer then
0ecomes the e/ecution result of that operation. This is slightl( different than the normal case in which
the e/ecution result is the same as the value written to the destination. Note that the source is never
changed, since it could 0e a read onl( o0#ect =see section 4*.+, J-eclaring an !M;us -ata ;ufferL and
section 49.4.*, J2pcode TermsL>.
,oc3$'le indicates if access to this operation region re:uires ac:uisition of the $lo0al 1ock for
s(nchroniHation. This field should 0e set to Lock on s(stem with firmware that ma( access the !M;us,
and 0oLock otherwise.
Bpdate$'le is not applica0le to !M;us operation regions since each virtual register is accessed in
its entiret(. This field is ignored for all !M;us field definitions.
!M;us operation regions re:uire that all field elements 0e declared at command value granularit(. This
means that each virtual register cannot 0e 0roken down to its individual 0its within the field definition.
Access to su0&portions of virtual registers can 0e done onl( outside of the field definition. This limitation is
imposed 0oth to simplif( the !M;us interface and to maintain consistenc( with the ph(sical model defined
0( the !M;us specification.
!M;us protocols are assigned to field elements using the AccessAs term within the field definition. The
s(nta/ for this term =from section 49.4.3, JA!1 3oot and !econdar(TermsL> is descri0ed 0elow.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+92 Advanced Configuration and 'ower %nterface !pecification
&cce22&2(
+ccessTye%//&cce22<1peAe1word
+ccess+ttri.ute //!othin, U B1te)on2t U &cce22&ttribAe1word
)
Where<
AccessType must 0e set to <ufferAcc.
AccessAttrib'te indicates the !M;us protocol to assign to command values that follow this term.
!ee section 4*.4.2, J!M;us 'rotocols,L for a listing of the !M;us protocol t(pes and values.
An AccessAs term must appear as the first entr( in a field definition to set the initial !M;us protocol for
the field elements that follow. A ma/imum of one !M;us protocol ma( 0e defined for each field element.
-evices supporting multiple protocols for a single command value can 0e modeled 0( specif(ing multiple
field elements with the same offset =command value>, where each field element is preceded 0( an AccessAs
term specif(ing an alternate protocol.
5or e/ample, the register at command value /8 for a !mart ;atter( device =illustrated 0elow> represents
a word value specif(ing the 0atter( temperature =in degrees Eelvin>, while the register at command value
/2 represents a varia0le&length = to 32 0(tes> character string specif(ing the name of the compan( that
manufactured the 0atter(.
RemainingCapacit,Alarm)+
Smart Batter, 'e9ice
1x11 )ord+
1x1! )ord+
1x1@ )ord+
1x"1 )Bloc:+
1x"! )Bloc:+
2
B,te 1 B,te !
B,te 1 B,te !
B,te 1 B,te !
B,te 1 444 B,te (!
B,te 1 444 B,te (!
2
Command 6alue Register
ManufacturerAccess)+
Temperature)+
Manufacturer&ame)+
'e9ice&ame)+
2
6igure +#-# S%art <atter) 5evice 7irtual "egisters
The following A!1 code shows the use of the 2peration3egion, 5ield, AccessAs, and 2ffset terms to
represent these !mart ;atter( device virtual registers<
0perationRe,ion(SBD($ S;Bu2$ (-(B(($ (-(4(()
5ield(SBD($ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BWord) // X2e the S;BWord protocol for the followin,Y


;5:&$ =$ // ;anufacturer&cce22() Mcommand value (-((N
R)&P$ =$ // Remainin,)apacit1&larm() Mcommand value (-(4N
0ff2et((-(=) // S+ip to command value (-(=Y
B<;P$ =$ // <emperature() Mcommand value (-(=N
0ff2et((-3() // S+ip to command value (-3(Y
&cce22&2(Buffer&cc$ S;BBloc+) // X2e the S;BBloc+ protocol for the followin,Y
;5:!$ =$ // ;anufacturer!ame() Mcommand value (-3(N
D%@!$ = // Device!ame() Mcommand value (-34N
/
Notice that command values are e:uivalent to the field elementMs 0(te offset =for e/ample, M5$A\,
3CA'\4, ;TM'\8>. The AccessAs term indicates which !M;us protocol to use for each command value.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +93
15.6 Declaring and Using an SMBus Data Bufer
The use of a data 0uffer for !M;us transactions allows AM1 to receive status and data length values, as
well as making it possi0le to implement the 'rocess Call protocol. As previousl( mentioned, the <ufferAcc
access t(pe is used to indicate to the field handler that a region&specific data 0uffer will 0e used.
5or !M;us operation regions, this data 0uffer is defined as a fi/ed&length 3"&0(te 0uffer that, if represented
using a OCM&st(led declaration, would 0e modeled as follows<
t1pedef 2truct

BS<% Statu2K // B1te ( of the data buffer


BS<% 6en,thK // B1te 4 of the data buffer
BS<%MF3N DataK // B1te2 3 throu,h FF of the data buffer
/
Where<
Stat's =0(te > indicates the status code of a given !M;us transaction. !ee section 4".4.3,
J!M;us !tatus Code,L for more information.
,engt1 =0(te 4> specifies the num0er of 0(tes of valid data that e/ists in the data 0uffer. ,se of this
field is onl( defined for the 3eadFWrite ;lock protocol, where valid ,engt1 values are through 32.
5or other protocolsPwhere the data length is implied 0( the protocolPthis field is reserved.
Data =0(tes 2&33> represents a 32&0(te 0uffer, and is the location where actual data is stored.
5or e/ample, the following A!1 shows the use of the !M;us data 0uffer for performing transactions to a
!mart ;atter( device. This code is 0ased on the e/ample A!1 presented in section 4*.*, J-eclaring !M;us
5ields,L which lists the operation region and field definitions for the !mart ;atter( device.
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ 0B4) // 0B4 L Statu2 (B1te)
)reateB1te5ield(BX55$ (-(4$ 0B3) // 0B3 L 6en,th (B1te)
)reateWord5ield(BX55$ (-(3$ 0BF) // 0BF L Data (Word W B1te2 3 V F)
)reate5ield(BX55$ (-4($ 3GI$ 0B.) // 0B. L Data (Bloc+ W B1te2 3EFF)
/[ Read the batter1 temperature [/
Store(B<;P$ BX55) // #nvo+e Read Word tran2action
#f(6%8ual(0B4$ (-(()) // Succe22fulO

// 0BF L Batter1 temperature in 4/4(


th
de,ree2 Aelvin
/
/[ Read the batter1 manufacturer name [/
Store(;5:!$ BX55) // #nvo+e Read Bloc+ tran2action
#f(6%8ual(0B4$ (-(()) // Succe22fulO

// 0B3 L 6en,th of the manufacturer name


// 0B. L ;anufacturer name (a2 a counted 2trin,)
/
Notice the use of the Create6ield primitives to access the data 0ufferMs su0&elements =Stat's, ,engt1, and
Data>, where Data =0(tes 2&33> is Ot(pecastM as 0oth word =2;3> and 0lock =2;"> data.
The e/ample a0ove demonstrates the use of the !tore=> operator to invoke a 3ead ;lock transaction to
o0tain the name of the 0atter( manufacturer. .valuation of the so'rce operand =M5$N> results in a 3"&0(te
0uffer that gets copied 0( !tore=> to the destination 0uffer =;,55>.
Capturing the results of a write operation, for e/ample to check the status code, re:uires an additional
!tore=> operator, as shown 0elow.
Store(Store(BX55$ ;5:!)$ BX55) // #nvo+e Write Bloc+ tran2action
#f(6%8ual(0B4$ (-(()) Y/ // <ran2action 2ucce22fulO
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+9" Advanced Configuration and 'ower %nterface !pecification
Note that the outer !tore=> copies the results of the Write ;lock transaction 0ack into ;,55. This is the
nature of ;ufferAccMs 0i&directionalit( descri0ed in section 43.*, J-eclaring !M;us 5ieldsL %t should 0e
noted that storing =or parsing> the result of an !M;us Write transaction is not re:uired although useful for
ascertaining the outcome of a transaction.
!M;us 'rocess Call protocols re:uire similar semantics due to the fact that onl( destination operands are
passed 0i&directionall(. These transactions re:uire the use of the dou0le&!tore=> semantics to properl(
capture the return results.
15.7 Using the SMBus Protocols
This section provides information and e/amples on how each of the !M;us protocols can 0e used to access
!M;us devices from AM1.
15.7.1 Read/Write Quick (SMBQuick)
The !M;us 3eadFWrite Guick protocol =!M;Guick> is t(picall( used to control simple devices using a
device&specific 0inar( command =for e/ample, 2N and 255>. Command values are not used 0( this
protocol and thus onl( a single element =at offset > can 0e specified in the field definition. This protocol
transfers no data.
The following A!1 code illustrates how a device supporting the 3eadFWrite Guick protocol should 0e
accessed<
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;Bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BJuic+) // X2e the S;Bu2 Read/Write Juic+ protocol


56D($ = // @irtual re,i2ter at command value (.
/
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ 0B4) // 0B4 L Statu2 (B1te)
/[ Si,nal device (e.,. 055) [/
Store(56D($ BX55) // #nvo+e Read Juic+ tran2action
#f(6%8ual(0B4$ (-(()) Y/ // Succe22fulO
/[ Si,nal device (e.,. 0!) [/
Store(BX55$ 56D() // #nvo+e Write Juic+ tran2action
%n this e/ample, a single field element =51-> at offset is defined to represent the protocolMs readFwrite
0it. Access to 51- will cause an !M;us transaction to occur to the device. 3eading the field results in a
3ead Guick, and writing to the field results in a Write Guick. %n either case data is not transferredPaccess
to the register is simpl( used as a mechanism to invoke the transaction.
15.7.2 Send/Receive Byte (SMBSendReceive)
The !M;us !endF3eceive ;(te protocol =!M;!end3eceive> transfers a single 0(te of data. 1ike
3eadFWrite Guick, command values are not used 0( this protocol and thus onl( a single element =at offset
> can 0e specified in the field definition.
The following A!1 code illustrates how a device supporting the !endF3eceive ;(te protocol should 0e
accessed<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +9*
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;Bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BSendReceive) // X2e the S;Bu2 Send/Receive B1te protocol


56D($ = // @irtual re,i2ter at command value (.
/
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ S<&<) // S<&< L Statu2 (B1te)
)reateB1te5ield(BX55$ (-(3$ D&<&) // D&<& L Data (B1te)
/[ Receive a b1te of data from the device [/
Store(56D($ BX55) // #nvo+e a Receive B1te tran2action
#f(6%8ual(S<&<$ (-(()) // Succe22fulO

// D&<& L Received b1teY


/
/[ Send the b1te `(-4I] to the device [/
Store((-4I$ D&<&) // Save (-4I into the data buffer
Store(BX55$ 56D() // #nvo+e a Send B1te tran2action
%n this e/ample, a single field element =51-> at offset is defined to represent the protocolMs data 0(te.
Access to 51- will cause an !M;us transaction to occur to the device. 3eading the field results in a
3eceive ;(te, and writing to the field results in a !end ;(te.
15.7.3 Read/Write Byte (SMBByte)
The !M;us 3eadFWrite ;(te protocol =!M;;(te> also transfers a single 0(te of data. ;ut unlike
!endF3eceive ;(te, this protocol uses a command value to reference up to 2*+ 0(te&siHed virtual registers.
The following A!1 code illustrates how a device supporting the 3eadFWrite ;(te protocol should 0e
accessed<
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;Bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BB1te) // X2e the S;Bu2 Read/Write B1te protocol


56D($ =$ // @irtual re,i2ter at command value (.
56D4$ =$ // @irtual re,i2ter at command value 4.
56D3$ = // @irtual re,i2ter at command value 3.
/
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ S<&<) // S<&< L Statu2 (B1te)
)reateB1te5ield(BX55$ (-(3$ D&<&) // D&<& L Data (B1te)
/[ Read a b1te of data from the device u2in, command value 4 [/
Store(56D4$ BX55) // #nvo+e a Read B1te tran2action
#f(6%8ual(S<&<$ (-(()) // Succe22fulO

// D&<& L B1te read from 56D4Y


/
/[ Write the b1te `(-4I] to the device u2in, command value 3 [/
Store((-4I$ D&<&) // Save (-4I into the data buffer
Store(BX55$ 56D3) // #nvo+e a Write B1te tran2action
%n this e/ample, three field elements =51-, 51-4, and 51-2> are defined to represent the virtual registers
for command values , 4, and 2. Access to an( of the field elements will cause an !M;us transaction to
occur to the device. 3eading 51-4 results in a 3ead ;(te with a command value of 4, and writing to 51-2
results in a Write ;(te with command value 2.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+9+ Advanced Configuration and 'ower %nterface !pecification
15.7.4 Read/Write Word (SMBWord)
The !M;us 3eadFWrite Word protocol =!M;Word> transfers 2 0(tes of data. This protocol also uses a
command value to reference up to 2*+ word&siHed virtual device registers.
The following A!1 code illustrates how a device supporting the 3eadFWrite Word protocol should 0e
accessed<
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;Bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BWord) // X2e the S;Bu2 Read/Write Word protocol


56D($ =$ // @irtual re,i2ter at command value (.
56D4$ =$ // @irtual re,i2ter at command value 4.
56D3$ = // @irtual re,i2ter at command value 3.
/
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ S<&<) // S<&< L Statu2 (B1te)
)reateWord5ield(BX55$ (-(3$ D&<&) // D&<& L Data (Word)
/[ Read two b1te2 of data from the device u2in, command value 4 [/
Store(56D4$ BX55) // #nvo+e a Read Word tran2action
#f(6%8ual(S<&<$ (-(()) // Succe22fulO

// D&<& L Word read from 56D4Y


/
/[ Write the word `(-G.4I] to the device u2in, command value 3 [/
Store((-G.4I$ D&<&) // Save (-G.4I into the data buffer
Store(BX55$ 56D3) // #nvo+e a Write Word tran2action
%n this e/ample, three field elements =51-, 51-4, and 51-2> are defined to represent the virtual registers
for command values , 4, and 2. Access to an( of the field elements will cause an !M;us transaction to
occur to the device. 3eading 51-4 results in a 3ead Word with a command value of 4, and writing to
51-2 results in a Write Word with command value 2.
Notice that although accessing each field element transmits a word =4+ 0its> of data, the fields are listed as
8 0its each. The actual data siHe is determined 0( the protocol. .ver( field element is declared with a length
of 8 0its so that command values and 0(te offsets are e:uivalent.
15.7.5 Read/Write Block (SMBBlock)
The !M;us 3eadFWrite ;lock protocol =!M;;lock> transfers varia0le&siHed =&32 0(tes> data. This
protocol uses a command value to reference up to 2*+ 0lock&siHed virtual registers.
The following A!1 code illustrates how a device supporting the 3eadFWrite ;lock protocol should 0e
accessed<
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;Bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BBloc+) // X2e the S;Bu2 Read/Write Bloc+ protocol


56D($ =$ // @irtual re,i2ter at command value (.
56D4$ =$ // @irtual re,i2ter at command value 4.
56D3$ = // @irtual re,i2ter at command value 3.
/
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ S<&<) // S<&< L Statu2 (B1te)
)reateB1te5ield(BX55$ (-(4$ S#7%) // S#7% L 6en,th (B1te)
)reate5ield(BX55$ (-4($ 3GI$ D&<&) // D&<& L Data (Bloc+)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +99
/[ Read bloc+ data from the device u2in, command value 4 [/
Store(56D4$ BX55) // #nvo+e a Read Bloc+ tran2action
#f(6%8ual(S<&<$ (-(()) // Succe22fulO

// S#7% L SiCe (number of b1te2) of the bloc+ data read from 56D4Y
// D&<& L Bloc+ data read from 56D4Y
/
/[ Write the bloc+ `<%S<] to the device u2in, command value 3 [/
Store('<%S<*$ D&<&) // Save '<%S<* into the data buffer
Store(.$ S#7%) // 6en,th of valid data in the data buffer
Store(BX55$ 56D3) // #nvo+e a Write Word tran2action
%n this e/ample, three field elements =51-, 51-4, and 51-2> are defined to represent the virtual registers
for command values , 4, and 2. Access to an( of the field elements will cause an !M;us transaction to
occur to the device. 3eading 51-4 results in a 3ead ;lock with a command value of 4, and writing to
51-2 results in a Write ;lock with command value 2.
15.7.6 Word Process Call (SMBProcessCall)
The !M;us 'rocess Call protocol =!M;'rocessCall> transfers 2 0(tes of data 0i&directionall( =performs a
Write Word followed 0( a 3ead Word as an atomic transaction>. This protocol uses a command value to
reference up to 2*+ word&siHed virtual registers.
The following A!1 code illustrates how a device supporting the 'rocess Call protocol should 0e accessed<
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;Bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BProce22)all) // X2e the S;Bu2 Proce22 )all protocol


56D($ =$ // @irtual re,i2ter at command value (.
56D4$ =$ // @irtual re,i2ter at command value 4.
56D3$ = // @irtual re,i2ter at command value 3.
/
/[ )reate the S;Bu2 data buffer [/
!ame(BX55$ Buffer(F.)/) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ S<&<) // S<&< L Statu2 (B1te)
)reateWord5ield(BX55$ (-(3$ D&<&) // D&<& L Data (Word)
/[ Proce22 )all with input value `(-G.4I] to the device u2in, command value 4 [/
Store((-G.4I$ D&<&) // Save (-G.4I into the data buffer
Store(Store(BX55$ 56D4)$ BX55) // #nvo+e a Proce22 )all tran2action
#f(6%8ual(S<&<$ (-(()) // Succe22fulO

// D&<& L Word returned from 56D4Y


/
%n this e/ample, three field elements =51-, 51-4, and 51-2> are defined to represent the virtual registers
for command values , 4, and 2. Access to an( of the field elements will cause an !M;us transaction to
occur to the device. 3eading or writing 51-4 results in a 'rocess Call with a command value of 4. Notice
that unlike other protocols, 'rocess Call involves 0oth a write and read operation in a single atomic
transaction. This means that the Data element of the !M;us data 0uffer is set with an input value 0efore
the transaction is invoked, and holds the output value following the successful completion of the
transaction.
15.7.7 Block Process Call (SMBBlockProcessCall)
The !M;us ;lock Write&3ead ;lock 'rocess Call protocol =!M;;lock'rocessCall> transfers a 0lock of
data 0i&directionall( =performs a Write ;lock followed 0( a 3ead ;lock as an atomic transaction>. The
ma/imum aggregate amount of data that ma( 0e transferred is limited to 32 0(tes. This protocol uses a
command value to reference up to 2*+ 0lock&siHed virtual registers.
The following A!1 code illustrates how a device supporting the 'rocess Call protocol should 0e accessed<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+98 Advanced Configuration and 'ower %nterface !pecification
0perationRe,ion(S;BD$ S;Bu2$ (-.3(($ (-4(() // S;bu2 device at 2lave addre22 (-.3
5ield(S;BD$ Buffer&cc$ !o6oc+$ Pre2erve)

&cce22&2(Buffer&cc$ S;BBloc+Proce22)all) // X2e the Bloc+ Proce22 )all protocol


56D($ =$ // @irtual re,i2ter repre2entin, a command value of (
56D4$ = // @irtual re,i2ter repre2entin, a command value of 4
/
/[ )reate the S;Bu2 data buffer a2 BX55 [/
!ame(BX55$ Buffer(F.)()) // )reate S;Bu2 data buffer a2 BX55
)reateB1te5ield(BX55$ (-(($ S<&<) // S<&< L Statu2 (B1te)
)reateB1te5ield(BX55$ (-(4$ S#7%) // S#7% L 6en,th (B1te)
)reate5ield(BX55$ (-4($ 3GI$ D&<&) // Data (Bloc+)
/[ Proce22 )all with input value P&)P#P to the device u2in, command value 4 [/
Store(P&)P#P$ D&<&) // 5ill in out,oin, data
Store(=$ S#7%) // 6en,th of the valid data
Store(Store(BX55$ 56D4)$ BX55) // %-ecute the P)
if (6%8ual(S<&<$ (-(()) // <e2t the 2tatu2

/[ BX55 now contain2 information returned from P) [/


/[ S#7% now e8ual2 2iCe of data returned [/
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +96
16 System Address Map Interfaces
This section e/plains how an AC'%&compati0le s(stem conve(s its memor( resourcesFt(pe mappings to
2!'M. There are three wa(s for the s(stem to conve( memor( resources Fmappings to 2!'M. The first is
an %NT 4* ;%2! interface that is used in %A&'CI0ased s(stems to conve( the s(stemMs initial memor( map.
.5% ena0led s(stems use the .5% defined ;etMe%or)Map>? 0oot services function to conve( memor(
resources to the 2! loader. These resources must then 0e conve(ed 0( the 2! loader to 2!'M. !ee the .5%
specification for more information on .5% services.
1astl(, if memor( resources ma( 0e added or removed d(namicall(, memor( devices are defined in the
AC'% Namespace conve(ing the resource information descri0ed 0( the memor( device =see section 4.42,
JMemor( -evicesL>.
AC'% defines five address range t(pesK Address3angeMemor(, Address3angeAC'%, Address3angeND!,
Address3ange,nusa0le, and Address3ange3eserved as descri0ed in the ta0le 0elow<
Ta!le +(-+ Address "ange T)pes
7alue Mne%onic 5escription
4 Address3angeMemor( This range is availa0le 3AM usa0le 0( the operating s(stem.
2 Address3ange3eserved This range of addresses is in use or reserved 0( the s(stem and
must not 0e used 0( the operating s(stem.
3 Address3angeAC'% AC'% 3eclaim Memor(. This range is availa0le 3AM usa0le 0( the
2! after it reads the AC'% ta0les.
" Address3angeND! AC'% ND! Memor(. This range of addresses is in use or reserve 0(
the s(stem and must not 0e used 0( the operating s(stem. This
range is re:uired to 0e saved and restored across an ND! sleep.
* Address3ange,nusua0le This range of address contains memor( in which errors have 0een
detected. This range must not 0e used 0( the 2!'M.
2ther ,ndefined ,ndefined. 3eserved for future use. 2!'M must treat an( range of
this t(pe as if the t(pe returned was Address3ange3eserved.
The ;%2! can use the Address$ange$eser2ed address range t(pe to 0lock out various addresses as not
suita0le for use 0( a programma0le device. !ome of the reasons a ;%2! would do this are<
The address range contains s(stem 32M.
The address range contains 3AM in use 0( the 32M.
The address range is in use 0( a memor(&mapped s(stem device.
The address range is, for whatever reason, unsuita0le for a standard device to use as a device
memor( space.
The address range is within an ND3AM device where reads and writes to memor( locations are
no longer successful, that is, the device was worn out.
0oteH 2!'M will not save or restore memor( reported as Address3ange3eserved or
Address3ange,nusa0le when transitioning to or from the !" sleeping state.
16.1 INT 15H, E820H - Query System Address Map
This interface is used in real mode onl( on %A&'C&0ased s(stems and provides a memor( map for all of the
installed 3AM, and of ph(sical memor( ranges reserved 0( the ;%2!. The address map is returned through
successive invocations of this interfaceK each returning information on a single range of ph(sical addresses.
.ach range includes a t(pe that indicates how the range of ph(sical addresses is to 0e treated 0( the 2!'M.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+8 Advanced Configuration and 'ower %nterface !pecification
%f the information returned from .82 in some wa( differs from %NT&4* 88 or %NT&4* .84, the
information returned from .82 supersedes the information returned from %NT&4* 88 or %NT&4* .84. This
replacement allows the ;%2! to return an( information that it re:uires from %NT&4* 88 or %NT&4* .84 for
compati0ilit( reasons. 5or compati0ilit( reasons, if .82 returns an( Address3angeAC'% or
Address3angeND! memor( ranges 0elow 4+ M;, the %NT&4* 88 and %NT&4* .84 functions must return
the top of memor( 0elow the Address3angeAC'% and Address3angeND! memor( ranges.
The memor( map conve(ed 0( this interface is not re:uired to reflect an( changes in availa0le ph(sical
memor( that have occurred after the ;%2! has initiall( passed control to the operating s(stem. 5or
e/ample, if memor( is added d(namicall(, this interface is not re:uired to reflect the new s(stem memor(
configuration.
Ta!le +(-& Input to the I0T +Ah 1/&$h Call
.AA 5unction Code .82h
.;A Continuation Contains the continuation value to get the ne/t range of ph(sical memor(.
This is the value returned 0( a previous call to this routine. %f this is the first
call, .;A must contain Hero.
.!<-% ;uffer 'ointer 'ointer to an Address 3ange -escriptor structure that the ;%2! fills in.
.CA ;uffer !iHe The length in 0(tes of the structure passed to the ;%2!. The ;%2! fills in the
num0er of 0(tes of the structure indicated in the .CA register, ma/imum, or
whatever amount of the structure the ;%2! implements. The minimum siHe
that must 0e supported 0( 0oth the ;%2! and the caller is 2 0(tes. 5uture
implementations might e/tend this structure.
.-A !ignature O!MA'M ,sed 0( the ;%2! to verif( the caller is re:uesting the s(stem map
information to 0e returned in .!<-%.
Ta!le +(-# 3utput fro% the I0T +Ah 1/&$h Call
C5 Carr( 5lag Non&Carr( I %ndicates No .rror
.AA !ignature O!MA'.M !ignature to verif( correct ;%2! revision.
.!<-% ;uffer 'ointer 3eturned Address 3ange -escriptor pointer. !ame value as on input.
.CA ;uffer !iHe Num0er of 0(tes returned 0( the ;%2! in the address range descriptor. The
minimum siHe structure returned 0( the ;%2! is 2 0(tes.
.;A Continuation Contains the continuation value to get the ne/t address range descriptor. The
actual significance of the continuation value is up to the discretion of the
;%2!. The caller must pass the continuation value unchanged as input to the
ne/t iteration of the .82 call in order to get the ne/t Address 3ange
-escriptor. A return value of Hero means that this is the last descriptor.
0oteH the ;%2! can also indicate that the last descriptor has alread( 0een
returned during previous iterations 0( returning the carr( flag set. The caller
will ignore an( other information returned 0( the ;%2! when the carr( flag
is set.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +84
Ta!le +(-( Address "ange 5escriptor Structure
3ffset in <)tes 0a%e 5escription
;aseAddr1ow 1ow 32 ;its of ;ase Address
" ;aseAddr@igh @igh 32 ;its of ;ase Address
8 1ength1ow 1ow 32 ;its of 1ength in ;(tes
42 1ength@igh @igh 32 ;its of 1ength in ;(tes
4+ T(pe Address t(pe of this range
2 ./tended Attri0utes !ee Ta0le 4"&*
The )aseAddr,ow and )aseAddr%ig1 together are the +"&0it 0ase address of this range. The 0ase address
is the ph(sical address of the start of the range 0eing specified.
The ,engt1,ow and ,engt1%ig1 together are the +"&0it length of this range. The length is the ph(sical
contiguous length in 0(tes of a range 0eing specified.
The Type field descri0es the usage of the descri0ed address range as defined in Ta0le 4"&4.
Ta!le +(-A 1xtended Attri!utes for Address "ange 5escriptor Structure
<it Mne%onic 5escription
Address3ange.na0led %f clear, the 2!'M ignores the Address 3ange -escriptor. This
allows the ;%2! to populate the .82 ta0le with a static num0er
of structures 0ut onl( ena0le them as necessar(
4 Address3angeNonDolatile %f set, the Address 3ange -escriptor represents non&volatile
memor(. Memor( reported as non&volatile ma( re:uire
characteriHation to determine its suita0ilit( for use as
conventional 3AM.
2&34 3eserved 3eserved for future use.
16.2 E820 Assumptions and Limitations
The ;%2! returns address ranges descri0ing 0ase0oard memor(.
The ;%2! does not return a range description for the memor( mapping of 'C% devices, %!A
2ption 32Ms, and %!A 'lug and 'la( cards 0ecause the 2! has mechanisms availa0le to detect them.
The ;%2! returns chip set&defined address holes that are not 0eing used 0( devices as reserved.
Address ranges defined for 0ase0oard memor(&mapped %F2 devices, such as A'%Cs, are returned
as reserved.
All occurrences of the s(stem ;%2! are mapped as reserved, including the areas 0elow 4 M;, at
4+ M; =if present>, and at end of the "&$; address space.
!tandard 'C address ranges are not reported. 5or e/ample, video memor( at A to ;5555
ph(sical addresses are not descri0ed 0( this function. The range from . to .5555 is specific to
the 0ase0oard and is reported as it applies to that 0ase0oard.
All of lower memor( is reported as normal memor(. The 2! must handle standard 3AM locations
that are reserved for specific uses, such as the interrupt vector ta0le =<> and the ;%2! data area
="<>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+82 Advanced Configuration and 'ower %nterface !pecification
16.3 EFI GetMemoryMap() Boot Services Function
.5% ena0led s(stems use the .5% defined $etMemor(Map=> 0oot services function to conve( memor(
resources to the 2! loader. These resources must then 0e conve(ed 0( the 2! loader to 2!'M.
The $etMemor(Map interface is onl( availa0le at 0oot services time. %t is not availa0le as a run&time
service after 2!'M is loaded. The 2! or its loader initiates the transition from 0oot services to run&time
services 0( calling ./it;oot!ervices=>. After the call to ./it;oot!ervices=> all s(stem memor( map
information must 0e derived from o0#ects in the AC'% Namespace.
The $etMemor(Map=> interface returns an arra( of .5% memor( descriptors. These memor( descriptors
define a s(stem memor( map of all the installed 3AM, and of ph(sical memor( ranges reserved 0( the
firmware. .ach descriptor contains a t(pe field that dictates how the ph(sical address range is to 0e treated
0( the operating s(stem. The ta0le 0elow descri0es the memor( t(pes returned 0( the .5%
$etMemor(Map=> interface along with a mapping from .5% memor( t(pe to AC'% address range t(pes. !ee
the .5% specification for more information on .5% memor( t(pes.
Ta!le +(-- 16I Me%or) T)pes and %apping to ACPI address range t)pes
T)pe Mne%onic 5escription ACPI Address "ange T)pe
.fi3eservedMemor(T(pe Not used. Address3ange3eserved
4 .fi1oaderCode The 1oader andFor 2! ma( use
this memor( as the( see fit.
0oteH the 2! loader that called
./it;oot!ervices=> is e/ecuting
out of one or more .fi1oaderCode
sections.
Address3angeMemor(
Ta!le +(-. 16I Me%or) T)pes and %apping to ACPI address range t)pes (continued)
T)pe Mne%onic 5escription ACPI Address "ange T)pe
2 .fi1oader-ata The 1oader andFor 2! ma( use
this memor( as the( see fit.
0oteH the 2! loader that called
./it;oot!ervices=> is utiliHing out
of one or more .fi1oader-ata
sections.
Address3angeMemor(
3 .fi;oot!ervicesCode Memor( availa0le for general use. Address3angeMemor(
" .fi;oot!ervices-ata Memor( availa0le for general use. Address3angeMemor(
* .fi3untime!erviceCode The 2! and loader must preserve
this memor( range in the working
and AC'% !4I!3 states.
Address3ange3eserved
+ .fi3untime!ervices-ata The 2! and loader must preserve
this memor( range in the working
and AC'% !4I!3 states.
Address3ange3eserved
9 .fiConventionalMemor( Memor( availa0le for general use. Address3angeMemor(
8 .fi,nusa0leMemor( Memor( that should not 0e used 0(
the 2!. 5or e/ample, memor( that
failed .5% memor( test.
Address3ange3eserved
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +83
T)pe Mne%onic 5escription ACPI Address "ange T)pe
6 .fiAC'%3eclainMemor( The memor( is to 0e preserved 0(
the loader and 2! until AC'% in
ena0led. 2nce AC'% is ena0led, the
memor( in this range is availa0le
for general use.
Address3angeAC'%
4 .fiAC'%Memor(ND! The 2! and loader must preserve
this memor( range in the working
and AC'% !4I!3 states.
Address3angeND!
44 .fiMemor(Mapped%2 The 2! does not use this memor(.
All s(stem memor(&mapped %F2
port space information should
come from AC'% ta0les.
Address3ange3eserved
42 .fiMemor(Mapped%2'or
t!pace
The 2! does not use this memor(.
All s(stem memor(&mapped %F2
port space information should
come from AC'% ta0les.
Address3ange3eserved
43 .fi'alCode The 2! and loader must preserve
this memor( range in the working
and AC'% !4I!3 states.
Address3ange3eserved
16.4 EFI Assumptions and Limitations
The firmware returns address ranges descri0ing the current s(stem memor( configuration.
The firmware does not return a range description for the memor( mapping of 'C% devices, %!A
2ption 32Ms, and %!A 'lug and 'la( cards 0ecause the 2! has mechanisms availa0le to detect them.
The firmware returns chip set&defined address holes that are not 0eing used 0( devices as reserved.
Address ranges defined for 0ase0oard memor(&mapped %F2 devices, such as A'%Cs, are returned
as reserved.
All occurrences of the s(stem firmware are mapped as reserved, including the areas 0elow 4 M;,
at 4+ M; =if present>, and at end of the "&$; address space. This can include 'A1 code on %tanium
TM
&
0ased s(stems.
!tandard 'C address ranges are not reported. 5or e/ample, video memor( at A to ;5555
ph(sical addresses are not descri0ed 0( this function. The range from . to .5555 is specific to
the 0ase0oard and is reported as it applies to that 0ase0oard.
All of lower memor( is reported as normal memor(. The 2! must handle standard 3AM locations
that are reserved for specific uses, such as the interrupt vector ta0le =<> and the ;%2! data area
="<>.
.5% contains descriptors for memor( mapped %F2 and memor( mapped %F2 port space to allow for
virtual mode calls to .5% run&time functions. The 2! must never use these regions.
16.5 Example Address Map
This sample address map =for an %ntel processor&0ased s(stem> descri0es a machine that has 428 M; of
3AM, +" E; of 0ase memor( and 429 M; of e/tended memor(. The 0ase memor( has +36 E; availa0le
for the user and 4 E; for an e/tended ;%2! data area. A "&M; 1inear 5rame ;uffer =15;> is 0ased at 42
M;. The memor( hole created 0( the chip set is from 8 M; to 4+ M;. Memor(&mapped A'%C devices are
in the s(stem. The %F2 ,nit is at 5.C and the 1ocal ,nit is at 5... The s(stem ;%2! is
remapped to 4 $;I+" E;.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+8" Advanced Configuration and 'ower %nterface !pecification
The +36&E; endpoint of the first memor( range is also the 0ase memor( siHe reported in the ;%2! data
segment at "<43. The following ta0le shows the memor( map of a t(pical s(stem.
Ta!le +(-/ Sa%ple Me%or) Map
<ase >Hex? Length T)pe 5escription
+36 E; Address3angeMemor( Availa0le ;ase memor(. T(picall( the same value
as is returned using the %NT 42 function.
6 5C 4 E; Address3ange3eserved Memor( reserved for use 0( the ;%2!=s>. This
area t(picall( includes the ./tended ;%2! data
area.
5 +" E; Address3ange3eserved !(stem ;%2!
4 9 M; Address3angeMemor( ./tended memor(, which is not limited to the
+"&M; address range.
8 " M; Address3ange3eserved Chip set memor( hole re:uired to support the 15;
mapping at 42 M;.
4 42 M; Address3angeMemor( ;ase0oard 3AM relocated a0ove a chip set
memor( hole.
5.C " E; Address3ange3eserved %F2 A'%C memor( mapped %F2 at 5.C.
5.. " E; Address3ange3eserved 1ocal A'%C memor( mapped %F2 at 5...
5555 +" E; Address3ange3eserved 3emapped !(stem ;%2! at end of address space.
16.6 Example: Operating System Usage
The following code segment illustrates the algorithm to 0e used when calling the Guer( !(stem Address
Map function. %t is an implementation e/ample and uses non&standard mechanisms.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +8*
%=3(Pre2ent L 5&6S%K
Re,.eb- L (K
do
Re,.ea- L (-%=3(K
Re,.e2 L S%:;%!< (VDe2criptor)K
Re,.di L 055S%< (VDe2criptor)K
Re,.ec- L 2iCeof (De2criptor)K
Re,.ed- L aS;&PaK
_int( 4G$ re,2 )K
if ((Re,2.efla,2 V %56&:_)&RRS) UU Re,2.ea- bL aS;&Pa)
brea+K
/
if (Re,2.ec- ? 3( UU Re,.ec- B 2iCeof (De2criptor) )
// bu, in bio2 E all returned de2criptor2 mu2t be
// at lea2t 3( b1te2 lon,$ and cannot be lar,er then
// the input buffer.
brea+K
/
%=3(Pre2ent L <RX%K
.
.
.
&dd addre22 ran,e De2criptor.Ba2e&ddre22 throu,h
De2criptor.Ba2e&ddre22 D De2criptor.6en,th
a2 t1pe De2criptor.<1pe
.
.
.
/ while (Re,2.eb- bL ()K
if (b%=3(Pre2ent)
.
.
.
call #!<E4G == and/or #!<E4G %=(4 to obtain old 2t1le
memor1 information
.
.
.
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+8+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +89
17 Waking and Sleeping
AC'% defines a mechanism to transition the s(stem 0etween the working state =$> and a sleeping state
=$4> or the soft&off =$2> state. -uring transitions 0etween the working and sleeping states, the conte/t of
the userMs operating environment is maintained. AC'% defines the :ualit( of the $4 sleeping state 0(
defining the s(stem attri0utes of four t(pes of AC'% sleeping states =!4, !2, !3, and !">. .ach sleeping
state is defined to allow implementations that can tradeoff cost, power, and wake latencies. Additionall(,
AC'% defines the sleeping states such that an AC'% platform can support multiple sleeping states, allowing
the platform to transition into a particular sleeping state for a predefined period of time and then transition
to a lower powerFhigher wake latenc( sleeping state =transitioning through the $ state>
4*
.
AC'% defines a programming model that provides a mechanism for 2!'M to initiate the entr( into a
sleeping or soft&off state =!4&!*>K this consists of a 3&0it field !1'CTS'/
4+
that indicates the t(pe of sleep
state to enter, and a single control 0it !1'C.N to start the sleeping process.
0oteH !(stems containing processors without a hardware mechanism to place the processor in a low&power
state ma( additionall( re:uire the e/ecution of appropriate native instructions to place the processor in a
low&power state after 2!'M sets the !1'C.N 0it. The hardware ma( implement a num0er of low&power
sleeping states and then associate these states with the defined AC'% sleeping states =through the
!1'CTS'/ fields>. The AC'% s(stem firmware creates a sleeping o0#ect associated with each supported
sleeping state =unsupported sleeping states are identified 0( the lack of the sleeping o0#ect>. .ach sleeping
o0#ect contains two constant 3&0it values that 2!'M will program into the !1'CTS'a and !1'CTS'0
fields =in fi/ed register space>.
AC'% also defines an alternate mechanism for entering and e/iting the !" state that passes control to the
;%2! to save and restore platform conte/t. Conte/t ownership is similar in definition to the !3 state, 0ut
hardware saves and restores the conte/t of memor( to non&volatile storage =such as a disk drive>, and
2!'M treats this as an !" state with implied latenc( and power constraints. This alternate mechanism of
entering the !" state is referred to as the !";%2! transition.
'rior to entering a sleeping state =!4&!">, 2!'M will e/ecute 2.M&specific AM1FA!1 code contained in
the C'T! ='repare To !leep> control method. 2ne use of the C'T! control method is that it can indicate to
the em0edded controller what sleeping state the s(stem will enter when the !1'C.N 0it is set. The
em0edded controller can then respond 0( e/ecuting the proper power&plane se:uencing upon this 0it 0eing
set.
%mmediatel( prior to entering a s(stem sleeping state, 2!'M will e/ecute the C$T! =$oing To !leep>
control method. C$T! allows AC'% s(stem firmware to perform an( necessar( s(stem specific functions
prior to entering a s(stem sleeping state.
,pon waking, 2!'M will e/ecute the C;5! =;ack 5rom !leep> control method. This allows AC'% s(stem
firmware to perform an( necessar( s(stem specific functions prior to returning control to 2!'M. The
CWAE =Wake> control method is then e/ecuted. This control method again contains 2.M&specific
AM1FA!1 code. 2ne use of the CWAE control method re:uests 2!'M to check the platform for an(
devices that might have 0een added or removed from the s(stem while the s(stem was asleep. 5or e/ample,
a 'C Card controller might have had a 'C Card added or removed, and 0ecause the power to this device
was off in the sleeping state, the status change event was not generated.
4*
2!'M uses the 3TC wakeup feature to program in the time transition dela(. 'rior to sleeping, 2!'M
will program the 3TC alarm to the closest =in time> wakeup event< either a transition to a lower power
sleeping state, or a calendar event =to run some application>.
4+
Notice that there can 0e two fi/ed 'M4/CCNT registers, each pointing to a different s(stem %F2 space
region. Normall( a register grouping onl( allows a 0it or 0it field to reside in a single register group
instance =a or 0>K however, each platform can have two instances of the !1'CTS' =one for each grouping
register< a and 0>. The BC!/ control method gives a package with two values< the first is the !1'CTS'a
value and the second is the !1'CTS'0 value.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+88 Advanced Configuration and 'ower %nterface !pecification
This section discusses the s(stem initialiHation se:uence of an AC'%&ena0led platform. This includes the
0oot se:uence, different wake scenarios, and an e/ample to illustrate how to use the s(stem address map
reporting interfaces. This se:uence is part of the AC'% event programming model.
5or detailed information on the power management control methods descri0ed a0ove, see section 9, J'ower
and 'erformance Management.L
17.1 Sleeping States
The illustration 0elow shows the transitions 0etween the working state, the sleeping states, and the !oft 2ff
state.
S+P>TAP'<S3
an"
S+P>&@
S3
Sleeping
S5
Sleeping
S-
Sleeping
S+P>TAP'<S7
an"
S+P>&@
or
P.RBT@>OR
.a/e
&vent
S4
Sleeping
ACPI
Boot
1SCI>&@<32
,5 1S72 -
Soft Off
S+P>TAP'<S5
an"
S+P>&@
S+P>TAP'<S-
an"
S+P>&@
S+P>TAP'<S4
an"
S+P>&@
,0 1S02 -
.or/ing
,3
S4BIOS>R&?
to
S*I>C*D
O&* S4 BIOS
!an"ler
S+P>TAP'<S4
an"
S+P>&@
6igure +A-+ 1xa%ple Sleeping States
AC'% defines distinct differences 0etween the $ and $4 s(stem states.
%n the $ state, work is 0eing performed 0( the 2!Fapplication software and the hardware. The
C', or an( particular hardware device could 0e in an( one of the defined power states =C&C3 or -&
-3>K however, some work will 0e taking place in the s(stem.
%n the $4 state, the s(stem is assumed to 0e doing no work. 'rior to entering the $4 state, 2!'M
will place devices in a device power state compati0le with the s(stem sleeping state to 0e enteredK if a
device is ena0led to wake the s(stem, then 2!'M will place these devices into the lowest -x state
from which the device supports wake. This is defined in the power resource description of that device
o0#ect. This definition of the $4 state implies<
The C',s e/ecute no instructions in the $4 state.
@ardware devices are not operating =e/cept possi0l( to generate a wake event>.
AC'% registers are affected as follows<
Wake event 0its are ena0led in the corresponding fi/ed or general&purpose registers according
to ena0led wake options.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +86
'M4 control register is programmed for the desired sleeping state.
WAEC!T! is set 0( hardware in the sleeping state.
All sleeping states have these specifications. AC'% defines additional attri0utes that allow an AC'% platform
to have up to four different sleeping states, each of which has different attri0utes. The attri0utes were
chosen to allow differentiation of sleeping states that var( in power, wake latenc(, and implementation cost
tradeoffs.
3unning processors at reduced levels of performance is not an AC'% sleeping state =$4>K this is a working
=$> stateIdefined event.
The C', cannot e/ecute an( instructions when in the sleeping stateK 2!'M relies on this fact. A platform
designer might 0e tempted to support a sleeping s(stem 0( reducing the clock fre:uenc( of the s(stem,
which allows the platform to maintain a low&power state while at the same time maintaining
communication sessions that re:uire constant interaction =as with some network environments>. This is
definitel( a $ activit( where an 2! polic( decision has 0een made to turn off the user interface =screen>
and run the processor in a reduced performance mode. This t(pe of reduced performance state as a sleeping
state is not defined 0( the AC'% specificationK AC'% assumes no code e/ecution during sleeping states.
AC'% defines attri0utes for four sleeping states< !4, !2, !3 and !". =Notice that !" and !* are ver( similar
from a hardware standpoint.> AC'%&compati0le platforms can support multiple sleeping states. AC'%
specifies that a 3&0it 0inar( num0er 0e associated with each sleeping state =these num0ers are given o0#ects
within AC'%Ms root namespace< BC!, BC!4, BC!2, BC!3, BC!" and BC!*>. When entering a s(stem sleeping
state, 2!'M will do the following<
4. 'ick the deepest sleeping state supported 0( the platform and ena0led waking devices.
2. ./ecute the C'T! control method =which passes the t(pe of intended sleep state to 2.M AM1
code>.
3. %f 2! polic( decides to enter the !" state and chooses to use the !";%2! mechanism and !";%2!
is supported 0( the platform, 2!'M will pass control to the ;%2! software 0( writing the
!";%2!C3.G value to the !M%CCM- port.
". %f not using the !";%2! mechanism, 2!'M gets the !1'CTS'/ value from the associated
sleeping o0#ect =BC!4, BC!2, BC!3, BC!" or BC!*>.
*. 'rogram the !1'CTS'x fields with the values contained in the selected sleeping o0#ect.
+. ./ecute the C$T! control method, passing an argument that indicates the sleeping state to 0e
entered =4, 2, 3, or " representing !4, !2, !3, and !">.
9. %f entering !4, !2, or !3, flush the processor caches.
8. %f not entering !";%2!, set the !1'C.N 0it to start the sleeping se:uence. =This actuall( occurs
on the same write operation that programs the !1'CTS'/ field in the 'M4CCNT register.> %f
entering !";%2!, write the !";%2!C3.G value into the !M%CCM- port.
6. 2n s(stems containing processors without a hardware mechanism to place the processor in a low&
power state, e/ecute appropriate native instructions to place the processor in a low&power state.
The C'T! control method provides the ;%2! a mechanism for performing some housekeeping, such as
writing the sleep t(pe value to the em0edded controller, 0efore entering the s(stem sleeping state. Control
method e/ecution occurs J#ust priorL to entering the sleeping state and is not an event s(nchroniHed with
the write to the 'M4CCNT register. ./ecution can take place several seconds prior to the s(stem actuall(
entering the sleeping state. As such, no hardware power&plane se:uencing takes place 0( e/ecution of the
C'T! control method.
,pon waking, the C;5! control method is e/ecuted. 2!'M then e/ecutes the CWAE control method. This
control method e/ecutes 2.M&specific A!1FAM1 code that can search for an( devices that have 0een
added or removed during the sleeping state.
The following sections descri0e the sleeping state attri0utes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+6 Advanced Configuration and 'ower %nterface !pecification
17.1.1 S1 Sleeping State
The !4 state is defined as a low wake&latenc( sleeping state. %n this state, all s(stem conte/t is preserved
with the e/ception of C', caches. ;efore setting the !1'C.N 0it, 2!'M will flush the s(stem caches. %f
the platform supports the W;%ND- instruction =as indicated 0( the W;%ND- and W;%ND-C51,!@ flags
in the 5A-T>, 2!'M will e/ecute the W;%ND- instruction. The hardware is responsi0le for maintaining
all other s(stem conte/t, which includes the conte/t of the C',, memor(, and chipset.
./amples of !4 sleeping state implementation alternatives follow.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +64
17.1.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+62 Advanced Configuration and 'ower %nterface !pecification
Example 1: S1 Sleeping State Implementation
This e/ample references an %A processor that supports the stop grant state through the assertion of the
!T'C1EY signal. When !1'CTS'/ is programmed to the !4 value =the 2.M chooses a value, which is
then placed in the BC!4 o0#ect> and the !1'C.N/ 0it is su0se:uentl( set, the hardware can implement an !4
state 0( asserting the !T'C1EY signal to the processor, causing it to enter the stop grant state.
%n this case, the s(stem clocks ='C% and C',> are still running. An( ena0led wake event causes the
hardware to de&assert the !T'C1EY signal to the processor where0( 2!'M must first invalidate the C',
caches and then transition 0ack into the working state.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +63
17.1.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+6" Advanced Configuration and 'ower %nterface !pecification
Example 2: S1 Sleeping State Implementation
When !1'CTS'/ is programmed to the !4 value and the !1'C.N/ 0it is su0se:uentl( set, the hardware
will implement an !4 sleeping state transition 0( doing the following<
4. 'lacing the processor into the stop grant state.
2. !topping the processorMs input clock, placing the processor into the stop clock state.
3. 'lacing s(stem memor( into a self&refresh or suspend&refresh state. 3efresh is maintained 0( the
memor( itself or through some other reference clock that is not stopped during the sleeping state.
". !topping all s(stem clocks =asserts the stand0( signal to the s(stem '11 chip>. Normall( the 3TC
will continue running.
%n this case, all clocks in the s(stem have 0een stopped =e/cept for the 3TC>. @ardware must reverse the
process =restarting s(stem clocks> upon an( ena0led wake event where0( 2!'M must first invalidate the
C', caches and then transition 0ack into the working state.
17.1.2 S2 Sleeping State
The !2 state is defined as a low wake latenc( sleep state. This state is similar to the !4 sleeping state where
an( conte/t e/cept for s(stem memor( ma( 0e lost. Additionall(, control starts from the processorMs reset
vector after the wake event. ;efore setting the !1'C.N 0it, 2!'M will flush the s(stem caches. %f the
platform supports the W;%ND- instruction =as indicated 0( the W;%ND- and W;%ND-C51,!@ flags in
the 5A-T>, 2!'M will e/ecute the W;%ND- instruction. The hardware is responsi0le for maintaining chip
set and memor( conte/t. An e/ample of an !2 sleeping state implementation follows.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +6*
17.1.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+6+ Advanced Configuration and 'ower %nterface !pecification
Example: S2 Sleeping State Implementation
When the !1'CTS'/ register=s> are programmed to the !2 value =found in the BC!2 o0#ect> and the
!1'C.N 0it is set, the hardware will implement an !2 sleeping state transition 0( doing the following<
4. !topping s(stem clocks =the onl( running clock is the 3TC>.
2. 'lacing s(stem memor( into a self&refresh or suspend&refresh state.
3. 'owering off the C', and cache su0s(stem.
%n this case, the C', is reset upon detection of the wake eventK however, core logic and memor( maintain
their conte/t. ./ecution control starts from the C',Ms 0oot vector. The ;%2! is re:uired to<
'rogram the initial 0oot configuration of the C', =such as the C',Ms M!3 and MT33 registers>.
%nitialiHe the cache controller to its initial 0oot siHe and configuration.
.na0le the memor( controller to accept memor( accesses.
7ump to the waking vector.
17.1.3 S3 Sleeping State
The !3 state is defined as a low wake&latenc( sleep state. 5rom the software viewpoint, this state is
functionall( the same as the !2 state. The operational difference is that some 'ower 3esources that ma(
have 0een left 2N in the !2 state ma( not 0e availa0le to the !3 state. As such, some devices ma( 0e in a
lower power state when the s(stem is in !3 state than when the s(stem is in the !2 state. !imilarl(, some
device wake events can function in !2 0ut not !3. An e/ample of an !3 sleeping state implementation
follows.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +69
17.1.3.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
+68 Advanced Configuration and 'ower %nterface !pecification
Example: S3 Sleeping State Implementation
When the !1'CTS'/ register=s> are programmed to the !3 value =found in the BC!3 o0#ect> and the
!1'C.N 0it is set, the hardware will implement an !3 sleeping state transition 0( doing the following<
4. 'lacing the memor( into a low&power auto&refresh or self&refresh state.
2. -evices that are maintaining memor( isolating themselves from other devices in the s(stem.
3. 3emoving power from the s(stem. At this point, onl( devices supporting memor( are powered
=possi0l( partiall( powered>. The onl( clock running in the s(stem is the 3TC clock.
%n this case, the wake event repowers the s(stem and resets most devices =depending on the
implementation>.
./ecution control starts from the C',Ms 0oot vector. The ;%2! is re:uired to<
4. 'rogram the initial 0oot configuration of the C', =such as the M!3 and MT33 registers>.
2. %nitialiHe the cache controller to its initial 0oot siHe and configuration.
3. .na0le the memor( controller to accept memor( accesses.
". 7ump to the waking vector.
Notice that if the configuration of cache memor( controller is lost while the s(stem is sleeping, the ;%2! is
re:uired to reconfigure it to either the pre&sleeping state or the initial 0oot state configuration. The ;%2!
can store the configuration of the cache memor( controller into the reserved memor( space, where it can
then retrieve the values after waking. 2!'M will call the C'T! method once per session =prior to sleeping>.
The ;%2! is also responsi0le for restoring the memor( controllerMs configuration. %f this configuration data
is destro(ed during the !3 sleeping state, then the ;%2! needs to store the pre&sleeping state or initial 0oot
state configuration in a non&volatile memor( area =as with 3TC CM2! 3AM> to ena0le it to restore the
values during the waking process.
When 2!'M re&enumerates 0uses coming out of the !3 sleeping state, it will discover an( devices that
have 0een inserted or removed, and configure devices as the( are turned on.
17.1.4 S4 Sleeping State
The !" sleeping state is the lowest&power, longest wake&latenc( sleeping state supported 0( AC'%. %n order
to reduce power to a minimum, it is assumed that the hardware platform has powered off all devices.
;ecause this is a sleeping state, the platform conte/t is maintained. -epending on how the transition into
the !" sleeping state occurs, the responsi0ilit( for maintaining s(stem conte/t changes. !" supports two
entr( mechanisms< 2! initiated and ;%2!&initiated. The 2!'M&initiated mechanism is similar to the entr(
into the !4&!3 sleeping statesK 2!'M driver writes the !1'CTS'/ fields and sets the !1'C.N 0it. The
;%2!&initiated mechanism occurs 0( 2!'M transferring control to the ;%2! 0( writing the !";%2!C3.G
value to the !M%CCM- port.
%n 2!'M&initiated !" sleeping state, 2!'M is responsi0le for saving all s(stem conte/t. ;efore entering
the !" state, 2!'M will save conte/t of all memor( with the e/ception of memor( reported as t(pe
Address3ange3eserved =see section 4*, J!(stem Address Map %nterfaces,L for more information>. ,pon
waking, 2!'M will then restore the s(stem conte/t. When 2!'M re&enumerates 0uses coming out of the
!" sleeping state, it will discover an( devices that have come and gone, and configure devices as the( are
turned on.
%n the ;%2!&initiated !" sleeping state, 2!'M is responsi0le for the same s(stem conte/t as descri0ed in
the !3 sleeping state =;%2! restores the memor( and some chip set conte/t>. The !";%2! transition
transfers control to the ;%2!, allowing it to save conte/t to non&volatile memor( =such as a disk partition>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ +66
17.1.4.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9 Advanced Configuration and 'ower %nterface !pecification
Operating System-Initiated S4 Transition
%f 2!'M supports 2!'M&initiated !" transition, it will not generate a ;%2!&initiated !" transition.
'latforms that support the ;%2!&initiated !" transition also support 2!'M&initiated !" transition.
2!'M&initiated !" transition is initiated 0( 2!'M 0( saving s(stem conte/t, writing the appropriate values
to the !1'CTS'/ register=s>, and setting the !1'C.N 0it. ,pon e/iting the !" sleeping state, the ;%2!
restores the chipset to its '2!T condition, updates the hardware signature =descri0ed later in this section>,
and passes control to 2!'M through a normal 0oot process.
When the ;%2! 0uilds the AC'% ta0les, it generates a hardware signature for the s(stem. %f the hardware
configuration has changed during an 2!&initiated !" transition, the ;%2! updates the hardware signature in
the 5AC! ta0le. A change in hardware configuration is defined to 0e an( change in the platform hardware
that would cause the platform to fail when tr(ing to restore the !" conte/tK this hardware is normall(
limited to 0oot devices. 5or e/ample, changing the graphics adapter or hard disk controller while in the !"
state should cause the hardware signature to change. 2n the other hand, removing or adding a 'C Card
device from a 'C Card slot should not cause the hardware signature to change.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 94
17.1.4.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
92 Advanced Configuration and 'ower %nterface !pecification
The S4BIOS Transition
The ;%2!&initiated !" transition 0egins with 2!'M writing the !";%2!C3.G value into the !M%CCM-
port =as specified in the 5A-T>. 2nce gaining control, the ;%2! then saves the appropriate memor( and
chip set conte/t, and then places the platform into the !" state =power off to all devices>.
%n the 5AC! memor( ta0le, there is the !";%2!C5 0it that indicates hardware support for the ;%2!&
initiated !" transition. %f the hardware platform supports the !";%2! state, it sets the !";%2!C5 flag
within the 5AC! memor( structure prior to 0ooting the 2!. %f the !";%2!C5 flag in the 5AC! ta0le is set,
this indicates that 2!'M can re:uest the ;%2! to transition the platform into the !";%2! sleeping state 0(
writing the !";%2!C3.G value =found in the 5A-T> to the !M%CCM- port =identified 0( the !M%CCM-
value in the 5A-T>.
,pon waking the ;%2!, software restores memor( conte/t and #umps to the waking vector =similar to wake
from an !3 state>. Coming out of the !";%2! state, the ;%2! must onl( configure 0oot devices =so it can
read the disk partition where it saved s(stem conte/t>. When 2!'M re&enumerates 0uses coming out of the
!";%2! state, it will discover an( devices that have come and gone, and configure devices as the( are
turned on.
17.1.5 S5 Soft Of State
2!'M places the platform in the !* soft off state to achieve a logical off. Notice that t1e S state is not a
sleeping state =it is a $2 state> and no conte/t is saved 0( 2!'M or hardware 0ut power ma( still 0e
applied to parts of the platform in this state and as such, it is not safe to disassem0le. Also notice that from
a hardware perspective, the !" and !* states are nearl( identical. When initiated, the hardware will
se:uence the s(stem to a state similar to the off state. The hardware has no responsi0ilit( for maintaining
an( s(stem conte/t =memor( or %F2>K however, it does allow a transition to the ! state due to a power
0utton press or a 3emote !tart. ,pon start&up, the ;%2! performs a normal power&on reset, loads the 0oot
sector, and e/ecutes =0ut not the waking vector, as all AC'% ta0le conte/t is lost when entering the !* soft
off state>.
The CTT! control method allows the ;%2! a mechanism for performing some housekeeping, such as
storing the targeted sleep state in a Jglo0alL varia0le that is accessi0le 0( other control methods =such as
C'!3 and C-!W>.
17.1.6 Transitioning from the Working to the Sleeping State
2n a transition of the s(stem from the working to the sleeping state, the following occurs<
4. 2!'M decides =through a polic( scheme> to place the s(stem into the sleeping state.
2. 2!'M invokes the CTT! method to indicate the deepest possi0le s(stem state the s(stem will
transition to =4, 2, 3, or " representing !4, !2, !3, and !">.
3. 2!'M e/amines all devices ena0led to wake the s(stem and determines the deepest possi0le sleeping
state the s(stem can enter to support the ena0led wake functions. The C'3W named o0#ect under each
device is e/amined, as well as the power resource o0#ect it points to.
". 2!'M places all device drivers into their respective -x state. %f the device is ena0led for wake, it
enters the -x state associated with the wake capa0ilit(. %f the device is not ena0led to wake the s(stem,
it enters the -3 state.
*. 2!'M e/ecutes the C'T! control method, passing an argument that indicates the desired sleeping state
=4, 2, 3, or " representing !4, !2, !3, and !">.
+. 2!'M saves an( other processorMs conte/t =other than the local processor> to memor(.
9. 2!'M writes the waking vector into the 5AC! ta0le in memor(.
8. 2!'M e/ecutes the C$T! control method, passing an argument that indicates the sleeping state to 0e
entered =4, 2, 3, or " representing !4, !2, !3, and !">.
6. 2!'M clears the WAEC!T! in the 'M4aC!T! and 'M40C!T! registers.
4. 2!'M saves the local processorMs conte/t to memor(.
44. 2!'M flushes caches =onl( if entering !4, !2 or !3>.
42. 2!'M sets $'. ena0le registers to ensure that all appropriate wake signals are armed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 93
43. %f entering an !" state using the !";%2! mechanism, 2!'M writes the !";%2!C3.G value =from the
5A-T> to the !M%CCM- port. This passes control to the ;%2!, which then transitions the platform
into the !";%2! state.
4". %f not entering an !";%2! state, then 2!'M writes !1'CTS'a =from the associated sleeping o0#ect>
with the !1'C.Na 0it set to the 'M4aCCNT register.
4*. 2!'M writes !1'CTS'0 with the !1'C.N 0it set to the 'M40CCNT register.
4+. 2n s(stems containing processors without a hardware mechanism to place the processor in a low&
power state, 2!'M e/ecutes appropriate native instructions to place the processor in a low&power
state.
49. 2!'M loops on the WAEC!T! 0it =in 0oth the 'M4aCCNT and 'M40CCNT registers>.
48. The s(stem enters the specified sleeping state.
0oteH this is accomplished after step 4" or 4* a0ove.
17.1.7 Transitioning from the Working to the Soft Of State
2n a transition of the s(stem from the working to the soft off state, the following occurs<
4. 2!'M e/ecutes the C'T! control method, passing the argument *.
2. 2!'M prepares its components to shut down =flushing disk caches>.
3. 2!'M e/ecutes the C$T! control method, passing the argument *.
". 2!'M writes !1'CTS'a =from the BC!* o0#ect> with the !1'C.Na 0it set to the 'M4aCCNT
register.
*. 2!'M writes !1'CTS'0 =from the BC!* o0#ect> with the !1'C.N0 0it set to the 'M40CCNT
register.
+. The s(stem enters the !oft 2ff state.
17.2 Flushing Caches
;efore entering the !4, !2 or !3 sleeping states, 2!'M is responsi0le for flushing the s(stem caches. AC'%
provides a num0er of mechanisms to flush s(stem caches. These include<
,sing a native instruction =for e/ample, the %A32 W;%ND- instruction> to flush and invalidate
platform caches.
W;%ND-C51,!@ flag set =4> in the 5A-T indicates the s(stem provides this support level.
,sing the %A32 instruction W;%ND- to flush 0ut not invalidate the platform caches.
W;%ND- flag set =4> in the 5A-T indicates the s(stem provides this support level.
The manual flush mechanism has two caveats<
1argest cache is 4 M; in siHe =51,!@C!%?. is a ma/imum value of 2 M;>.
No victim caches =for which the manual flush algorithm is unrelia0le>.
'rocessors with 0uilt&in victim caches will not support the manual flush mechanism and are therefore
re:uired to support the W;%ND- mechanism to use the !2 or !3 state.
The manual cache&flushing mechanism relies on the two 5A-T fields<
6L2SHDSII1 %ndicates twice the siHe of the largest cache in 0(tes.
6L2SHDST"I51 %ndicates the smallest line siHe of the caches in 0(tes.
The cache flush siHe value is t(picall( twice the siHe of the largest cache siHe, and the cache flush stride
value is t(picall( the siHe of the smallest cache line siHe in the platform. 2!'M will flush the s(stem caches
0( reading a contiguous 0lock of memor( indicated 0( the cache flush siHe.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9" Advanced Configuration and 'ower %nterface !pecification
17.3 Initialization
This section covers the initialiHation se:uences for an AC'% platform. After a reset or wake from an !2, !3,
or !" sleeping state =as defined 0( the AC'% sleeping state definitions>, the C', will start e/ecution from
its 0oot vector. At this point, the initialiHation software has man( options, depending on what the hardware
platform supports. This section descri0es at a high level what should 0e done for these different options.
5igure 4*&2 illustrates the flow of the 0oot&up software.
Boot 6ector
S-P%TAPNS"
O
S-P%TAPNS(
O
F(%p To
.a/ing Dector
&o
&o
Aes
Aes
InitialiGe *e%ory
I%age
P S,stem
P Reser9ed
P ACPI &6S
P ACPI Reclaim
P ACPI Ta0les
P MPS Ta0les
P 444
Boot OS +oa"er
POST
Initiali?e CP*
Init Memor, Controller
$na0le Memor,
Configure Caches
$na0le Caches
Initiali?e Chipset
Initiali?e CP*
$na0le Memor,
Configure Caches
S-P%TAPN
S>BIOS
O
&o
Restore memor,
Image
Aes
6igure +A-& <I3S InitialiBation
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9*
The processor will start e/ecuting at its power&on reset vector when waking from an !2, !3, or !" sleeping
state, during a power&on se:uence, or as a result of a hard or soft reset.
When e/ecuting from the power&on reset vector as a result of a power&on se:uence, a hard or soft reset, or
waking fro% an S( sleep state, the platform firmware performs complete hardware initialiHationK placing
the s(stem in a 0oot configuration. The firmware then passes control to the operating s(stem 0oot loader.
When e/ecuting from the power&on reset vector as a result of waking from an !2 or !3 sleep state, the
platform firmware performs onl( the hardware initialiHation re:uired to restore the s(stem to either the state
the platform was in prior to the initial operating s(stem 0oot, or to the pre&sleep configuration state. %n
multiprocessor s(stems, non&0oot processors should 0e placed in the same state as prior to the initial
operating s(stem 0oot. The platform firmware then passes control 0ack to 2!'M s(stem 0( #umping to
either the 5irmwareCWakingCDector or the AC5irmwareCWakingCDector in the 5AC! =see ta0le *&42 for
more information>. The contents of operating s(stem memor( contents ma( not 0e changed during the !2
or !3 sleep state.
5irst, the ;%2! determines whether this is a wake from !2 or !3 0( e/amining the !1'CTS' register value,
which is preserved 0etween sleeping sessions. %f this is an !2 or !3 wake, then the ;%2! restores minimum
conte/t of the s(stem 0efore #umping to the waking vector. This includes<
CP2 configuration ;%2! restores the pre&sleep configuration or initial 0oot configuration of
each C', =M!3, MT33, ;%2! update, !M;ase, and so on>. %nterrupts must 0e disa0led =for %A&
32 processors, disa0led 0( C1% instruction>.
Me%or) controller configuration %f the configuration is lost during the sleeping state, the ;%2!
initialiHes the memor( controller to its pre&sleep configuration or initial 0oot configuration.
Cache %e%or) configuration %f the configuration is lost during the sleeping state, the ;%2!
initialiHes the cache controller to its pre&sleep configuration or initial 0oot configuration.
6unctional device configuration The ;%2! doesnMt need to configureFrestore conte/t of
functional devices such as a network interface =even if it is ph(sicall( included in chipset> or
interrupt controller. 2!'M is responsi0le for restoring all conte/t of these devices. The onl(
re:uirement for the hardware and ;%2! is to ensure that interrupts are not asserted 0( devices
when the control is passed to 2!.
ACPI registers !C%C.N 0it must 0e set. All event statusFena0le 0its ='M4/C!T!, 'M4/C.N,
$'./C!T! and $'./C.N> must not 0e changed 0( ;%2!.
0oteH The ;%2! ma( reconfigure the C',, memor( controller and cache memor( controller to either the
pre&sleeping configuration or the initial 0oot configuration. 2!'M must accommodate 0oth configurations.
When waking from an !";%2! sleeping state, the ;%2! initialiHes a minimum num0er of devices such as
C',, memor(, cache, chipset and 0oot devices. After initialiHing these devices, the ;%2! restores memor(
conte/t from non&volatile memor( such as hard disk, and #umps to waking vector.
As mentioned previousl(, waking from an !" state is treated the same as a cold 0oot< the ;%2! runs '2!T
and then initialiHes memor( to contain the AC'% s(stem description ta0les. After it has finished this, it can
call 2!'M loader, and control is passed to 2!'M.
When waking from !" =either !"2! or !";%2!>, the ;%2! ma( optionall( set !C%C.N 0it 0efore passing
control to 2!'M. %n this case, interrupts must 0e disa0led =for %A&32 processors, disa0led C1% instruction>
until the control is passed to 2!'M and the chipset must 0e configured in AC'% mode.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9+ Advanced Configuration and 'ower %nterface !pecification
17.3.1 Placing the System in ACPI Mode
When a platform initialiHes from a cold 0oot =mechanical off or from an !" or !* state>, the hardware
platform ma( 0e configured in a legac( configuration. 5rom these states, the ;%2! software initialiHes the
computer as it would for a legac( operating s(stem. When control is passed to the operating s(stem, 2!'M
will check the !C%C.N 0it and if it is not set will then ena0le AC'% mode 0( first finding the AC'% ta0les,
and then 0( generating a write of the AC'%C.NA;1. value to the !M%CCM- port =as descri0ed in the
5A-T>. The hardware platform will set the !C%C.N 0it to indicate to 2!'M that the hardware platform is
now configured for AC'%.
0oteH ;efore !C% is ena0led, no !C% interrupt can occur. Nor can an( !C% interrupt occur immediatel( after
AC'% is on. The !C% interrupt can onl( 0e signaled after 2!'M has ena0led one of the $'.F'M4 ena0le
0its.
When the platform is waking from an !4, !2 or !3 state, 2!'M assumes the hardware is alread( in the
AC'% mode and will not issue an AC'%C.NA;1. command to the !M%CCM- port.
17.3.2 BIOS Initialization of Memory
-uring a power&on reset, an e/it from an !" sleeping state, or an e/it from an !* soft&off state, the ;%2!
needs to initialiHe memor(. This section e/plains how the ;%2! should configure memor( for use 0( a
num0er of features including<
AC'% ta0les.
;%2! memor( that wants to 0e saved across !" sleeping sessions and should 0e cached.
;%2! memor( that does not re:uire saving and should 0e cached.
5or e/ample, the configuration of the platformMs cache controller re:uires an area of memor( to store the
configuration data. -uring the wake se:uence, the ;%2! will re&ena0le the memor( controller and can then
use its configuration data to reconfigure the cache controllers. To support these three items, %A&'C&0ased
s(stems contain s(stem address map reporting interfaces that return the following memor( range t(pes<
ACPI "eclai% Me%or) Memor( identified 0( the ;%2! that contains the AC'% ta0les. This
memor( can 0e an( place a0ove 8 M; and contains the AC'% ta0les. When 2!'M is finished
using the AC'% ta0les, it is free to reclaim this memor( for s(stem software use =application
space>.
ACPI 0on-7olatile-Sleeping Me%or) >07S? Memor( identified 0( the ;%2! as 0eing reserved
0( the ;%2! for its use. 2!'M is re:uired to tag this memor( as cachea0le, and to save and
restore its image 0efore entering an !" state. ./cept as directed 0( control methods, 2!'M is not
allowed to use this ph(sical memor(. 2!'M will call the C'T! control method some time 0efore
entering a sleeping state, to allow the platformMs AM1 code to update this memor( image 0efore
entering the sleeping state. After the s(stem awakes from an !" state, 2!'M will restore this
memor( area and call the CWAE control method to ena0le the ;%2! to reclaim its memor( image.
0oteH The memor( information returned from the s(stem address map reporting interfaces should 0e the
same 0efore and after an !" sleep.
When the s(stem is first 0ooting, 2!'M will invoke .82 interfaces on %A&'C&0ased legac( s(stems or the
$etMemor(Map=> interface on .5%&ena0led s(stems to o0tain a s(stem memor( map =see section 4*,
J!(stem Address Map %nterfaces,L for more information>. As an e/ample, the following memor( map
represents a t(pical %A&'C&0ased legac( platformMs ph(sical memor( map.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 99
A0o9e @ MB
RAM
Compati0ilit,
Memor,
1
K>1 #B
Compati0ilit,
7oles
! MB
Contiguous
RAM
@ MB
Top of Memor,!
&o Memor,
Boot ROM
> 5B
Boot Base
6igure +A-# 1xa%ple Ph)sical Me%or) Map
The names and attri0utes of the different memor( regions are listed 0elow<
$M-($ E< Compati0ilit( Memor(. Application e/ecuta0le memor( for an 88+ s(stem.
-($ E<M+ M< Compati0ilit( @oles. @oles within memor( space that allow accesses to 0e
directed to the 'C&compati0le frame 0uffer =Ah&;5555h>, to adapter 32M space =Ch&
-5555h>, and to s(stem ;%2! space =.h&55555h>.
+ M<M/ M< Contiguous 3AM. An area of contiguous ph(sical memor( addresses. 2perating
s(stems ma( re:uire this memor( to 0e contiguous in order for its loader to load the 2! properl(
on 0oot up. =No memor(&mapped %F2 devices should 0e mapped into this area.>
/ M<MTop of Me%or)+ This area contains memor( to the Jtop of memor(4L 0oundar(. %n this
area, memor(&mapped %F2 0locks are possi0le.
<oot <aseM( ;< This area contains the 0ootstrap 32M.
The ;%2! should decide where the different memor( structures 0elong, and then configure the .82
handler to return the appropriate values.
5or this e/ample, the ;%2! will report the s(stem memor( map 0( .82 as shown in 5igure 4*&". Notice
that the memor( range from 4 M; to top of memor( is marked as s(stem memor(, and then a small range
is additionall( marked as AC'% reclaim memor(. A legac( 2! that does not support the .82 e/tensions
will ignore the e/tended memor( range calls and correctl( mark that memor( as s(stem memor(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
98 Advanced Configuration and 'ower %nterface !pecification
Boot ROM
&o Memor,
Compati0ilit,
Memor,
Compati0ilit,
7oles
Contiguous
RAM
/ ACPI &6S Memor, )$@"1+
@DS *e%ory
Reserve"
A0o9e @ M0,te
RAM
ACPI Tables
ACPI Reclaim
Memor,
ACPI &6S
Memor,
Reser9ed
Memor,
S,stem Memor,
S,stem Memor,
Reser9ed
Memor,
Reser9ed
Memor,
A9aila0le
Address space
A9aila0le
Address space
1
K>1 #B,te
! MB,te
Top of Memor,!
Top of Memor,"
@ MB,tes / ACPI Reclaim Memor, )$@"1+
/ Reser9ed Memor, )$@"1+
/ S,stem Memor, )$@"1+
6igure +A-( Me%or) as Configured after <oot
Also, from the Top of Memor(4 to the Top of Memor(2, the ;%2! has set aside some memor( for its own
use and has marked as reserved 0oth AC'% ND! Memor( and 3eserved Memor(. A legac( 2! will throw
out the AC'% ND! Memor( and correctl( mark this as reserved memor( =thus preventing this memor(
range from 0eing allocated to an( add&in device>.
2!'M will call the C'T! control method prior to initiating a sleep =0( programming the sleep t(pe,
followed 0( setting the !1'C.N 0it>. -uring a catastrophic failure =where the integrit( of the AM1 code
interpreter or driver structure is :uestiona0le>, if 2!'M decides to shut the s(stem off, it will not issue a
C'T!, 0ut will immediatel( issue a !1'CTS' of Jsoft offL and then set the !1'C.N 0it. @ence, the
hardware should not rel( solel( on the C'T! control method to se:uence the s(stem to the Jsoft offL state.
After waking from an !" state, 2!'M will restore the AC'% ND! memor( image and then issue the CWAE
control method that informs ;%2! that its memor( image is 0ack.
17.3.3 OS Loading
At this point, the ;%2! has passed control to 2!'M, either 0( using 2!'M 0oot loader =a result of waking
from an !"F!* or 0oot condition> or 2!'M waking vector =a result of waking from an !2 or !3 state>. 5or
the ;oot 2! 1oader path, 2!'M will get the s(stem address map via one of the mechanisms descri0e in
section 4*, J!(stem Address Map %nterfaces.L %f 2!'M is 0ooting from an !" state, it will then check the
ND! image fileMs hardware signature with the hardware signature within the 5AC! ta0le =0uilt 0( ;%2!> to
determine whether it has changed since entering the sleeping state =indicating that the platforms
fundamental hardware configuration has changed during the current sleeping state>. %f the signature has
changed, 2!'M will not restore the s(stem conte/t and can 0oot from scratch =from the !" state>. Ne/t, for
an !" wake, 2!'M will check the ND! file to see whether it is valid. %f valid, then 2!'M will load the
ND! image into s(stem memor(. Ne/t, 2!'M will check the !C%C.N 0it and if it is not set, will write the
AC'%C.NA;1. value to the !M%CCM- register to switch into the s(stem into AC'% mode and will then
reload the memor( image from the ND! file.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 96
Boot OS -oader OS
a:ing 6ector
5et Memor, Map
)$@"1+
P ACPI &6S
P ACPI Reclaim
P Reser9ed
P S,stem
P Reser9ed
Memor, Cop,
&6S .ile
O
Aes
-oad OS Images
$xecute %A#
&o
Continue
Sanit, Chec:
Compare memor, and
9olume SS&
Aes
&o
SCI%$& setO
$xecute %B.S
Turn on ACPI
&o
Aes
6igure +A-A 3S InitialiBation
%f an ND! image file did not e/ist, then 2!'M loader will load 2!'M from scratch. At this point, 2!'M
will generate a CWAE call that indicates to the ;%2! that its AC'% ND! memor( image has 0een
successfull( and completel( updated.
17.3.4 Exiting ACPI Mode
5or machines that do not 0oot in AC'% mode, AC'% provides a mechanism that ena0les the 2! to disa0le
AC'%. The following occurs<
4. 2!'M unloads all AC'% drivers =including the AC'% driver>.
2. 2!'M disa0les all AC'% events.
3. 2!'M finishes using all AC'% registers.
". 2!'M issues an %F2 access to the port at the address contained in the !M%CCM- field =in the
5A-T> with the value contained in the AC'%C-%!A;1. field =in the 5A-T>.
*. ;%2! then remaps all !C% events to legac( events and resets the !C%C.N 0it.
+. ,pon seeing the !C%C.N 0it cleared, the AC'% 2! enters the legac( 2! mode.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
94 Advanced Configuration and 'ower %nterface !pecification
When and if the legac( 2! returns control to the AC'% 2!, if the legac( 2! has not maintained the AC'%
ta0les =in reserved memor( and AC'% ND! memor(>, the AC'% 2! will re0oot the s(stem to allow the
;%2! to re&initialiHe the ta0les.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 944
18 Non-Uniform Memory Access (NUMA) Architecture Platforms
!(stems emplo(ing a Non ,niform Memor( Access =N,MA> architecture contain collections of hardware
resources including processors, memor(, and %F2 0uses, that comprise what is commonl( known as a
JN,MA nodeL. Two or more N,MA nodes are linked to each other via a high&speed interconnect.
'rocessor accesses to memor( or %F2 resources within the local N,MA node are generall( faster than
processor accesses to memor( or %F2 resources outside of the local N,MA node, accessed via the node
interconnect. AC'% defines interfaces that allow the platform to conve( N,MA node topolog( information
to 2!'M 0oth staticall( at 0oot time and d(namicall( at run time as resources are added or removed from
the s(stem.
18.1 NUMA Node
A conceptual model for a node in a N,MA configuration ma( contain one or more of the following
components<
'rocessor
Memor(
%F2 3esources
Networking, !torage
Chipset
The components defined as part of the model are intended to represent all possi0le components of a N,MA
node. A specific node in an implementation of a N,MA platform ma( not provide all of these components.
At a minimum, each node must have a chipset with an interface to the interconnect 0etween nodes.
The defining characteristic of a N,MA s(stem is a coherent glo0al memor( and F or %F2 address space that
can 0e accessed 0( all of the processors. @ence, at least one node must have memor(, at least one node
must have %F2 resources and at least one node must have processors. 2ther than the chipset, which must
have components present on ever( node, each is implementation dependent. %n the AC'% name space,
N,MA nodes are descri0ed as module devices. !ee !ection 6.42,LModule -eviceL.
18.2 System Locality
A collection of components that are presented to 2!'M as a !(mmetrical Multi&'rocessing =!M'> unit
0elong to the same !(stem 1ocalit(, also known as a 'ro/imit( -omain. The granularit( of a !(stem
1ocalit( is t(picall( at the N,MA Node level although the granularit( can also 0e at the su0&N,MA node
level or the processor, memor( and host 0ridge level. A !(stem 1ocalit( is reported to the 2!'M using the
C'AM method. %f 2!'M onl( needs to know a nearFfar distinction among the !(stem 1ocalities, the
C'AM method is sufficient.
2!'M makes no assumptions a0out the pro/imit( or nearness of different pro/imit( domains. The
difference 0etween two integers representing separate pro/imit( domains does not impl( distance 0etween
the pro/imit( domains =in other words, pro/imit( domain 4 is not assumed to 0e closer to pro/imit(
domain than pro/imit( domain +>.
18.2.1 System Resource Afnity Table Defnition
This optional !(stem 3esource Affinit( Ta0le =!3AT> provides the 0oot time description of the processor
and memor( ranges 0elonging to a s(stem localit(. 2!'M will consume the !3AT onl( at 0oot time.
2!'M should use C'AM for an( devices that are hot&added into the s(stem after 0oot up.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
942 Advanced Configuration and 'ower %nterface !pecification
The !3AT descri0es the s(stem localit( that all processors and memor( present in a s(stem 0elong to at
s(stem 0oot. This includes memor( that can 0e hot&added =that is memor( that can 0e added to the s(stem
while it is running, without re:uiring a re0oot>. 2!'M can use this information to optimiHe the
performance of N,MA architecture s(stems. 5or e/ample, 2!'M could utiliHe this information to
optimiHe allocation of memor( resources and the scheduling of software threads.
18.3 System Locality Distance Information
2ptionall(, 2!'M ma( further optimiHe a N,MA architecture s(stem using information a0out the relative
memor( latenc( distances among the !(stem 1ocalities. This ma( 0e useful if the distance 0etween
multiple s(stem localities is significantl( different. %n this case, a simple nearFfar distinction ma( 0e
insufficient. This information is contained in the optional !(stem 1ocalit( %nformation Ta0le =!1%T> and is
returned from the evaluation of the C!1% o0#ect.
The !1%T is a matri/ that descri0es the relative distances 0etween all !(stem 1ocalities. !upport for the
C'AM o0#ect is re:uired for !1%T. The !(stem 1ocalit( as returned 0( the C'AM o0#ect is used as the row
and column indices of the matri/.
Implementation Note# T1e si<e of t1e S,IT table is determined by t1e largest FP+( 2al'e 'sed in t1e
system! %ence. to minimi<e t1e si<e of t1e S,IT table. t1e FP+( 2al'es assigned by t1e system firmware
s1o'ld be in t1e range 5. G. ;-1. w1ere ; is t1e n'mber of System ,ocalities! If FP+( 2al'es are not
pac3ed into t1is range. t1e S,IT will still wor3. b't more memory will 1a2e to be allocated to store t1e
C*ntriesH portion of t1e S,IT for t1e matrix!
The static !1%T ta0le provides the 0oot time description of the relative distances among all !(stem
1ocalities. 5or hot&added devices and d(namic reconfiguration of the s(stem localities, the C!1% o0#ect
must 0e used for runtime update.
The C!1% method is an optional o0#ect that provides the runtime update of the relative distances from the
!(stem 1ocalit( i to all other !(stem 1ocalities in the s(stem. !ince C!1% method is providing additional
relative distance information among !(stem 1ocalities, if implemented, it is provided alongside with the
C'AM method.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 943
18.3.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
94" Advanced Configuration and 'ower %nterface !pecification
Online Hot Plug
%n the case of online addition, the ;us Check notification =/> is performed on a device o0#ect to indicate
to 2!'M that it needs to perform the 'lug and 'la( re&enumeration operation on the device tree starting
from the point where it has 0een notified. 2!'M needs to evaluate all C'AM o0#ects associated with the
added !(stem 1ocalities, or C!1% o0#ects if the !1%T is present.
%n the case of online deletion, 2!'M needs to perform the 'lug and 'la( e#ection operation when it
receives the .#ect 3e:uest notification =/3>. 2!'M needs to remove the relative distance information
from its internal data structure for the removed !(stem 1ocalities.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 94*
18.3.1.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
94+ Advanced Configuration and 'ower %nterface !pecification
Impact to Existing Localities
-(namic reconfiguration of the s(stem ma( cause the relative distance information =if the optional !1%T is
present> to 0ecome stale. %f this occurs, the !(stem 1ocalit( %nformation ,pdate notification ma( 0e
generated 0( the platform to a device at a point on the device tree that represents a !(stem 1ocalit(. This
indicates to 2!'M that it needs to invoke the C!1% o0#ects associated with the !(stem 1ocalities on the
device tree starting from the point where it has 0een notified.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 949
19 ACPI Source Language (ASL) Reference
This section formall( defines the AC'% !ource 1anguage =A!1>. A!1 is a source language for defining
AC'% o0#ects including writing AC'% control methods. 2.Ms and ;%2! developers define o0#ects and
write control methods in A!1 and then use a translator tool =compiler> to generate AC'% Machine 1anguage
=AM1> versions of the control methods. 5or a formal definition of AM1, see the AC'% Machine 1anguage
=AM1> !pecification, section 48, JAC'% Machine 1anguage !pecification.L
AM1 and A!1 are different languages though the( are closel( related.
.ver( AC'%&compati0le 2! must support AM1. A given user can define some ar0itrar( source language =to
replace A!1> and write a tool to translate it to AM1.
An 2.M or ;%2! vendor needs to write A!1 and 0e a0le to single&step AM1 for de0ugging. =-e0uggers
and similar tools are e/pected to 0e AM1&level tools, not source&level tools.> An A!1 translator
implementer must understand how to read A!1 and generate AM1. An AM1 interpreter author must
understand how to e/ecute AM1.
This section has two parts<
The A!1 grammar, which is the formal A!1 specification and also serves as a :uick reference.
A full A!1 reference, which includes for each A!1 operator< the operator invocation s(nta/, the
t(pe of each argument, and a description of the action and use of the operator.
19.1 ASL Language Grammar
The purpose of this section is to state unam0iguousl( the grammar rules used 0( the s(nta/ checker of an
A!1 compiler.
A!1 statements declare o0#ects. .ach o0#ect has three parts, two of which might not 0e present.
0b9ect >L 0b9ect<1pe 5i-ed6i2t @ariable6i2t
6ixedList refers to a list, of known length, that supplies data that all instances of a given 3!CectT)pe must
have. A fi/ed list is written as > a < b < c < = ? where the num0er of arguments depends on the specific
3!CectT)pe, and some elements can 0e nested o0#ects, that is >a' !' >J' r' s' t?' d?. Arguments to a
6ixedList can have default values, in which case the( can 0e skipped. Thus, >a''c? will cause the default
value for the second argument to 0e used. !ome 3!CectT)pes can have a null 6ixedList' which is simpl(
omitted. Trailing arguments of some o0#ect t(pes can 0e left out of a fi/ed list, in which case the default
value is used.
7aria!leList refers to a list, not of predetermined length, of child o0#ects that help define the parent. %t is
written as Q x' )' B' aa' !!' cc R where an( argument can 0e a nested o0#ect. 3!CectT)pe determines what
terms are legal elements of the 7aria!leList. !ome 3!CectT)pes ma( have a null varia0le list, which is
simpl( omitted.
2ther rules for writing A!1 statements are the following<
Multiple 0lanks are the same as one. ;lank, =, >, O,M and newline are all token separators.
FF marks the 0eginning of a comment, which continues from the FF to the end of the line.
F[ marks the 0eginning of a comment, which continues from the F[ to the ne/t [F.
89 surround an A!C%% string.
Numeric constants can 0e written in three wa(s< ordinar( decimal, octal =using ddd> or
he/adecimal, using the notation /dd!
0othing indicates an empt( item. 5or e/ample, Q 0othing R is e:uivalent to QR.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
948 Advanced Configuration and 'ower %nterface !pecification
19.1.1 ASL Grammar Notation
The notation used to e/press the A!1 grammar is specified in the following ta0le.
Ta!le +.- + ASL ;ra%%ar 0otation
0otation Convention 5escription 1xa%ple
Term <\ Term Term N The term to the left of <\ can 0e
e/panded into the se:uence of
terms on the right.
aterm <\ 0term cterm means that aterm can 0e
e/panded into the two&term se:uence of 0term
followed 0( cterm.
Angle 0rackets =T ) > ,sed to group items. Ta 0) h Tc d) means either
a 0 or c d.
Arrow =\)> %ndicates re:uired run&time
reduction of an A!1 argument to
an AM1 data t(pe. Means
Jreduces toL or Jevaluates toL at
run&time.
JTer%Arg PV IntegerL means that the
argument must 0e an A!1 Ter%Arg that must
resolve to an Integer data t(pe when it is
evaluated 0( an AM1 interpreter.
;ar s(m0ol = h > !eparates alternatives. aterm <\ 0term h Tcterm dterm) means the
following constructs are possi0le<
0term
cterm dterm
aterm <\ T0term h cterm) dterm means the
following constructs are possi0le<
0term dterm
cterm dterm
Term Term Term Terms separated from each other
0( spaces form an ordered list.
NFA
Word in !old -enotes the name of a term in the
A!1 grammar, representing an(
instance of such a term. A!1 terms
are not case&sensitive.
%n the following A!1 term definition<
Ther%alIone =Ione;ame> _20#ect1ist`
the item in 0old is the name of the term.
Word in italics Names of arguments to o0#ects that
are replaced for a given instance.
%n the following A!1 term definition<
Ther%alIone =Ione;ame> _20#ect1ist`
the italiciHed item is an argument. The item
that is not 0olded or italiciHed is defined
elsewhere in the A!1 grammar.
!ingle :uotes =O M> %ndicate constant characters. OAM
/dd 3efers to a 0(te value e/pressed as
two he/adecimal digits.
/24 means a value of he/adecimal 24, or
decimal 39. Notice that a value e/pressed in
he/adecimal must start with a leading Hero =>.
-ash character = & > %ndicates a range. 4&6 means a single digit in the range 4 to 6
inclusive.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 946
19.1.2 ASL Name and Pathname Terms
6ead!ame)har >L
`A]E`Z] U `a]E`E] U `_]
Di,it)har >L
`*]E`F]
!ame)har >L
Di,it)har U 6ead!ame)har
Root)har >L
`\]
ParentPrefi-)har >L
`^]
PathSeparator)har >L
`.]
)omma)har >L
`$]
SemicolonDelimiter >L
!othin, U `K]
!ameSe, >L
?6ead!ame)harB U
?6ead!ame)har !ame)harB U
?6ead!ame)har !ame)har !ame)harB U
?6ead!ame)har !ame)har !ame)har !ame)harB
!ameStrin, >L
?Root)har !amePathB U ?ParentPrefi-)har Prefi-Path !amePathB U !on%mpt1!amePath
!amePath >L
!othin, U ?!ameSe, !amePath<ailB
!amePath<ail >L
!othin, U ?PathSeparator)har !ameSe, !amePath<ailB
!on%mpt1!amePath >L
!ameSe, U ?!ameSe, !amePath<ailB
Prefi-Path >L
!othin, U ?ParentPrefi-)har Prefi-PathB
19.1.3 ASL Root and Secondary Terms
// Root Ter#
&S6)ode >L
DefinitionBloc+<erm
// Ma/or Ter#s
Super!ame >L
!ameStrin, U &r,<erm U 6ocal<erm U Debu,<erm U <1peI0pcode U X2er<erm
<ar,et >L
!othin, U Super!ame
<erm&r, >L
<1pe30pcode U Data0b9ect U &r,<erm U 6ocal<erm U !ameStrin,
X2er<erm >L
!ameStrin,' // !ameStrin, LB ;ethod
+rgList
( LB !othin, U DataRef0b9ect
// List Ter#s
&r,6i2t >L
!othin, U ?<erm&r, &r,6i2t<ailB
&r,6i2t<ail >L
!othin, U ?)omma)har <erm&r, &r,6i2t<ailB
B1te6i2t >L
!othin, U ?B1te)on2t%-pr B1te6i2t<ailB
B1te6i2t<ail >L
!othin, U ?)omma)har B1te)on2t%-pr B1te6i2t<ailB
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
92 Advanced Configuration and 'ower %nterface !pecification
DWord6i2t >L
!othin, U ?DWord)on2t%-pr DWord6i2t<ailB
DWord6i2t<ail >L
!othin, U ?)omma)har DWord)on2t%-pr DWord6i2t<ailB
5ieldXnit6i2t >L
!othin, U ?5ieldXnit 5ieldXnit6i2t<ailB
5ieldXnit6i2t<ail >L
!othin, U ?)omma)har 5ieldXnit 5ieldXnit6i2t<ailB
5ieldXnit >L
5ieldXnit%ntr1 U 0ff2et<erm U &cce22&2<erm
5ieldXnit%ntr1 >L
?!othin, U !ameSe,B )omma)har #nte,er
0b9ect6i2t >L
!othin, U ?0b9ect 0b9ect6i2tB
0b9ect >L
)ompilerDirective U !amed0b9ect U !ameSpace;odifier
Pac+a,e6i2t >L
!othin, U ?Pac+a,e%lement Pac+a,e6i2t<ailB
Pac+a,e6i2t<ail >L
!othin, U ?)omma)har Pac+a,e%lement Pac+a,e6i2t<ailB
Pac+a,e%lement >L
Data0b9ect U !ameStrin,
Parameter<1pePac+a,e >L
0b9ect<1peAe1word U )!othin, U Parameter<1pePac+a,e6i2t/
Parameter<1pePac+a,e6i2t >L
0b9ect<1peAe1word U ?0b9ect<1peAe1word )omma)har Parameter<1pePac+a,e6i2tB
Parameter<1pe2Pac+a,e >L
0b9ect<1peAe1word U )!othin, U Parameter<1pe2Pac+a,e6i2t/
Parameter<1pe2Pac+a,e6i2t >L
Parameter<1pePac+a,e U ?Parameter<1pePac+a,e )omma)har Parameter<1pe2Pac+a,e6i2tB
<erm6i2t >L
!othin, U ?<erm SemicolonDelimiter <erm6i2tB
<erm >L
0b9ect U <1pe40pcode U <1pe30pcode
// Conditional 0xecution Ter#s
)a2e<erm6i2t >L
!othin, U )a2e<erm U Default<erm Default<erm6i2t U )a2e<erm )a2e<erm6i2t
Default<erm6i2t >L
!othin, U )a2e<erm U )a2e<erm Default<erm6i2t
#f%l2e<erm >L
#f<erm %l2e<erm
19.1.4 ASL Data and Constant Terms
// )u#eric 1alue Ter#s
6eadDi,it)har >L
`7]E`F]
"e-Di,it)har >L
Di,it)har U `A]E`D] U `a]E`f]
0ctalDi,it)har >L
`*]E`G]
!ull)har >L
*=**
// !ata Ter#s
Data0b9ect >L
BufferData U Pac+a,eData U #nte,erData U Strin,Data
DataRef0b9ect >L
Data0b9ect U 0b9ectReference U DDB"andle
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 924
)omputationalData >L
BufferData U #nte,erData U Strin,Data
BufferData >L
<1peG0pcode U Buffer<erm
#nte,erData >L
<1peF0pcode U #nte,er U )on2t<erm
Pac+a,eData >L
Pac+a,e<erm
Strin,Data >L
<1pe.0pcode U Strin,
// $nteger Ter#s
#nte,er >L
Decimal)on2t U 0ctal)on2t U "e-)on2t
Decimal)on2t >L
6eadDi,it)har U ?Decimal)on2t Di,it)harB
0ctal)on2t >L
`*] U ?0ctal)on2t 0ctalDi,it)harB
"e-)on2t >L
?*= "e-Di,it)harB U ?*X "e-Di,it)harB U ?"e-)on2t "e-Di,it)harB
B1te)on2t >L
#nte,er LB *=**8*=DD
Word)on2t >L
#nte,er LB *=****8*=DDDD
DWord)on2t >L
#nte,er LB *=********8*=DDDDDDDD
JWord)on2t >L
#nte,er LB *=****************8*=DDDDDDDDDDDDDDDD
B1te)on2t%-pr >L
?<1peF0pcode U )on2t%-pr<erm U #nte,erB LB B1te)on2t
Word)on2t%-pr >L
?<1peF0pcode U )on2t%-pr<erm U #nte,erB LB Word)on2t
Dword)on2t%-pr >L
?<1peF0pcode U )on2t%-pr<erm U #nte,erB LB DWord)on2t
Jword)on2t%-pr >L
?<1peF0pcode U )on2t%-pr<erm U #nte,erB LB JWord)on2t
)on2t<erm >L
)on2t%-pr<erm U Re1s1on
)on2t%-pr<erm >L
7ero H 6ne H 6nes
// String Ter#s
Strin, >L
`] Xtf=)har6i2t `]
Xtf=)har6i2t >L
!othin, U ?%2capeSe8uence Xtf=)har6i2tB U ?Xtf=)har Xtf=)har6i2tB
Xtf=)har >L
(-(4E(-34 U
(-3FE(-GB U
(-GDE(-T5 U
(-)3E(-D5 (-=(E(-B5 U
(-%( (-&(E(-B5 (-=(E(-B5 U
(-%4E(-%) (-=(E(-B5 (-=(E(-B5 U
(-%D (-=(E(-H5 (-=(E(-B5 U
(-%%E(-%5 (-=(E(-B5 (-=(E(-B5 U
(-5( (-H(E(-B5 (-=(E(-B5 (-=(E(-B5 U
(-54E(-5F (-=(E(-B5 (-=(E(-B5 (-=(E(-B5 U
%2capeSe8uence >L
Simple%2capeSe8uence U 0ctal%2capeSe8uence U "e-%2capeSe8uence
"e-%2capeSe8uence >L
\= "e-Di,it)har U
\= "e-Di,it)har "e-Di,it)har
Simple%2capeSe8uence >L
\I U \J U \a U \4 U \f U \n U \r U \t U \ U \\
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
922 Advanced Configuration and 'ower %nterface !pecification
0ctalDi,it)har >L
`*] U `7] U `.] U `K] U `L] U `M] U `N] U `G]
0ctal%2capeSe8uence >L
\ 0ctalDi,it)har U
\ 0ctalDi,it)har 0ctalDi,it)har U
\ 0ctalDi,it)har 0ctalDi,it)har 0ctalDi,it)har
// Miscellaneous !ata Tye Ter#s
DDB"andle >L
#nte,er
0b9ectReference >L
#nte,er
Boolean >L
<rue U 5al2e
<rue >L
6nes
5al2e >L
Zero
19.1.5 ASL Opcode Terms
)ompilerDirective >L
#nclude<erm U %-ternal<erm
!amed0b9ect >L
Ban+5ield<erm U )reateBit5ield<erm U )reateB1te5ield<erm U )reateDWord5ield<erm U
)reate5ield<erm U )reateJWord5ield<erm U )reateWord5ield<erm U DataRe,ion<erm U
Device<erm U %vent<erm U 5ield<erm U 5unction<erm U #nde-5ield<erm U ;ethod<erm U
;ute-<erm U 0pRe,ion<erm U PowerRe2<erm U Proce22or<erm U <hermal7one<erm
!ameSpace;odifier >L
&lia2<erm U !ame<erm U Scope<erm
<1pe40pcode >L
Brea+<erm U Brea+Point<erm U )ontinue<erm U 5atal<erm U #f%l2e<erm U 6oad<erm U
!o0p<erm U !otif1<erm U Relea2e<erm U Re2et<erm U Return<erm U Si,nal<erm U Sleep<erm
U Stall<erm U Switch<erm U Xnload<erm U While<erm
& <1pe 4 opcode term doe2 not return a value and can onl1 be u2ed 2tandalone on a line
of &S6 code. Since the2e opcode2 do not return a value the1 cannot be u2ed a2 a term in
an e-pre22ion.
<1pe30pcode >L
&c8uire<erm U &dd<erm U &nd<erm U )oncat<erm U )oncatRe2<erm U )ondRef0f<erm U
)op10b9ect<erm U Dec<erm U Deref0f<erm U Divide<erm U5indSet6eftBit<erm U
5indSetRi,htBit<erm U 5romB)D<erm U #nc<erm U #nde-<erm U 6&nd<erm U 6%8ual<erm U
6:reater<erm U 6:reater%8ual<erm U 66e22<erm U 66e22%8ual<erm U 6!ot<erm U
6!ot%8ual<erm U 6oad<able<erm U 60r<erm U ;atch<erm U ;id<erm U;od<erm U ;ultipl1<erm
U !&nd<erm U !0r<erm U !ot<erm U 0b9ect<1pe<erm U 0r<erm U Ref0f<erm U Shift6eft<erm U
ShiftRi,ht<erm U SiCe0f<erm U Store<erm U Subtract<erm U <imer<erm U <oB)D<erm U
<oBuffer<erm U <oDecimalStrin,<erm U <o"e-Strin,<erm U <o#nte,er<erm U <oStrin,<erm U
Wait<erm U Ror<erm U X2er<erm
& <1pe 3 opcode return2 a value and can be u2ed in an e-pre22ion.
<1peF0pcode >L
&dd<erm U &nd<erm U Dec<erm U Divide<erm U %#S&#D<erm U 5indSet6eftBit<erm U
5indSetRi,htBit<erm U 5romB)D<erm U #nc<erm U #nde-<erm U 6&nd<erm U 6%8ual<erm U
6:reater<erm U 6:reater%8ual<erm U 66e22<erm U 66e22%8ual<erm U 6!ot<erm U
6!ot%8ual<erm U 60r<erm U ;atch<erm U ;od<erm U ;ultipl1<erm U !&nd<erm U !0r<erm U
!ot<erm U 0r<erm U Shift6eft<erm U ShiftRi,ht<erm U Subtract<erm U <oB)D<erm U
<o#nte,er<erm U Ror<erm
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 923
<he <1pe F opcode2 are a 2ub2et of <1pe 3 opcode2 that return an Inte&er value and can
be u2ed in an e-pre22ion that evaluate2 to a con2tant. <he2e opcode2 ma1 be evaluated at
&S6 compileEtime. <o en2ure that the2e opcode2 will evaluate to a con2tant$ the
followin, rule2 appl1> <he term cannot have a de2tination (tar,et) operand$ and mu2t
have either a <1peF0pcode$ <1pe.0pcode$ <1peG0pcode$ )on2t%-pr<erm$ #nte,er$ Buffer<erm$
Pac+a,e$ or Strin, for all ar,ument2.
<1pe.0pcode >L
)oncat<erm U ;id<erm U <oDecimalStrin,<erm U <o"e-Strin,<erm U <oStrin,<erm
<he <1pe . opcode2 are a 2ub2et of <1pe 3 opcode2 that return a #tr1n& value and can be
u2ed in an e-pre22ion that evaluate2 to a con2tant. <he2e opcode2 ma1 be evaluated at
&S6 compileEtime. <o en2ure that the2e opcode2 will evaluate to a con2tant$ the
followin, rule2 appl1> <he term cannot have a de2tination (tar,et) operand$ and mu2t
have either a <1peF0pcode$ <1pe.0pcode$ <1peG0pcode$ )on2t%-pr<erm$ #nte,er$ Buffer<erm$
Pac+a,e$ or Strin, for all ar,ument2.
<1peG0pcode >L
)oncat<erm U )oncatRe2<erm U ;id<erm U Re2ource<emplate<erm U <oBuffer<erm U
<oXX#D<erm U Xnicode<erm
<he <1pe G opcode2 are a 2ub2et of <1pe 3 opcode2 that return a Buffer value and can be
u2ed in an e-pre22ion that evaluate2 to a con2tant. <he2e opcode2 ma1 be evaluated at
&S6 compileEtime. <o en2ure that the2e opcode2 will evaluate to a con2tant$ the
followin, rule2 appl1> <he term cannot have a de2tination (tar,et) operand$ and mu2t
have either a <1peF0pcode$ <1pe.0pcode$ <1peG0pcode$ )on2t%-pr<erm$ #nte,er$ Buffer<erm$
Pac+a,e$ or Strin, for all ar,ument2.
<1peI0pcode >L
Ref0f<erm U Deref0f<erm U #nde-<erm U X2er<erm
19.1.6 ASL Primary (Terminal) Terms
&cce22&2<erm >L
AccessAs '
+ccessTye% // &cce22<1peAe1word
+ccess+ttri.ute // !othin, U B1te)on2t%-pr U &cce22&ttribAe1word
(
&c8uire<erm >L
&c8uire '
Sync*./ect% // Super!ame LB ;ute-
Ti#eout1alue // Word)on2t%-pr
( LB Boolean // True #eans ti#ed2out
&dd<erm >L
&dd '
+ddend&% // <erm&r, LB #nte,er
+ddend2% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
&lia2<erm >L
&lia2 '
Source*./ect% // !ameStrin,
+lias*./ect // !ameStrin,
(
&nd<erm >L
&nd '
Source&% // <erm&r, LB #nte,er
Source2% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
&r,<erm >L
Ar&* U Ar&7 U Ar&. U Ar&K U Ar&L U Ar&M U Ar&N
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
92" Advanced Configuration and 'ower %nterface !pecification
Ban+5ield<erm >L
Ban+5ield '
Region)a#e% // !ameStrin, LB 0perationRe,ion
Ban,)a#e% // !ameStrin, LB 5ieldXnit
Ban,1alue% // <erm&r, LB #nte,er
+ccessTye% // &cce22<1peAe1word
Loc,Rule% // 6oc+RuleAe1word
-dateRule // XpdateRuleAe1word
( )5ieldXnit6i2t/
Brea+<erm >L
Brea%
Brea+Point<erm >L
Brea%Po1nt
Buffer<erm >L
Buffer '
BuffSi3e // !othin, U <erm&r, LB #nte,er
( )Strin,Data U B1te6i2t/ LB Buffer
)a2e<erm >L
Case '
1alue // Data0b9ect
( )<erm6i2t/
)oncat<erm >L
)oncatenate '
Source&% // <erm&r, LB )omputationalData
Source2% // <erm&r, LB )omputationalData
Result // <ar,et
( LB )omputationalData
)oncatRe2<erm >L
)oncatenateRe2<emplate '
Source&% // <erm&r, LB Buffer
Source2% // <erm&r, LB Buffer
Result // <ar,et
( LB Buffer
)ondRef0f<erm >L
)ondRef0f '
Source% // Super!ame
!estination // <ar,et
( LB Boolean
)op10b9ect<erm >L
)op10b9ect '
Source% // <erm&r, LB DataRef0b9ect
Result% // !ameStrin, U 6ocal<erm U &r,<erm
( OP DataRef0b9ect
)ontinue<erm >L
Cont1nue
)reateBit5ield<erm >L
)reateBit5ield '
SourceBuffer% // <erm&r, LB Buffer
Bit$ndex% // <erm&r, LB #nte,er
BitField)a#e // !ameStrin,
(
)reateB1te5ield<erm >L
)reateB1te5ield '
SourceBuffer% // <erm&r, LB Buffer
Byte$ndex% // <erm&r, LB #nte,er
ByteField)a#e // !ameStrin,
(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 92*
)reateDWord5ield<erm >L
)reateDWord5ield '
SourceBuffer% // <erm&r, LB Buffer
Byte$ndex% // <erm&r, LB #nte,er
!4ordField)a#e // !ameStrin,
(
)reate5ield<erm >L
)reate5ield '
SourceBuffer% // <erm&r, LB Buffer
Bit$ndex% // <erm&r, LB #nte,er
)u#Bits% // <erm&r, LB #nte,er
Field)a#e // !ameStrin,
(
)reateJWord5ield<erm >L
)reateJWord5ield '
SourceBuffer% // <erm&r, LB Buffer
Byte$ndex% // <erm&r, LB #nte,er
J4ordField)a#e // !ameStrin,
(
)reateWord5ield<erm >L
)reateWord5ield '
SourceBuffer% // <erm&r, LB Buffer
Byte$ndex% // <erm&r, LB #nte,er
4ordField)a#e // !ameStrin,
(
DataRe,ion<erm >L
Data<ableRe,ion '
Region)a#e% // !ameStrin,
SignatureString% // <erm&r, LB Strin,
*e#$!String% // <erm&r, LB Strin,
*e#Ta.le$!String // <erm&r, LB Strin,
(
Debu,<erm >L
De4u&
Dec<erm >L
Decrement (
Minuend // Super!ame
( LB #nte,er
Default<erm >L
Default )<erm6i2t/
DefinitionBloc+<erm >L
DefinitionBloc+ (
+MLFile)a#e$ // Strin,Data
Ta.leSignature$ // Strin,Data
Co#lianceRevision$ // B1te)on2t
*0M$!$ // Strin,Data
Ta.le$!$ // Strin,Data
*0MRevision // DWord)on2t
( )0b9ect6i2t/
Deref0f<erm >L
Deref0f '
Source // <erm&r, LB 0b9ectReference
// *./ectReference is an o./ect roduced .y ter#s suc"
// as $ndex% Ref*f or CondRef*f.
( LB DataRef0b9ect
Device<erm >L
Device '
!evice)a#e // !ameStrin,
( )0b9ect6i2t/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
92+ Advanced Configuration and 'ower %nterface !pecification
Divide<erm >L
Divide '
!ividend% // <erm&r, LB #nte,er
!ivisor% // <erm&r, LB #nte,er
Re#ainder% // <ar,et
Result // <ar,et
( LB #nte,er // Return2 Result
%#S&#D<erm >L
%#S&#D '
0isa$dString // Strin,Data
( LB DWord)on2t
%l2e<erm >L
%l2e )<erm6i2t/ U %l2e#f<erm U !othin,
%l2e#f<erm >L
%l2e#f '
Predicate // <erm&r, LB #nte,er
( )<erm6i2t/ %l2e<erm
%vent<erm >L
%vent '
0vent)a#e // !ameStrin,
(
%-ternal<erm >L
%-ternal '
*./)a#e% // !ameStrin,
*./Tye // !othin, U 0b9ect<1peAe1word
ResultTye% // !othin, U Parameter<1pePac+a,e
Para#eterTyes // !othin, U Parameter<1pe2Pac+a,e
(
5atal<erm >L
5atal '
Tye% // B1te)on2t%-pr
Code% // DWord)on2t%-pr
+rg // <erm&r, LB #nte,er
(
5ield<erm >L
D1el" '
Region)a#e% // !ameStrin, LB 0perationRe,ion
+ccessTye% // &cce22<1peAe1word
Loc,Rule% // 6oc+RuleAe1word
-dateRule // XpdateRuleAe1word
( )5ieldXnit6i2t/
5indSet6eftBit<erm >L
5indSet6eftBit '
Source% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
5indSetRi,htBit<erm >L
5indSetRi,htBit '
Source% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
5romB)D<erm >L
5romB)D '
BC!1alue% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 929
5unction<erm >L
Dunct1on '
Function)a#e% 55 !ameStrin,
ReturnTye% // !othin, U Parameter<1pePac+a,e
Para#eterTyes // !othin, U Parameter<1pe2Pac+a,e
( )<erm6i2t/
#f<erm >L
#f '
Predicate // <erm&r, LB #nte,er
( )<erm6i2t/
#nclude<erm >L
#nclude '
FilePat")a#e // Strin,Data
(
#nc<erm >L
#ncrement '
+ddend // Super!ame
( LB #nte,er
#nde-<erm >L
#nde- '
Source% // <erm&r, LB ?Strin, U Buffer U Pac+a,e<ermB
$ndex% // <erm&r, LB #nte,er
!estination // <ar,et
( LB 0b9ectReference
#nde-5ield<erm >L
#nde-5ield '
$ndex)a#e% // !ameStrin, LB 5ieldXnit
!ata)a#e% // !ameStrin, LB 5ieldXnit
+ccessTye% // &cce22<1peAe1word
Loc,Rule% // 6oc+RuleAe1word
-dateRule // XpdateRuleAe1word
( )5ieldXnit6i2t/
6&nd<erm >L
6&nd '
Source&% // <erm&r, LB #nte,er
Source2 // <erm&r, LB #nte,er
( LB Boolean
6%8ual<erm >L
6%8ual '
Source&% // <erm&r, LB )omputationalData
Source2 // <erm&r, LB )omputationalData
( LB Boolean
6:reater<erm >L
6:reater '
Source&% // <erm&r, LB )omputationalData
Source2 // <erm&r, LB )omputationalData
( LB Boolean
6:reater%8ual<erm >L
6:reater%8ual '
Source&% // <erm&r, LB )omputationalData
Source2 // <erm&r, LB )omputationalData
( LB Boolean
66e22<erm >L
66e22 '
Source&% // <erm&r, LB )omputationalData
Source2 // <erm&r, LB )omputationalData
( LB Boolean
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
928 Advanced Configuration and 'ower %nterface !pecification
66e22%8ual<erm >L
66e22%8ual '
Source&% // <erm&r, LB )omputationalData
Source2 // <erm&r, LB )omputationalData
( LB Boolean
6!ot<erm >L
6!ot '
Source% // <erm&r, LB #nte,er
( LB Boolean
6!ot%8ual<erm >L
6!ot%8ual '
Source&% // <erm&r, LB )omputationalData
Source2 // <erm&r, LB )omputationalData
( LB Boolean
6oad<erm >L
6oad '
*./ect% // !ameStrin,
!!B6andle // Super!ame
(
6oad<able<erm >L
6oad<able '
SignatureString% // <erm&r, LB Strin,
*e#$!String% // <erm&r, LB Strin,
0em<able#DStrin,$ // <erm&r, LB Strin,
RootPat"String% // !othin, U <erm&r, LB Strin,
Para#eterPat"String% // !othin, U <erm&r, LB Strin,
Para#eter!ata // !othin, U <erm&r, LB DataRef0b9ect
( LB DDB"andle
6ocal<erm >L
;ocal* H ;ocal7 H ;ocal. H ;ocalK H ;ocalL H ;ocalM H ;ocalN H ;ocalG
60r<erm >L
60r '
Source&% // <erm&r, LB #nte,er
Source2 // <erm&r, LB #nte,er
( LB Boolean
;atch<erm >L
;atch '
Searc"Pac,age% // <erm&r, LB Pac+a,e
*&% // ;atch0pAe1word
Matc"*./ect&% // <erm&r, LB #nte,er
*2% // ;atch0pAe1word
Matc"*./ect2% // <erm&r, LB #nte,er
Start$ndex // <erm&r, LB #nte,er
( LB ?6nes U #nte,erB
;ethod<erm >L
;ethod '
Met"od)a#e% // !ameStrin,
)u#+rgs% // !othin, U B1te)on2t%-pr
Seriali3eRule$ // !othin, U SerialiCeRuleAe1word
SyncLevel // !othin, U B1te)on2t%-pr
ReturnTye% // !othin, U Parameter<1pePac+a,e
Para#eterTyes // !othin, U Parameter<1pe2Pac+a,e
( )<erm6i2t/
;id<erm >L
;id '
Source% // <erm&r, LB ?Buffer U Strin,B
$ndex% // <erm&r, LB #nte,er
Lengt"$ // <erm&r, LB #nte,er
Result // <ar,et
( LB ?Buffer U Strin,B
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 926
;od<erm >L
;od '
!ividend% // <erm&r, LB #nte,er
!ivisor% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er // Returns Result
;ultipl1<erm >L
;ultipl1 '
Multilicand% // <erm&r, LB #nte,er
Multilier% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
;ute-<erm >L
;ute- '
Mutex)a#e% // !ameStrin,
SyncLevel // B1te)on2t%-pr
(
!ame<erm >L
!ame '
*./ect)a#e% // !ameStrin,
*./ect // Data0b9ect
(
!&nd<erm >L
!&nd '
Source&% // <erm&r, LB #nte,er
Source2 // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
!o0p<erm >L
No6p
!0r<erm >L
!0r '
Source&% // <erm&r, LB #nte,er
Source2 // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
!otif1<erm >L
!otif1 '
*./ect% // Super!ame LB ?<hermal7one U Proce22or U DeviceB
)otification1alue // <erm&r, LB #nte,er
(
!ot<erm >L
!ot '
Source% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
0b9ect<1pe<erm >L
0b9ect<1pe '
*./ect // Super!ame
( LB #nte,er
0ff2et<erm >L
6ffset '
Byte*ffset // #nte,erData
(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
93 Advanced Configuration and 'ower %nterface !pecification
0pRe,ion<erm >L
0perationRe,ion '
Region)a#e% // !ameStrin,
RegionSace% // Re,ionSpaceAe1word
*ffset% // <erm&r, LB #nte,er
Lengt" // <erm&r, LB #nte,er
(
0r<erm >L
0r '
Source&% // <erm&r, LB #nte,er
Source2 // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
Pac+a,e<erm >L
Pac+a,e '
)u#0le#ents // !othin, U B1te)on2t%-pr U <erm&r, LB #nte,er
( )Pac+a,e6i2t/ LB Pac+a,e
PowerRe2<erm >L
PowerRe2ource '
Resource)a#e% // !ameStrin,
Syste#Level% // B1te)on2t%-pr
Resource*rder // Word)on2t%-pr
( )0b9ect6i2t/
Proce22or<erm >L
Proce22or '
Processor)a#e% // !ameStrin,
Processor$!% // B1te)on2t%-pr
PBloc,+ddress% // Dword)on2t%-pr U !othin, (L()
P.loc,Lengt" // B1te)on2t%-pr U !othin, (L()
( )0b9ect6i2t/
Ref0f<erm >L
Ref0f '
*./ect // Super!ame
( LB 0b9ectReference
Relea2e<erm >L
Relea2e '
Sync*./ect // Super!ame
(
Re2et<erm >L
Re2et '
Sync*./ect // Super!ame
(
Return<erm >L
Return '
+rg // !othin, U <erm&r, LB DataRef0b9ect
(
Scope<erm >L
Scope '
Location // !ameStrin,
( )0b9ect6i2t/
Shift6eft<erm >L
Shift6eft '
Source% // <erm&r, LB #nte,er
S"iftCount // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 934
ShiftRi,ht<erm >L
ShiftRi,ht '
Source% // <erm&r, LB #nte,er
S"iftCount // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
Si,nal<erm >L
Si,nal '
Sync*./ect // Super!ame
(
SiCe0f<erm >L
SiCe0f '
!ata*./ect // Super!ame LB ?Strin, U Buffer U Pac+a,eB
( LB #nte,er
Sleep<erm >L
Sleep '
MilliSecs // <erm&r, LB #nte,er
(
Stall<erm >L
Stall '
MicroSecs // <erm&r, LB #nte,er
(
Store<erm >L
Store '
Source% // <erm&r, LB DataRef0b9ect
!estination // Super!ame
( LB DataRef0b9ect
Subtract<erm >L
Subtract '
Minuend% // <erm&r, LB #nte,er
Su.tra"end% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
Switch<erm >L
Switch '
Predicate // <erm&r, LB )omputationalData
( ))a2e<erm6i2t/
<hermal7one<erm >L
<hermal7one '
T"er#al7one)a#e // !ameStrin,
( )0b9ect6i2t/
<imer<erm >L
912er OP #nte,er
<oB)D<erm >L
<oB)D '
1alue% // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
<oBuffer<erm >L
<oBuffer '
!ata% // <erm&r, LB )omputationalData
Result // <ar,et
( LB )omputationalData
<oDecimalStrin,<erm >L
<oDecimalStrin, '
!ata% // <erm&r, LB )omputationalData
Result // <ar,et
( LB Strin,
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
932 Advanced Configuration and 'ower %nterface !pecification
<o"e-Strin,<erm >L
<o"e-Strin, '
!ata% // <erm&r, LB )omputationalData
Result // <ar,et
( LB Strin,
<o#nte,er<erm >L
<o#nte,er '
!ata% // <erm&r, LB )omputationalData
Result // <ar,et
( LB #nte,er
<oStrin,<erm >L
<oStrin, '
Source% // <erm&r, LB Buffer
Lengt"% // !othin, U <erm&r, LB #nte,er
Result // <ar,et
( OP Strin,
<oXX#D<erm >L
9o$$ID '
String // Strin,Data
( LB Buffer
Xnicode<erm >L
Xnicode '
String // Strin,Data
( LB Buffer
Xnload<erm >L
Xnload '
!!B6andle // Super!ame
(
Wait<erm >L
Wait '
Sync*./ect% // Super!ame LB %vent
Ti#eout1alue // <erm&r, LB #nte,er
( LB Boolean // <rue mean2 timedEout
While<erm >L
While '
Predicate // <erm&r, LB #nte,er
( )<erm6i2t/
R0r<erm >L
R0r '
Source&% // <erm&r, LB #nte,er
Source2 // <erm&r, LB #nte,er
Result // <ar,et
( LB #nte,er
19.1.7 ASL Parameter Keyword Terms
&cce22&ttribAe1word >L
#ABQu1c% U #AB#en"Rece1e U #ABB:te U #AB5or" U #ABBloc% U #ABProcessCall U
#ABBloc%ProcessCall // )ote8 -sed for SMBus Buffer+cc only.
&cce22<1peAe1word >L
An:Acc U B:teAcc U 5or"Acc U D5or"Acc U Q5or"Acc U BufferAcc
&ddre22Ae1word >L
A""ressRan&eAe2or: U A""ressRan&eResere" U A""ressRan&eNV# U A""ressRan&eACPI
&ddre22SpaceAe1word >L
Re,ionSpaceAe1word U DD1=e"B5
Bu2;a2terAe1word >L
BusAaster U NotBusAaster
DecodeAe1word >L
#u4Deco"e U PosDeco"e
D;&<1peAe1word >L
Co2pat141l1t: U 9:peA U 9:peB U 9:peD
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 933
#nterrupt<1peAe1word >L
E"&e U ;eel
#nterrupt6evel >L
Act1eB1&> U Act1e;o<
#0DecodeAe1word >L
Deco"e7N U Deco"e7*
6oc+RuleAe1word >L
;oc% U No;oc%
;atch0pAe1word >L
A9R U AEQ U A;E U A;9 U A+E U A+9
;a-Ae1word >L
Aa=D1=e" U Aa=NotD1=e"
;em<1peAe1word >L
Cac>ea4le U 5r1teCo241n1n& U Prefetc>a4le U NonCac>ea4le
;inAe1word >L
A1nD1=e" U A1nNotD1=e"
0b9ect<1peAe1word >L
$n%no<n64R U Int64R U #tr64R U Buff64R U P%&64R U D1el"$n1t64R U De1ce64R U Eent64R
U Aet>o"64R U Aute=64R U 6pRe&1on64R U Po<erRes64R U 9>er2alZone64R U BuffD1el"64R U
DDBBan"le64R
Ran,e<1peAe1word >L
I#A6nl:Ran&es U NonI#A6nl:Ran&es U Ent1reRan&e
ReadWriteAe1word >L
Rea"5r1te U Rea"6nl:
Re,ionSpaceAe1word >L
X2erDefRe,ionSpace U #:ste2I6 U #:ste2Ae2or: U PCI_Conf1& U E24e""e"Control U #ABus U
#:ste2CA6# U Pc1Bar9ar&et
Re2ource<1peAe1word >L
ResourceConsu2er U ResourcePro"ucer
SerialiCeRuleAe1word >L
#er1al1Ee" U Not#er1al1Ee"
Share<1peAe1word >L
#>are" U E=clus1e
<ran2lationAe1word >L
#parse9ranslat1on U Dense9ranslat1on
<1peAe1word >L
9:pe9ranslat1on U 9:pe#tat1c
XpdateRuleAe1word >L
Presere U 5r1teAs6nes U 5r1teAsZeros
X2erDefRe,ionSpace >L
#nte,erData LB *=S* 8 *=DD
Rfer<1peAe1word >L
9ransferS U 9ransfer7N U 9ransferS_7N
19.1.8 ASL Resource Template Terms
Re2ource<emplate<erm >L
Re2ource<emplate '( )Re2ource;acro6i2t/ LB Buffer
Re2ource;acro6i2t >L
!othin, U ?Re2ource;acro<erm Re2ource;acro6i2tB
Re2ource;acro<erm >L
D;&<erm U DWord#0<erm U DWord;emor1<erm U DWordSpace<erm U %ndDependent5n<erm U
%-tended#0<erm U %-tended;emor1<erm U %-tendedSpace<erm U 5i-ed#0<erm U #nterrupt<erm
U #0<erm U #RJ!o5la,2<erm U #RJ<erm U ;emor13.<erm U ;emor1F35i-ed<erm U ;emor1F3<erm
U JWord#0<erm U JWord;emor1<erm U JWordSpace<erm U Re,i2ter<erm U StartDependent5n<erm
U StartDependent5n!oPri<erm U @endor6on,<erm U @endorShort<erm U WordBu2!umber<erm U
Word#0<erm U WordSpace<erm
D;&<erm >L
D;& '
!M+Tye% // D;&<1peAe1word (_9YP)
BusMaster% // Bu2;a2terAe1word (_BA)
9ferTye% // Rfer<1peAe1word (_#IZ)
!escritor)a#e // !othin, U !ameStrin,
( )B1te6i2t/ // 6i2t of channel2 ((ET b1te2)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
93" Advanced Configuration and 'ower %nterface !pecification
DWord#0<erm >L
DWord#0 '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
RangeTye% // !othin, (%ntireRan,e) U Ran,e<1peAe1word (_RN+)
+ddress:ranularity% // DWord)on2t%-pr (_+RA)
Min+ddress% // DWord)on2t%-pr (_AIN)
Max+ddress% // DWord)on2t%-pr (_AAX)
+ddressTranslation% // DWord)on2t%-pr (_9RA)
+ddressLengt"% // DWord)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e% // !othin, U !ameStrin,
TranslationTye% // !othin, U <1peAe1word (_99P)
Translation!ensity // !othin, U <ran2lationAe1word (_9R#)
(
DWord;emor1<erm >L
DWord;emor1 '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
Me#Tye% // !othin, (!on)acheable) U ;em<1peAe1word (_AEA)
Read4riteTye% // ReadWriteAe1word (_R5)
+ddress:ranularity% // DWord)on2t%-pr (_+RA)
Min+ddress% // DWord)on2t%-pr (_AIN)
Max+ddress% // DWord)on2t%-pr (_AAX)
+ddressTranslation% // DWord)on2t%-pr (_9RA)
+ddressLengt"% // DWord)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e% // !othin, U !ameStrin,
+ddressRange% // !othin, U &ddre22Ae1word (_A9P)
Me#oryTye // !othin, U <1peAe1word (_99P)
(
DWordSpace<erm >L
DWordSpace '
ResourceTye% // B1te)on2t%-pr (_R9)$ *=C* T *=DD
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
TyeSecificFlags% // B1te)on2t%-pr (_9#D)
+ddress:ranularity% // DWord)on2t%-pr (_+RA)
Min+ddress% // DWord)on2t%-pr (_AIN)
Max+ddress% // DWord)on2t%-pr (_AAX)
+ddressTranslation% // DWord)on2t%-pr (_9RA)
+ddressLengt"% // DWord)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e // !othin, U !ameStrin,
(
%ndDependent5n<erm >L
%ndDependent5n '(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 93*
%-tended#0<erm >L
%-tended#0 (%-tended #0 Re2ource De2criptor ;acro)E=ten"e"I6 '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
RangeTye% // !othin, (%ntireRan,e) U Ran,e<1peAe1word (_RN+)
+ddress:ranularity% // JWord)on2t%-pr (_+RA)
Min+ddress% // JWord)on2t%-pr (_AIN)
Max+ddress% // JWord)on2t%-pr (_AAX)
+ddressTranslation% // JWord)on2t%-pr (_9RA)
+ddressLengt"% // JWord)on2t%-pr (_;EN)
TyeSecific+ttri.utes 55 !othin, U JWord)on2t%-pr
!escritor)a#e% // !othin, U !ameStrin,
TranslationTye% // !othin, U <1peAe1word (_99P)
Translation!ensity // !othin, U <ran2lationAe1word (_9R#)
(
%-tended;emor1<erm >L
E=ten"e"Ae2or: '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
Me#Tye% // !othin, (!on)acheable) U ;em<1peAe1word (_AEA)
Read4riteTye% // ReadWriteAe1word (_R5)
+ddress:ranularity% // JWord)on2t%-pr (_+RA)
Min+ddress% // JWord)on2t%-pr (_AIN)
Max+ddress% // JWord)on2t%-pr (_AAX)
+ddressTranslation% // JWord)on2t%-pr (_9RA)
+ddressLengt"% // JWord)on2t%-pr (_;EN)
TyeSecific+ttri.utes 55 !othin, U JWord)on2t%-pr
!escritor)a#e% // !othin, U !ameStrin,
+ddressRange% // !othin, U &ddre22Ae1word (_A9P)
Me#oryTye // !othin, U <1peAe1word (_99P)
(
%-tendedSpace<erm >L
E=ten"e"#pace '
ResourceTye% // B1te)on2t%-pr (_R9)$ *=C* T *=DD
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
TyeSecificFlags% // B1te)on2t%-pr (_9#D)
+ddress:ranularity% // JWord)on2t%-pr (_+RA)
Min+ddress% // JWord)on2t%-pr (_AIN)
Max+ddress% // JWord)on2t%-pr (_AAX)
+ddressTranslation% // JWord)on2t%-pr (_9RA)
+ddressLengt"% // JWord)on2t%-pr (_;EN)
TyeSecific+ttri.utes 55 !othin, U JWord)on2t%-pr
!escritor)a#e // !othin, U !ameStrin,
(
5i-ed#0<erm >L
5i-ed#0 '
+ddressBase% // Word)on2t%-pr (_BA#)
RangeLengt"% // B1te)on2t%-pr (_;EN)
!escritor)a#e // !othin, U !ameStrin,
(
#nterrupt<erm >L
#nterrupt '
ResourceTye% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
$nterrutTye% // #nterrupt<1peAe1word (_;;, _BE)
$nterrutLevel% // #nterrupt6evelAe1word (_;;, _BE)
S"areTye% // !othin, (%-clu2ive) Share<1peAe1word (_#BR)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e // !othin, U !ameStrin,
( )DWord6i2t/ // li2t of interrupt2 (_IN9)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
93+ Advanced Configuration and 'ower %nterface !pecification
#0<erm >L
#0 '
$*!ecode% // #0DecodeAe1word (_DEC)
Min+ddress% // Word)on2t%-pr (_AIN)
Max+ddress% // Word)on2t%-pr (_AAX)
+lign#ent% // B1te)on2t%-pr (_A;N)
RangeLengt"% // B1te)on2t%-pr (_;EN)
!escritor)a#e // !othin, U !ameStrin,
(
#RJ!o5la,2<erm >L
#RJ!o5la,2 '
!escritor)a#e // !othin, U !ameStrin,
( )B1te6i2t/ // li2t of interrupt2 ((E4G b1te2)
#RJ<erm >L
#RJ '
$nterrutTye% // #nterrupt<1peAe1word (_;;, _BE)
$nterrutLevel% // #nterrupt6evelAe1word (_;;, _BE)
S"areTye% // !othin, (%-clu2ive) U Share<1peAe1word (_#BR)
!escritor)a#e // !othin, U !ameStrin,
( )B1te6i2t/ // li2t of interrupt2 ((E4G b1te2)
;emor13.<erm >L
;emor13. '
Read4riteTye% // ReadWriteAe1word (_R5)
Min+ddress;2'8<=% // Word)on2t%-pr (_AIN)
Max+ddress;2'8<=% // Word)on2t%-pr (_AAX)
+lign#ent% // Word)on2t%-pr (_A;N)
RangeLengt"% // Word)on2t%-pr (_;EN)
!escritor)a#e // !othin, U !ameStrin,
(
;emor1F35i-ed<erm >L
;emor1F35i-ed '
Read4riteTye% // ReadWriteAe1word (_R5)
+ddressBase% // DWord)on2t%-pr (_BA#)
RangeLengt"% // DWord)on2t%-pr (_;EN)
!escritor)a#e // !othin, U !ameStrin,
(
;emor1F3<erm >L
;emor1F3 '
Read4riteTye% // ReadWriteAe1word (_R5)
Min+ddress% // DWord)on2t%-pr (_AIN)
Max+ddress% // DWord)on2t%-pr (_AAX)
+lign#ent% // DWord)on2t%-pr (_A;N)
RangeLengt"% // DWord)on2t%-pr (_;EN)
!escritor)a#e // !othin, U !ameStrin,
(
JWord#0<erm >L
JWord#0 '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
RangeTye% // !othin, (%ntireRan,e) U Ran,e<1peAe1word (_RN+)
+ddress:ranularity% // JWord)on2t%-pr (_+RA)
Min+ddress% // JWord)on2t%-pr (_AIN)
Max+ddress% // JWord)on2t%-pr (_AAX)
+ddressTranslation% // JWord)on2t%-pr (_9RA)
+ddressLengt"% // JWord)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e% // !othin, U !ameStrin,
TranslationTye% // !othin, U <1peAe1word (_99P)
Translation!ensity // !othin, U <ran2lationAe1word (_9R#)
(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 939
JWord;emor1<erm >L
JWord;emor1 '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
Me#Tye% // !othin, (!on)acheable) U ;em<1peAe1word (_AEA)
Read4riteTye% // ReadWriteAe1word (_R5)
+ddress:ranularity% // JWord)on2t%-pr (_+RA)
Min+ddress% // JWord)on2t%-pr (_AIN)
Max+ddress% // JWord)on2t%-pr (_AAX)
+ddressTranslation% // JWord)on2t%-pr (_9RA)
+ddressLengt"% // JWord)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e% // !othin, U !ameStrin,
+ddressRange% // !othin, U &ddre22Ae1word (_A9P)
Me#oryTye // !othin, U <1peAe1word (_99P)
(
JWordSpace<erm >L
JWordSpace '
ResourceTye% // B1te)on2t%-pr (_R9)$ *=C* T *=DD
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
TyeSecificFlags% // B1te)on2t%-pr (_9#D)
+ddress:ranularity% // JWord)on2t%-pr (_+RA)
Min+ddress% // JWord)on2t%-pr (_AIN)
Max+ddress% // JWord)on2t%-pr (_AAX)
+ddressTranslation% // JWord)on2t%-pr (_9RA)
+ddressLengt"% // JWord)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e // !othin, U !ameStrin,
(
Re,i2ter<erm >L
Re,i2ter '
+ddressSace$!% // &ddre22SpaceAe1word (_A#I)
RegisterBit4idt"% // B1te)on2t%-pr (_RB5)
Register*ffset% // B1te)on2t%-pr (_RB6)
Register+ddress% // JWord)on2t%-pr (_ADR)
+ccessSi3e // B1te)on2t%-pr (_A#Z)
(
StartDependent5n<erm >L
StartDependent5n '
Co#atPriority% // B1te)on2t%-pr ((E3)
PerfRo.ustPriority // B1te)on2t%-pr ((E3)
( )Re2ource;acro6i2t/
StartDependent5n!oPri<erm >L
StartDependent5n!oPri '( )Re2ource;acro6i2t/
@endor6on,<erm >L
@endor6on, '
!escritor)a#e // !othin, U !ameStrin,
( )B1te6i2t/
@endorShort<erm >L
@endorShort '
!escritor)a#e // !othin, U !ameStrin,
( )B1te6i2t/ // Xp to T b1te2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
938 Advanced Configuration and 'ower %nterface !pecification
WordBu2!umber<erm >L
WordBu2!umber '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
+ddress:ranularity% // Word)on2t%-pr (_+RA)
Min+ddress% // Word)on2t%-pr (_AIN)
Max+ddress% // Word)on2t%-pr (_AAX)
+ddressTranslation% // Word)on2t%-pr (_9RA)
+ddressLengt"% // Word)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e // !othin, U !ameStrin,
(
Word#0<erm >L
Word#0 '
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
RangeTye% // !othin, (%ntireRan,e) U Ran,e<1peAe1word (_RN+)
+ddress:ranularity% // Word)on2t%-pr (_+RA)
Min+ddress% // Word)on2t%-pr (_AIN)
Max+ddress% // Word)on2t%-pr (_AAX)
+ddressTranslation% // Word)on2t%-pr (_9RA)
+ddressLengt"% // Word)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e% // !othin, U !ameStrin,
TranslationTye% // !othin, U <1peAe1word (_99P)
Translation!ensity // !othin, U <ran2lationAe1word (_9R#)
(
WordSpace<erm >L
WordSpace '
ResourceTye% // B1te)on2t%-pr (_R9)$ *=C* T *=DD
Resource-sage% // !othin, (Re2ource)on2umer)U Re2ource<1peAe1word
!ecode% // !othin, (Po2Decode) U DecodeAe1word (_DEC)
MinTye% // !othin, (;in!ot5i-ed) U ;inAe1word (_AID)
MaxTye% // !othin, (;a-!ot5i-ed) U ;a-Ae1word (_AAD)
TyeSecificFlags% // B1te)on2t%-pr (_9#D)
+ddress:ranularity% // Word)on2t%-pr (_+RA)
Min+ddress% // Word)on2t%-pr (_AIN)
Max+ddress% // Word)on2t%-pr (_AAX)
+ddressTranslation% // Word)on2t%-pr (_9RA)
+ddressLengt"% // Word)on2t%-pr (_;EN)
ResourceSource$ndex% // !othin, U B1te)on2t%-pr
ResourceSource% // !othin, U Strin,Data
!escritor)a#e // !othin, U !ameStrin,
(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 936
19.2 ASL Concepts
This reference section is for developers who are writing A!1 code while developing definition 0locks for
platforms.
19.2.1 ASL Names
This section descri0es how to encode o0#ect names using A!1.
The following ta0le lists the characters legal in an( position in an A!1 o0#ect name. A!1 names are not
case&sensitive and will 0e converted to upper case.
Ta!le +.-& 0a%ed 3!Cect "eference 1ncodings
7alue 5escription Title
/"4&/*A, /*5, /+4&/9A 1ead character of name
=OAMIO?M, OCM , OaMIOHM>
1eadNameChar
/3&/36, /"4&/*A, /*5,
/+4&/9A
Non&lead =trailing> character of name
=OAMIO?M, OCM, OaMIOHM, OMIO6M>
NameChar
The following ta0le lists the name modifiers that can 0e prefi/ed to an A!1 name.
Ta!le +.-# 5efinition <lock 0a%e Modifier 1ncodings
5escription 0a%ePrefix HP 6ollowed !) W
*C Namespace root =OBM> 3oot'refi/ Name
*. 'arent namespace =O^M> 'arent'refi/ 'arent'refi/ or Name
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9" Advanced Configuration and 'ower %nterface !pecification
19.2.1.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9"4
_T_x Reserved Object Names
The AC'% specification reserves o0#ect names with the prefi/ CTC for internal use 0( the A!1 compiler.
The A!1 compiler ma(, for e/ample, use these o0#ects to store temporar( values when implementing
translation of complicated control structures into AM1. The A!1 compiler must declare CTCx o0#ects
normall( =using Name> and must not define them more than once within the same scope.
19.2.2 ASL Literal Constants
This section descri0es how to encode integer and string constants using A!1.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9"2 Advanced Configuration and 'ower %nterface !pecification
19.2.2.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9"3
Integers
Di,it)har >L `*]E`F]
6eadDi,it)har >L `7]E`F]
0ctalDi,it)har >L `*]E`G]
"e-Di,it)har >L Di,it)har U `A]E`D] U `a]E`f]
#nte,er >L Decimal)on2t U 0ctal)on2t U "e-)on2t
Decimal)on2t >L 6eadDi,it)har U ?Decimal)on2t Di,it)harB
0ctal)on2t >L `*] U ?0ctal)on2t 0ctalDi,it)harB
"e-)on2t >L ?*= "e-Di,it)harB U ?*X "e-Di,it)harB U ?"e-)on2t "e-Di,it)harB
B1te)on2t >L #nte,er LB *=**8*=DD
Word)on2t >L #nte,er LB *=****8*=DDDD
DWord)on2t >L #nte,er LB *=********8*=DDDDDDDD
JWord)on2t >L #nte,er LB *=****************8*=DDDDDDDDDDDDDDDD
Numeric constants can 0e specified in decimal, octal, or he/adecimal. 2ctal constants are preceded 0( a
leading Hero =>, and he/adecimal constants are preceded 0( a leading Hero and either a lower or upper case
O/M. %n some cases, the grammar specifies that the num0er must evaluate to an integer within a limited
range, such as /I/55, and so on.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9"" Advanced Configuration and 'ower %nterface !pecification
19.2.2.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9"*
Strings
Strin, >L `] Xtf=)har6i2t `]
Xtf=)har6i2t >L !othin, U ?%2capeSe8uence Xtf=)har6i2tB U ?Xtf=)har Xtf=)har6i2tB
Xtf=)har >L (-(4E(-34 U
(-3FE(-GB U
(-GDE(-T5 U
(-)3E(-D5 (-=(E(-B5 U
(-%( (-&(E(-B5 (-=(E(-B5 U
(-%4E(-%) (-=(E(-B5 (-=(E(-B5 U
(-%D (-=(E(-H5 (-=(E(-B5 U
(-%%E(-%5 (-=(E(-B5 (-=(E(-B5 U
(-5( (-H(E(-B5 (-=(E(-B5 (-=(E(-B5 U
(-54E(-5F (-=(E(-B5 (-=(E(-B5 (-=(E(-B5 U
(-5. (-=(E(-=5 (-=(E(-B5 (-=(E(-B5
%2capeSe8 >L Simple%2capeSe8 U 0ctal%2capeSe8 U "e-%2capeSe8
Simple%2capeSe8 >L \I U \J U \a U \4 U \f U \n U \r U \t U \ U \\
0ctal%2capeSe8 >L \ 0ctalDi,it U
\ 0ctalDi,it 0ctalDi,it U
\ 0ctalDi,it 0ctalDi,it 0ctalDi,it
"e-%2capeSe8 >L \= "e-Di,it U
\= "e-Di,it "e-Di,it
!ull)har >L *=**
!tring literals consist of Hero or more A!C%% characters surrounded 0( dou0le :uotation marks =d>. A !tring
ma( not e/ceed 2 0(tes. A string literal represents a se:uence of characters that, taken together, form a
null&terminated string. After all ad#acent strings in the constant have 0een concatenated, a null character is
appended.
!trings in the source file ma( 0e encoded using the ,T5&8 encoding scheme as defined in the ,nicode ".
specification. ,T5&8 is a 0(te&oriented encoding scheme, where some characters take a single 0(te and
others take multiple 0(tes. The A!C%% character values /4&/95 take up e/actl( one 0(te.
@owever, onl( one operator currentl( supports ,T5&8 strings< ,nicode. !ince string literals are defined to
contain onl( non&null character values, 0oth @e/ and 2ctal escape se:uence values must 0e non&null values
in the A!C%% range /4 through /55. 5or ar0itrar( 0(te data =outside the range of A!C%% values>, the
<uffer o0#ect should 0e used instead.
!ince the 0ackslash is used as the escape character and also the namespace root prefi/, an( string literals
that are to contain a full( :ualified namepath from the root of the namespace must use the dou0le 0ackslash
to indicate this<
!ame (_%ZD$ *\\_SB.P)#(.D0)A4*)
The dou0le 0ackslash is onl( re:uired within :uoted string literals.
!ince dou0le :uotation marks are used close a string, a special escape se:uence =Bd> is used to allow
:uotation marks within strings. 2ther escape se:uences are listed in the ta0le 0elow<
Ta!le +.-( ASL 1scape SeJuences
1scape SeJuence ASCII Character
Ba /9 =;.1>
B0 /8 =;!>
Bf /C =55>
Bn /A =15>
Br /- =C3>
Bt /6 =TA;>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9"+ Advanced Configuration and 'ower %nterface !pecification
1scape SeJuence ASCII Character
Bv /; =DT>
Bd /22 =d>
BU /29 =U>
BB /*C =B>
!ince literal strings are read&onl( constants, the following A!1 statement =for e/ample> is not supported<
Store ('&B)*$ *D%5*)
@owever, the following se:uence of statements is supported<
!ame (S<R$ *D%5*)
...
Store ('&B)*$ S<R)
19.2.3 ASL Resource Templates
A!1 includes some macros for creating resource descriptors. The 3esourceTemplate macro creates a ;uffer
in which resource descriptor macros can 0e listed. The 3esourceTemplate macro automaticall( generates an
.nd descriptor and calculates the checksum for the resource template. The format for the
3esourceTemplate macro is as follows<
Re2ource<emplate ()

// 6i2t of re2ource macro2


/
The following is an e/ample of how these macros can 0e used to create a resource template that can 0e
returned from a C'3! control method<
!ame (PRS($ Re2ource<emplate ()

StartDependent5n (4$ 4)

#RJ (6evel$ &ctive6ow$ Shared) 4($ 44/


D;& (<1pe5$ !otBu2;a2ter$ <ran2fer4I) ./
#0 (Decode4I$ (-4((($ (-3((($ ($ (-4(()
#0 (Decode4I$ (-G((($ (-I((($ ($ (-4(($ #04)
/
StartDependent5n (4$ 4)

#RJ (6evel$ &ctive6ow$ Shared) /


D;& (<1pe5$ !otBu2;a2ter$ <ran2fer4I)G/
#0 (Decode4I$ (-F((($ (-.((($ ($ (-4(()
#0 (Decode4I$ (-G((($ (-I((($ ($ (-4(($ #03)
/
%ndDependent5n ()
/)
2ccasionall(, it is necessar( to change a parameter of a descriptor in an e/isting resource template at run&
time =i.e., during a method e/ecution.> To facilitate this, the descriptor macros optionall( include a name
declaration that can 0e used later to refer to the descriptor. When a name is declared with a descriptor, the
A!1 compiler will automaticall( create field names under the given name to refer to individual fields in the
descriptor.
The offset returned 0( a reference to a resource descriptor field name is either in units of 0(tes =for 8&, 4+&,
32&, and +"&0it field widths> or in 0its =for all other field widths>. %n all cases, the returned offset is the
integer offset =in either 0(tes or 0its> of the name from the first 0(te =offset > of the parent resource
template.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9"9
5or e/ample, given the a0ove resource template, the following code changes the minimum and ma/imum
addresses for the %F2 descriptor named %22<
)reateWord5ield (PRS($ #03._;#!$ #;#!)
Store ((-&((($ #;#!)
)reateWord5ield (PRS($ #03._;&R$ #;&R)
Store ((-B((($ #;&R)
The resource template macros for each of the resource descriptors are listed 0elow, after the ta0le that
defines the resource descriptor. The resource template macros are formall( defined in section 4*,
JMemor(.L
The reserved names =such as CM%N and CMAA> for the fields of each resource descriptor are defined in the
appropriate ta0le entr( of the ta0le that defines that resource descriptor.
19.2.4 ASL Macros
The A!1 compiler supports some 0uilt in macros to assist in various A!1 coding operations. The following
ta0le lists some of the supported directives and an e/planation of their function.
Ta!le +.-A 1xa%ple ASL <uilt-in Macros
ASL State%ent 5escription
AccessAs =AccessType,
AccessAttrib'te>
,sed in a &ieldlist parameter to suppl( the Access T(pe and Access
Attri0utes of the remaining 5ield,nits within the list =or until another
AccessT(pe macro is encountered.>
3ffset =)yte=ffset> ,sed in a &ield,ist parameter to suppl( the byte offset of the ne/t defined
field within its parent region. This can 0e used instead of defining the 0it
lengths that need to 0e skipped. All offsets are defined from 0eginning to
end of a region.
1ISAI5 =TextID> Macro that converts the 9&character te/t argument into its corresponding "&
0(te numeric .%!A %- encoding. This can 0e used when declaring %-s for
devices that are .%!A %-s.
"esourceTe%plate => Macro used to suppl( 'lug and 'la( resource descriptor information in
human reada0le form, which is then translated into the appropriate 0inar(
'lug and 'la( resource descriptor encodings. 5or more information a0out
resource descriptor encodings, see section +.", J3esource -ata T(pes for
AC'%.L
To22I5 =AsciiString> Macro will convert an A!C%% string to a 428&0it 0uffer.
2nicode =StringData> Macro that converts an A!C%% string to a ,nicode string contained in a
0uffer.
19.2.5 ASL Data Types
A!1 provides a wide variet( of data t(pes and operators that manipulate data. %t also provides mechanisms
for 0oth e/plicit and implicit conversion 0etween the data t(pes when used with A!1 operators.
The ta0le 0elow descri0es each of the availa0le data t(pes.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9"8 Advanced Configuration and 'ower %nterface !pecification
Ta!le +.-- Su%%ar) of ASL 5ata T)pes
A!1 -ata T(pe -escription
V,ninitialiHedW No assigned t(pe or value. This is the t(pe of all control method 1ocalA varia0les
and unused ArgA varia0les at the 0eginning of method e/ecution, as well as all
uninitialiHed 'ackage elements. ,ninitialiHed o0#ects must 0e initialiHed =via
!tore or Cop(20#ect> 0efore the( ma( 0e used as source operands in A!1
e/pressions.
;uffer An arra( of 0(tes. ,ninitialiHed elements are Hero 0( default.
;uffer 5ield 'ortion of a 0uffer created using Create;it5ield, Create;(te5ield,
CreateWord5ield, CreateGWord5ield, Create5ield, or returned 0( the %nde/
operator.
--; @andle -efinition 0lock handle returned 0( the 1oad operator
-e0ug 20#ect -e0ug output o0#ect. 5ormats an o0#ect and prints it to the s(stem de0ug port.
@as no effect if de0ugging is not active.
-evice -evice or 0us o0#ect
.vent .vent s(nchroniHation o0#ect
5ield ,nit =within an
2peration 3egion>
'ortion of an address space, 0it&aligned and of one&0it granularit(. Created using
5ield, ;ank5ield, or %nde/5ield.
%nteger An n&0it little&endian unsigned integer. %n AC'% 4. this was at least 32 0its. %n
AC'% 2. and later, this is +" 0its.
%nteger Constant Created 0( the A!1 terms J?eroL, J2neL, J2nesL, and J3evisionL.
Method Control Method =./ecuta0le AM1 function>
Mute/ Mute/ s(nchroniHation o0#ect
20#ect 3eference 3eference to an o0#ect created using the 3ef2f, %nde/, or Cond3ef2f operators
2peration 3egion 2peration 3egion =A region within an Address !pace>
'ackage Collection of A!1 o0#ects with a fi/ed num0er of elements =up to 2**>.
'ower 3esource 'ower 3esource description o0#ect
'rocessor 'rocessor description o0#ect
!tring Null&terminated A!C%% string with up to 2 characters.
Thermal ?one Thermal ?one description o0#ect
Co%pati!ilit) 0oteH The a0ilit( to store and manipulate o0#ect references was first introduced in AC'%
2.. %n AC'% 4. references could not 0e stored in varia0les, passed as parameters or returned from
functions.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9"6
17.2.1 Data Type Conversion Overview
A!1 provides two mechanisms to convert o0#ects from one data t(pe to another data t(pe at run&time
=during e/ecution of the AM1 interpreter>. The first mechanism, (%plicit "ata '&pe Conversion' allows
the use of e/plicit A!1 operators to convert an o0#ect to a different data t(pe. The second mechanism,
Implicit "ata '&pe Conversion, is invoked 0( the AM1 interpreter when it is necessar( to convert a data
o0#ect to an e/pected data t(pe 0efore it is used or stored.
The following general rules appl( to data t(pe conversions<
%nput parameters are alwa(s su0#ect to implicit data t(pe conversion =also known as implicit source
operand conversion> whenever the operand t(pe does not match the e/pected input t(pe.
2utput =target> parameters for all operators e/cept the e/plicit data conversion operators are su0#ect to
implicit data t(pe conversion =also known as implicit result o0#ect conversion> whenever the target is
an e/isting named o0#ect or named field that is of a different t(pe than the o0#ect to 0e stored.
2utput parameters for the e/plicit data conversion operators, as well as output parameters that refer to
a method local or argument =1ocalA or ArgA> are not su0#ect to implicit t(pe conversion.
;oth of these mechanisms =e/plicit and implicit conversion> are descri0ed in detail in the sections that
follow.
17.2.2 Explicit Data Type Conversions
The following A!1 operators are provided to explicitly convert an o0#ect from one data t(pe to another<
1ISAI5 Converts a 9&character te/t argument into its corresponding "&0(te numeric .%!A
%- encoding.
6ro%<C5 Convert an %nteger to a ;C- %nteger
To<C5 Convert a ;C- %nteger to a standard 0inar( %nteger.
To<uffer Convert an %nteger, !tring, or ;uffer to an o0#ect of t(pe ;uffer
To5eci%alString Convert an %nteger, !tring, or ;uffer to an o0#ect of t(pe !tring. The string
contains the A!C%% representation of the decimal value of the source operand.
ToHexString Convert an %nteger, !tring, or ;uffer to an o0#ect of t(pe !tring. The string
contains the A!C%% representation of the he/adecimal value of the source operand.
ToInteger Convert an %nteger, !tring, or ;uffer to an o0#ect of t(pe %nteger.
ToString Cop( directl( and convert a ;uffer to an o0#ect of t(pe !tring.
To22I5 Convert an A!C%% string to a ,,%- ;uffer.
The following A!1 operators are provided to cop( and transfer o0#ects<
Cop)3!Cect ./plicitl( store a cop( of the operand o0#ect to the target name. No implicit t(pe
conversion is performed. =This operator is used to avoid the implicit conversion
inherent in the A!1 !tore operator.>
Store !tore a cop( of the operand o0#ect to the target name. %mplicit conversion is
performed if the target name is of a fi/ed data t(pe =see 0elow>. @owever, !tores
to method locals and arguments do not perform implicit conversion and are
therefore the same as using Cop(20#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9* Advanced Configuration and 'ower %nterface !pecification
17.2.3 Implicit Data Type Conversions
Automatic or Implicit t(pe conversions can take place at two different times during the e/ecution of an
A!1 operator. 5irst, it ma( 0e necessar( to convert one or more of the source operands to the data t(pe=s>
e/pected 0( the A!1 operator. !econd, the result of the operation ma( re:uire conversion 0efore it is stored
into the destination. =Man( of the A!1 operators can store their result optionall( into an o0#ect specified 0(
the last parameter. %n these operators, if the destination is specified, the action is e/actl( as if a !tore
operator had 0een used to place the result in the destination.>
!uch data conversions are performed 0( an AM1 interpreter during e/ecution of AM1 code and are known
collectivel( as Implicit .perand Conversions. As descri0ed 0riefl( a0ove, there are two different t(pes of
implicit operand conversion<
4. Conversion of a source operand from a mismatched data t(pe to the correct data t(pe re:uired 0( an
A!1 operator, called Implicit ource Conversion. This conversion occurs when a source operand
must 0e converted to the operand t(pe e/pected 0( the operator. An( or all of the source operands ma(
0e converted in this manner 0efore the e/ecution of the A!1 operator can proceed.
2. Conversion of the result of an operation to the e/isting t(pe of a target operand 0efore it is stored into
the target operand, called Implicit *esult Conversion. This conversion occurs when the target is a
fi/ed t(pe such as a named o0#ect or a field. When storing to a method 1ocal or Arg, no conversion is
re:uired 0ecause these data t(pes are of varia0le t(pe =the store simpl( overwrites an( e/isting o0#ect
and the e/isting t(pe>.
17.2.4 Implicit Source Operand Conversion
-uring the e/ecution of an A!1 operator, each source operand is processed 0( the AM1 interpreter as
follows<
%f the operand is of the t(pe e/pected 0( the operator, no conversion is necessar(.
%f the operand t(pe is incorrect, attempt to convert it to the proper t(pe.
5or the Concatenate operator and logical operators =1.:ual, 1$reater, 1$reater.:ual, 11ess,
11ess.:ual, and 1Not.:ual>, the data t(pe of the first operand dictates the re:uired t(pe of the second
operand, and for Concatenate onl(, the t(pe of the result o0#ect. =The second operator is implicitl(
converted, if necessar(, to match the t(pe of the first operand.>
%f conversion is impossi0le, a0ort the running control method and issue a fatal error.
An implicit source conversion will 0e attempted an(time a source operand contains a data t(pe that is
different that the t(pe e/pected 0( the operator. 5or e/ample<
Store ('GIT=*$ 6ocal4)
&dd ((-43F.$ 6ocal4$ BX54)
%n the Add statement a0ove, ,ocal1 contains a !tring o0#ect and must undergo conversion to an %nteger
o0#ect 0efore the Add operation can proceed.
%n some cases, the operator ma( take more than one t(pe of operand =such as %nteger and !tring>. %n this
case, depending on the t(pe of the operand, the highest priorit( conversion is applied. The ta0le 0elow
descri0es the source operand conversions availa0le. 5or e/ample<
Store (Buffer (4) /$ 6ocal()
!ame (&B)D$ Buffer (4() 4$ 3$ F$ .$ G$ I$ T$ =$ H$ (/)
)reateDWord5ield (&B)D$ 3$ RS7)
!ame (;!0P$ *43F.*)
)oncatenate (RS7$ ;!0P$ 6ocal()
The Concatenate operator can take an %nteger, ;uffer or !tring for its first two parameters and the t(pe of
the first parameter determines how the second parameter will 0e converted. %n this e/ample, the first
parameter is of t(pe ;uffer 5ield =from the Create-Word5ield operator>. What should it 0e converted to<
%nteger, ;uffer or !tringR According to Ta0le 49&9, the highest priorit( conversion is to %nteger. Therefore,
0oth of the following o0#ects will 0e converted to %ntegers<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9*4
RS7 ((-(G(.(F(3)
;!0P ((-F4$ (-F3$ (-FF$ (-F.)
And will then 0e #oined together and the resulting t(pe and value will 0e<
Buffer ((-(3$ (-(F$ (-(.$ (-(G$ (-F4$ (-F3$ (-FF$ (-F.)
17.2.5 Implicit Result Object Conversion
5or all A!1 operators that generate and store a result value =including the !tore operator>, the result o0#ect
is processed and stored 0( the AM1 interpreter as follows<
%f the A!1 operator is one of the explicit conversion operators =To!tring, To%nteger, etc., and the
Cop(20#ect operator>, no conversion is performed. =%n other words, the result o0#ect is stored directl(
to the target and completel( overwrites an( e/isting o0#ect alread( stored at the target.>
%f the target is a method local or argument =1ocalA or ArgA>, no conversion is performed and the result
is stored directl( to the target.
%f the target is a fi/ed t(pe such as a named o0#ect or field o0#ect, an attempt is made to convert the
source to the e/isting target t(pe 0efore storing.
%f conversion is impossi0le, a0ort the running control method and issue a fatal error.
An implicit result conversion can occur an(time the result of an operator is stored into an o0#ect that is of a
fi/ed t(pe. 5or e/ample<
!ame (BX54$ Buffer (4())
&dd ((-43F.$ (-T=H&$ BX54)
!ince ;,54 is a named o0#ect of fi/ed t(pe )'ffer, the %nteger result of the Add operation must 0e
converted to a ;uffer 0efore it is stored into ;,54.
17.2.6 Data Types and Type Conversions
The following ta0le lists the availa0le A!1 data t(pes and the availa0le data t(pe conversions =if an(> for
each. The entr( for each data t(pe is full( cross&referenced, showing 0oth the t(pes to which the o0#ect
ma( 0e converted as well as all other t(pes that ma( 0e converted to the data t(pe.
The allowa0le conversions appl( to 0oth e/plicit and implicit conversions.
Ta!le +.-. 5ata T)pes and T)pe Conversions
ASL 5ata T)pe Can !e i%plicitl) or explicitl)
converted to these 5ata T)pesH >In
priorit) order?
Can !e i%plicitl) or explicitl)
converted fro% these 5ata T)pesH
V,ninitialiHedW None. Causes a fatal error when used as
a source operand in an( A!1 statement.
%nteger, !tring, ;uffer, 'ackage, --;
@andle, 20#ect 3eference
;uffer %nteger, !tring, -e0ug 20#ect %nteger, !tring
;uffer 5ield %nteger, ;uffer, !tring, -e0ug 20#ect %nteger, ;uffer, !tring
--; @andle %nteger, -e0ug 20#ect %nteger
-e0ug 20#ect None. Causes a fatal error when used as
a source operand in an( A!1 statement.
%nteger, !tring, ;uffer, 'ackage, 5ield
,nit, ;uffer 5ield, --; @andle
-evice None None
.vent None None
5ield ,nit =within an
2peration 3egion>
%nteger, ;uffer, !tring, -e0ug 20#ect %nteger, ;uffer, !tring
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9*2 Advanced Configuration and 'ower %nterface !pecification
Ta!le +.-. 5ata T)pes and T)pe Conversions
ASL 5ata T)pe Can !e i%plicitl) or explicitl)
converted to these 5ata T)pesH >In
priorit) order?
Can !e i%plicitl) or explicitl)
converted fro% these 5ata T)pesH
%nteger ;uffer, ;uffer 5ield, --; @andle, 5ield
,nit, !tring, -e0ug 20#ect
;uffer, !tring
%nteger Constant %nteger, -e0ug 20#ect None. Also, storing an( o0#ect to a
constant is a no&op, not an error.
Method None None
Mute/ None None
20#ect 3eference None None
2peration 3egion None None
'ackage -e0ug 20#ect None
!tring %nteger, ;uffer, -e0ug 20#ect %nteger, ;uffer
'ower 3esource None None
'rocessor None None
Thermal ?one None None
17.2.7 Data Type Conversion Rules
The following ta0le presents the detailed data conversion rules for each of the allowa0le data t(pe
conversions. These conversion rules are implemented 0( the AM1 %nterpreter and appl( to all conversion
t(pes P e/plicit conversions, implicit source conversions, and implicit result conversions.
Ta!le +.-/ 3!Cect Conversion "ules
To convert
fro% an
o!Cect of this
5ata T)pe
To an o!Cect
of this 5ata
T)pe
This action is perfor%ed !) the AML InterpreterH
;uffer ;uffer 5ield The contents of the 0uffer are copied to the ;uffer 5ield. %f the 0uffer is
smaller than the siHe of the 0uffer field, it is Hero e/tended. %f the 0uffer is
larger than the siHe of the 0uffer field, the upper 0its are truncated.
Compati0ilit( Note< This conversion was first introduced in AC'% 2..
The 0ehavior in AC'% 4. was undefined.
-e0ug 20#ect .ach 0uffer 0(te is displa(ed as a he/adecimal integer, delimited 0(
spaces andFor commas.
5ield ,nit The entire contents of the 0uffer are copied to the 5ield ,nit. %f the 0uffer
is larger =in 0its> than the siHe of the 5ield ,nit, it is 0roken into pieces
and completel( written to the 5ield ,nit, lower chunks first. %f the integer
=or the last piece of the integer, if 0roken up> is smaller or e:ual in siHe to
the 5ield ,nit, then it is Hero e/tended 0efore 0eing written.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9*3
Ta!le +.-/ 3!Cect Conversion "ules
To convert
fro% an
o!Cect of this
5ata T)pe
To an o!Cect
of this 5ata
T)pe
This action is perfor%ed !) the AML InterpreterH
%nteger %f no integer o0#ect e/ists, a new integer is created. The contents of the
0uffer are copied to the %nteger, starting with the least&significant 0it and
continuing until the 0uffer has 0een completel( copied P up to the
ma/imum num0er of 0its in an %nteger =+" starting in AC'% 2.>.
!tring %f no string o0#ect e/ists, a new string is created. The entire contents of the
0uffer are converted to a string of two&character he/adecimal num0ers,
each separated 0( a space. A fatal error is generated if greater than two
hundred A!C%% characters are created.
;uffer 5ield V!ee 3uleW %f the ;uffer 5ield is smaller than or e:ual to the siHe of an %nteger =in
0its>, it will 0e treated as an %nteger. 2therwise, it will 0e treated as a
;uffer. =!ee the conversion rules for the %nteger and ;uffer data t(pes.>
-e0ug 20#ect .ach 0(te is displa(ed as he/adecimal integer, delimited 0( spaces andFor
commas
--; @andle V!ee 3uleW The o0#ect is treated as an %nteger =!ee conversion rules for the %nteger
data t(pe.>
5ield ,nit V!ee 3uleW %f the 5ield ,nit is smaller than or e:ual to the siHe of an %nteger =in 0its>,
it will 0e treated as an %nteger. %f the 5ield ,nit is larger than the siHe of an
%nteger, it will 0e treated as a ;uffer. The siHe of an %nteger is indicated 0(
the -efinition ;lock ta0le headerMs 3evision field. A 3evision field value
less than 2 indicates that the siHe of an %nteger is 32&0its. A value greater
than or e:ual to 2 signifies that the siHe of an %nteger is +"&0its. =!ee the
conversion rules for the %nteger and ;uffer data t(pes.>
-e0ug 20#ect .ach 0(te is displa(ed as he/adecimal integer , delimited 0( spaces andFor
commas
%nteger ;uffer %f no 0uffer o0#ect e/ists, a new 0uffer o0#ect is created 0ased on the siHe
of the integer =" 0(tes for 32&0it integers and 8 0(tes for +"&0it integers>.
%f a 0uffer o0#ect alread( e/ists, the %nteger overwrites the entire ;uffer
o0#ect. %f the integer re:uires more 0its than the siHe of the ;uffer, then
the integer is truncated 0efore 0eing copied to the ;uffer. %f the integer
contains fewer 0its than the siHe of the 0uffer, the %nteger is Hero&e/tended
to fill the entire 0uffer
;uffer 5ield The %nteger overwrites the entire ;uffer 5ield. %f the integer is smaller
than the siHe of the 0uffer field, it is Hero&e/tended. %f the integer is larger
than the siHe of the 0uffer field, the upper 0its are truncated.
Compati0ilit( Note< This conversion was first introduced in AC'% 2..
The 0ehavior in AC'% 4. was undefined.
-e0ug 20#ect The integer is displa(ed as a he/adecimal value.
5ield ,nit The %nteger overwrites the entire 5ield ,nit. %f the integer is smaller than
the siHe of the 0uffer field, it is Hero&e/tended. %f the integer is larger than
the siHe of the 0uffer field, the upper 0its are truncated.
!tring Creates an A!C%% he/adecimal string.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9*" Advanced Configuration and 'ower %nterface !pecification
Ta!le +.-/ 3!Cect Conversion "ules
To convert
fro% an
o!Cect of this
5ata T)pe
To an o!Cect
of this 5ata
T)pe
This action is perfor%ed !) the AML InterpreterH
'ackage 'ackage All e/isting contents =if an(> of the target package are deleted, and the
contents of the source package are copied into the target package. =%n
other words, overwrites the same as an( other o0#ect.>
-e0ug 20#ect .ach element of the package is displa(ed 0ased on its t(pe.
!tring ;uffer %f no 0uffer o0#ect e/ists, a new 0uffer o0#ect is created. %f a 0uffer o0#ect
alread( e/ists, it is completel( overwritten. %f the string is longer than the
0uffer, the string is truncated 0efore cop(ing. %f the string is shorter than
the 0uffer, the 0uffer siHe is reduced. %n either case, the string is treated as
a 0uffer, with each A!C%% string character copied to one 0uffer 0(te.
;uffer 5ield The string is treated as a 0uffer. %f this 0uffer is smaller than the siHe of the
0uffer field, it is Hero e/tended. %f the 0uffer is larger than the siHe of the
0uffer field, the upper 0its are truncated.
Compati0ilit( Note< This conversion was first introduced in AC'% 2..
The 0ehavior in AC'% 4. was undefined.
-e0ug 20#ect .ach string character is displa(ed as an A!C%% character
5ield ,nit .ach character of the string is written, starting with the first, to the 5ield
,nit. %f the 5ield ,nit is less than eight 0its, then the upper 0its of each
character are lost. %f the 5ield ,nit is greater than eight 0its, then the
additional 0its are Heroed.
%nteger %f no integer o0#ect e/ists, a new integer is created. The A!C%% string is
interpreted as a he/adecimal constant. .ach string character is interpreted
as a he/adecimal value, starting with the first he/adecimal A!C%%
character =OM&O6M, OAM&O5M, OaM, OfM> as the most significant digit, and ends
with the first non&he/adecimal character or end&of&string as the least
significant digit.
17.2.8 Rules for Storing and Copying Objects
The ta0le 0elow lists the actions performed when storing o0#ects to different t(pes of named targets. A!1
provides the following t(pes of JstoreL operations<
The !tore operator is used to e/plicitl( store an o0#ect to a location, with implicit conversion support
of the source o0#ect.
Man( of the A!1 operators can store their result optionall( into an o0#ect specified 0( the last
parameter. %n these operators, if the destination is specified, the action is e/actl( as if a !tore operator
had 0een used to place the result in the destination.
The Cop(20#ect operator is used to e/plicitl( store a cop( of an o0#ect to a location, with no implicit
conversion support.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9**
Ta!le +.-, 3!Cect Storing and Cop)ing "ules
:hen Storing an
o!Cect of an) data
t)pe to this t)pe of
Target location
This action is perfor%ed !) the
Store operator or an) ASL operator
with a Target operandH
This action is perfor%ed !) the
Cop)3!Cect operatorH
Method ArgA
varia0le
The o0#ect is copied to the destination with no conversion applied, with one
e/ception. %f the ArgA contains an 20#ect 3eference, an automatic de&reference
occurs and the o0#ect is copied to the target of the 20#ect 3eference instead of
overwriting the contents of ArgA
Method 1ocalA
varia0le
The o0#ect is copied to the destination with no conversion applied. .ven if 1ocalA
contains an 20#ect 3eference, it is overwritten.
5ield ,nit or ;uffer
5ield
The o0#ect is copied to the destination
after implicit result conversion is
applied
5ields permanentl( retain their t(pe and
cannot 0e changed. Therefore,
Cop(20#ect can onl( 0e used to cop( an
o0#ect of t(pe %nteger or ;uffer to fields.
Named data o0#ect The o0#ect is copied to the destination
after implicit result conversion is
applied to match the e/isting t(pe of
the named location
The o0#ect and t(pe are copied to the
named location.
17.2.9 Rules for Reading and Writing Objects
%n the descriptions 0elow, read operations alwa(s return the actual o0#ect, not a cop( of the o0#ect in order
that constructs of the form<
&dd (6ocal4$ 6ocal3$ 6ocalF)
do not create unnecessar( copies of 1ocal4 or 1ocal2. Also, this 0ehavior ena0les the call&0(&reference
semantics of control method invocation.
17.2.9.1 ArgX Objects
+? "ead fro% Arg= para%eters
3!Cect"eference & Automatic dereference, return the target of the reference. ,se of -e3ef2f
returns the same.
<uffer I 3eturn the ;uffer. Can create an %nde/, 5ield, or 3eference to the 0uffer.
Package I 3eturn the 'ackage. Can create an %nde/ or 3eference to the package.
All other o!Cect t)pes I 3eturn the o0#ect.
1xa%ple %ethod invocation for the ta!le !elowH
A9BD 'Ref6f '64R(, Buf, P%&, 64R(
Ta!le +.-+$ "eading fro% Arg= 3!Cects
Para%eter MTH5 Arg= T)pe "ead operation on Arg= "esult of read
3ef2f ==b:>, 3eference to o0#ect =b: !tore =Arg, N>
Cop(20#ect =Arg, N>
-e3ef2f =Arg>
=b:
=b:
=b:
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9*+ Advanced Configuration and 'ower %nterface !pecification
Para%eter MTH5 Arg= T)pe "ead operation on Arg= "esult of read
)'f. ;uffer !tore =Arg4, N>
Cop(20#ect =Arg4, N>
%nde/ =Arg4, N>
5ield =Arg4, N>
)'f
)'f
%nde/ =)'f>
5ield =)'f>
P3g 'ackage !tore =Arg2, N>
Cop(20#ect =Arg2, N>
%nde/ =Arg2, N>
P3g
P3g
%nde/ =P3g>
=b: All other o0#ect t(pes !tore =Arg3, N>
Cop(20#ect =Arg3, N>
=b:
=b:
&? Store to Arg= para%eters
3!Cect"eference o0#ects & Automatic dereference, cop( the o0#ect and overwrite the final target.
All other o!Cect t)pes& Cop( the o0#ect and overwrite the ArgA varia0le. =-irect writes to 0uffer
or package ArgA parameters will also simpl( overwrite ArgA>
Ta!le +.-++ :riting to Arg= 3!Cects
Current t)pe of Arg= 3!Cect to !e
written
:rite operation on
Arg=
"esult of write >in Arg=?
3ef2f ==ld=b:> =b:
=An( t(pe>
!tore =N, ArgA>
Cop(20#ect =N, ArgA>
3ef2f =cop( of =b:>
3ef2f =cop( of =b:>
All other o0#ect t(pes =b:
=An( t(pe>
!tore =N, ArgA>
Cop(20#ect =N, ArgA>
Cop( of =b:
Cop( of =b:
Note< 3ef2f =ArgA> returns a reference to ArgA.
17.2.9.2 LocalX Objects
+? "ead fro% Local= varia!les
3!Cect"eference & %f performing a -e3ef2f return the target of the reference. 2therwise, return
the reference.
All other o!Cect t)pes & 3eturn a the o0#ect
Ta!le +.-+& "eading fro% Local= 3!Cects
Current Local= T)pe "ead operation on Local= "esult of read
3ef2f ==b:> !tore =1ocalA, N>
Cop(20#ect =1ocalA, N>
-e3ef2f =1ocalA>
3ef2f ==b:>
3ef2f ==b:>
=b:
=b: =All other t(pes> !tore =1ocalA, N>
Cop(20#ect =1ocalA, N>
=b:
=b:
&? Store to Local= varia!les
All o!Cect t)pes & -elete an( e/isting o0#ect in 1ocalA first, then store a cop( of the o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9*9
Ta!le +.-+# :riting to Local= 3!Cects
Current Local= T)pe 3!Cect to !e
written
:rite operation on Local= "esult of write >in
Local=?
All o0#ect t(pes =b:
=An( t(pe>
!tore =N, 1ocalA>
Cop(20#ect =N, 1ocalA>
Cop( of =b:
Cop( of =b:
17.2.9.3 Named Objects
+? "ead fro% 0a%ed o!Cect
3!Cect"eference & %f performing a -e3ef2f return the target of the reference. 2therwise, return
the reference.
All other o!Cect t)pes & 3eturn the o0#ect
Ta!le +.-+( "eading fro% 0a%ed 3!Cects
Current 0AM1 T)pe "ead operation on 0AM1 "esult of read
3ef2f ==b:> !tore =NAM., N>
Cop(20#ect =NAM., N>
-e3ef2f =NAM.>
3ef2f ==b:>
3ef2f ==b:>
=b:
=b: =All other t(pes> !tore =NAM., N>
Cop(20#ect =NAM., N>
=b:
=b:
&? Store to 0a%ed o!Cect
All o!Cect t)pes & -elete an( e/isting o0#ect in NAM. first, then store a cop( of the o0#ect. The
!tore operator will perform an implicit conversion to the e/isting t(pe in NAM.. Cop(20#ect
does not perform an implicit store.
Ta!le +.-+A :riting to 0a%ed 3!Cects
Current
0AM1 T)pe
3!Cect to !e
written
:rite operation on 0AM1 "esult of write >in 0AM1?
A
=An( T(pe>
=b:
=An( t(pe>
!tore =N, NAM.>
Cop(20#ect =N, NAM.>
Cop( of =b: =converted to t(pe A>
Cop( of =b: =No conversion>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9*8 Advanced Configuration and 'ower %nterface !pecification
19.3 ASL Operator Summary
6perator Na2e Pa&e Descr1pt1on
4. Ac0u1re TI. &c8uire a mute-
3. A"" TI. #nte,er &dd
F. Al1as TIG Define a name alia2
.. An" TIG #nte,er Bitwi2e &nd
G. Ar&X TIG ;ethod ar,ument data ob9ect2
I. Ban%D1el" TII Declare field2 in a ban+ed confi,uration ob9ect
T. Brea% TIT )ontinue followin, the innermo2t enclo2in, While
=. Brea%Po1nt TIT X2ed for debu,,in,$ 2top2 e-ecution in the debu,,er
H. Buffer TI= Declare Buffer ob9ect
4(. Case TI= %-pre22ion for conditional e-ecution
44. Concatenate TI= )oncatenate two 2trin,2$ inte,er2 or buffer2
43. ConcatenateRes9e2plate TIH )oncatenate two re2ource template2
4F. Con"Ref6f TIH )onditional reference to an ob9ect
4.. Cont1nue TT( )ontinue innermo2t enclo2in, While loop
4G. Cop:64Rect TT( )op1 and e-i2tin, ob9ect
4I. CreateB1tD1el" TT( Declare a bit field ob9ect of a buffer ob9ect
4T. CreateB:teD1el" TT( Declare a b1te field ob9ect of a buffer ob9ect
4=. CreateD5or"D1el" TT4 Declare a DWord field ob9ect of a buffer ob9ect
4H. CreateD1el" TT4 Declare an arbitrar1 len,th bit field of a buffer ob9ect
3(. CreateQ5or"D1el" TT4 Declare a JWord field ob9ect of a buffer ob9ect
34. Create5or"D1el" TT3 Declare a Word field ob9ect of a buffer ob9ect
33. Data9a4leRe&1on TT3 Declare a Data <able Re,ion
3F. De4u& TT3 Debu,,er output
3.. Decre2ent TTF Decrement an #nte,er
3G. Default TTF Default e-ecution path in Switch()
3I. Def1n1t1onBloc% TTF Declare a Definition Bloc+
3T. Deref6f TT. Dereference an ob9ect reference
3=. De1ce TT. Declare a bu2/device ob9ect
3H. D11"e TTG #nte,er Divide
F(. DAA TTI D;& Re2ource De2criptor macro
F4. D5or"I6 TTI DWord #0 Re2ource De2criptor macro
F3. D5or"Ae2or: TT= DWord ;emor1 Re2ource De2criptor macro
FF. D5or"#pace TTH DWord Space Re2ource De2criptor macro
F.. E1saI" T=( %#S& #D Strin, to #nte,er conver2ion macro
FG. Else T=4 &lternate conditional e-ecution
FI. ElseIf T=4 )onditional e-ecution
FT. En"Depen"entDn T=3 %nd Dependent 5unction Re2ource De2criptor macro
F=. Eent T=3 Declare an event 21nchroniCation ob9ect
FH. E=ten"e"I6 T=F %-tended #0 Re2ource De2criptor macro
.(. E=ten"e"Ae2or: T=. %-tended ;emor1 Re2ource De2criptor macro
.4. E=ten"e"#pace T=I %-tended Space Re2ource De2criptor macro
.3. E=ternal T=T Declare e-ternal ob9ect2
.F. Datal T=T 5atal error chec+
... D1el" T== Declare field2 of an operation re,ion ob9ect
.G. D1n"#et;eftB1t THF #nde- of fir2t lea2t 2i,nificant bit 2et
.I. D1n"#etR1&>tB1t TH. #nde- of fir2t mo2t 2i,nificant bit 2et
.T. D1=e"I6 TH. 5i-ed #/0 Re2ource De2criptor macro
.=. Dro2BCD TH. )onvert from B)D to numeric
.H. Dunct1on THG Declare control method
G(. If THI )onditional e-ecution
G4. Inclu"e THI #nclude another &S6 file
G3. Incre2ent THT #ncrement a #nte,er
GF. In"e= THT #nde-ed Reference to member ob9ect
G.. In"e=D1el" =(F Declare #nde-/Data 5ield2
GG. Interrupt =(. #nterrupt Re2ource De2criptor macro
GI. I6 =(G #0 Re2ource De2criptor macro
GT. IRQ =(I #nterrupt Re2ource De2criptor macro
G=. IRQNoDla&s =(I Short #nterrupt Re2ource De2criptor macro
GH. ;An" =(T 6o,ical &nd
I(. ;E0ual =(T 6o,ical %8ual
I4. ;+reater =(T 6o,ical :reater
I3. ;+reaterE0ual =(= 6o,ical !ot le22
IF. ;;ess =(= 6o,ical 6e22
I.. ;;essE0ual =(= 6o,ical !ot ,reater
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9*6
IG. ;Not =(H 6o,ical !ot
II. ;NotE0ual =(H 6o,ical !ot e8ual
IT. ;oa" =(H 6oad differentiatin, definition bloc+
I=. ;oa"9a4le =4( 6oad <able from RSD</RSD<
IH. ;ocalX =44 ;ethod local data ob9ect2
T(. ;6r =44 6o,ical 0r
T4. Aatc> =44 Search for match in pac+a,e arra1
T3. Ae2or:.L =43 ;emor1 Re2ource De2criptor macro
TF. Ae2or:K. =4F ;emor1 Re2ource De2criptor macro
T.. Ae2or:K.D1=e" =4. ;emor1 Re2ource De2criptor macro
TG. Aet>o" =4. Declare a control method
TI. A1" =4G Return a portion of buffer or 2trin,
TT. Ao" =4G #nte,er ;odulo
T=. Ault1pl: =4I #nte,er ;ultipl1
TH. Aute= =4I Declare a mute- 21nchroniCation ob9ect
=(. Na2e =4I Declare a !amed ob9ect
=4. NAn" =4T #nte,er Bitwi2e !and
=3. No6p =4T !o operation
=F. N6r =4T #nte,er Bitwi2e !or
=.. Not =4= #nte,er Bitwi2e !ot
=G. Not1f: =4= !otif1 0b9ect of event
=I. 64Rect9:pe =4= <1pe of ob9ect
=T. 6ne =4H )on2tant 0ne 0b9ect (4)
==. 6nes =4H )on2tant 0ne2 0b9ect (E4)
=H. 6perat1onRe&1on =3( Declare an operational re,ion
H(. 6r =34 #nte,er Bitwi2e 0r
H4. Pac%a&e =34 Declare a pac+a,e ob9ect
H3. Po<erResource =33 Declare a power re2ource ob9ect
HF. Processor =33 Declare a proce22or pac+a,e
H.. Q5or"I6 =3F JWord #0 Re2ource De2criptor macro
HG. Q5or"Ae2or: =3G JWord ;emor1 Re2ource De2criptor macro
HI. Q5or"#pace =3I Jword Space Re2ource De2criptor macro
HT. Ref6f =3T )reate Reference to an ob9ect
H=. Re&1ster =3= :eneric re,i2ter Re2ource De2criptor macro
HH. Release =3H Relea2e a 21nchroniCation ob9ect
4((. Reset =3H Re2et a 21nchroniCation ob9ect
4(4. Resource9e2plate =3H Re2ource to buffer conver2ion macro
4(3. Return =3H Return from method e-ecution
4(F. Re1s1on =F( )on2tant revi2ion ob9ect
4(.. #cope =F( 0pen named 2cope
4(G. #>1ft;eft =F4 #nte,er 2hift value left
4(I. #>1ftR1&>t =F4 #nte,er 2hift value ri,ht
4(T. #1&nal =F4 Si,nal a 21nchroniCation ob9ect
4(=. #1Ee6f =F4 :et the 2iCe of a buffer$ 2trin,$ or pac+a,e
4(H. #leep =F3 Sleep n milli2econd2 (1ield2 the proce22or)
44(. #tall =F3 Dela1 n micro2econd2 (doe2 not 1ield the proce22or)
444. #tartDepen"entDn =F3 Start Dependent 5unction Re2ource De2criptor macro
443. #tartDepen"entDnNoPr1 =FF Start Dependent 5unction Re2ource De2criptor macro
44F. #tore =FF Store ob9ect
44.. #u4tract =F. #nte,er Subtract
44G. #<1tc> =F. Select code to e-ecute ba2ed on e-pre22ion value
44I. 9>er2alZone =FI Declare a thermal Cone pac+a,e.
44T. 912er =FI :et I.Ebit timer value
44=. 9oBCD =FT )onvert #nte,er to B)D
44H. 9oBuffer =FT )onvert data t1pe to buffer
43(. 9oDec12al#tr1n& =FT )onvert data t1pe to decimal 2trin,
434. 9oBe=#tr1n& =F= )onvert data t1pe to he-adecimal 2trin,
433. 9oInte&er =F= )onvert data t1pe to inte,er
43F. 9o#tr1n& =F= )op1 &S)## 2trin, from buffer
43.. 9o$$ID =FH )onvert &2cii 2trin, to XX#D
43G. $n1co"e =.( Strin, to Xnicode conver2ion macro
43I. $nloa" =.( Xnload definition bloc+
43T. Ven"or;on& =.( @endor Re2ource De2criptor
43=. Ven"or#>ort =.4 @endor Re2ource De2criptor
43H. 5a1t =.4 Wait on an %vent
4F(. 5>1le =.4 )onditional loop
4F4. 5or"BusNu24er =.3 Word Bu2 number Re2ource De2criptor macro
4F3. 5or"I6 =.F Word #0 Re2ource De2criptor macro
4FF. 5or"#pace =.. Word Space Re2ource De2criptor macro
4F.. Xor =.G #nte,er Bitwi2e Ror
4FG. Zero =.I )on2tant 7ero ob9ect (()
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9+ Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9+4
19.4 ASL Operator Summary By Type
6perator Na2e Pa&e Descr1pt1on
// &S6 compiler control2
E=ternal T=T Declare e-ternal ob9ect2
Inclu"e THI #nclude another &S6 file
// &)P# table mana,ement
Def1n1t1onBloc% TTF Declare a Definition Bloc+
;oa" =(H 6oad definition bloc+
;oa"9a4le =4( 6oad <able from RSD</RSD<
$nloa" =.( Xnload definition bloc+
// ;i2cellaneou2 named ob9ect creation
Al1as TIG Define a name alia2
Buffer TI= Declare Buffer ob9ect
De1ce TT. Declare a bu2/device ob9ect
Dunct1on THG Declare a control method
Aet>o" =4. Declare a control method
Na2e =4I Declare a !amed ob9ect
Pac%a&e =34 Declare a pac+a,e ob9ect
Po<erResource =33 Declare a power re2ource ob9ect
Processor =33 Declare a proce22or pac+a,e
#cope =F( 0pen named 2cope
9>er2alZone =FI Declare a thermal Cone pac+a,e.
// 0peration Re,ion2
Ban%D1el" TII Declare field2 in a ban+ed confi,uration ob9ect
Data9a4leRe&1on TT3 Declare a Data <able Re,ion
D1el" T== Declare field2 of an operation re,ion ob9ect
In"e=D1el" =(F Declare #nde-/Data 5ield2
6perat1onRe&1on =3( Declare an operational re,ion
// Buffer 5ield2
CreateB1tD1el" TT( Declare a bit field ob9ect of a buffer ob9ect
CreateB:teD1el" TT( Declare a b1te field ob9ect of a buffer ob9ect
CreateD5or"D1el" TT4 Declare a DWord field ob9ect of a buffer ob9ect
CreateD1el" TT4 Declare an arbitrar1 len,th bit field of a buffer ob9ect
CreateQ5or"D1el" TT4 Declare a JWord field ob9ect of a buffer ob9ect
Create5or"D1el" TT3 Declare a Word field ob9ect of a buffer ob9ect
// S1nchroniCation
Ac0u1re TI. &c8uire a mute-
Eent T=3 Declare an event 21nchroniCation ob9ect
Aute= =4I Declare a mute- 21nchroniCation ob9ect
Not1f: =4= !otif1 0b9ect of event
Release =3H Relea2e a 21nchroniCation ob9ect
Reset =3H Re2et a 21nchroniCation ob9ect
#1&nal =F4 Si,nal a 21nchroniCation ob9ect
5a1t =.4 Wait on an %vent
// 0b9ect reference2
Con"Ref6f TIH )onditional reference to an ob9ect
Deref6f TT. Dereference an ob9ect reference
Ref6f =3T )reate Reference to an ob9ect
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9+2 Advanced Configuration and 'ower %nterface !pecification
// #nte,er arithmetic

A"" TI. #nte,er &dd
An" TIG #nte,er Bitwi2e &nd
Decre2ent TTF Decrement an #nte,er
D11"e TTG #nte,er Divide
D1n"#et;eftB1t THF #nde- of fir2t lea2t 2i,nificant bit 2et
D1n"#etR1&>tB1t TH. #nde- of fir2t mo2t 2i,nificant bit 2et
Incre2ent THT #ncrement a #nte,er
Ao" =4G #nte,er ;odulo
Ault1pl: =4I #nte,er ;ultipl1
NAn" =4T #nte,er Bitwi2e !and
N6r =4T #nte,er Bitwi2e !or
Not =4= #nte,er Bitwi2e !ot
6r =34 #nte,er Bitwi2e 0r
#>1ft;eft =F4 #nte,er 2hift value left
#>1ftR1&>t =F4 #nte,er 2hift value ri,ht
#u4tract =F. #nte,er Subtract
Xor =.G #nte,er Bitwi2e Ror
// 6o,ical operator2
;An" =(T 6o,ical &nd
;E0ual =(T 6o,ical %8ual
;+reater =(T 6o,ical :reater
;+reaterE0ual =(= 6o,ical !ot le22
;;ess =(= 6o,ical 6e22
;;essE0ual =(= 6o,ical !ot ,reater
;Not =(H 6o,ical !ot
;NotE0ual =(H 6o,ical !ot e8ual
;6r =44 6o,ical 0r
// ;ethod e-ecution control
Brea% TIT )ontinue followin, the innermo2t enclo2in, While
Brea%Po1nt TIT X2ed for debu,,in,$ 2top2 e-ecution in the debu,,er
Case TI= %-pre22ion for conditional e-ecution
Cont1nue TT( )ontinue innermo2t enclo2in, While loop
Default TTF Default e-ecution path in Switch()
Else T=4 &lternate conditional e-ecution
ElseIf T=4 )onditional e-ecution
Datal T=T 5atal error chec+
If THI )onditional e-ecution
No6p =4T !o operation
Return =3H Return from method e-ecution
#leep =F3 Sleep n milli2econd2 (1ield2 the proce22or)
#tall =F3 Dela1 n micro2econd2 (doe2 not 1ield the proce22or)
#<1tc> =F. Select code to e-ecute ba2ed on e-pre22ion value
5>1le =.4 )onditional loop
// Data t1pe conver2ion and manipulation
Concatenate TI= )oncatenate two 2trin,2$ inte,er2 or buffer2
Cop:64Rect TT( )op1 and e-i2tin, ob9ect
De4u& TT3 Debu,,er output
E1saI" T=( %#S& #D Strin, to #nte,er conver2ion macro
Dro2BCD TH. )onvert from B)D to numeric
In"e= THT #nde-ed Reference to member ob9ect
Aatc> =44 Search for match in pac+a,e arra1
A1" =4G Return a portion of buffer or 2trin,
64Rect9:pe =4= <1pe of ob9ect
#1Ee6f =F4 :et the 2iCe of a buffer$ 2trin,$ or pac+a,e
#tore =FF Store ob9ect
912er =FI :et I.Ebit timer value
9oBCD =FT )onvert #nte,er to B)D
9oBuffer =FT )onvert data t1pe to buffer
9oDec12al#tr1n& =FT )onvert data t1pe to decimal 2trin,
9oBe=#tr1n& =F= )onvert data t1pe to he-adecimal 2trin,
9oInte&er =F= )onvert data t1pe to inte,er
9o#tr1n& =F= )op1 &S)## 2trin, from buffer
9o$$ID =FH )onvert &2cii 2trin, to XX#D
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9+3
$n1co"e =.( Strin, to Xnicode conver2ion macro
// Re2ource De2criptor macro2
ConcatenateRes9e2plate TIH )oncatenate two re2ource template2
DAA TTI D;& Re2ource De2criptor macro
D5or"I6 TTI DWord #0 Re2ource De2criptor macro
D5or"Ae2or: TT= DWord ;emor1 Re2ource De2criptor macro
D5or"#pace TTH DWord Space Re2ource De2criptor macro
En"Depen"entDn T=3 %nd Dependent 5unction Re2ource De2criptor macro
E=ten"e"I6 T=F %-tended #/0 Re2ource De2criptor macro
E=ten"e"Ae2or: T=. %-tended ;emor1 Re2ource De2criptor macro
E=ten"e"#pace T=I %-tended Space Re2ource De2criptor macro
D1=e"I6 TH. 5i-ed #/0 Re2ource De2criptor macro
Interrupt =(. #nterrupt Re2ource De2criptor macro
I6 =(G #0 Re2ource De2criptor macro
IRQ =(I #nterrupt Re2ource De2criptor macro
IRQNoDla&s =(I Short #nterrupt Re2ource De2criptor macro
Ae2or:.L =43 ;emor1 Re2ource De2criptor macro
Ae2or:K. =4F ;emor1 Re2ource De2criptor macro
Ae2or:K.D1=e" =4. ;emor1 Re2ource De2criptor macro
Q5or"I6 =3F JWord #0 Re2ource De2criptor macro
Q5or"Ae2or: =3G JWord ;emor1 Re2ource De2criptor macro
Q5or"#pace =3I Jword Space Re2ource De2criptor macro
Re&1ster =3= :eneric re,i2ter Re2ource De2criptor macro
Resource9e2plate =3H Re2ource to buffer conver2ion macro
#tartDepen"entDn =F3 Start Dependent 5unction Re2ource De2criptor macro
#tartDepen"entDnNoPr1 =FF Start Dependent 5unction Re2ource De2criptor macro
Ven"or;on& =.( @endor Re2ource De2criptor
Ven"or#>ort =.4 @endor Re2ource De2criptor
5or"BusNu24er =.3 Word Bu2 number Re2ource De2criptor macro
5or"I6 =.F Word #0 Re2ource De2criptor macro
5or"#pace =.. Word Space Re2ource De2criptor macro
// )on2tant2
6ne =4H )on2tant 0ne 0b9ect (4)
6nes =4H )on2tant 0ne2 0b9ect (E4)
Re1s1on =F( )on2tant revi2ion ob9ect
Zero =.I )on2tant 7ero ob9ect (()
// )ontrol method ob9ect2
Ar&X TIG ;ethod ar,ument data ob9ect2
;ocalX =44 ;ethod local data ob9ect2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9+" Advanced Configuration and 'ower %nterface !pecification
19.5 ASL Operator Reference
This section descri0es each of the A!1 operators. The s(nta/ for each operator is given, with a description
of each argument and an overall description of the operator 0ehavior. ./ample A!1 code is provided for
the more comple/ operators.
A!1 operators can 0e categoriHed as follows<
Named 20#ect creation
Method e/ecution control =%f, .lse, While, etc.>
%nteger math
1ogical operators
3esource -escriptor macros
20#ect conversion
,tilit(FMiscellaneous
19.5.1 Acquire (Acquire a Mutex)
S)ntax
Ac0u1re 'Sync*./ect% Ti#eout1alue( LB Boolean
Argu%ents
Sync1=b:ect must 0e a mute/ s(nchroniHation o0#ect. Timeo'tAal'e is evaluated as an %nteger.
5escription
2wnership of the Mute/ is o0tained. %f the Mute/ is alread( owned 0( a different invocation, the current
e/ecution thread is suspended until the owner of the Mute/ releases it or until at least Timeo'tAal'e
milliseconds have elapsed. A Mute/ can 0e ac:uired more than once 0( the same invocation.
This operation returns True if a timeout occurred and the mute/ ownership was not ac:uired. A
Timeo'tAal'e of /5555 =or greater> indicates that there is no timeout and the operation will wait
indefinitel(.
19.5.2 Add (Integer Add)
S)ntax
A"" '+ddend&% +ddend2% Result( LB #nte,er
Argu%ents
Addend1 and Addend" are evaluated as %ntegers.
5escription
The operands are added and the result is optionall( stored into $es'lt! 2verflow conditions are ignored and
the result of overflows simpl( loses the most significant 0its.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9+*
19.5.3 Alias (Declare Name Alias)
S)ntax
Al1as 'Source*./ect% +lias*./ect(
Argu%ents
So'rce=b:ect is an( named o0#ect. Alias=b:ect is a Name!tring.
5escription
Creates a new o0#ect named Alias=b:ect that refers to and acts e/actl( the same as So'rce=b:ect!
Alias=b:ect is created as an alias of So'rce=b:ect in the namespace. The So'rce=b:ect name must alread(
e/ist in the namespace. %f the alias is to a name within the same definition 0lock, the So'rce=b:ect name
must 0e logicall( ahead of this definition in the 0lock.
1xa%ple
The following e/ample shows the use of an Alias term<
&lia2 (\SXS.S%<.%@%!$ SS%)
19.5.4 And (Integer Bitwise And)
S)ntax
An" 'Source&% Source2% Result( LB #nte,er
Argu%ents
So'rce1 and So'rce" are evaluated as %ntegers.
5escription
A 0itwise AN- is performed and the result is optionall( stored into $es'lt.
19.5.5 Argx (Method Argument Data Objects)
S)ntax
Ar&* U Ar&7 U Ar&. U Ar&K U Ar&L U Ar&M U Ar&N
5escription
,p to 9 argument&o0#ect references can 0e passed to a control method. 2n entr( to a control method, onl(
the argument o0#ects that are passed are usa0le.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9++ Advanced Configuration and 'ower %nterface !pecification
19.5.6 BankField (Declare Bank/Data Field)
S)ntax
Ban%D1el" 'Region)a#e% Ban,)a#e% Ban,1alue% +ccessTye% Loc,Rule%
-dateRule( )5ieldXnit6i2t/
Argu%ents
$egion;ame is the name of the host 2peration 3egion. )an3;ame is the name of the 0ank selection
register.
Accessing the contents of a 0anked field data o0#ect will occur automaticall( through the proper 0ank
setting, with s(nchroniHation occurring on the operation region that contains the )an3;ame data varia0le,
and on the $lo0al 1ock if specified 0( the ,oc3$'le.
The AccessType, ,oc3$'le, Bpdate$'le, and &ieldBnit,ist are the same format as the 6ield operator.
5escription
This operator creates data field o0#ects. The contents of the created o0#ects are o0tained 0( a reference to a
0ank selection register.
This encoding is used to define named data field o0#ects whose data values are fields within a larger o0#ect
selected 0( a 0ank&selected register.
1xa%ple
The following is a 0lock of A!1 sample code using )an3&ield#
Creates a "&0it 0ank&selected register in s(stem %F2 space.
Creates overlapping fields in the same s(stem %F2 space that are selected via the 0ank register.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9+9
// Define a 3GIEb1te operational re,ion in S12tem#0 2pace
// and name it :#0(
0perationRe,ion (:#0($ S12tem#0$ (-43G$ (-4(()
// )reate 2ome field2 in :#0 includin, a .Ebit ban+ 2elect re,i2ter
5ield (:#0($ B1te&cc$ !o6oc+$ Pre2erve)
:6B4$ 4$
:6B3$ 4$
0ff2et (4)$ // ;ove to off2et for b1te 4
B!A4$ .
/
// )reate 5%<( V 5%<4 in ban+ ( at b1te off2et (-F(
Ban+5ield (:#0($ B!A4$ ($ B1te&cc$ !o6oc+$ Pre2erve)
0ff2et ((-F()$
5%<($ 4$
5%<4$ 4
/
// )reate B6@6 V B&) in ban+ 4 at the 2ame off2et
Ban+5ield (:#0($ B!A4$ 4$ B1te&cc$ !o6oc+$ Pre2erve)
0ff2et ((-F()$
B6@6$ T$
B&)$ 4
/
19.5.7 Break (Break from While)
S)ntax
Brea%
5escription
<reak causes e/ecution to continue immediatel( following the innermost enclosing :hile or Switch
scope, in the current Method. %f there is no enclosing :hile or Switch within the current Method, a fatal
error is generated.
Co%pati!ilit) 0ote< %n AC'% 4., the ;reak operator continued immediatel( following the innermost
Jcode package.L !tarting in AC'% 2., the ;reak operator was changed to e/it the innermost JWhileL or
J!witchL package. This should have no impact on e/isting code, since the AC'% 4. definition was, in
practice, useless.
19.5.8 BreakPoint (Execution Break Point)
S)ntax
Brea%Po1nt
5escription
,sed for de0ugging, the <reakpoint opcode stops the e/ecution and enters the AM1 de0ugger. %n the non&
de0ug version of the AM1 interpreter, <reakPoint is e:uivalent to 0oop.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
9+8 Advanced Configuration and 'ower %nterface !pecification
19.5.9 Bufer (Declare Bufer Object)
S)ntax
Buffer 'BuffSi3e( )Strin, or B1te6i2t/ LB Buffer
Argu%ents
-eclares a ;uffer of siHe )'ffSi<e and optional initial value of String or )yte,ist!
5escription
The optional )'ffSi<e parameter specifies the siHe of the 0uffer and the initial value is specified in
Initiali<er ;(te1ist. %f )'ffSi<e is not specified, it defaults to the siHe of initialiHer. %f the count is too small
to hold the value specified 0( initialiHer, the initialiHer siHe is used. 5or e/ample, all four of the following
e/amples generate the same data in namespace, although the( have different A!1 encodings<
Buffer (4() 'P((.((&*/
Buffer (&r,() (-G( (-F( (-F( (-3e (-F( (-F( (-.4/
Buffer (4() (-G( (-F( (-F( (-3e (-F( (-F( (-.4 (-(( (-(( (-((/
Buffer () (-G( (-F( (-F( (-3e (-F( (-F( (-.4 (-(( (-(( (-((/
19.5.10 Case (Expression for Conditional Execution)
S)ntax
Case '1alue( )<erm6i2t/
Argu%ents
Aal'e specifies an %nteger, ;uffer, !tring or 'ackage o0#ect. Term,ist is a se:uence of e/ecuta0le A!1
e/pressions.
5escription
./ecute code 0ased upon the value of a Switch statement.
%f the Case Aal'e is an %nteger, ;uffer or !tring, then control passes to the statement that matches the value
of the enclosing Switch >Aal'e?. %f the Case value is a 'ackage, then control passes if an( mem0er of the
package matches the Switch =Aal'e>. The Switch CaseTerm,ist can include an( num0er of Case instances,
0ut no two Case Aal'es =or mem0ers of a Aal'e, if Aal'e is a 'ackage> within the same Switch statement
can contain the same value.
./ecution of the statement 0od( 0egins at the start of the Term,ist and proceeds until the end of the
Term1ist 0od( or until a <reak or Continue operator transfers control out of the 0od(.
19.5.11 Concatenate (Concatenate Data)
S)ntax
Concatenate 'Source&% Source2% Result( LB )omputationalData
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce" and the t(pe of the result o0#ect. So'rce" is implicitl( converted if
necessar( to match the t(pe of So'rce1.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 9+6
5escription
So'rce" is concatenated to So'rce1 and the result data is optionall( stored into $es'lt!
Ta!le +.-+- Concatenate 5ata T)pes
Source+ 5ata T)pe Source& 5ata T)pe > Converted T)pe? "esult 5ata T)pe
%nteger %ntegerF!tringF;uffer %nteger ;uffer
!tring %ntegerF!tringF;uffer !tring !tring
;uffer %ntegerF!tringF;uffer ;uffer ;uffer
19.5.12 ConcatenateResTemplate (Concatenate Resource Templates)
S)ntax
ConcatenateRes9e2plate 'Source&% Source2% Result( LB Buffer
Argu%ents
So'rce1 and So'rce" are evaluated as 3esource Template 0uffers.
5escription
The resource descriptors from So'rce" are appended to the resource descriptors from So'rce1! Then a new
end tag and checksum are appended and the result is stored in $es'lt, if specified. %f either So'rce1 or
So'rce" is e/actl( 4 0(te in length, a run&time error occurs. An empt( 0uffer is treated as a resource
template with onl( an end tag.
19.5.13 CondRefOf (Create Object Reference Conditionally)
S)ntax
Con"Ref6f 'Source% Result( LB Boolean
Argu%ents
Attempts to create a reference to the So'rce o0#ect. The So'rce of this operation can 0e an( o0#ect t(pe =for
e/ample, data package, device o0#ect, and so on>, and the result data is optionall( stored into $es'lt!
5escription
2n success, the Destination o0#ect is set to refer to So'rce and the e/ecution result of this operation is the
value True. 2n failure, Destination is unchanged and the e/ecution result of this operation is the value
6alse. This can 0e used to reference items in the namespace that ma( appear d(namicall( =for e/ample,
from a d(namicall( loaded definition 0lock>.
Cond"ef3f is e:uivalent to "ef3f e/cept that if the So'rce o0#ect does not e/ist, it is fatal for "ef3f 0ut
not for Cond"ef3f.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
99 Advanced Configuration and 'ower %nterface !pecification
19.5.14 Continue (Continue Innermost Enclosing While)
S)ntax
Cont1nue
5escription
Continue causes e/ecution to continue at the start of the innermost enclosing :hile scope, in the currentl(
e/ecuting Control Method, at the point where the condition is evaluated. %f there is no enclosing :hile
within the current Method, a fatal error is generated.
19.5.15 CopyObject (Copy and Store Object)
S)ntax
Cop:64Rect 'Source% !estination( OP DataRef0b9ect
Argu%ents
Converts the contents of the So'rce to a -ata3ef20#ect using the conversion rules in 49.2.* and then copies
the results without conversion to the o0#ect referred to 0( Destination.
5escription
%f Destination is alread( an initialiHed o0#ect of t(pe -ata3ef20#ect, the original contents of Destination
are discarded and replaced with So'rce. 2therwise, a fatal error is generated.
Co%pati!ilit) 0oteH The Cop(20#ect operator was first introduced new in AC'% 2..
19.5.16 CreateBitField (Create 1-Bit Bufer Field)
S)ntax
CreateB1tD1el" 'SourceBuffer% Bit$ndex% BitField)a#e(
Argu%ents
So'rce)'ffer is evaluated as a 0uffer. )itIndex is evaluated as an integer. )it&ield;ame is a Name!tring.
5escription
A new 0uffer field o0#ect named )it&ield;ame is created for the 0it of So'rce)'ffer at the 0it inde/ of
)itIndex. The 0it&defined field within So'rce)'ffer must e/ist.)it&ield;ame is created for the 0it of
So'rce)'ffer at the 0it inde/ of )itIndex. The 0it&defined field within So'rce)'ffer must e/ist.
19.5.17 CreateByteField (Create 8-Bit Bufer Field)
S)ntax
CreateB:teD1el" 'SourceBuffer% Byte$ndex% ByteField)a#e(
Argu%ents
So'rce)'ffer is evaluated as a 0uffer. )yteIndex is evaluated as an integer. )yte&ield;ame is a Name!tring.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 994
5escription
A new 0uffer field o0#ect named )yte&ield;ame is created for the 0(te of So'rce)'ffer at the 0(te inde/ of
)yteIndex. The 0(te&defined field within So'rce)'ffer must e/ist.
19.5.18 CreateDWordField (Create 32-Bit Bufer Field)
S)ntax
CreateD5or"D1el" 'SourceBuffer% Byte$ndex% !4ordField)a#e(
Argu%ents
So'rce)'ffer is evaluated as a 0uffer. )yteIndex is evaluated as an integer. Dword&ield;ame is a
Name!tring.
5escription
A new 0uffer field o0#ect named DJord&ield;ame is created for the -Word of So'rce)'ffer at the 0(te
inde/ of )yteIndex. The -Word&defined field within So'rce)'ffer must e/ist.
19.5.19 CreateField (Create Arbitrary Length Bufer Field)
S)ntax
CreateD1el" 'SourceBuffer% Bit$ndex% )u#Bits% Field)a#e(
Argu%ents
So'rce)'ffer is evaluated as a 0uffer. )itIndex and ;'m)its are evaluated as integers. &ield;ame is a
Name!tring.
5escription
A new 0uffer field o0#ect named &ield;ame is created for the 0its of So'rce)'ffer at )itIndex for ;'m)its.
The entire 0it range of the defined field within So'rce)'ffer must e/ist.
19.5.20 CreateQWordField (Create 64-Bit Bufer Field)
S)ntax
CreateQ5or"D1el" 'SourceBuffer% Byte$ndex% >4ordField)a#e(
Argu%ents
So'rce)'ffer is evaluated as a 0uffer. )yteIndex is evaluated as an integer. KJord&ield;ame is a
Name!tring.
5escription
A new 0uffer field o0#ect named KJord&ield;ame is created for the GWord of So'rce)'ffer at the 0(te
inde/ of )yteIndex. The GWord&defined field within So'rce)'ffer must e/ist.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
992 Advanced Configuration and 'ower %nterface !pecification
19.5.21 CreateWordField (Create 16-Bit Bufer Field)
S)ntax
Create5or"D1el" 'SourceBuffer% Byte$ndex% 4ordField)a#e(
Argu%ents
So'rce)'ffer is evaluated as a 0uffer. )yteIndex is evaluated as an integer. Jord&ield;ame is a
Name!tring.
5escription
A new 0ufferfield o0#ect named Jord&ield;ame is created for the word of So'rce)'ffer at the 0(te inde/
of )yteIndex! The word&defined field within So'rce)'ffer must e/ist.
19.5.22 DataTableRegion (Create Data Table Operation Region)
S)ntax
Data9a4leRe&1on 'Region)a#e% SignatureString% *e#$!String% *e#Ta.le$!String(
Argu%ents
Creates a new region named $egion;ame! The memor( referred to 0( the -ata Ta0le 3egion is the
memor( that is occupied 0( the ta0le referenced in A!-T that is identified 0( Signat'reString,
=emIDString and =emTableIDString. An( 5ield o0#ect can reference 3egionName
The 0ase address of a -ata Ta0le region is the address of the first 0(te of the header of the ta0le identified
0( Signat'reString, =emIDString and =emTableIDString. The length of the region is the length of the
ta0le.
5escription
A -ata Ta0le 3egion is a special 2peration 3egion. %ts region space is alwa(s memor(. An( ta0le
referenced 0( a -ata Ta0le 3egion must 0e in memor( marked 0( Address3ange3eserved or
Address3angeND!.
19.5.23 Debug (Debugger Output)
S)ntax
De4u&
5escription
The de0ug data o0#ect is a virtual data o0#ect. Writes to this o0#ect provide de0ugging information. 2n at
least de0ug versions of the interpreter, an( writes into this o0#ect are appropriatel( displa(ed on the
s(stemMs native kernel de0ugger. All writes to the de0ug o0#ect are otherwise 0enign. %f the s(stem is in use
without a kernel de0ugger, then writes to the de0ug o0#ect are ignored. The following ta0le relates the A!1
term t(pes that can 0e written to the -e0ug o0#ect to the format of the information on the kernel de0ugger
displa(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 993
Ta!le +.-+. 5e!ug 3!Cect 5ispla) 6or%ats
ASL Ter% T)pe 5ispla) 6or%at
Numeric data o0#ect All digits displa(ed in he/adecimal format.
!tring data o0#ect !tring is displa(ed.
20#ect reference %nformation a0out the o0#ect is displa(ed =for e/ample, o0#ect t(pe and o0#ect
name>, 0ut the o0#ect is not evaluated.
The -e0ug o0#ect is a write&onl( o0#ectK attempting to read from the de0ug o0#ect is not supported.
19.5.24 Decrement (Integer Decrement)
S)ntax
Decre2ent 'Minuend( LB #nte,er
Argu%ents
(in'end is evaluated as an %nteger.
5escription
This operation decrements the (in'end 0( one and the result is stored 0ack to (in'end. .:uivalent to
Su!tract >(in'end, 4, (in'end?. ,nderflow conditions are ignored and the result is 2nes.
19.5.25 Default (Default Execution Path in Switch)
S)ntax
Default )<erm6i2t/
Argu%ents
Term,ist is a se:uence of e/ecuta0le A!1 e/pressions.
5escription
Within the 0od( of a !witch =page 83"> statement, the statements specified 0( Term,ist will 0e e/ecuted if
no Case =page 9+8> statement value matches the !witch statement value. %f 5efault is omitted and no Case
match is found, none of the statements in the !witch 0od( are e/ecuted. There can 0e at most one 5efault
statement in the immediate scope of the parent !witch statement. The 5efault statement can appear
an(where in the 0od( of the Switch statement.
19.5.26 DefnitionBlock (Declare Defnition Block)
S)ntax
Def1n1t1onBloc% '+MLFile)a#e% Ta.leSignature% Co#lianceRevision% *0M$!%
Ta.le$!% *0MRevision( )<erm6i2t/
Argu%ents
A(,&ile;ame is a string that specifies the desired name of the translated output AM1 file. TableSignat're
is a string that contains the "&character AC'% signature. Compliance$e2ision is an 8&0it value. =*(ID is a
+&character string, TableId is an 8&character string, and =*($e2ision is a 32&0it value. Term,ist is a
se:uence of e/ecuta0le A!1 e/pressions.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
99" Advanced Configuration and 'ower %nterface !pecification
5escription
The 5efinition<lock term specifies the unit of data andFor AM1 code that the 2! will load as part of the
-ifferentiated -efinition ;lock or as part of an additional -efinition ;lock.
This unit of data andFor AM1 code descri0es either the 0ase s(stem or some large e/tension =such as a
docking station>. The entire -efinition;lock will 0e loaded and compiled 0( the 2! as a single unit, and
can 0e unloaded 0( the 2! as a single unit.
5or compati0ilit( with AC'% versions 0efore AC'% 2., the 0it width of %nteger o0#ects is dependent on the
Compliance$e2ision. %f the Compliance$e2ision is less than 2, all integers are restricted to 32 0its.
2therwise, full +"&0it integers are used.
19.5.27 DerefOf (Dereference an Object Reference)
S)ntax
Deref6f 'Source( LB 0b9ect
Argu%ents
3eturns the o0#ect referred 0( the So'rce o0#ect reference.
5escription
%f the So'rce evaluates to an o0#ect reference, the actual contents of the o0#ect referred to are returned. %f
the So'rce evaluates to a string, the string is evaluated as an A!1 name =relative to the current scope> and
the contents of that o0#ect are returned. %f the o0#ect specified 0( So'rce does not e/ist then a fatal error is
generated.
Co%pati!ilit) 0oteH The use of a !tring with 5eref3f was first introduced in AC'% 2..
19.5.28 Device (Declare Bus/Device Package)
S)ntax
De1ce '!evice)a#e( )0b9ect6i2t/
Argu%ents
Creates a -evice o0#ect of name De2ice;ame, which represents either a 0us or a device or an( other similar
hardware. 5evice opens a name scope.
5escription
A ;usF-evice 'ackage is one of the 0asic wa(s the -ifferentiated -efinition ;lock descri0es the hardware
devices in the s(stem to the operating software. .ach ;usF-evice 'ackage is defined somewhere in the
hierarchical namespace corresponding to that deviceMs location in the s(stem. Within the namespace of the
device are other names that provide information and control of the device, along with an( su0&devices that
in turn descri0e su0&devices, and so on.
5or an( device, the ;%2! provides onl( information that is added to the device in a non&hardware standard
manner. This t(pe of value&added function is e/pressi0le in the AC'% -efinition ;lock such that operating
software can use the function.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 99*
The ;%2! supplies -evice 20#ects onl( for devices that are o0taining some s(stem&added function outside
the deviceMs normal capa0ilities and for an( -evice 20#ect re:uired to fill in the tree for such a device. 5or
e/ample, if the s(stem includes a 'C% device =integrated or otherwise> with no additional functions such as
power management, the ;%2! would not report such a deviceK however, if the s(stem included an
integrated %!A device 0elow the integrated 'C% device =device is an %!A 0ridge>, then the s(stem would
include a -evice 'ackage for the %!A device with the minimum feature 0eing added 0eing the %!A deviceMs
%- and configuration information and the parent 'C% device, 0ecause it is re:uired to get the %!A -evice
'ackage placement in the namespace correct.
1xa%ple
The following 0lock of A!1 sample code shows a nested use of -evice o0#ects to descri0e an %-.
controller connected to the root 'C% 0us.
Device (#D%() // primar1 controller
!ame (_&DR$ () // put P)# &ddre22 (device/function) here
// define re,ion for #D% mode re,i2ter
0perationRe,ion (P)#)$ P)#_)onfi,$ (-G($ (-4()
5ield (P)#)$ &n1&cc$ !o6oc+$ Pre2erve)
Y
/
Device (PR#;) // Primar1 adapter
!ame (_&DR$ () // Primar1 adapter L (
Y
;ethod (_S<;$ 3)
Y
/
;ethod (_:<;)
Y
/
Device (;S<R) // ma2ter channel
!ame (_&DR$ ()
!ame (_PR($ Pac+a,e () ($ P#D%/)
!ame (_:<5)
Y
/
/
Device (S6&@)
!ame (_&DR$ 4)
!ame (_PR($ Pac+a,e () ($ P#D%/)
!ame (_:<5)
Y
/
/
/
/
19.5.29 Divide (Integer Divide)
S)ntax
D11"e '!ividend% !ivisor% Re#ainder% Result( LB #nte,er
Argu%ents
Di2idend and Di2isor are evaluated as %ntegers.
5escription
Di2idend is divided 0( Di2isor, then the resulting remainder is optionall( stored into $emainder and the
resulting :uotient is optionall( stored into $es'lt. -ivide&0(&Hero e/ceptions are fatal.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
99+ Advanced Configuration and 'ower %nterface !pecification
The function return value is the $es'lt (>'otient).
19.5.30 DMA (DMA Resource Descriptor Macro)
S)ntax
DAA '!#aTye$ $sBusMaster$ !#aTransferSi3e$ !escritor)a#e( )!#aC"annelList/
LB Buffer
Argu%ents
DmaType specifies the t(pe of -MA c(cle< %!A compati0le =Co%pati!ilit)>, .%!A T(pe A =T)peA>, .%!A
T(pe ; =T)pe<> or .%!A T(pe 5 =T)pe6>. The 2&0it field Descriptor;ame.CTS' is automaticall( created
to refer to this portion of the resource descriptor, where OM is Compati0ilit(, O4M is T(peA, O2M is T(pe; and
O3M is T(pe5.
Is)'s(aster specifies whether this device can generate -MA 0us master c(cles =<usMaster> or not
=0ot<usMaster>. %f nothing is specifies, then ;usMaster is assumed. The 4&0it field Descriptor;ame.C;M
is automaticall( created to refer to this portion of the resource descriptor, where OM is Not;usMaster and
O4M is ;usMaster.
DmaTransferSi<e specifies the siHe of -MA c(cles the device is capa0le of generating< 8&0it =Transfer/>,
4+&0it =Transfer+-> or 0oth 8 and 4+&0it =Transfer/D+->. The 2&0it field Descriptor;ame!C!%?. is
automaticall( created to refer to this portion of the resource descriptor, where OM is Transfer8, O4M is
Transfer8C4+ and O2M is Transfer4+.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
DmaC1annlel,ist is a comma&delimited list of 8&0it integers specif(ing the -MA channels used 0( the
device. The minimum is and the ma/imum is 9. There ma( 0e no duplicates in the list.
5escription
The 5MA macro evaluates to a 0uffer which contains a -MA resource descriptor. The format of the -MA
resource descriptor can 0e found in J-MA -escriptorL =page 323>. The macro is designed to 0e used inside
of a 3esourceTemplate =page 826>.
19.5.31 DWordIO (DWord IO Resource Descriptor Macro)
S)ntax
D5or"I6 'Resource-sage% $sMinFixed% $sMaxFixed% !ecode% $S+Ranges%
+ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#% +ddressTranslation%
RangeLengt"% ResourceSource$ndex% ResourceSource% !escritor)a#e%
TranslationTye% Translation!ensity)
Argu%ents
$eso'rceBsage specifies whether the %F2 range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Is(in&ixed specifies whether the minimum address of this %F2 range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame.CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 999
Is(ax&ixed specifies whether the ma/imum address of this %F2 range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame!CMA5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Ma/5i/ed and OM is Ma/Not5i/ed.
Decode specifies whether or not the device decodes the %F2 range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame.C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
ISA$anges specifies whether the %F2 ranges specifies are limited to valid %!A %F2 ranges =ISA3nl)>, valid
non&%!A %F2 ranges =0onISA3nl)> or encompass the whole range without limitation =1ntire"ange>. The
2&0it field Descriptor;ame.C3N$ is automaticall( created to refer to this portion of the resource descriptor,
where O4M is Non%!A2nl(, O2M is %!A2nl( and OM is .ntire3ange.
Address4ran'larity evaluates to a 32&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the %F2 range must 0e aligned. The 32&0it field Descriptor;ame.C$3A is automaticall( created to refer to
this portion of the resource descriptor.
Address(inim'm evaluates to a 32&0it integer that specifies the lowest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The 32&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 32&0it integer that specifies the highest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The 32&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a 32&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The 32&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 32&0it integer that specifies the total num0er of 0(tes decoded in the %F2 range.
The 32&0it field Descriptor;ame.C1.N is automaticall( created to refer to this portion of the resource
descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this %F2 range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is Memor(. %f T(pe!tatic is specified, then
the secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame.CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information
TranslationDensity is an optional argument that specifies whether or not the translation from the primar( to
secondar( 0us is sparse =SparseTranslation> or dense =5enseTranslation>. %t is onl( used when
TranslationType is T)peTranslation. %f nothing is specified, then -enseTranslation is assumed. The 4&0it
field Descriptor;ame.CT3! is automaticall( created to refer to this portion of the resource descriptor,
where O4M is !parseTranslation and OM is -enseTranslation. !ee CT3! =page 3*6> for more information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
998 Advanced Configuration and 'ower %nterface !pecification
5escription
The 5:ordI3 macro evaluates to a 0uffer which contains a 32&0it %F2 range resource descriptor. The
format of the 32&0it %F2 range resource descriptor can 0e found in J-Word Address !pace -escriptor L
=page 3*>. The macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.32 DWordMemory (DWord Memory Resource Descriptor Macro)
S)ntax
D5or"Ae2or: 'Resource-sage% !ecode% $sMinFixed% $sMaxFixed% Cac"ea.le%
Read+nd4rite% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#%
+ddressTranslation% RangeLengt"% ResourceSource$ndex% ResourceSource%
!escritor)a#e% Me#oryTye% TranslationTye)
Argu%ents
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the Memor( range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame.C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Is(in&ixed specifies whether the minimum address of this Memor( range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame.CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this Memor( range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame!CMA5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Ma/5i/ed and OM is Ma/Not5i/ed.
Cac1eable specifies whether or not the memor( region is cachea0le =Cachea!le>, cachea0le and write&
com0ining =:riteCo%!ining>, cachea0le and prefetcha0le =Prefetcha!le> or uncachea0le
=0onCachea!le>. %f nothing is specified, then NonCachea0le is assumed. The 2&0it field
Descriptor;ame.CM.M is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Cachea0le, O2M is WriteCom0ining, O3M is 'refetcha0le and OM is NonCachea0le.
$eadAndJrite specifies whether or not the memor( region is read&onl( ="ead3nl)> or readFwrite
="ead:rite>. %f nothing is specified, then 3eadWrite is assumed. The 4&0it field Descriptor;ame.C3W is
automaticall( created to refer to this portion of the resource descriptor, where O4M is 3eadWrite and OM is
3ead2nl(.
Address4ran'larity evaluates to a 32&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the Memor( range must 0e aligned. The 32&0it field Descriptor;ame.C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a 32&0it integer that specifies the lowest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 32&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 32&0it integer that specifies the highest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 32&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 996
AddressTranslation evaluates to a 32&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The 32&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 32&0it integer that specifies the total num0er of 0(tes decoded in the Memor(
range. The 32&0it field Descriptor;ame.C1.N is automaticall( created to refer to this portion of the
resource descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this Memor( range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
(emoryType is an optional argument that specifies the memor( usage. The memor( can 0e marked as
normal =Address"angeMe%or)>, used as AC'% ND! space =Address"ange07S>, used as AC'%
reclaima0le space =Address"angeACPI> or as s(stem reserved =Address"ange"eserved>. %f nothing is
specified, then Address3angeMemor( is assumed. The 2&0it field Descriptor;ame.CMT' is automaticall(
created in order to refer to this portion of the resource descriptor, where OM is Address3angeMemor(, O4M is
Address3ange3eserved, O2M is Address3angeAC'% and O3M is Address3angeND!.
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is %F2. %f T(pe!tatic is specified, then the
secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame.CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information.
5escription
The 5:ordMe%or) macro evaluates to a 0uffer which contains a 32&0it memor( resource descriptor. The
format of the 32&0it memor( resource descriptor can 0e found in J-Word Address !pace -escriptor L =page
3*>. The macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.33 DWordSpace (DWord Space Resource Descriptor Macro)
S)ntax
D5or"#pace 'ResourceTye% Resource-sage% !ecode% $sMinFixed% $sMaxFixed%
TyeSecificFlags% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#%
+ddressTranslation% RangeLengt"% ResourceSource$ndex% ResourceSource%
!escritor)a#e)
Argu%ents
$eso'rceType evaluates to an 8&0it integer that specifies the t(pe of this resource. Accepta0le values are
/C through /55.
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the Memor( range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame.C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
98 Advanced Configuration and 'ower %nterface !pecification
Is(in&ixed specifies whether the minimum address of this Memor( range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame.CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this Memor( range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame!CMA5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Ma/5i/ed and OM is Ma/Not5i/ed.
TypeSpecific&lags evaluates to an 8&0it integer. The flags are specific to the $eso'rceType.
Address4ran'larity evaluates to a 32&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the Memor( range must 0e aligned. The 32&0it field Descriptor;ame.C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a 32&0it integer that specifies the lowest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 32&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 32&0it integer that specifies the highest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 32&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a 32&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The 32&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 32&0it integer that specifies the total num0er of 0(tes decoded in the Memor(
range. The 32&0it field Descriptor;ame.C1.N is automaticall( created to refer to this portion of the
resource descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this Memor( range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The 5:ordSpace macro evaluates to a 0uffer which contains a 32&0it Address !pace resource descriptor.
The format of the 32&0it Address !pace resource descriptor can 0e found in J-Word Address !pace
-escriptor L =page 3*>. The macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.34 EISAID (EISA ID String To Integer Conversion Macro)
S)ntax
EI#AID '0isa$dString( LB DWord)on2t
Argu%ents
The *isaIdString must 0e a !tring o0#ect of the form J,,,NNNNL, where J,L is an uppercase letter and
JNL is a he/adecimal digit. No asterisks or other characters are allowed in the string.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 984
5escription
Converts *isaIdString, a 9&character te/t string argument, into its corresponding "&0(te numeric .%!A %-
encoding. %t can 0e used when declaring %-s for devices that have .%!A %-s.
1xa%ple
%#S&#D ('P!P()(H*) // <hi2 i2 a valid invocation of the macro.
19.5.35 Else (Alternate Execution)
S)ntax
Else )<erm6i2t/
Argu%ents
Term,ist is a se:uence of e/ecuta0le A!1 statements.
5escription
%f Predicate evaluates to in an If statement, then control is transferred to the .lse portion, which can
consist of Hero or more 1lseIf statements followed 0( Hero or one 1lse statements. %f the Predicate of an(
1lseIf statement evaluates to non&Hero, the statements in its term list are e/ecuted and then control is
transferred past the end of the final .lse term. %f no Predicate evaluates to non&Hero, then the statements in
the 1lse term list are e/ecuted.
1xa%ple
The following e/ample checks 1ocal to 0e Hero or non&Hero. 2n non&Hero, CNT is incrementedK otherwise,
CNT is decremented.
#f (6:reater (6ocal($ G)
#ncrement ()!<)
/ %l2e #f (6ocal()
&dd ()!<$ G$ )!<)
/
%l2e
Decrement ()!<)
/
19.5.36 ElseIf (Alternate/Conditional Execution)
S)ntax
ElseIf 'Predicate(
Argu%ents
Predicate is evaluated as an %nteger.
5escription
%f the Predicate of an( 1lseIf statement evaluates to non&Hero, the statements in its term list are e/ecuted
and then control is transferred past the end of the final 1lse. %f no Predicate evaluates to non&Hero, then the
statements in the 1lse term list are e/ecuted.
Co%pati!ilit) 0oteH The 1lseIf operator was first introduced in AC'% 2., 0ut is 0ackward compati0le
with the AC'% 4. specification. An AC'% 2. and later A!1 compiler must s(nthesiHe 1lseIf from the If.
and 1lse opcodes availa0le in 4.. 5or e/ample<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
982 Advanced Configuration and 'ower %nterface !pecification
If (predicate4)
Y2tatement24Y
/
ElseIf (predicate3)
Y2tatement23Y
/
Else
Y2tatement2FY
/
is translated to the following<
If (predicate4)
Y2tatement24Y
/
Else
If (predicate3)
Y2tatement23Y
/
Else
Y2tatement2FY
/
/
19.5.37 EndDependentFn (End Dependent Function Resource Descriptor
Macro)
S)ntax
En"Depen"entDn '( LB Buffer
5escription
The 1nd5ependent6n macro generates an end&of&dependent&function resource descriptor 0uffer inside of
an 3esourceTemplate =page 826>. %t must 0e matched with a !tart-ependent5n =page 832> or
!tart-ependent5nNo'ri =page 833> macro.
19.5.38 Event (Declare Event Synchronization Object)
S)ntax
Eent '0vent)a#e(
Argu%ents
Creates an event s(nchroniHation o0#ect named *2ent;ame.
5escription
5or more information a0out the uses of an event s(nchroniHation o0#ect, see the A!1 definitions for the
Wait, !ignal, and 3eset function operators.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 983
19.5.39 ExtendedIO (Extended IO Resource Descriptor Macro)
S)ntax
E=ten"e"I6 'Resource-sage% $sMinFixed$ $sMaxFixed$ !ecode$ $S+Ranges$
+ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#$ +ddressTranslation$
RangeLengt"$ TyeSecific+ttri.utes% !escritor)a#e% TranslationTye%
Translation!ensity(
Argu%ents
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Is(in&ixed specifies whether the minimum address of this %F2 range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame.CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this %F2 range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame!CMA5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Ma/5i/ed and OM is Ma/Not5i/ed.
Decode specifies whether or not the device decodes the %F2 range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame.C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
ISA$anges specifies whether the %F2 ranges specifies are limited to valid %!A %F2 ranges =ISA3nl)>, valid
non&%!A %F2 ranges =0onISA3nl)> or encompass the whole range without limitation =1ntire"ange>. The
2&0it field Descriptor;ame.C3N$ is automaticall( created to refer to this portion of the resource descriptor,
where O4M is Non%!A2nl(, O2M is %!A2nl( and OM is .ntire3ange.
Address4ran'larity evaluates to a +"&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the %F2 range must 0e aligned. The +"&0it field Descriptor;ame.C$3A is automaticall( created to refer to
this portion of the resource descriptor.
Address(inim'm evaluates to a +"&0it integer that specifies the lowest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a +"&0it integer that specifies the highest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a +"&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The +"&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a +"&0it integer that specifies the total num0er of 0(tes decoded in the %F2 range.
The +"&0it field Descriptor;ame.C1.N is automaticall( created to refer to this portion of the resource
descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
98" Advanced Configuration and 'ower %nterface !pecification
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is Memor(. %f T(pe!tatic is specified, then
the secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame. CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information
TranslationDensity is an optional argument that specifies whether or not the translation from the primar( to
secondar( 0us is sparse =SparseTranslation> or dense =5enseTranslation>. %t is onl( used when
TranslationType is T)peTranslation. %f nothing is specified, then -enseTranslation is assumed. The 4&0it
field Descriptor;ame.CT3! is automaticall( created to refer to this portion of the resource descriptor,
where O4M is !parseTranslation and OM is -enseTranslation. !ee CT3! =page 3*6> for more information.
TypeSpecificAttrib'tes is an optional argument that specifies attri0utes specific to this resource t(pe. !ee
section +.".3.*.".4,LT(pe !pecific Attri0utesL.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The 1xtendedI3 macro evaluates to a 0uffer which contains a +"&0it %F2 resource descriptor, which
descri0es a range of %F2 addresses. The format of the +"&0it %F2 resource descriptor can 0e found in
J./tended Address !pace -escriptorL =page 3*">. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.40 ExtendedMemory (Extended Memory Resource Descriptor Macro)
S)ntax
E=ten"e"Ae2or: 'Resource-sage% !ecode% $sMinFixed% $sMaxFixed% Cac"ea.le%
Read+nd4rite% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#%
+ddressTranslation% RangeLengt"% TyeSecific+ttri.utes%
!escritor)a#e% Me#oryTye% TranslationTye(
Argu%ents
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the Memor( range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame.C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Is(in&ixed specifies whether the minimum address of this Memor( range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this Memor( range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 98*
Cac1eable specifies whether or not the memor( region is cachea0le =Cachea!le>, cachea0le and write&
com0ining =:riteCo%!ining>, cachea0le and prefetcha0le =Prefetcha!le> or uncachea0le
=0onCachea!le>. %f nothing is specified, then NonCachea0le is assumed. The 2&0it field
Descriptor;ame.CM.M is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Cachea0le, O2M is WriteCom0ining, O3M is 'refetcha0le and OM is NonCachea0le.
$eadAndJrite specifies whether or not the memor( region is read&onl( ="ead3nl)> or readFwrite
="ead:rite>. %f nothing is specified, then 3eadWrite is assumed. The 4&0it field Descriptor;ame.C3W is
automaticall( created to refer to this portion of the resource descriptor, where O4M is 3eadWrite and OM is
3ead2nl(.
Address4ran'larity evaluates to a +"&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the Memor( range must 0e aligned. The +"&0it field Descriptor;ame.C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a +"&0it integer that specifies the lowest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame .CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a +"&0it integer that specifies the highest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame .CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a +"&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The +"&0it field Descriptor;ame. CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a +"&0it integer that specifies the total num0er of 0(tes decoded in the Memor(
range. The +"&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
(emoryType is an optional argument that specifies the memor( usage. The memor( can 0e marked as
normal =Address"angeMe%or)>, used as AC'% ND! space =Address"ange07S>, used as AC'%
reclaima0le space =Address"angeACPI> or as s(stem reserved =Address"ange"eserved>. %f nothing is
specified, then Address3angeMemor( is assumed. The 2&0it field Descriptor;ame. CMT' is automaticall(
created in order to refer to this portion of the resource descriptor, where OM is Address3angeMemor(, O4M is
Address3ange3eserved, O2M is Address3angeAC'% and O3M is Address3angeND!.
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is %F2. %f T(pe!tatic is specified, then the
secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame. CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information.
TypeSpecificAttrib'tes is an optional argument that specifies attri0utes specific to this resource t(pe. !ee
section +.".3.*.".4,LT(pe !pecific Attri0utesL.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
98+ Advanced Configuration and 'ower %nterface !pecification
5escription
The 1xtendedMe%or) macro evaluates to a 0uffer which contains a +"&0it memor( resource descriptor,
which descri0es a range of memor( addresses. The format of the +"&0it memor( resource descriptor can 0e
found in J./tended Address !pace -escriptorL =page 3*">. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.41 ExtendedSpace (Extended Address Space Resource Descriptor
Macro)
S)ntax
E=ten"e"#pace 'ResourceTye% Resource-sage% !ecode% $sMinFixed% $sMaxFixed%
TyeSecificFlags% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#%
+ddressTranslation% RangeLengt"% TyeSecific+ttri.utes%
!escritor)a#e(
Argu%ents
$eso'rceType evaluates to an 8&0it integer that specifies the t(pe of this resource. Accepta0le values are
/C through /55.
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the Memor( range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Is(in&ixed specifies whether the minimum address of this Memor( range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this Memor( range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
TypeSpecific&lags evaluates to an 8&0it integer. The flags are specific to the $eso'rceType.
Address4ran'larity evaluates to a +"&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the Memor( range must 0e aligned. The +"&0it field Descriptor;ame. C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a +"&0it integer that specifies the lowest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a +"&0it integer that specifies the highest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a +"&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The +"&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 989
$ange,engt1 evaluates to a +"&0it integer that specifies the total num0er of 0(tes decoded in the Memor(
range. The +"&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
TypeSpecificAttrib'tes is an optional argument that specifies attri0utes specific to this resource t(pe. !ee
section +.".3.*.".4,LT(pe !pecific Attri0utesL.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The 1xtendedSpace macro evaluates to a 0uffer which contains a +"&0it Address !pace resource
descriptor, which descri0es a range of addresses. The format of the +"&0it Address!pace descriptor can 0e
found in J./tended Address !pace -escriptorL =page 3*">. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.42 External (Declare External Objects)
S)ntax
E=ternal (*./ect)a#e% *./ectTye% ReturnTye% Para#eterTyes)
Argu%ents
=b:ect;ame is a Name!tring. =b:ectType is an optional 20#ectT(peEe(word. %f not specified,
J2nknown3!CL t(pe is assumed.
$et'rnType is optional. %f the specified o0#ect t(pe is Method3!C, then this is the t(pe or t(pes which the
method can return. %f it is a single t(pe, there is a single =b:ectTypeLeyword present. %f it is an( of a
num0er of t(pes, then it is a package containing a comma&separated list of =b:ectTypeLeyword.
ParameterTypes is optional. %f the specified o0#ect t(pe is Method3!C, then this is a package containing
comma&separated t(pe or t(pes of each of the parameters. 5or each parameter t(pe, there is either a single
t(pe ke(word or a package containing a comma&separated list of =b:ectTypeLeyword!
5escription
The ./ternal compiler directive is to let the assem0ler know that the o0#ect is declared e/ternal to this ta0le
so that the assem0ler will not complain a0out the undeclared o0#ect. -uring compiling, the assem0ler will
create the e/ternal o0#ect at the specified place in the namespace =if a full path of the o0#ect is specified>, or
the o0#ect will 0e created at the current scope of the ./ternal term.
19.5.43 Fatal (Fatal Error Check)
S)ntax
Datal 'Tye% Code% +rg(
Argu%ents
This operation is used to inform the 2! that there has 0een an 2.M&defined fatal error.
5escription
%n response, the 2! must log the fatal event and perform a controlled 2! shutdown in a timel( fashion.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
988 Advanced Configuration and 'ower %nterface !pecification
19.5.44 Field (Declare Field Objects)
S)ntax
D1el" 'Region)a#e% +ccessTye% Loc,Rule% -dateRule( )5ieldXnit6i2t/
Argu%ents
$egion;ame refers to the host operation region.
AccessType defines the default access width of the field definition. %n general, accesses within the parent
o0#ect are performed naturall( aligned. %f desired, AccessType set to a value other than An)Acc can 0e used
to force minimum access width. Notice that the parent o0#ect must 0e a0le to accommodate the AccessType
width. 5or e/ample, an access t(pe of :ordAcc cannot read the last 0(te of an odd&length operation
region. The e/ceptions to natural alignment are the access t(pes used for a non&linear !M;us device. These
will 0e discussed in detail 0elow. Not all access t(pes are meaningful for ever( t(pe of operational region.
%f ,oc3$'le is set to Lock, accesses to modif( the component data o0#ects will ac:uire and release the
$lo0al 1ock. %f 0oth t(pes of locking occur, the $lo0al 1ock is ac:uired after the parent o0#ect Mute/.
Bpdate$'le is used to specif( how the unmodified 0its of a field are treated. 5or e/ample, if a field defines
a component data o0#ect of " 0its in the middle of a :ordAcc region, when those " 0its are modified the
Bpdate$'le specifies how the other 42 0its are treated.
5escription
-eclares a series of named data o0#ects whose data values are fields within a larger o0#ect. The fields are
parts of the o0#ect named 0( $egion;ame, 0ut their names appear in the same scope as the 6ield term.
5or e/ample, the field operator allows a larger operation region that represents a hardware register to 0e
0roken down into individual 0it fields that can then 0e accessed 0( the 0it field names. ./tracting and
com0ining the component field from its parent is done automaticall( when the field is accessed.
Accessing the contents of a field data o0#ect provides access to the corresponding field within the parent
o0#ect. %f the parent o0#ect supports Mute/ s(nchroniHation, accesses to modif( the component data o0#ects
will ac:uire and release ownership of the parent o0#ect around the modification!
The following ta0le relates region t(pes declared with an 2peration3egion term to the different access
t(pes supported for each region.
Ta!le +.-+/ 3peration"egion "egion T)pes and Access T)pes
"egion T)pe Per%itted Access T)pe>s? 5escription
!(stemMemor( <)teAcc X :ordAcc X 5:ordAcc X
K:ordAcc X An)Acc
All access allowed
!(stem%2 <)teAcc X :ordAcc X 5:ordAcc X
K:ordAcc X An)Acc
All access allowed
'C%CConfig <)teAcc X :ordAcc X 5:ordAcc X
K:ordAcc X An)Acc
All access allowed
.m0eddedControl <)teAcc ;(te access onl(
!M;us <ufferAcc 3eads and writes to this operation region
involve the use of a region specific data
0uffer. =!ee 0elow.>
CM2! <)teAcc ;(te access onl(
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 986
"egion T)pe Per%itted Access T)pe>s? 5escription
'ci;arTarget <)teAcc X :ordAcc X 5:ordAcc X
K:ordAcc X An)Acc
All access allowed
The named data o0#ects are provided in 5ield1ist as a series of names and 0it widths. ;its assigned no
name =or N,11> are skipped. The A!1 compiler supports an 3ffset >;(te2ffset? macro within a 5ield1ist
to skip to the 0it position of the supplied 0(te offset.
!M;us regions are inherentl( non&linear, where each offset within an !M;us address space represents a
varia0le siHed = to 32 0(tes> field. $iven this uni:ueness, !M;us operation regions include restrictions on
their field definitions and re:uire the use of an !M;us&specific data 0uffer when initiating transactions. !ee
section 4", JAC'% !(stem Management ;us %nterface !pecification,L for more information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
96 Advanced Configuration and 'ower %nterface !pecification
19.5.44.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 964
CMOS Protocols
This section descri0es how CM2! can 0e accessed from A!1. Most computers contain an 3TCFCM2!
device that can 0e represented as a linear arra( of 0(tes of non&volatile memor(. There is a standard
mechanism for accessing the first +" 0(tes of non&volatile 3AM in devices that are compati0le with the
Motorola 3TCFCM2! device that was in the %;M 'CFAT. ;ut toda(Ms 3TCFCM2! devices usuall( contain
more than +" 0(tes of non&volatile 3AM, and there is no standard for access to these e/tensions. To solve
this pro0lem, new 'n' %-s were created for each t(pe of e/tension. These are 'N';, 'N';4, and
'N';2. The specific devices that these 'n' %-s support are descri0ed in section 6.4+, J'CFAT
3TCFCM2! -eviceL, along with field definition A!1 e/ample code.
All 0(tes of CM2! that are related to the current time, da(, date, month, (ear and centur( are read&onl(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
962 Advanced Configuration and 'ower %nterface !pecification
19.5.44.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 963
PCI Device BAR Target Protocols
This section descri0es how 'C% devicesM control registers can 0e accessed from A!1. 'C% devices each
have an address space associated with them called the Configuration !pace. At offset /4 through offset
/29, there are as man( as si/ ;ase Address 3egisters, =;A3s>. These ;A3s contain the 0ase address of a
series of control registers =in %F2 or Memor( space> for the 'C% device. !ince a 'lug and 'la( 2! ma(
change the values of these ;A3s at an( time, A!1 cannot read and write from these deterministicall( using
%F2 or Memor( operation regions. 5urthermore, a 'lug and 'la( 2! will automaticall( assign ownership of
the %F2 and Memor( regions associated with these ;A3s to a device driver associated with the 'C% device.
An AC'% 2! =which must also 0e a 'lug and 'la( operating s(stem> will not allow A!1 to read and write
regions that are owned 0( native device drivers.
%f a platform uses a 'C% ;A3 Target operation region, an AC'% 2! will not load a native device driver for
the associated 'C% function. 5or e/ample, if an( of the ;A3s in a 'C% function are associated with a 'C%
;A3 Target operation region, then the 2! will assume that the 'C% function is to 0e entirel( under the
control of the AC'% ;%2!. No driver will 0e loaded. Thus, a 'C% function can 0e used as a platform
controller for some task =hot&plug 'C%, and so on> that the AC'% ;%2! performs.
19.5.44.2.1 Declaring a PCI BAR Target Operation Region
'C% ;A3s contain the 0ase address of an %F2 or Memor( region that a 'C% deviceMs control registers lie
within. .ach ;A3 implements a protocol for determining whether those control registers are within %F2 or
Memor( space and how much address space the 'C% device decodes. =!ee the 'C% !pecification for more
details.>
'C% ;A3 Target operation regions are declared 0( providing the offset of the ;A3 within the 'C% deviceMs
'C% configuration space. The ;A3 determines whether the actual access to the device occurs through an
%F2 or Memor( c(cle, not 0( the declaration of the operation region. The length of the region is similarl(
implied.
%n the term OperationRegion(PBAR, PciBarTarget, 0x10, 0x4), the offset is the offset of the ;A3
within the configuration space of the device. This would 0e an e/ample of an operation region that uses the
first ;A3 in the device.
19.5.44.2.2 PCI Header Types and PCI BAR Target Operation Regions
'C% ;A3 Target operation regions ma( onl( 0e declared in the scope of 'C% devices that have a 'C%
@eader T(pe of . 'C% devices with other header t(pes are 0ridges. The control of 'C% 0ridges is 0e(ond
the scope of A!1.
19.5.45 FindSetLeftBit (Find First Set Left Bit)
S)ntax
D1n"#et;eftB1t 'Source% Result( LB #nte,er
Argu%ents
So'rce is evaluated as an %nteger.
5escription
The one&0ased 0it location of the first M!0 =most significant set 0it> is optionall( stored into $es'lt. The
result of means no 0it was set, 4 means the left&most 0it set is the first 0it, 2 means the left&most 0it set is
the second 0it, and so on.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
96" Advanced Configuration and 'ower %nterface !pecification
19.5.46 FindSetRightBit (Find First Set Right Bit)
S)ntax
D1n"#etR1&>tB1t 'Source% Result( LB #nte,er
Argu%ents
So'rce is evaluated as an %nteger.
5escription
The one&0ased 0it location of the most 1!0 =least significant set 0it> is optionall( stored in $es'lt! The
result of means no 0it was set, 32 means the first 0it set is the thirt(&second 0it, 34 means the first 0it set
is the thirt(&first 0it, and so on.
19.5.47 FixedIO (Fixed IO Resource Descriptor Macro)
S)ntax
D1=e"I6 '+ddressBase% RangeLengt"% !escritor)a#e( LB Buffer
Argu%ents
Address)ase evaluates to a 4+&0it integer. %t descri0es the starting address of the fi/ed %F2 range. The field
Descriptor;ame. C;A! is automaticall( created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to an 8&0it integer. %t descri0es the length of the fi/ed %F2 range. The field
Descriptor;ame. C1.N is automaticall( created to refer to this portion of the resource descriptor.
Descriptor;ame evaluates to a name string which refers to the entire resource descriptor.
5escription
The 6ixedI3 macro evaluates to a 0uffer which contains a fi/ed %F2 resource descriptor. The format of the
fi/ed %F2 resource descriptor can 0e found in J5i/ed 1ocation %F2 'ort -escriptor L =page 334>. The macro
is designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.48 FromBCD (Convert BCD To Integer)
S)ntax
Dro2BCD 'BC!1alue% Result( LB #nte,er
Argu%ents
)CDAal'e is evaluated as an %nteger.
5escription
The 6ro%<C5 operation is used to convert )CDAal'e to a numeric format and store the numeric value
into $es'lt.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 96*
19.5.49 Function (Declare Control Method)
S)ntax
Dunct1on 'Function)a#e% ReturnTye% Para#eterTyes( )<erm6i2t/
Argu%ents
$et'rnType is optional and specifies the t(pe of the o0#ect returned 0( the method. %f the method does not
return an o0#ect, then nothing is specified or 2nknown3!C is specified. To specif( a single return t(pe,
simpl( use the =b:ectTypeLeyword =e.g. Int3!C, Package3!C, etc.>. To specif( multiple possi0le return
t(pes, enclose the comma&separated =b:ectTypeLeywords with curl( 0rackets. 5or e/ample< )Int64R$
Buffer64R/.
ParameterTypes is an optional, varia0le&length list of comma&separated named method parameters. 5or
each parameter, there is parameter t(pe or else #ust a parameter t(pe. The parameter t(pe consists of either
an =b:ectTypeLeyword or else a comma&separated list of =b:ectTypeLeyword enclosed in 0races. The
parameter names ma( not 0e the same as other parameters for the same method or ke(words. The( are
treated as ke(words within the scope of the method, s(non(ms for Arg/. There can 0e no more than seven
parameters.
5escription
6unction declares a named package containing a series of terms that collectivel( represent a control
method. A control method is a procedure that can 0e invoked to perform computation. 6unction opens a
name scope
!(stem software e/ecutes a control method 0( e/ecuting the terms in the package in order. 5or more
information on method e/ecution, see section *.*.2, JControl Method ./ecution.L
The current namespace location used during name creation is ad#usted to 0e the current location on the
namespace tree. An( names created within this scope are J0elowL the name of this package. The current
namespace location is assigned to the method package, and all namespace references that occur during
control method e/ecution for this package are relative to that location.
5unctions are e:uivalent to a Method that specifies 0otSerialiBed.
Co%pati!ilit) 0ote< New for AC'% 3.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
96+ Advanced Configuration and 'ower %nterface !pecification
1xa%ple
The following 0lock of A!1 sample code shows the use of 6unction for defining a control method<
5unction (%R&;$ #nt0b9$ Strin,0b9$ #nt0b9$ Strin,0b9//)

!ame (<emp$**)
Store (&r,($ <emp) // could have u2ed &r,4
Return (SiCe0f ()oncatenate (Parm4$ <emp)))
/
This declaration is e:uivalent to<
;ethod (%R&;$ 3$ !otSerialiCed$ ($ #nt0b9$ Strin,0b9$ #nt0b9$Strin,0b9//)

Y
/
19.5.50 If (Conditional Execution)
S)ntax
If 'Predicate( )<erm6i2t/
Argu%ents
Predicate is evaluated as an %nteger.
5escription
%f the Predicate is non&Hero, the term list of the If term is e/ecuted.
1xa%ple
The following e/amples all check for 0it 3 in Local$ 0eing set, and clear it if set.
// e-ample 4
#f (&nd (6ocal($ .))
R0r (6ocal($ .$ 6ocal()
/
// e-ample 3
Store (.$ 6ocal3)
#f (&nd (6ocal($ 6ocal3))
R0r (6ocal($ 6ocal3$ 6ocal()
/
19.5.51 Include (Include Additional ASL File)
S)ntax
Inclu"e 'FilePat")a#e(
Argu%ents
&ilePat1name is a !tring-ata data t(pe that contains the full 2! file s(stem path.
5escription
%nclude another file that contains A!1 terms to 0e inserted in the current file of A!1 terms. The file must
contain elements that are grammaticall( correct in the current scope.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 969
1xa%ple
#nclude (Pdataob9.a2lP)
19.5.52 Increment (Integer Increment)
S)ntax
Incre2ent '+ddend( LB #nte,er
Argu%ents
Addend is evaluated as an %nteger.
5escription
Add one to the Addend and place the result 0ack in Addend. .:uivalent to Add >Addend, 4, Addend?.
2verflow conditions are ignored and the result of an overflow is Hero.
19.5.53 Index (Indexed Reference To Member Object)
S)ntax
In"e= 'Source% $ndex% !estination( LB 0b9ectReference
Argu%ents
So'rce is evaluated to a 0uffer, string, or package data t(pe. Index is evaluated to an integer. The reference
to the nth o0#ect =where n \ Index> within So'rce is optionall( stored as a reference into Destination!
5escription
When So'rce evaluates to a ;uffer, %nde/ returns a reference to a ;uffer 5ield containing the nth 0(te in the
0uffer. When So'rce evaluates to a !tring, %nde/ returns a reference to a ;uffer 5ield containing the nth
character in the string. When So'rce evaluates to a 'ackage, %nde/ returns a reference to the nth o0#ect in
the package.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
968 Advanced Configuration and 'ower %nterface !pecification
19.5.53.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 966
Index with Packages
The following e/ample A!1 code shows a wa( to use the Index term to store into a local varia0le the si/th
element of the first package of a set of nested packages<
!ame (#0(D$ Pac+a,e ()
Pac+a,e ()
(-(4$ (-(F5=$ (-(F5=$ (-(4$ (-(=$ (-(4$ (-3G$ (-55$ (-5%$ (-(($ (-((
/$
Pac+a,e ()
(-(4$ (-(35=$ (-(35=$ (-(4$ (-(=$ (-(4$ (-3G$ (-55$ (-B%$ (-(($ (-((
/$
Pac+a,e ()
(-(4$ (-(F%=$ (-(F%=$ (-(4$ (-(=$ (-(4$ (-3G$ (-55$ (-5&$ (-(($ (-((
/$
Pac+a,e ()
-(4$ (-(3%=$ (-(3%=$ (-(4$ (-(=$ (-(4$ (-3G$ (-55$ (-B&$ (-(($ (-((
/$
Pac+a,e()
(-(4$ (-(4(($ (-(F5=$ (-(=$ (-(=$ (-(3$ (-3G$ (-3($ (-T5$ (-(($ (-(($
/
/)
// :et the Ith element of the fir2t pac+a,e
Store (DeRef0f (#nde- (DeRef0f (#nde- (#0(D$ ())$ G))$ 6ocal()
0oteH 5e"ef3f is necessar( in the first operand of the Store operator in order to get the actual o0#ect,
rather than #ust a reference to the o0#ect. %f 5e"ef3f were not used, then 1ocal would contain an o0#ect
reference to the si/th element in the first package rather than the num0er 4.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8 Advanced Configuration and 'ower %nterface !pecification
19.5.53.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 84
Index with Bufers
The following e/ample A!1 code shows a wa( to store into the third 0(te of a 0uffer<
!ame (BX55$ Buffer () (-(4$ (-(3$ (-(F$ (-(.$ (-(G/)
// Store (-GG into the third b1te of the buffer
Store ((-GG$ #nde- (BX55$ 3))
The Index operator returns a reference to an 8&0it ;uffer 5ield =similar to that created using
Create<)te6ield>.
%f So'rce is evaluated to a 0uffer data t(pe, the =b:ect$eference refers to the 0(te at Index within So'rce. %f
So'rce is evaluated to a 0uffer data t(pe, a Store operation will onl( change the 0(te at Index within
So'rce.
The following e/ample A!1 code shows the results of a series of Store operations<
!ame (SR)B$ Buffer () (-4($ (-3($ (-F($ (-.(/)
!ame (BX55$ Buffer () (-4$ (-3$ (-F$ (-./)
The following will store /98 into the 3
rd
0(te of the destination 0uffer<
Store ((-43F.GIT=$ #nde- (BX55$ 3))
The following will store /4 into the 2
nd
0(te of the destination 0uffer<
Store (SR)B$ #nde- (BX55$ 4))
The following will store /"4 =an OAM> into the "
th
0(te of the destination 0uffer<
Store ('&B)D%5:"*$ #nde- (BX55$ F))
Co%pati!ilit) 0oteH 5irst introduced in AC'% 2.. %n AC'% 4., the 0ehavior of storing data larger than 8&
0its into a 0uffer using %nde/ was undefined.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
82 Advanced Configuration and 'ower %nterface !pecification
19.5.53.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 83
Index with Strings
The following e/ample A!1 code shows a wa( to store into the 3
rd
character in a string<
!ame (S<R$ '&B)D%5:"#ZA6*)
// Store `"] ((-.=) into the third character to the 2trin,
Store ('"*$ #nde- (S<R$ 3))
The Index operator returns a reference to an 8&0it ;uffer 5ield =similar to that created using
Create<)te6ield>.
Co%pati!ilit) 0oteH 5irst introduced in AC'% 2..
19.5.54 IndexField (Declare Index/Data Fields)
S)ntax
In"e=D1el" '$ndex)a#e% !ata)a#e% +ccessTye% Loc,Rule% -dateRule(
)5ieldXnit6i2t/
Argu%ents
Index;ame and Data;ame refer to field unit o0#ects. AccessType, ,oc3$'le, Bpdate$'le, and &ield,ist are
the same format as the 6ield term.
5escription
Creates a series of named data o0#ects whose data values are fields within a larger o0#ect accessed 0( an
inde/Fdata&st(le reference to Index;ame and Data;ame.
This encoding is used to define named data o0#ects whose data values are fields within an inde/Fdata
register pair. This provides a simple wa( to declare register varia0les that occur 0ehind a t(pical inde/ and
data register pair.
Accessing the contents of an inde/ed field data o0#ect will automaticall( occur through the Data;ame
o0#ect 0( using an Index;ame o0#ect aligned on an AccessType 0oundar(, with s(nchroniHation occurring
on the operation region that contains the inde/ data varia0le, and on the $lo0al 1ock if specified 0(
,oc3$'le.
1xa%ple
The following is a 0lock of A!1 sample code using Index6ield#
Creates an inde/Fdata register in s(stem %F2 space made up of 8&0it registers.
Creates a 5.T field within the inde/ed range.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8" Advanced Configuration and 'ower %nterface !pecification
;ethod (%R4)
// Define a 3GIEb1te operational re,ion in S12tem#0 2pace
// and name it :#0(
0perationRe,ion (:#0($ 4$ (-43G$ (-4(()
// )reate a field named Pre2erve 2tructured a2 a 2e8uence
// of inde- and data b1te2
5ield (:#0($ B1te&cc$ !o6oc+$ Write&27ero2)
#DR($ =$
D&<($ =$
.
.
.
/
// )reate an #nde-5ield within #DR( V D&<( which ha2
// 5%<2 in the fir2t two bit2 of inde-ed off2et ($
// and another 3 5%<2 in the hi,h bit on inde-ed
// 35 and the low bit of inde-ed off2et F(
#nde-5ield (#DR($ D&<($ B1te&cc$ !o6oc+$ Pre2erve)
5%<($ 4$
5%<4$ 4$
0ff2et ((-3f)$ // 2+ip to b1te off2et 3f
$ T$ // 2+ip another T bit2
5%<F$ 4$
5%<.$ 4
/
// )lear 5%<F (inde- 35$ bit T)
Store (7ero$ 5%<F)
/ // %nd %R4
19.5.55 Interrupt (Interrupt Resource Descriptor Macro)
S)ntax
Interrupt 'Resource-sage% 0dgeLevel% +ctiveLevel% S"ared%
ResourceSource$ndex% ResourceSource% !escritor)a#e( )#nterrupt6i2t/ LB
Buffer
Argu%ents
$eso'rceBsage descri0es whether the device consumes the specified interrupt ="esourceConsu%er> or
produces it for use 0( a child device ="esourceProducer>. %f nothing is specified, then 3esourceConsumer
is assumed.
*dge,e2el descri0es whether the interrupt is edge triggered =1dge> or level triggered =Level>. The field
Descriptor;ame. C@. is automaticall( created to refer to this portion of the resource descriptor, where O4M
is .dge and OM is 1evel.
Acti2e,e2el descri0es whether the interrupt is active&high =ActiveHigh> or active&low =ActiveLow>. The
field Descriptor;ame. C11 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Active@igh and OM is Active1ow.
S1ared descri0es whether the interrupt can 0e shared with other devices =Shared> or not =1xclusive>. The
field Descriptor;ame. C!@3 is automaticall( created to refer to this portion of the resource descriptor,
where O4M is !hared and OM is ./clusive. %f nothing is specified, then ./clusive is assumed.
$eso'rceSo'rceIndex evaluates to an integer 0etween / and /55 and descri0es the resource source
inde/. %f it is not specified, then it is not generated.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8*
$eso'rceSo'rce evaluates to a string which uni:uel( identifies the resource source. %f it is not specified, it
is not generated.
Descriptor;ame evaluates to a name string which refers to the entire resource descriptor.
Interr'pt,ist evaluates to Hero or more comma&delimited 32&0it interrupt num0ers. The field
JDescriptor;ame. C%NTL is automaticall( created to refer to this portion of the resource descriptor.
5escription
The Interrupt macro evaluates to a 0uffer which contains an interrupt resource descriptor. The format of
the interrupt resource descriptor can 0e found in J./tended %nterrupt -escriptor L =page 3+2>. The macro is
designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.56 IO (IO Resource Descriptor Macro)
S)ntax
I6 '!ecode$ +ddressMin$ +ddressMax$ +ddress+lign#ent$ RangeLengt"$
!escritor)a#e( LB Buffer
Argu%ent
Decode descri0es whether the %F2 range uses 4&0it decode =5ecode+$> or 4+&0it decode =5ecode+->. The
field Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor,
where O4M is 5ecode+- and OM is 5ecode+$.
Address(in evaluates to a 4+&0it integer that specifies the minimum accepta0le starting address for the %F2
range. %t must 0e an even multiple of AddressAlignment. The field Descriptor;ame.CM%N is automaticall(
created to refer to this portion of the resource descriptor.
Address(ax evaluates to a 4+&0it integer that specifies the ma/imum accepta0le starting address for the %F2
range. %t must 0e an even multiple of AddressAlignment. The field Descriptor;ame.CMAA is automaticall(
created to refer to this portion of the resource descriptor.
AddressAlignment evaluates to an 8&0it integer that specifies the alignment granularit( for the %F2 address
assigned. The field Descriptor;ame. CA1N is automaticall( created to refer to this portion of the resource
descriptor.
$ange,engt1 evaluates to an 8&0it integer that specifies the num0er of 0(tes in the %F2 range. The field
Descriptor;ame. C1.N is automaticall( crated to refer to this portion of the resource descriptor.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The I3 macro evaluates to a 0uffer which contains an %2 resource descriptor. The format of the %2
descriptor can 0e found in J%F2 'ort -escriptorL =page 326>. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8+ Advanced Configuration and 'ower %nterface !pecification
19.5.57 IRQ (Interrupt Resource Descriptor Macro)
S)ntax
IRQ '0dgeLevel% +ctiveLevel% S"ared% !escritor)a#e( )#nterrupt6i2t/ LB
Buffer
Argu%ents
*dge,e2el descri0es whether the interrupt is edge triggered =1dge> or level triggered =Level>. The field
Descriptor;ame. C@. is automaticall( created to refer to this portion of the resource descriptor, where O4M
is 1dge and ActiveHigh and OM is Level and ActiveLow.
Acti2e,e2el descri0es whether the interrupt is active&high =ActiveHigh> or active&low =ActiveLow>. The
field Descriptor;ame. C11 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is 1dge and ActiveHigh and OM is Level and ActiveLow.
S1ared descri0es whether the interrupt can 0e shared with other devices =Shared> or not =1xclusive>. The
field Descriptor;ame. C!@3 is automaticall( created to refer to this portion of the resource descriptor,
where O4M is Shared and OM is 1xclusive. %f nothing is specified, then 1xclusive is assumed.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
Interr'pt,ist is an optional list of comma&separated 8&0it integer constants. .ach integer represents an
interrupt num0er.
5escription
The I"K macro evaluates to a 0uffer which contains an %3G resource descriptor. The format of the %3G
descriptor can 0e found in J%3G -escriptorL =page 324>. The macro produces the two&0(te form of the
descriptor. The macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.58 IRQNoFlags (Interrupt Resource Descriptor Macro)
S)ntax
IRQNoDla&s '!escritor)a#e( )$nterrutList/ LB Buffer
Argu%ents
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
Interr'pt,ist is an optional list of comma&separated 8&0it integer constants. .ach integer represents an
interrupt num0er.
5escription
The I"K0o6lags macro evaluates to a 0uffer which contains an active&high, edge&triggered %3G resource
descriptor. The format of the %3G descriptor can 0e found in %3G -escriptor =page 324>. The macro
produces the two&0(te form of the descriptor. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 89
19.5.59 LAnd (Logical And)
S)ntax
;An" 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and so'rce" are evaluated as integers.
5escription
%f 0oth values are non&Hero, True is returned< otherwise, 5alse is returned.
19.5.60 LEqual (Logical Equal)
S)ntax
;E0ual 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce". So'rce" is implicitl( converted if necessar( to match the t(pe of
So'rce1.
5escription
%f the values are e:ual, True is returnedK otherwise, 5alse is returned. 5or integers, a numeric compare is
performed. 5or strings and 0uffers, True is returned onl( if 0oth lengths are the same and the result of a
0(te&wise compare indicates e/act e:ualit(.
19.5.61 LGreater (Logical Greater)
S)ntax
;+reater 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce". So'rce" is implicitl( converted if necessar( to match the t(pe of
So'rce1.
5escription
%f So'rce1 is greater than So'rce". True is returnedK otherwise, 5alse is returned. 5or integers, a numeric
comparison is performed. 5or strings and 0uffers, a le/icographic comparison is performed. True is
returned if a 0(te&wise =unsigned> compare discovers at least one 0(te in So'rce1 that is numericall(
greater than the corresponding 0(te in So'rce". 6alse is returned if at least one 0(te in So'rce1 is
numericall( less than the corresponding 0(te in So'rce". %n the case of 0(te&wise e:ualit(, True is returned
if the length of So'rce1 is greater than So'rce", 6alse is returned if the length of So'rce1 is less than or
e:ual to So'rce".
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
88 Advanced Configuration and 'ower %nterface !pecification
19.5.62 LGreaterEqual (Logical Greater Than Or Equal)
S)ntax
;+reaterE0ual 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce". So'rce" is implicitl( converted if necessar( to match the t(pe of
So'rce1.
5escription
%f So'rce1 is greater than or e:ual to So'rce". True is returnedK otherwise, 5alse is returned. .:uivalent to
6!ot(66e22()). !ee the description of the 11ess operator.
19.5.63 LLess (Logical Less)
S)ntax
;;ess 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce". So'rce" is implicitl( converted if necessar( to match the t(pe of
So'rce1.
5escription
%f So'rce1 is less than So'rce". True is returnedK otherwise, 5alse is returned. 5or integers, a numeric
comparison is performed. 5or strings and 0uffers, a le/icographic comparison is performed. True is
returned if a 0(te&wise =unsigned> compare discovers at least one 0(te in So'rce1 that is numericall( less
than the corresponding 0(te in So'rce". 6alse is returned if at least one 0(te in So'rce1 is numericall(
greater than the corresponding 0(te in So'rce". %n the case of 0(te&wise e:ualit(, True is returned if the
length of So'rce1 is less than So'rce", 6alse is returned if the length of So'rce1 is greater than or e:ual to
So'rce".
19.5.64 LLessEqual (Logical Less Than Or Equal)
S)ntax
;;essE0ual 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce". So'rce" is implicitl( converted if necessar( to match the t(pe of
So'rce1.
5escription
%f So'rce1 is less than or e:ual to So'rce". True is returnedK otherwise 5alse is returned. .:uivalent to
6!ot(6:reater()). !ee the description of the 1$reater operator.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 86
19.5.65 LNot (Logical Not)
S)ntax
;Not 'Source( LB Boolean
Argu%ents
So'rce1 is evaluated as an integer.
5escription
%f the value is Hero True is returnedK otherwise, 5alse is returned.
19.5.66 LNotEqual (Logical Not Equal) )
S)ntax
;NotE0ual 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" must each evaluate to an integer, a string, or a 0uffer. The data t(pe of So'rce1
dictates the re:uired t(pe of So'rce". So'rce" is implicitl( converted if necessar( to match the t(pe of
So'rce1.

5escription
%f So'rce1 is not e:ual to So'rce", True is returnedK otherwise 5alse is returned. .:uivalent to
6!ot(6%8ual()).!ee the description of the 1.:ual operator.
19.5.67 Load (Load Defnition Block)
S)ntax
;oa" '*./ect% !!B6andle(
Argu%ents
The =b:ect parameter can either refer to an operation region field or an operation region directl(. %f the
o0#ect is an operation region, the operation region must 0e in !(stemMemor( space. The -efinition ;lock
should contain an AC'% -.!C3%'T%2NC@.A-.3 of t(pe !!-T. The -efinition ;lock must 0e totall(
contained within the supplied operation region or operation region field. 2!'M reads this ta0le into
memor(, the checksum is verified, and then it is loaded into the AC'% namespace. The DD)%andle
parameter is the handle to the -efinition ;lock that can 0e used to unload the -efinition ;lock at a future
time.
5escription
'erforms a run&time load of a -efinition ;lock.
The 2! can also check the 2.M Ta0le %- and 3evision %- against a data0ase for a newer revision
-efinition ;lock of the same 2.M Ta0le %- and load it instead.
The default namespace location to load the -efinition ;lock is relative to the current namespace. The new
-efinition ;lock can override this 0( specif(ing a0solute names or 0( ad#usting the namespace location
using the Scope operator.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
84 Advanced Configuration and 'ower %nterface !pecification
1oading a -efinition ;lock is a s(nchronous operation. ,pon completion of the operation, the -efinition
;lock has 0een loaded. The control methods defined in the -efinition ;lock are not e/ecuted during load
time.
19.5.68 LoadTable (Load Defnition Block From XSDT)
S)ntax
;oa"9a4le 'SignatureString% *0M$!String% *0MTa.le$!String% RootPat"String%
Para#eterPat"String% Para#eter!ata( LB DDB"andle
Argu%ents
The A!-T is searched for a ta0le where the !ignature field matches Signat'reString, the 2.M %- field
matches =*(IDString. and the 2.M Ta0le %- matches =*(TableIDString. All comparisons are case
sensitive. %f the Signat'reString is greater than four characters, the =*(IDString is greater than si/
characters, or the =*(TableID is greater than eight characters, a run&time error is generated. The 2! can
also check the 2.M Ta0le %- and 3evision %- against a data0ase for a newer revision -efinition ;lock of
the same 2.M Ta0le %- and load it instead.
The $ootPat1String specifies the root of the -efinition ;lock. %t is evaluated using normal scoping rules,
assuming that the scope of the LoadTa!le instruction is the current scope. The new -efinition ;lock can
override this 0( specif(ing a0solute names or 0( ad#usting the namespace location using the Scope
operator. %f $ootPat1String is not specified, JBL is assumed
%f ParameterPat1String and ParameterData are specified, the data o0#ect specified 0( ParameterData is
stored into the o0#ect specified 0( ParameterPat1String after the ta0le has 0een added into the namespace.
%f the first character of ParameterPat1String is a 0ackslash =OBM> or caret =O^M> character, then the path of the
o0#ect is ParameterPat1String. 2therwise, it is $ootPat1String.ParameterPat1String. %f the specified
o0#ect does not e/ist, a run&time error is generated.
The handle of the loaded ta0le is returned. %f no ta0le matches the specified signature, then is returned.
5escription
'erforms a run&time load of a -efinition ;lock from the A!-T. An( ta0le referenced 0( LoadTa!le must
0e in memor( marked 0( Address3ange3eserved or Address3angeND!.
1oading a -efinition ;lock is a s(nchronous operation. ,pon completion of the operation, the -efinition
;lock has 0een loaded. The control methods defined in the -efinition ;lock are not e/ecuted during load
time.
1xa%ple
Store (6oad<able ('0%;4*$ *;S0%;*$ *<&B6%4*$ *\\_SB.P)#(*$*;SD*$
Pac+a,e () ($*\\_SB.P)#(*/)$ 6ocal()
This operation would search through the 3!-T or A!-T for a ta0le with the signature J2.M4,L the 2.M
%- of JMS2.M,L and the ta0le %- of JTA;1.4.L %f not found, it would store Iero in 1ocal. 2therwise, it
will store a package containing and JBBC!;.'C%L into the varia0le at BC!;.'C%.MS-.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 844
19.5.69 Localx (Method Local Data Objects)
S)ntax
;ocal* U ;ocal7 U ;ocal. U ;ocalK U ;ocalL U ;ocalM U ;ocalN U ;ocalG
5escription
,p to 8 local o0#ects can 0e referenced in a control method. 2n entr( to a control method, these o0#ects are
uninitialiHed and cannot 0e used until some value or reference is stored into the o0#ect. 2nce initialiHed,
these o0#ects are preserved in the scope of e/ecution for that control method.
19.5.70 LOr (Logical Or)
S)ntax
;6r 'Source&% Source2( LB Boolean
Argu%ents
So'rce1 and So'rce" are evaluated as integers.
5escription
%f either value is non&Hero, True is returnedK otherwise, 5alse is returned.
19.5.71 Match (Find Object Match)
S)ntax
Aatc> 'Searc"Pac,age% *&% Matc"*./ect&% *2% Matc"*./ect2% Start$ndex( LB
6nes U #nte,er
Argu%ents
Searc1Pac3age is evaluated to a package o0#ect and is treated as a one&dimension arra(. =p1 and =p" are
match operators. (atc1=b:ect1 and (atc1=b:ect" are the o0#ects to 0e matched. StartIndex is the starting
inde/ within the Searc1Pac3age.
5escription
A comparison is performed for each element of the package, starting with the inde/ value indicated 0(
StartIndex = is the first element>. %f the element of Searc1Pac3age 0eing compared against is called PMiN'
then the comparison is<
If 'P;i= *& Matc"*./ect&( an" 'P;i= *2 Matc"*./ect2( t>en Aatc> OP i is returned.
%f the comparison succeeds, the inde/ of the element that succeeded is returnedK otherwise, the constant
o0#ect 301S is returned.
=p1 and =p" have the values and meanings listed in the Ta0le 49&46.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
842 Advanced Configuration and 'ower %nterface !pecification
Ta!le +.-+, Match Ter% 3perator Meanings
3perator 1ncoding Macro
T3,. I A donMt care, alwa(s returns T3,. MT3
.G I 3eturns T3,. if 'ViW \\ Match20#ect 4 M.G
1. I 3eturns T3,. if 'ViW T\ Match20#ect 2 M1.
1T I 3eturns T3,. if 'ViW T Match20#ect 3 M1T
$. I 3eturns T3,. if 'ViW )\ Match20#ect " M$.
$T I 3eturns T3,. if 'ViW ) Match20#ect * M$T
1xa%ple
5ollowing are some e/ample uses of Match<
!ame (P4$
Pac+a,e () 4H=4$ 4H=F$ 4H=G$ 4H=T$ 4H=H$ 4HH($ 4HH4$ 4HHF$ 4HHG$ 4HHT$ 4HHH$ 3((4/
)
// match 4HHF LL P4MiN
;atch (P4$ ;%J$ 4HHF$ ;<R$ ($ () // EB T$ 2ince P4MTN LL 4HHF
// match 4H=. LL P4MiN
;atch (P4$ ;%J$ 4H=.$ ;<R$ ($ () // EB 0!%S (not found)
// match P4MiN B 4H=. and P4MiN ?L 3(((
;atch (P4$ ;:<$ 4H=.$ ;6%$ 3((($ () // EB 3$ 2ince P4M3NB4H=. and P4M3N?L3(((
// match P4MiN B 4H=. and P4MiN ?L 3((($ 2tartin, with F
rd
element
;atch (P4$ ;:<$ 4H=.$ ;6%$ 3((($ F) // EB F$ fir2t match at or pa2t Start
19.5.72 Memory24 (Memory Resource Descriptor Macro)
S)ntax
Ae2or:.L 'Read+nd4rite$ +ddressMini#u#$ +ddressMaxi#u#$ +ddress+lign#ent$
RangeLengt"$ !escritor)a#e(
Argu%ents
$eadAndJrite specifies whether or not the memor( region is read&onl( ="ead3nl)> or readFwrite
="ead:rite>. %f nothing is specified, then 3eadWrite is assumed. The 4&0it field Descriptor;ame.C3W is
automaticall( created to refer to this portion of the resource descriptor, where O4M is 3eadWrite and OM is
3ead2nl(.
Address(inim'm evaluates to a 4+&0it integer that specifies 0its V8<23W of the lowest possi0le 0ase address
of the memor( range. All other 0its are assumed to 0e Hero. The value must 0e an even multiple of
AddressAlignment. The 4+&0it field Descriptor;ame.CM%N is automaticall( created to refer to this portion
of the resource descriptor.
Address(axim'm evaluates to a 4+&0it integer that specifies 0its V8<23W of the highest possi0le 0ase address
of the memor( range. All other 0its are assumed to 0e Hero. The value must 0e an even multiple of
AddressAlignment. The 4+&0it field Descriptor;ame.CMAA is automaticall( created to refer to this portion
of the resource descriptor.
AddressAlignment evaluates to a 4+&0it integer that specifies 0its V8<23W of the re:uired alignment for the
memor( range. All other 0its are assumed to 0e Hero. The address selected must 0e an even multiple of this
value. The 4+&0it field Descriptor;ame. CA1N is automaticall( created to refer to this portion of the
resource descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 843
$ange,engt1 evaluates to a 4+&0it integer that specifies the total num0er of 0(tes decoded in the memor(
range. The 4+&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The Me%or)&( macro evaluates to a 0uffer which contains an 2"&0it memor( descriptor. The format of the
2"&0it memor( descriptor can 0e found in J2"&;it Memor( 3ange -escriptor L =page 338>. The macro is
designed to 0e used inside of a 3esourceTemplate =page 826>.
N2T.< The use of Me%or)&( is deprecated and should not 0e used in new designs.
19.5.73 Memory32 (Memory Resource Descriptor Macro)
S)ntax
Ae2or:K. 'Read+nd4rite$ +ddressMini#u#$ +ddressMaxi#u#$ +ddress+lign#ent$
RangeLengt"$ !escritor)a#e(
Argu%ents
$eadAndJrite specifies whether or not the memor( region is read&onl( ="ead3nl)> or readFwrite
="ead:rite>. %f nothing is specified, then 3eadWrite is assumed. The 4&0it field Descriptor;ame.C3W is
automaticall( created to refer to this portion of the resource descriptor, where O4M is 3eadWrite and OM is
3ead2nl(.
Address(inim'm evaluates to a 32&0it integer that specifies the lowest possi0le 0ase address of the memor(
range. The value must 0e an even multiple of AddressAlignment. The 32&0it field Descriptor;ame.CM%N is
automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 32&0it integer that specifies the highest possi0le 0ase address of the
memor( range. The value must 0e an even multiple of AddressAlignment. The 32&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressAlignment evaluates to a 32&0it integer that specifies the re:uired alignment for the memor( range.
The address selected must 0e an even multiple of this value. The 32&0it field Descriptor;ame. CA1N is
automaticall( created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 32&0it integer that specifies the total num0er of 0(tes decoded in the memor(
range. The 32&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The Me%or)#& macro evaluates to a 0uffer which contains a 32&0it memor( descriptor, which descri0es a
memor( range with a minimum, a ma/imum and an alignment. The format of the 32&0it memor( descriptor
can 0e found in J32&;it Memor( 3ange -escriptor L =page 3"2>. The macro is designed to 0e used inside
of a 3esourceTemplate =page 826>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
84" Advanced Configuration and 'ower %nterface !pecification
19.5.74 Memory32Fixed (Memory Resource Descriptor Macro)
S)ntax
Ae2or:K.D1=e" 'Read+nd4rite$ +ddressBase$ RangeLengt"$ !escritor)a#e(
Argu%ents
$eadAndJrite specifies whether or not the memor( region is read&onl( ="ead3nl)> or readFwrite
="ead:rite>. %f nothing is specified, then 3eadWrite is assumed. The 4&0it field Descriptor;ame.C3W is
automaticall( created to refer to this portion of the resource descriptor, where O4M is 3eadWrite and OM is
3ead2nl(.
Address)ase evaluates to a 32&0it integer that specifies the 0ase address of the memor( range. The 32&0it
field Descriptor;ame. C;A! is automaticall( created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 32&0it integer that specifies the total num0er of 0(tes decoded in the memor(
range. The 32&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The Me%or)#&6ixed macro evaluates to a 0uffer which contains a 32&0it memor( descriptor, which
descri0es a fi/ed range of memor( addresses. The format of the fi/ed 32&0it memor( descriptor can 0e
found in 32&;it 5i/ed Memor( 3ange -escriptor =page 3"*>. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.75 Method (Declare Control Method)
S)ntax
Aet>o" 'Met"od)a#e% )u#+rgs% Seriali3eRule% SyncLevel% ReturnTye%
Para#eterTyes( )<erm6i2t/
Argu%ents
Creates a new control method of name (et1od;ame! (et1od;ame is evaluated as a Namestring data t(pe.
;'mArgs is evaluated as an integer data t(pe.
$et'rnType is optional and specifies the t(pe of the o0#ect returned 0( the method. %f the method does not
return an o0#ect, then nothing is specified or 2nknown3!C is specified. To specif( a single return t(pe,
simpl( use the =b:ectTypeLeyword =e.g. Int3!C, Package3!C, etc.>. To specif( multiple possi0le return
t(pes, enclose the comma&separated =b:ectTypeLeywords with curl( 0rackets. 5or e/ample< )Int64R$
Buffer64R/.
ParameterTypes is an optional package containing comma&separated t(pe or t(pes of each of the
parameters. 5or each parameter t(pe, there is either a single t(pe ke(word or a package containing a
comma&separated lists of =b:ectTypeLeyword. %f specified, then the num0er of t(pes must match ;'mArgs.
5escription
-eclares a named package containing a series of o0#ect references that collectivel( represent a control
method, which is a procedure that can 0e invoked to perform computation. Method opens a name scope.
!(stem software e/ecutes a control method 0( referencing the o0#ects in the package in order. 5or more
information on method e/ecution, see section *.*.2, JControl Method ./ecution.L
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 84*
The current namespace location used during name creation is ad#usted to 0e the current location on the
namespace tree. An( names created within this scope are J0elowL the name of this package. The current
namespace location is assigned to the method package, and all namespace references that occur during
control method e/ecution for this package are relative to that location.
%f a method is declared as SerialiBed, an implicit mute/ associated with the method o0#ect is ac:uired at the
specified Sync,e2el. %f no Sync,e2el is specified, Sync,e2el 5 is assumed. The serialiHe rule can 0e used to
prevent reentering of a method. This is especiall( useful if the method creates namespace o0#ects. Without
the serialiHe rule, the reentering of a method will fail when it attempts to create the same namespace o0#ect.
Also notice that all namespace o0#ects created 0( a method have temporar( lifetime. When method
e/ecution e/its, the created o0#ects will 0e destro(ed.
1xa%ple
The following 0lock of A!1 sample code shows a use of Method for defining a control method that turns
on a power resource.
;ethod (_0!)
Store (0ne$ :#0.#D%P) // a22ert power
Sleep (4() // wait 4(m2
Store (0ne$ :#0.#D%R) // deEa22ert re2etQ
Stall (4() // wait 4(u2
Store (7ero$ :#0.#D%#) // deEa22ert i2olation
/
19.5.76 Mid (Extract Portion of Bufer or String)
S)ntax
A1" 'Source% $ndex% Lengt"% Result( LB Buffer or Strin,
Argu%ents
So'rce is evaluated as either a ;uffer or !tring. Index and ,engt1 are evaluated as %ntegers.
5escription
%f So'rce is a 0uffer, then ,engt1 0(tes, starting with the Indexth 0(te =Hero&0ased> are optionall( copied
into $es'lt. %f Index is greater than or e:ual to the length of the 0uffer, then the result is an empt( 0uffer.
2therwise, if Index E ,engt1 is greater than or e:ual to the length of the 0uffer, then onl( 0(tes up to an
including the last 0(te are included in the result.
%f So'rce is a string, then ,engt1 characters, starting with the Indexth character =Hero&0ased> are optionall(
copied into $es'lt. %f Index is greater than or e:ual to the length of the 0uffer, then the result is an empt(
string. 2therwise, if Index E ,engt1 is greater than or e:ual to the length of the string, then onl( 0(tes up to
an including the last character are included in the result.
19.5.77 Mod (Integer Modulo)
S)ntax
Ao" '!ividend% !ivisor% Result( LB #nte,er
Argu%ents
Di2idend and Di2isor are evaluated as %ntegers.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
84+ Advanced Configuration and 'ower %nterface !pecification
5escription
The Di2idend is divided 0( Di2isor, and then the resulting remainder is optionall( stored into $es'lt. %f
Di2isor evaluates to Hero, a fatal e/ception is generated.
19.5.78 Multiply (Integer Multiply)
S)ntax
Ault1pl: 'Multilicand% Multilier% Result( LB #nte,er
Argu%ents
('ltiplicand and ('ltiplier are evaluated as %ntegers.
5escription
The ('ltiplicand is multiplied 0( ('ltiplier and the result is optionall( stored into $es'lt! 2verflow
conditions are ignored and results are undefined.
19.5.79 Mutex (Declare Synchronization/Mutex Object)
S)ntax
Aute= 'Mutex)a#e% SyncLevel(
Argu%ents
Creates a data mute/ s(nchroniHation o0#ect named ('tex;ame, with level from to 4* specified 0(
Sync,e2el.
5escription
A s(nchroniHation o0#ect provides a control method with a mechanism for waiting for certain events. To
prevent deadlocks, wherever more than one s(nchroniHation o0#ect must 0e owned, the s(nchroniHation
o0#ects must alwa(s 0e released in the order opposite the order in which the( were ac:uired. The Sync,e2el
parameter declares the logical nesting level of the s(nchroniHation o0#ect. All AcJuire terms must refer to a
s(nchroniHation o0#ect with an e:ual or greater Sync,e2el to current level, and all "elease terms must refer
to a s(nchroniHation o0#ect with e:ual or lower Sync,e2el to the current level.
Mute/ s(nchroniHation provides the means for mutuall( e/clusive ownership. 2wnership is ac:uired using
an AcJuire term and is released using a "elease term. 2wnership of a Mute/ must 0e relin:uished 0efore
completion of an( invocation. 5or e/ample, the top&level control method cannot e/it while still holding
ownership of a Mute/. Ac:uiring ownership of a Mute/ can 0e nested.
The !(nc1evel of a thread 0efore ac:uiring an( mute/es is Hero. The !(nc1evel of the $lo0al 1ock =BC$1>
is Hero.
19.5.80 Name (Declare Named Object)
S)ntax
Na2e '*./ect)a#e% *./ect(
Argu%ents
Creates a new o0#ect named =b:ect;ame! Attaches =b:ect to =b:ect;ame in the $lo0al AC'% namespace.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 849
5escription
Creates =b:ect;ame in the namespace, which references the =b:ect.
1xa%ple
The following e/ample creates the name 'TTA in the root of the namespace that references a package.
!ame (\P<<R$ // Port to Port <ran2late <able
Pac+a,e () Pac+a,e () (-.F$ (-GH/$ Pac+a,e) (-H($ (-55//
)
The following e/ample creates the name CNT in the root of the namespace that references an integer data
o0#ect with the value *.
!ame (\)!<$ G)
19.5.81 NAnd (Integer Bitwise Nand)
S)ntax
NAn" 'Source&% Source2$ Result( LB #nte,er
Argu%ents
So'rce1 and So'rce" are evaluated as %ntegers.
5escription
A 0itwise 0A05 is performed and the result is optionall( stored in $es'lt!
19.5.82 NoOp Code (No Operation)
S)ntax
No6p
5escription
This operation has no effect.
19.5.83 NOr (Integer Bitwise Nor)
S)ntax
N6r 'Source&% Source2% Result( LB #nte,er
Argu%ents
So'rce1 and So'rce" are evaluated as %ntegers.
5escription
A 0itwise 03" is performed and the result is optionall( stored in $es'lt!
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
848 Advanced Configuration and 'ower %nterface !pecification
19.5.84 Not (Integer Bitwise Not)
S)ntax
Not 'Source% Result( LB #nte,er
Argu%ents
So'rce is evaluated as an integer data t(pe.
5escription
A 0itwise 03T is performed and the result is optionall( stored in $es'lt.
19.5.85 Notify (Notify Object of Event)
S)ntax
Not1f: '*./ect% )otification1alue(
Argu%ents
Notifies the 2! that the ;otificationAal'e for the =b:ect has occurred. =b:ect must 0e a reference to a
device, processor, or thermal Hone o0#ect.
5escription
=b:ect t(pe determines the notification values. 5or e/ample, the notification values for a thermal Hone
o0#ect are different from the notification values used for a device o0#ect. ,ndefined notification values are
treated as reserved and are ignored 0( the 2!.
5or lists of defined Notification values, see section +.+.3, J-evice 20#ect Notifications.L
19.5.86 ObjectType (Get Object Type)
S)ntax
64Rect9:pe '*./ect( LB #nte,er
Argu%ents
=b:ect is an( valid o0#ect.
5escription
The e/ecution result of this operation is an integer that has the numeric value of the o0#ect t(pe for =b:ect.
The o0#ect t(pe codes are listed in Ta0le 49&2. Notice that if this operation is performed on an o0#ect
reference such as one produced 0( the Alias' Index' or "ef3f statements, the o0#ect t(pe of the 0ase o0#ect
is returned. 5or t(peless o0#ects such as predefined scope names =in other words, GDS<, GD;P1, etc.>, the
t(pe value =2ninitialiBed> is returned.
Ta!le +.-&$ 7alues "eturned <) the 3!CectT)pe 3perator
7alue Meaning
,ninitialiHed
4 %nteger
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 846
7alue Meaning
2 !tring
3 ;uffer
" 'ackage
* 5ield ,nit
+ -evice
9 .vent
8 Method
6 Mute/
4 2peration 3egion
44 'ower 3esource
42 'rocessor
43 Thermal ?one
4" ;uffer 5ield
4* --; @andle
4+ -e0ug 20#ect
)4+ 3eserved
19.5.87 One (Constant One Object)
S)ntax
6ne
5escription
The constant 3ne o0#ect is an o0#ect of t(pe %nteger that will alwa(s read the 1!; as set and all other 0its
as clear =that is, the value of 4>. Writes to this o0#ect are not allowed.
19.5.88 Ones (Constant Ones Object)
S)ntax
6nes
5escription
The constant 3nes o0#ect is an o0#ect of t(pe %nteger that will alwa(s read as all 0its set. Writes to this
o0#ect are not allowed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
82 Advanced Configuration and 'ower %nterface !pecification
19.5.89 OperationRegion (Declare Operation Region)
S)ntax
6perat1onRe&1on 'Region)a#e% RegionSace% *ffset% Lengt"(
Argu%ents
-eclares an operation region named $egion;ame. =ffset is the offset within the selected $egionSpace at
which the region starts =0(te&granular>, and ,engt1 is the length of the region in 0(tes.
5escription
An 2peration 3egion is a t(pe of data o0#ect where read or write operations to the data o0#ect are
performed in some hardware space. 5or e/ample, the -efinition ;lock can define an 2peration 3egion
within a 0us, or s(stem %F2 space. An( reads or writes to the named o0#ect will result in accesses to the %F2
space.
2peration regions are regions in some space that contain hardware registers for excl'si2e use 0( AC'%
control methods. %n general, no hardware register =at least 0(te&granular> within the operation region
accessed 0( an AC'% control method can 0e shared with an( accesses from an( other source, with the
e/ception of using the $lo0al 1ock to share a region with the firmware. The entire 2peration 3egion can
0e allocated for e/clusive use to the AC'% su0s(stem in the host 2!.
2peration 3egions that are defined within the scope of a method are the e/ception to this rule. These
2peration 3egions are known as J-(namicL since the 2! has no idea that the( e/ist or what registers the(
use until the control method is e/ecuted. ,sing a -(namic !(stem%2 or !(stemMemor( 2peration 3egion
is not recommended since the 2! cannot g'arantee e/clusive access. All other t(pes of 2peration 3egions
ma( 0e -(namic.
2peration 3egions have Jvirtual contentL and are onl( accessi0le via 6ield o0#ects 2peration 3egion
o0#ects ma( 0e defined down to actual 0it controls using 6ield data o0#ect definitions. The actual 0it
content of a 6ield is comprised of 0its from within a larger <uffer that are normaliHed for that field =in
other words, shifted down and masked to the proper length>, and as such the data t(pe of a 6ield is <uffer.
Therefore fields that are 32 0its or less in siHe ma( 0e read and stored as %ntegers.
An 2peration 3egion o0#ect implicitl( supports Mute/ s(nchroniHation. ,pdates to the o0#ect, or a 6ield
data o0#ect for the region' will automaticall( s(nchroniHe on the 2peration 3egion o0#ectK however, a
control method ma( also e/plicitl( s(nchroniHe to a region to prevent other accesses to the region =from
other control methods>. Notice that according to the control method e/ecution model, control method
e/ecution is non&preemptive. ;ecause of this, e/plicit s(nchroniHation to an 2peration 3egion needs to 0e
done onl( in cases where a control method 0locks or (ields e/ecution and where the t(pe of register usage
re:uires such s(nchroniHation.
There are seven predefined 2peration 3egion t(pes specified in AC'%<
!(stemMemor(
4 !(stem%2
2 'C%CConfig
3 .m0eddedControl
" !M;us
* CM2!
+ 'C%;A3Target
%n addition, 2.Ms ma( define 2peration 3egions t(pes $x/$ to $x66.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 824
1xa%ple
The following e/ample A!1 code shows the use of 3peration"egion com0ined with 6ield to descri0e
%-. and 4 controlled through general %F2 space, using one 5.T.
0perationRe,ion (:#0$ S12tem#0$ (-43G$ (-4)
5ield (:#0$ B1te&cc$ !o6oc+$ Pre2erve)
#D%#$ 4$ // #D%#S0_%! E i2olation buffer
#D%P$ 4$ // #D%_PWR_%! E power
#D%R$ 4 // #D%RS<Q_%! E re2etQ
/
19.5.90 Or (Integer Bitwise Or)
S)ntax
6r 'Source&% Source2% Result( LB #nte,er
Argu%ents
So'rce1 and So'rce" are evaluated as %ntegers.
5escription
A 0itwise 3" is performed and the result is optionall( stored in $es'lt!
19.5.91 Package (Declare Package Object)
S)ntax
Pac%a&e ')u#0le#ents( )Pac+a,e6i2t/ LB Pac+a,e
Argu%ents
;'m*lements is evaluated as an integer data t(pe. Pac3age,ist is an initialiHer list of o0#ects.
5escription
-eclares an unnamed aggregation of data items, constants, andFor references to control methods. The siHe
of the package is ;'m*lements. Pac3age,ist contains the list data items, constants, andFor control method
references used to initialiHe the package.
%f ;'m*lements is a0sent, it is set to match the num0er of elements in the 'ackage1ist. %f ;'m*lements is
present and greater than the num0er of elements in the 'ackage1ist, the default entr( of t(pe ,ninitialiHed
=see 3!CectT)pe> is used to initialiHe the package elements 0e(ond those initialiHed from the 'ackage1ist.
.valuating an undefined element will (ield an error, 0ut elements can 0e assigned values to make them
defined. %t is an error for ;'m*lements to 0e less than the num0er of elements in the 'ackage1ist. %t is an
error for ;'m*lements to e/ceed 2**.
There are two t(pes of package elements in the 'ackage1ist< data o0#ects and references to control
methods.
0oteH %f non&method code&package o0#ects are implemented in an A!1 compiler, evaluations of these
o0#ects are performed within the scope of the invoking method, and are performed when the containing
definition 0lock is loaded. This means that the targets of all stores, loads, and references to the locals,
arguments, or constant terms are in the same name scope as the invoking method.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
822 Advanced Configuration and 'ower %nterface !pecification
1xa%ples
./ample 4< Note
Pac+a,e ()
F$
H$
'&)P# 4.( )0;P6#&!<*$
Pac+a,e ()
')hec+SumLB*$
Pac+a,e () T$ H/
/$
(
/
./ample 2< This e/ample defines and initialiHes a two&dimensional arra(.
Pac+a,e ()
Pac+a,e () 44$ 43$ 4F/$
Pac+a,e () 34$ 33$ 3F/
/
./ample 3< This e/ample is a legal encoding, 0ut of no apparent use.
Pac+a,e () /
./ample "< This encoding allocates space for ten things to 0e defined later =see the 0a%e and Index term
definitions>.
Pac+a,e (4() /
0oteH The a0ilit( to create varia0le&siHed packages was first introduced in AC'% 2.. AC'% 4. onl(
allowed fi/ed&siHe packages with up to 2** elements.
19.5.92 PowerResource (Declare Power Resource)
S)ntax
Po<erResource 'Resource)a#e% Syste#Level% Resource*rder( )0b9ect6i2t/
Argu%ents
-eclares a power resource named $eso'rce;ame. Power"esource opens a name scope.
5escription
5or a definition of the Power"esource term, see section 9.4, J-eclaring a 'ower 3esource 20#ect.L
19.5.93 Processor (Declare Processor)
S)ntax
Processor 'Processor)a#e% Processor$!% PBloc,+ddress% P.loc,Lengt"(
)0b9ect6i2t/
Argu%ents
-eclares a named processor o0#ect named Processor;ame. Processor opens a name scope. .ach processor
is re:uired to have a uni:ue ProcessorID value that is uni:ue from an( other ProcessorID value.
5or each processor in the s(stem, the AC'% ;%2! declares one processor o0#ect in the namespace an(where
within the BC!; scope. 5or compati0ilit( with operating s(stems implementing AC'% 4., the processor
o0#ect ma( also 0e declared under the BC'3 scope. An AC'%&compati0le namespace ma( define 'rocessor
o0#ects in either the BC!; or BC'3 scope 0ut not 0oth.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 823
P)loc3Address provides the s(stem %F2 address for the processors register 0lock. .ach processor can
suppl( a different such address. P)loc3,engt1 is the length of the processor register 0lock, in 0(tes and is
either =for no 'C;1E> or +. With one e/ception, all processors are re:uired to have the same
P)loc3,engt1! The e/ception is that the 0oot processor can have a non&Hero P)loc3,engt1 when all other
processors have a Hero P)loc3,engt1! %t is valid for ever( processor to have a ';lock1ength of .
5escription
The following 0lock of A!1 sample code shows a use of the Processor term.
Proce22or (
\_PR.)PX($ // !ame2pace name
4$
(-43($ // PBl+ 212tem #0 addre22
I // PBl+6en
) 0b9ect6i2t/
The 20#ect1ist is an optional list that ma( contain an ar0itrar( num0er of A!1 20#ects. 'rocessor&specific
o0#ects that ma( 0e included in the 20#ect1ist include C'TC, CC!T, C'CT, C'!!, C''C, C'!-, CT!-,
CC!-, C'-C, CT'C, CT!!, and C2!C. These processor&specific o0#ects can onl( 0e specified when the
processor o0#ect is declared within the BC!; scope. 5or a full definition of these o0#ects, see section 8,
J'rocessor 'ower and 'erformance !tate Configuration and Control.L
19.5.94 QWordIO (QWord IO Resource Descriptor Macro)
S)ntax
Q5or"I6 'Resource-sage$ $sMinFixed$ $sMaxFixed$ !ecode$ $S+Ranges$
+ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#$ +ddressTranslation$
RangeLengt"$ ResourceSource$ndex% ResourceSource% !escritor)a#e%
TranslationTye% Translation!ensity(
Argu%ents
$eso'rceBsage specifies whether the %F2 range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Is(in&ixed specifies whether the minimum address of this %F2 range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this %F2 range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
Decode specifies whether or not the device decodes the %F2 range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
ISA$anges specifies whether the %F2 ranges specifies are limited to valid %!A %F2 ranges =ISA3nl)>, valid
non&%!A %F2 ranges =0onISA3nl)> or encompass the whole range without limitation =1ntire"ange>. The
2&0it field Descriptor;ame.C3N$ is automaticall( created to refer to this portion of the resource descriptor,
where O4M is Non%!A2nl(, O2M is %!A2nl( and OM is .ntire3ange.
Address4ran'larity evaluates to a +"&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the %F2 range must 0e aligned. The +"&0it field Descriptor;ame. C$3A is automaticall( created to refer to
this portion of the resource descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
82" Advanced Configuration and 'ower %nterface !pecification
Address(inim'm evaluates to a +"&0it integer that specifies the lowest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a +"&0it integer that specifies the highest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a +"&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The +"&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a +"&0it integer that specifies the total num0er of 0(tes decoded in the %F2 range.
The +"&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the resource
descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this %F2 range is allocated.
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is Memor(. %f T(pe!tatic is specified, then
the secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame. CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information
TranslationDensity is an optional argument that specifies whether or not the translation from the primar( to
secondar( 0us is sparse =SparseTranslation> or dense =5enseTranslation>. %t is onl( used when
TranslationType is T)peTranslation. %f nothing is specified, then -enseTranslation is assumed. The 4&0it
field Descriptor;ame. CT3! is automaticall( created to refer to this portion of the resource descriptor,
where O4M is !parseTranslation and OM is -enseTranslation. !ee CT3! =page 3*6> for more information.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The K:ordI3 macro evaluates to a 0uffer which contains a +"&0it %F2 resource descriptor, which
descri0es a range of %F2 addresses. The format of the +"&0it %F2 resource descriptor can 0e found in GWord
Address !pace -escriptor =page 3"9>. The macro is designed to 0e used inside of a 3esourceTemplate
=page 826>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 82*
19.5.95 QWordMemory (QWord Memory Resource Descriptor Macro)
S)ntax
Q5or"Ae2or: 'Resource-sage% !ecode% $sMinFixed% $sMaxFixed% Cac"ea.le%
Read+nd4rite% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#%
+ddressTranslation% RangeLengt"% ResourceSource$ndex% ResourceSource%
!escritor)a#e% Me#oryTye% TranslationTye(
Argu%ents
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the Memor( range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Is(in&ixed specifies whether the minimum address of this Memor( range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this Memor( range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
Cac1eable specifies whether or not the memor( region is cachea0le =Cachea!le>, cachea0le and write&
com0ining =:riteCo%!ining>, cachea0le and prefetcha0le =Prefetcha!le> or uncachea0le
=0onCachea!le>. %f nothing is specified, then NonCachea0le is assumed. The 2&0it field Descriptor;ame.
CM.M is automaticall( created to refer to this portion of the resource descriptor, where O4M is Cachea0le,
O2M is WriteCom0ining, O3M is 'refetcha0le and OM is NonCachea0le.
$eadAndJrite specifies whether or not the memor( region is read&onl( ="ead3nl)> or readFwrite
="ead:rite>. %f nothing is specified, then 3eadWrite is assumed. The 4&0it field Descriptor;ame.C3W is
automaticall( created to refer to this portion of the resource descriptor, where O4M is 3eadWrite and OM is
3ead2nl(.
Address4ran'larity evaluates to a +"&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the Memor( range must 0e aligned. The +"&0it field Descriptor;ame. C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a +"&0it integer that specifies the lowest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a +"&0it integer that specifies the highest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a +"&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The +"&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
82+ Advanced Configuration and 'ower %nterface !pecification
$ange,engt1 evaluates to a +"&0it integer that specifies the total num0er of 0(tes decoded in the Memor(
range. The +"&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this Memor( range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
(emoryType is an optional argument that specifies the memor( usage. The memor( can 0e marked as
normal =Address"angeMe%or)>, used as AC'% ND! space =Address"ange07S>, used as AC'%
reclaima0le space =Address"angeACPI> or as s(stem reserved =Address"ange"eserved>. %f nothing is
specified, then Address3angeMemor( is assumed. The 2&0it field Descriptor;ame. CMT' is automaticall(
created in order to refer to this portion of the resource descriptor, where OM is Address3angeMemor(, O4M is
Address3ange3eserved, O2M is Address3angeAC'% and O3M is Address3angeND!.
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is %F2. %f T(pe!tatic is specified, then the
secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame. CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The K:ordMe%or) macro evaluates to a 0uffer which contains a +"&0it memor( resource descriptor,
which descri0es a range of memor( addresses. The format of the +"&0it memor( resource descriptor can 0e
found in JGWord Address !pace -escriptor L =page 3"9>. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.96 QWordSpace (QWord Space Resource Descriptor Macro)
S)ntax
Q5or"#pace 'ResourceTye% Resource-sage% !ecode% $sMinFixed% $sMaxFixed%
TyeSecificFlags% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#%
+ddressTranslation% RangeLengt"% ResourceSource$ndex% ResourceSource%
!escritor)a#e(
Argu%ents
$eso'rceType evaluates to an 8&0it integer that specifies the t(pe of this resource. Accepta0le values are
/C through /55.
$eso'rceBsage specifies whether the Memor( range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the Memor( range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 829
Is(in&ixed specifies whether the minimum address of this Memor( range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this Memor( range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
TypeSpecific&lags evaluates to an 8&0it integer. The flags are specific to the $eso'rceType.
Address4ran'larity evaluates to a +"&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the Memor( range must 0e aligned. The +"&0it field Descriptor;ame. C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a +"&0it integer that specifies the lowest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a +"&0it integer that specifies the highest possi0le 0ase address of the
Memor( range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is
O4M. 5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The +"&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a +"&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The +"&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a +"&0it integer that specifies the total num0er of 0(tes decoded in the Memor(
range. The +"&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the
resource descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this Memor( range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The K:ordSpace macro evaluates to a 0uffer which contains a +"&0it Address !pace resource descriptor,
which descri0es a range of addresses. The format of the +"&0it Address!pace descriptor can 0e found in
JGWord Address !pace -escriptor L =page 3"9>. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.97 RefOf (Create Object Reference)
S)ntax
Ref6f '*./ect( LB 0b9ectReference
Argu%ents
=b:ect can 0e an( o0#ect t(pe =for e/ample, a package, a device o0#ect, and so on>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
828 Advanced Configuration and 'ower %nterface !pecification
5escription
3eturns an o0#ect reference to =b:ect. %f the =b:ect does not e/ist, the result of a "ef3f operation is fatal.
,se the Cond"ef3f term in cases where the =b:ect might not e/ist.
The primar( purpose of "ef3f>? is to allow an o0#ect to 0e passed to a method as an argument to the
method without the o0#ect 0eing evaluated at the time the method was loaded.
19.5.98 Register (Generic Register Resource Descriptor Macro)
S)ntax
Re&1ster '+ddressSace?eyword$ RegisterBit4idt"$ RegisterBit*ffset$
Register+ddress% +ccessSi3e(
Argu%ents
AddressSpaceLeyword specifies the address space where the register e/ists. The register can e/ist in %F2
space =S)ste%I3>, memor( =S)ste%Me%or)>, 'C% configuration space =PCIDConfig>, em0edded
controller space =1%!eddedControl>, !M;us =SM<us> or fi/ed&feature hardware =66ixedH:>. The 8&0it
field Descriptor;ame. CA!% is automaticall( created in order to refer to this portion of the resource
descriptor. !ee CA!% =page 3+*> for more information, including a list of valid values and their meanings.
$egister)itJidt1 evaluates to an 8&0it integer that specifies the num0er of 0its in the register. The 8&0it field
Descriptor;ame. C3;W is automaticall( created in order to refer to this portion of the resource descriptor.
!ee C3;W =page 3+*> for more information.
$egister)it=ffset evaluates to an 8&0it integer that specifies the offset in 0its from the start of the register
indicated 0( $egisterAddress. The 8&0it field Descriptor;ame. C3;2 is automaticall( created in order to
refer to this portion of the resource descriptor. !ee C3;2 =page 3+*> for more information.
$egisterAddress evaluates to a +"&0it integer that specifies the register address. The +"&0it field
Descriptor;ame. CA-3 is automaticall( created in order to refer to this portion of the resource descriptor.
!ee CA-3 =page 3+*> for more information.
AccessSi<e evaluates to an 8&0it integer that specifies the siHe of data values used when accessing the
address space as follows<
&,ndefined =legac(>
4&;(te access
2&Word access
3&-word access
"&Gword access
The 8&0it field Descriptor;ame. CA!? is automaticall( created in order to refer to this portion of the
resource descriptor. !ee CA!?=page 3+*> for more information. 5or 0ackwards compati0ilit(, the AccesSi<e
parameter is optional when invoking the 3egister macro. %f the AccessSi<e parameter is not supplied then
the AccessSi<e field will 0e set to Hero. %n this case, 2!'M will assume the access siHe.
5escription
The "egister macro evaluates to a 0uffer which contains a generic register resource descriptor. The format
of the generic register resource descriptor can 0e found in J$eneric 3egister -escriptor L =page 3+*>. The
macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 826
19.5.99 Release (Release a Mutex Synchronization Object)
S)ntax
Release 'Sync*./ect(
Argu%ents
Sync1=b:ect must 0e a mute/ s(nchroniHation o0#ect.
5escription
%f the mute/ o0#ect is owned 0( the current invocation, ownership for the Mute/ is released once. %t is fatal
to release ownership on a Mute/ unless it is currentl( owned. A Mute/ must 0e totall( released 0efore an
invocation completes.
19.5.100 Reset (Reset an Event Synchronization Object)
S)ntax
Reset 'Sync*./ect(
Argu%ents
Sync1=b:ect must 0e an .vent s(nchroniHation o0#ect.
5escription
This operator is used to reset an event s(nchroniHation o0#ect to a non&signaled state. !ee also the Wait and
!ignal function operator definitions.
19.5.101 ResourceTemplate (Resource To Bufer Conversion Macro)
S)ntax
Resource9e2plate '( )ResourceMacroList/ LB Buffer
5escription
5or a full definition of the 3esourceTemplateTerm macro, see J A!1 3esource TemplatesL =page 9"+>
19.5.102 Return (Return from Method Execution)
S)ntax
Return '(
Return '+rg(
Argu%ents
Arg can 0e an( valid o0#ect or reference.
5escription
3eturns control to the invoking control method, optionall( returning a cop( of the o0#ect named in Arg.
0ote< in the a0sence of an e/plicit "eturn >? statement, an implicit return is created, and the return value to
the caller is undefined.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
83 Advanced Configuration and 'ower %nterface !pecification
19.5.103 Revision (Constant Revision Object)
S)ntax
Re1s1on
5escription
The constant "evision o0#ect is an o0#ect of t(pe %nteger that will alwa(s read as the revision of the AM1
interpreter.
19.5.104 Scope (Open Named Scope)
S)ntax
#cope 'Location( )0b9ect6i2t/
Argu%ents
2pens and assigns a 0ase namespace scope to a collection of o0#ects. All o0#ect names defined within the
scope act relative to ,ocation. Notice that ,ocation does not have to 0e 0elow the surrounding scope, 0ut
can refer to an( location within the namespace. The Scope term itself does not create o0#ects, 0ut onl(
locates o0#ects in the namespaceK the located o0#ects are created 0( other A!1 terms.
5escription
The o0#ect referred to 0( ,ocation must alread( e/ist in the namespace and 0e one of the following o0#ect
t(pes that has a namespace scope associated with it<
'redefined scope such as< G =root>, GDS<, G;P1, GDP", GDTI, etc.
-evice
'rocessor
Thermal ?one
'ower 3esource
The Scope term alters the current namespace location to the e/isting ,ocation! This causes the defined
o0#ects within =b:ect,ist to occur relative to this new location in the namespace.
The following e/ample A!1 code places the defined o0#ects in the AC'% namespace as shown<
Scope (\P)#()
!ame (R$ F)
Scope (\)
;ethod (RJ) Return (()/
/
!ame (\S$ .)
/
places the defined o0#ects in the AC'% namespace as shown<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 834
\P)#(.R
\RJ
\S
19.5.105 ShiftLeft (Integer Shift Left)
S)ntax
#>1ft;eft 'Source% S"iftCount$ Result( LB #nte,er
Argu%ents
So'rce and S1iftCo'nt are evaluated as %ntegers.
5escription
So'rce is shifted left with the least significant 0it Heroed S1iftCo'nt times. The result is optionall( stored
into $es'lt!
19.5.106 ShiftRight (Integer Shift Right)
S)ntax
#>1ftR1&>t 'Source% S"iftCount$ Result( LB #nte,er
Argu%ents
So'rce and S1iftCo'nt are evaluated as %ntegers.
5escription
So'rce is shifted right with the most significant 0it Heroed S1iftCo'nt times. The result is optionall( stored
into $es'lt!
19.5.107 Signal (Signal a Synchronization Event)
S)ntax
#1&nal 'Sync*./ect(
Argu%ents
Sync1=b:ect must 0e an .vent s(nchroniHation o0#ect.
5escription
The .vent o0#ect is signaled once, allowing one invocation to ac:uire the event.
19.5.108 SizeOf (Get Data Object Size)
S)ntax
#1Ee6f '*./ect)a#e( LB #nte,er
Argu%ents
=b:ect;ame must 0e a 0uffer, string or package o0#ect.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
832 Advanced Configuration and 'ower %nterface !pecification
5escription
3eturns the siHe of a 0uffer, string, or package data o0#ect.
5or a 0uffer, it returns the siHe in 0(tes of the data. 5or a string, it returns the siHe in 0(tes of the string, not
counting the trailing N,11. 5or a package, it returns the num0er of elements. 5or an o0#ect reference, the
siHe of the referenced o0#ect is returned. 2ther data t(pes cause a fatal run&time error.
19.5.109 Sleep (Milliseconds Sleep)
S)ntax
#leep 'MilliSeconds(
Argu%ents
The Sleep term is used to implement long&term timing re:uirements. ./ecution is dela(ed for at least the
re:uired num0er of milliseconds.
5escription
The implementation of Sleep is to round the re:uest up to the closest sleep time supported 0( the 2! and
relin:uish the processor.
19.5.110 Stall (Stall for a Short Time)
S)ntax
#tall 'MicroSeconds(
Argu%ents
The Stall term is used to implement short&term timing re:uirements. ./ecution is dela(ed for at least the
re:uired num0er of microseconds.
5escription
The implementation of Stall is 2!&specific, 0ut must not relin:uish control of the processor. ;ecause of
this, dela(s longer than 4 microseconds must use Sleep instead of Stall.
19.5.111 StartDependentFn (Start Dependent Function Resource
Descriptor Macro)
S)ntax
#tartDepen"entDn 'Co#ati.ilityPriority$ Perfor#ancePriority( )ResourceList/
Argu%ents
CompatibilityPriority indicates the relative compati0ilit( of the configuration specified 0( $eso'rce,ist
relative to the 'CFAT. \ $ood, 4 \ Accepta0le, 2 \ !u0&optimal.
PerformancePriority indicates the relative performance of the configuration specified 0( $eso'rce,ist
relative to the other configurations. \ $ood, 4 \ Accepta0le, 2 \ !u0&optimal.
$eso'rce,ist is a list of resources descriptors which must 0e selected together for this configuration.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 833
5escription
The Start5ependent6n macro evaluates to a 0uffer which contains a start dependent function resource
descriptor, which descri0es a group of resources which must 0e selected together. .ach su0se:uent
!tart-ependent5n or !tart-ependent5nNo'ri resource descriptor introduces a new choice of resources for
configuring the device, with the last choice terminated with an .nd-ependent5n resource descriptor. The
format of the start dependent function resource descriptor can 0e found in J!tart -ependent 5unctions
-escriptorL =page 32*>. This macro generates the two&0(te form of the resource descriptor. The macro is
designed to 0e used inside of a 3esourceTemplate =page 826>.
19.5.112 StartDependentFnNoPri (Start Dependent Function Resource
Descriptor Macro)
S)ntax
#tartDepen"entDnNoPr1 '( )ResourceList/
5escription
The Start5ependent6n0oPri macro evaluates to a 0uffer which contains a start dependent function
resource descriptor, which descri0es a group of resources which must 0e selected together. .ach su0se:uent
!tart-ependent5n or !tart-ependent5nNo'ri resource descriptor introduces a new choice of resources for
configuring the device, with the last choice terminated with an .nd-ependent5n resource descriptor. The
format of the start dependent function resource descriptor can 0e found in J!tart -ependent 5unctions
-escriptorL =page 32*>. This macro generates the one&0(te form of the resource descriptor. The macro is
designed to 0e used inside of a 3esourceTemplate =page 826>.
This is similar to !tart-ependent5n =page 832> with 0oth CompatibilityPriority and PerformancePriority
set to 4, 0ut is one 0(te shorter.
19.5.113 Store (Store an Object)
S)ntax
#tore 'Source% !estination( LB DataRef0b9ect
Argu%ents
This operation evaluates So'rce' converts it to the data t(pe of Destination' and writes the result into
Destination! 5or information on automatic data&t(pe conversion, see section 4+.2.2, JA!1 -ata T(pes.L
5escription
!tores to 2peration3egion 5ield data t(pes ma( relin:uish the processor depending on the region t(pe.
All stores =of an( t(pe> to the constant Iero, constant 3ne, or constant 3nes o0#ect are not allowed. !tores
to read&onl( o0#ects are fatal. The e/ecution result of the operation depends on the t(pe of Destination. 5or
an( t(pe other than an operation region field, the e/ecution result is the same as the data written to
Destination! 5or operation region fields with an AccessType of <)teAcc, :ordAcc, 5:ordAcc,
K:ordAcc or An)Acc, the e/ecution result is the same as the data written to Destination as in the normal
case, 0ut when the AccessType is <ufferAcc, the operation region handler ma( modif( the data when it is
written to the Destination so that the e/ecution result contains modified data!
1xa%ple
The following e/ample creates the name CNT that references an integer data o0#ect with the value * and
then stores CNT to 1ocal. After the !tore operation, 1ocal is an integer o0#ect with the value *.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
83" Advanced Configuration and 'ower %nterface !pecification
!ame ()!<$ G)
Store ()!<$ 6ocal()
19.5.114 Subtract (Integer Subtract)
S)ntax
#u4tract 'Minuend% Su.tra"end% Result( LB #nte,er
Argu%ents
(in'end and S'btra1end are evaluated as %ntegers.
5escription
S'btra1end is su0tracted from (in'end. and the result is optionall( stored into $es'lt! ,nderflow
conditions are ignored and the result simpl( loses the most significant 0its.
19.5.115 Switch (Select Code To Execute Based On Expression)
S)ntax
#<1tc> '0xression( )CaseTer#List/
Argu%ents
*xpression is an A!1 e/pression that evaluates to an %nteger, !tring or ;uffer.
5escription
The Switch, Case and 5efault statements help simplif( the creation of conditional and 0ranching code.
The Switch statement transfers control to a statement within the enclosed 0od( of e/ecuta0le A!1 code
%f the Case Aal'e is an %nteger, ;uffer or !tring, then control passes to the statement that matches the value
of Switch >*xpression?. %f the Case value is a 'ackage, then control passes if an( mem0er of the package
matches the Switch =Aal'e> The Switch CaseTerm,ist can include an( num0er of Case instances, 0ut no
two Case Aal'es =or mem0ers of a Aal'e, if Aal'e is a 'ackage> within the same Switch statement can have
the same value.
./ecution of the statement 0od( 0egins at the selected Term1ist and proceeds until the Term1ist end of
0od( or until a <reak or Continue statement transfers control out of the 0od(.
The 5efault statement is e/ecuted if no Case Aal'e matches the value of Switch >expression?. %f the
5efault statement is omitted, and no Case match is found, none of the statements in the Switch 0od( are
e/ecuted. There can 0e at most one 5efault statement. The 5efault statement can appear an(where in the
0od( of the Switch statement.
A Case or 5efault term can onl( appear inside a Switch statement. !witch statements can 0e nested.
Co%pati!ilit) 0oteH The Switch' Case' and 5efault terms were first introduced in AC'% 2.. @owever,
their implementation is 0ackward compati0le with AC'% 4. AM1 interpreters.
1xa%ple
,se of the Switch statement usuall( looks something like this<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 83*
#<1tc> (e-pre22ion)
)
Case (value)
Statement2 e-ecuted if 6e8ual (e-pre22ion$ value)
/
Case (Pac+a,e () value$ value$ value/)
Statement2 e-ecuted if 6e8ual (e-pre22ion$ an1 value in pac+a,e)
/
Default
Statement2 e-ecuted if e-pre22ion doe2 not e8ual
an1 ca2e con2tantEe-pre22ion
/
/
Co%piler 0oteH The following e/ample demonstrates how the !witch statement should 0e translated into
AC'% 4.&compati0le AM1<
Switch (&dd (&B)D( )$4)

)a2e (4)
Y2tatement24Y
/
)a2e (Pac+a,e () .$G$I/)
Y2tatement23Y
/
Default
Y2tatement2FY
/
/
is translated as<
While (0ne)

!ame (_<_#$ () // )reate #nte,er temporar1 variable for re2ult


Store (&dd (&B)D ()$ 4)$ _<_#)
#f (6%8ual (_<_#$ 4))
Y2tatement24Y
/
%l2e
#f (6!ot%8ual (;atch (Pac+a,e () .$ G$ I/$ ;%J$ _<_#$ ;<R$ ($ ()$ 0ne2))
Y2tatement23Y
/
%l2e
Y2tatement2FY
/
Brea+
/
0oteH %f the A!1 compiler is una0le to determine the t(pe of the e/pression, then it swill generate a
warning and assume a t(pe of %nteger. The warning will indicate that the code should use one of the t(pe
conversion operators =!uch as To%nteger, To;uffer, To-ecimal!tring or To@e/!tring>.
5or e/ample<
Switch (&B)D ()) // )annot determine the t1pe becau2e method2 can return an1thin,.

Yca2e 2tatement2Y
/
will generate a warning and the following code<
!ame (_<_#$ ()
Store (&B)D ()$ _<_#)
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
83+ Advanced Configuration and 'ower %nterface !pecification
To remove the warning, the code should 0e<
Switch (<o#nte,er (&B)D ()))

Yca2e 2tatement2Y
/
19.5.116 ThermalZone (Declare Thermal Zone)
S)ntax
9>er2alZone 'T"er#al7one)a#e( )0b9ect6i2t/
Argu%ents
-eclares a Thermal ?one o0#ect named T1ermalIone;ame. Ther%alIone opens a name scope.
.ach use of a Ther%alIone term declares one thermal Hone in the s(stem. .ach thermal Hone in a s(stem
is re:uired to have a uni:ue T1ermalIone;ame.
5escription
A thermal Hone ma( 0e declared in the namespace an(where within the BC!; scope. 5or compati0ilit( with
operating s(stems implementing AC'% 4., a thermal Hone ma( also 0e declared under the BCT? scope. An
AC'%&compati0le namespace ma( define Thermal ?one o0#ects in either the BC!; or BCT? scope 0ut not
0oth.
5or e/ample A!1 code that uses a Thermal?one statement, see section 42, JThermal Management.L
19.5.117 Timer (Get 64-Bit Timer Value)
S)ntax
912er LB #nte,er
5escription
The timer opcode returns a monotonicall( increasing value that can 0e used 0( AC'% methods to measure
time passing, this ena0les speed optimiHation 0( allowing AM1 code to mark the passage of time
independent of 2! AC'% interpreter implementation.
The Sleep opcode can onl( indicate waiting for longer than the time specified.
The value resulting from this opcode is +"&0its. %t is monotonicall( increasing, 0ut it is not guaranteed that
ever( result will 0e uni:ue, i.e. two su0se:uent instructions ma( return the same value. The onl(
guarantee is that each su0se:uent evaluation will 0e greater&than or e:ual to the previous ones.
The period of this timer is 4 nanoseconds. While the underl(ing hardware ma( not support this
granularit(, the interpreter will do the conversion from the actual timer hardware fre:uenc( into 4
nanosecond units.
,sers of this opcode should realiHe that a value returned onl( represents the time at which the opcode itself
e/ecuted. There is no guarantee that the ne/t opcode in the instruction stream will e/ecute in an( particular
time 0ound.
The 2!'M can implement this using the AC'% Timer and keep track of overrun. 2ther implementations are
possi0le. This provides a0straction awa( from chipset differences
Co%pati!ilit) 0ote< New for AC'% 3.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 839
19.5.118 ToBCD (Convert Integer to BCD)
S)ntax
9oBCD '1alue% Result( LB #nte,er
Argu%ents
Aal'e is evaluated as an integer
5escription
The To<C5 operator is used to convert Aal'e from a numeric =%nteger> format to a ;C- format and
optionall( store the numeric value into $es'lt.
19.5.119 ToBufer (Convert Data to Bufer)
S)ntax
9oBuffer '!ata% Result( LB Buffer
Argu%ents
Data must 0e an %nteger, !tring, or ;uffer data t(pe.
5escription
Data is converted to 0uffer t(pe and the result is optionall( stored into $es'lt. %f Data was an integer, it is
converted into n 0(tes of 0uffer =where n is " if the definition 0lock has defined integers as 32&0its or 8 if
the definition 0lock has defined integers as +"&0its as indicated 0( the -efinition ;lock ta0le headerMs
3evision field>, taking the least significant 0(te of integer as the first 0(te of 0uffer. %f Data is a 0uffer, no
conversion is performed.
19.5.120 ToDecimalString (Convert Data to Decimal String)
S)ntax
9oDec12al#tr1n& '!ata% Result( LB Strin,
Argu%ents
Data must 0e an %nteger, !tring, or ;uffer data t(pe.
5escription
Data is converted to a decimal string, and the result is optionall( stored into $es'lt. %f Data is alread( a
string, no action is performed. %f Data is a 0uffer, it is converted to a string of decimal values separated 0(
commas. =.ach 0(te of the 0uffer is converted to a single decimal value.>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
838 Advanced Configuration and 'ower %nterface !pecification
19.5.121 ToHexString (Convert Data to Hexadecimal String)
S)ntax
9oBe=#tr1n& '!ata% Result( LB Strin,
Argu%ents
Data must 0e an %nteger, !tring, or ;uffer data t(pe.
5escription
Data is converted to a he/adecimal string, and the result is optionall( stored into $es'lt. %f Data is alread(
a string, no action is performed. %f Data is a 0uffer, it is converted to a string of he/adecimal values
separated 0( commas.
19.5.122 ToInteger (Convert Data to Integer)
S)ntax
9oInte&er '!ata% Result( LB #nte,er
Argu%ents
Data must 0e an %nteger, !tring, or ;uffer data t(pe.
5escription
Data is converted to integer t(pe and the result is optionall( stored into $es'lt. %f Data was a string, it must
0e either a decimal or he/adecimal numeric string =in other words, prefi/ed 0( J/L> and the value must
not e/ceed the ma/imum of an integer value. %f the value is e/ceeding the ma/imum, the result of the
conversion is unpredicta0le. %f Data was a ;uffer, the first 8 0(tes of the 0uffer are converted to an integer,
taking the first 0(te as the least significant 0(te of the integer. %f Data was an integer, no action is
performed.
19.5.123 ToString (Convert Bufer To String)
S)ntax
9o#tr1n& 'Source$ Lengt"$ Result( LB Strin,
Argu%ents
So'rce is evaluated as a 0uffer. ,engt1 is evaluated as an integer data t(pe.
5escription
!tarting with the first 0(te, the contents of the 0uffer are copied into the string until the num0er of
characters specified 0( ,engt1 is reached or a null => character is found! %f ,engt1 is not specified or is
3nes, then the contents of the 0uffer are copied until a null => character is found. %n an( case, a fatal error
will 0e generated if the num0er of characters copied e/ceeds 2 =not including the terminating null>. %f the
source 0uffer has a length of Hero, a Hero length =null terminator onl(> string will 0e created. The result is
copied into the $es'lt.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 836
19.5.124 ToUUID (Convert String to UUID Macro)
S)ntax
9o$$ID '+sciiString( LB Buffer
Argu%ents
AsciiString is evaluated as a !tring data t(pe.
5escription
This macro will convert an A!C%% string to a 428&0it 0uffer. The string must have the following format<
aa44cc""8eeff8&&>>811RR8%%ll22nnoopp
where aa O pp are one 0(te he/adecimal num0ers, made up of he/adecimal digits. The resulting 0uffer has
the following format<
Ta!le +.-&+ 22I5 <uffer 6or%at
String 2ffset %n ;uffer
aa 3
00 2
cc 4
dd
ee *
ff "
gg 9
hh +
ii 8
## 6
kk 4
ll 44
mm 42
nn 43
oo 4"
pp 4*
Co%pati!ilit) 0ote< New for AC'% 3.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8" Advanced Configuration and 'ower %nterface !pecification
19.5.125 Unicode (String To Unicode Conversion Macro)
S)ntax
$n1co"e 'String( LB Buffer
Argu%ents
This macro will convert a string to a ,nicode =,T5&4+> string contained in a 0uffer. The format of the
,nicode string is 4+ 0its per character, with a 4+&0it null terminator.
19.5.126 Unload (Unload Defnition Block)
S)ntax
$nloa" '6andle(
Argu%ents
%andle is evaluated as a --;@andle data t(pe.
5escription
'erforms a run&time unload of a -efinition ;lock that was loaded using a Load term. 1oading or unloading
a -efinition ;lock is a s(nchronous operation, and no control method e/ecution occurs during the function.
2n completion of the 2nload operation, the -efinition ;lock has 0een unloaded =all the namespace o0#ects
created as a result of the corresponding Load operation will 0e removed from the namespace>.
19.5.127 VendorLong (Long Vendor Resource Descriptor)
S)ntax
Ven"or;on& '!escritor)a#e( )1endorByteList/
Argu%ents
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
Aendor)yte,ist evaluates to a comma&separated list of 8&0it integer constants, where each 0(te is added
ver0atim to the 0od( of the Dendor1ong resource descriptor. A ma/imum of n 0(tes can 0e specified.
,,%- and ,,%- specific descriptor su0t(pe are part of the Aendor)yte,ist.
5escription
The 7endorLong macro evaluates to a 0uffer which contains a vendor&defined resource descriptor. The
format of the long form of the vendor&defined resource descriptor can 0e found in Dendor&-efined
-escriptor =page 3">. The macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
This is similar to Dendor!hort =page 8"4>, e/cept that the num0er of allowed 0(tes in Aendor)yte,ist is
+*,*33 =instead of 9>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8"4
19.5.128 VendorShort (Short Vendor Resource Descriptor)
S)ntax
Ven"or#>ort '!escritor)a#e( )1endorByteList/
Argu%ents
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The 7endorShort macro evaluates to a 0uffer which contains a vendor&defined resource descriptor. The
format of the short form of the vendor&defined resource descriptor can 0e found in JDendor&-efined
-escriptorL =page 333>. The macro is designed to 0e used inside of a 3esourceTemplate =page 826>.
This is similar to Dendor1ong =page 8">, e/cept that the num0er of allowed 0(tes in Aendor)yte,ist is 9
=instead of +*,*33>.
19.5.129 Wait (Wait for a Synchronization Event)
S)ntax
5a1t 'Sync*./ect% Ti#eout1alue( LB Boolean
Argu%ents
Sync1=b:ect must 0e an event s(nchroniHation o0#ect. Timeo'tAal'e is evaluated as an %nteger. The calling
method 0locks while waiting for the event to 0e signaled.
5escription
The pending signal count is decremented. %f there is no pending signal count, the processor is relin:uished
until a signal count is posted to the .vent or until at least Timeo'tAal'e milliseconds have elapsed.
This operation returns a non&Hero value if a timeout occurred and a signal was not ac:uired. A
Timeo'tAal'e of /5555 indicates that there is no time out and the operation will wait indefinitel(.
19.5.130 While (Conditional Loop)
S)ntax
5>1le 'Predicate( )<erm6i2t/
Argu%ents
Predicate is evaluated as an integer.
5escription
%f the Predicate is non&Hero, the list of terms in Term1ist is e/ecuted. The operation repeats until the
Predicate evaluates to Hero.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8"2 Advanced Configuration and 'ower %nterface !pecification
19.5.131 WordBusNumber (Word Bus Number Resource Descriptor Macro)
S)ntax
5or"BusNu24er 'Resource-sage$ $sMinFixed$ $sMaxFixed$ !ecode$
+ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#$ +ddressTranslation$
RangeLengt"$ ResourceSource$ndex% ResourceSource% !escritor)a#e(
Argu%ents
$eso'rceBsage specifies whether the 0us range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Is(in&ixed specifies whether the minimum address of this 0us num0er range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this 0us num0er range is fi/ed =Max6ixed> or can
0e changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
Decode specifies whether or not the device decodes the 0us num0er range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Address4ran'larity evaluates to a 4+&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the 0us num0er range must 0e aligned. The 4+&0it field Descriptor;ame. C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a 4+&0it integer that specifies the lowest possi0le 0us num0er for the 0us
num0er range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M.
5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 4+&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 4+&0it integer that specifies the highest possi0le 0us num0er for the 0us
num0er range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M.
5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 4+&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a 4+&0it integer that specifies the offset to 0e added to a secondar( 0us 0us
num0er which results in the corresponding primar( 0us 0us num0er. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The 4+&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 4+&0it integer that specifies the total num0er of 0us num0ers decoded in the 0us
num0er range. The 4+&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of
the resource descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this %F2 range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8"3
5escription
The :ord<us0u%!er macro evaluates to a 0uffer which contains a 4+&0it 0us&num0er resource
descriptor. The format of the 4+&0it 0us num0er resource descriptor can 0e found in J.rror< 3eference
source not foundL =page .rror< 3eference source not found>. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.132 WordIO (Word IO Resource Descriptor Macro)
S)ntax
5or"I6 'Resource-sage$ $sMinFixed$ $sMaxFixed$ !ecode$ $S+Ranges$
+ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#$ +ddressTranslation$
RangeLengt"$ ResourceSource$ndex% ResourceSource% !escritor)a#e%
TranslationTye% Translation!ensity(
Argu%ents
$eso'rceBsage specifies whether the %F2 range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Is(in&ixed specifies whether the minimum address of this %F2 range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Is(ax&ixed specifies whether the ma/imum address of this %F2 range is fi/ed =Max6ixed> or can 0e
changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
Decode specifies whether or not the device decodes the %F2 range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
ISA$anges specifies whether the %F2 ranges specifies are limited to valid %!A %F2 ranges =ISA3nl)>, valid
non&%!A %F2 ranges =0onISA3nl)> or encompass the whole range without limitation =1ntire"ange>. The
2&0it field Descriptor;ame.C3N$ is automaticall( created to refer to this portion of the resource descriptor,
where O4M is Non%!A2nl(, O2M is %!A2nl( and OM is .ntire3ange.
Address4ran'larity evaluates to a 4+&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the %F2 range must 0e aligned. The 4+&0it field Descriptor;ame. C$3A is automaticall( created to refer to
this portion of the resource descriptor.
Address(inim'm evaluates to a 4+&0it integer that specifies the lowest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The 4+&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 4+&0it integer that specifies the highest possi0le 0ase address of the %F2
range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M. 5or
0ridge devices which translate addresses, this is the address on the secondar( 0us. The 4+&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a 4+&0it integer that specifies the offset to 0e added to a secondar( 0us %F2
address which results in the corresponding primar( 0us %F2 address. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The 4+&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8"" Advanced Configuration and 'ower %nterface !pecification
$ange,engt1 evaluates to a 4+&0it integer that specifies the total num0er of 0(tes decoded in the %F2 range.
The 4+&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of the resource
descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this %F2 range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
TranslationType is an optional argument that specifies whether the resource t(pe on the secondar( side of
the 0us is different =T)peTranslation> from that on the primar( side of the 0us or the same =T)peStatic>. %f
T(peTranslation is specified, then the secondar( side of the 0us is Memor(. %f T(pe!tatic is specified, then
the secondar( side of the 0us is %F2. %f nothing is specified, then T(pe!tatic is assumed. The 4&0it field
Descriptor;ame. CTT' is automaticall( created to refer to this portion of the resource descriptor, where O4M
is T(peTranslation and OM is T(pe!tatic. !ee CTT' =page 3+> for more information
TranslationDensity is an optional argument that specifies whether or not the translation from the primar( to
secondar( 0us is sparse =SparseTranslation> or dense =5enseTranslation>. %t is onl( used when
TranslationType is T)peTranslation. %f nothing is specified, then -enseTranslation is assumed. The 4&0it
field Descriptor;ame. CT3! is automaticall( created to refer to this portion of the resource descriptor,
where O4M is !parseTranslation and OM is -enseTranslation. !ee CT3! =page 3*6> for more information.
5escription
The :ordI3 macro evaluates to a 0uffer which contains a 4+&0it %F2 range resource descriptor. The format
of the 4+&0it %F2 range resource descriptor can 0e found in J.rror< 3eference source not foundL =page
.rror< 3eference source not found>. The macro is designed to 0e used inside of a 3esourceTemplate =page
826>.
19.5.133 WordSpace (Word Space Resource Descriptor Macro) )
S)ntax
5or"#pace 'ResourceTye% Resource-sage$ !ecode$ $sMinFixed$ $sMaxFixed%
TyeSecificFlags% +ddress:ranularity% +ddressMini#u#% +ddressMaxi#u#$
+ddressTranslation$ RangeLengt"$ ResourceSource$ndex% ResourceSource%
!escritor)a#e(
Argu%ents
$eso'rceType evaluates to an 8&0it integer that specifies the t(pe of this resource. Accepta0le values are
/C through /55.
$eso'rceBsage specifies whether the 0us range is consumed 0( this device ="esourceConsu%er> or
passed on to child devices ="esourceProducer>. %f nothing is specified, then 3esourceConsumer is
assumed.
Decode specifies whether or not the device decodes the 0us num0er range using positive =Pos5ecode> or
su0tractive =Su!5ecode> decode. %f nothing is specifies, then 'os-ecode is assumed. The 4&0it field
Descriptor;ame. C-.C is automaticall( created to refer to this portion of the resource descriptor, where O4M
is !u0-ecode and OM is 'os-ecode.
Is(in&ixed specifies whether the minimum address of this 0us num0er range is fi/ed =Min6ixed> or can 0e
changed =Min0ot6ixed>. %f nothing is specified, then MinNot5i/ed is assumed. The 4&0it field
Descriptor;ame. CM%5 is automaticall( created to refer to this portion of the resource descriptor, where O4M
is Min5i/ed and OM is MinNot5i/ed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8"*
Is(ax&ixed specifies whether the ma/imum address of this 0us num0er range is fi/ed =Max6ixed> or can
0e changed =Max0ot6ixed>. %f nothing is specified, then Ma/Not5i/ed is assumed. The 4&0it field
Descriptor;ame! CMA5 is automaticall( created to refer to this portion of the resource descriptor, where
O4M is Ma/5i/ed and OM is Ma/Not5i/ed.
TypeSpecific&lags evaluates to an 8&0it integer. The flags are specific to the $eso'rceType.
Address4ran'larity evaluates to a 4+&0it integer that specifies the power&of&two 0oundar( =& 4> on which
the 0us num0er range must 0e aligned. The 4+&0it field Descriptor;ame. C$3A is automaticall( created to
refer to this portion of the resource descriptor.
Address(inim'm evaluates to a 4+&0it integer that specifies the lowest possi0le 0us num0er for the 0us
num0er range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M.
5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 4+&0it field
Descriptor;ame.CM%N is automaticall( created to refer to this portion of the resource descriptor.
Address(axim'm evaluates to a 4+&0it integer that specifies the highest possi0le 0us num0er for the 0us
num0er range. The value must have OM in all 0its where the corresponding 0it in Address4ran'larity is O4M.
5or 0ridge devices which translate addresses, this is the address on the secondar( 0us. The 4+&0it field
Descriptor;ame.CMAA is automaticall( created to refer to this portion of the resource descriptor.
AddressTranslation evaluates to a 4+&0it integer that specifies the offset to 0e added to a secondar( 0us 0us
num0er which results in the corresponding primar( 0us 0us num0er. 5or all non&0ridge devices or 0ridges
which do not perform translation, this must 0e OM. The 4+&0it field Descriptor;ame.CT3A is automaticall(
created to refer to this portion of the resource descriptor.
$ange,engt1 evaluates to a 4+&0it integer that specifies the total num0er of 0us num0ers decoded in the 0us
num0er range. The 4+&0it field Descriptor;ame. C1.N is automaticall( created to refer to this portion of
the resource descriptor.
$eso'rceSo'rceIndex is an optional argument which evaluates to an 8&0it integer that specifies the resource
descriptor within the o0#ect specified 0( $eso'rceSo'rce.
$eso'rceSo'rce is an optional argument which evaluates to a string containing the path of a device which
produces the pool of resources from which this %F2 range is allocated.
Descriptor;ame is an optional argument that specifies a name of an o0#ect reference that will 0e created in
the current scope referring to the entire resource descriptor 0uffer.
5escription
The :ordSpace macro evaluates to a 0uffer which contains a 4+&0it Address !pace resource descriptor.
The format of the 4+&0it Address !pace resource descriptor can 0e found in J.rror< 3eference source not
foundL =page .rror< 3eference source not found>. The macro is designed to 0e used inside of a
3esourceTemplate =page 826>.
19.5.134 XOr (Integer Bitwise Xor)
S)ntax
X6r 'Source&% Source2% Result( LB #nte,er
Argu%ents
So'rce1 and So'rce" are evaluated as %ntegers.
5escription
A 0itwise =3" is performed and the result is optionall( stored into $es'lt!
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8"+ Advanced Configuration and 'ower %nterface !pecification
19.5.135 Zero (Constant Zero Object)
S)ntax
Zero
5escription
The constant Iero o0#ect is an o0#ect of t(pe %nteger that will alwa(s read as all 0its clear. Writes to this
o0#ect are not allowed.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8"9
20 ACPI Machine Language (AML) Specifcation
This section formall( defines the AC'% Control Method Machine 1anguage =AM1> language. AM1 is the
AC'% Control Method virtual machine language, machine code for a virtual machine that is supported 0(
an AC'%&compati0le 2!. AC'% control methods can 0e written in AM1, 0ut humans ordinaril( write
control methods in A!1.
AM1 is the language processed 0( the AC'% AM1 interpreter. %t is primaril( a declarative language. %tMs
0est not to think of it as a stream of code, 0ut rather as a set of declarations that the AC'% AM1 interpreter
will compile into the AC'% Namespace at definition 0lock load time. 5or e/ample, notice that -ef;(te
allocates an anon(mous integer varia0le with a 0(te&siHe initial value in AC'% namespace, and passes in an
initial value. The 0(te in the AM1 stream that defines the initial value is not the address of the varia0leMs
storage location.
An 2.M or ;%2! vendor needs to write A!1 and 0e a0le to single&step AM1 for de0ugging. =-e0uggers
and other AC'% control method language tools are e/pected to 0e AM1&level tools, not source&level tools.>
An A!1 translator implementer must understand how to read A!1 and generate AM1. An AM1 interpreter
author must understand how to e/ecute AM1.
AM1 and A!1 are different languages though the( are closel( related.
All AC'%&compati0le operating s(stems must support AM1. A given user can define some ar0itrar( source
language =to replace A!1> and write a tool to translate it to AM1. @owever, the AC'% group will support a
single translator for a single language, A!1.
20.1 Notation Conventions
The notation conventions in the ta0le 0elow help the reader to interpret the AM1 formal grammar.
Ta!le +/-+ AML ;ra%%ar 0otation Conventions
0otation Convention 5escription 1xa%ple
/dd
3efers to a 0(te value e/pressed as
2 he/adecimal digits.
/24
Num0er in 0old.
-enotes the encoding of the AM1
term.
Term \) .valuated T(pe
!hows the resulting t(pe of the
evaluation of Term.
!ingle :uotes =O M> %ndicate constant characters. OAM \) /"4
Term <\ Term Term N
The term to the left of <\ can 0e
e/panded into the se:uence of
terms on the right.
aterm <\ 0term cterm means that aterm can 0e
e/panded into the two&term se:uence of
0term followed 0( cterm.
Term Term Term N
Terms separated from each other
0( spaces form an ordered list.
Angle 0rackets =T ) > ,sed to group items.
Ta 0) h Tc d) means either
a 0 or c d.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8"8 Advanced Configuration and 'ower %nterface !pecification
0otation Convention 5escription 1xa%ple
;ar s(m0ol = h > !eparates alternatives.
aterm <\ 0term h Vcterm dtermW means the
following constructs are possi0le<
0term
cterm dterm
aterm <\ V0term h ctermW dterm means the
following constructs are possi0le<
0term dterm
cterm dterm
-ash character = & > %ndicates a range.
4&6 means a single digit in the range 4 to 6
inclusive.
'arenthesiHed term
following another term.
The parenthesiHed term is the
repeat count of the previous term.
aterm=3> means aterm aterm aterm.
0term=n> means n num0er of 0terms.
20.2 AML Grammar Defnition
This section defines the 0(te values that make up an AM1 0(te stream.
The AM1 encoding can 0e categoriHed in the following groups<
Ta0le and Ta0le @eader encoding
Name o0#ects encoding
-ata o0#ects encoding
'ackage length encoding
Term o0#ects encoding
Miscellaneous o0#ects encoding
20.2.1 Table and Table Header Encoding
&;6)ode >L DefBloc+"dr <erm6i2t
DefBloc+"dr >L <ableSi,nature <able6en,th Spec)ompliance )hec+Sum 0em#D
0em<able#D 0emRevi2ion )reator#D )reatorRevi2ion
<ableSi,nature >L DWord)on2t // &2 defined in 2ection G.3.F.
<able6en,th >L Dword)on2t // 6en,th of the table in b1te2 includin,
// the bloc+ header.
Spec)ompliance >L B1te)on2t // <he revi2ion of the 2tructure.
)hec+Sum >L B1te)on2t // B1te chec+2um of the entire table.
0em#D >L B1te)on2t(I) // 0%; #D of up to I character2. #f the 0%;
// #D i2 2horter than I character2$ it
// can be terminated with a !X66
// character.
0em<able#D >L B1te)on2t(=) // 0%; <able #D of up to = character2. #f
// the 0%; <able #D i2 2horter than =
// character2$ it can be terminated with
// a !X66 character.
0emRevi2ion >L DWord)on2t // 0%; <able Revi2ion.
)reator#D >L DWord)on2t // @endor #D of the &S6 compiler.
)reatorRevi2ion >L DWord)on2t // Revi2ion of the &S6 compiler.
20.2.2 Name Objects Encoding
6ead!ame)har >L `A]E`Z] U `_]
Di,it)har >L `*]E`F]
!ame)har >L Di,it)har U 6ead!ame)har
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8"6
Root)har >L `\]
ParentPrefi-)har >L `^]
`&]E`7] >L *=L7 E *=MA
`_] >L *=MD
`(]E`H] >L *=K* E *=KF
`\] >L *=MC
`\] >L *=ME
!ameSe, >L ?6ead!ame)har !ame)har !ame)har !ame)harB
// !otice that !ameSe,2 2horter than . character2 are filled with
// trailin, under2core2 (`_]2).
!ameStrin, >L ?Root)har !amePathB U ?Prefi-Path !amePathB
Prefi-Path >L !othin, U ?`\] Prefi-PathB
!amePath >L !ameSe, U Dual!amePath U ;ulti!amePath U !ull!ame
Dual!amePath >L Dual!amePrefi- !ameSe, !ameSe,
Dual!amePrefi- >L *=.E
;ulti!amePath >L ;ulti!amePrefi- Se,)ount !ameSe,(Se,)ount)
;ulti!amePrefi- >L *=.D
Se,)ount >L B1teData
!ote> Se,)ount can be from 4 to 3GG. 5or e-ample> ;ulti!amePrefi-(FG) i2 encoded a2
(-3f (-3F and followed b1 FG !ameSe,2. So$ the total encodin, len,th will be 4 D 4 D
FG[. L 4.3. !otice that> DualNa2ePref1= Na2e#e& Na2e#e& ha2 a 2maller encodin, than
the encodin, of> Ault1Na2ePref1='.( Na2e#e& Na2e#e&
Simple!ame >L !ameStrin, U &r,0b9 U 6ocal0b9
Super!ame >L Simple!ame U Debu,0b9 U <1peI0pcode
!ull!ame >L *=**
<ar,et >L Super!ame U !ull!ame
20.2.3 Data Objects Encoding
)omputationalData >L B1te)on2t U Word)on2t U Dword)on2t U Jword)on2t U Strin, U
)on2t0b9 U Revi2ion0p U DefBuffer
Data0b9ect >L )omputationalData U DefPac+a,e U Def@arPac+a,e
DataRef0b9ect >L Data0b9ect U 0b9ectReference U DDB"andle
B1te)on2t >L B1tePrefi- B1teData
B1tePrefi- >L *=*A
Word)on2t >L WordPrefi- WordData
WordPrefi- >L *=*B
DWord)on2t >L DWordPrefi- DWordData
DWordPrefi- >L *=*C
JWord)on2t >L JWordPrefi- JWordData
JWordPrefi- >L *=*E
Strin, >L Strin,Prefi- &2cii)har6i2t !ull)har
Strin,Prefi- >L *=*D
)on2t0b9 >L 7ero0p U 0ne0p U 0ne20p
B1te6i2t >L !othin, U ?B1teData B1te6i2tB
B1teData >L *=** E *=DD
WordData >L B1teDataM(>TN B1teDataM=>4GN
// *=****8*=DDDD
DWordData >L WordDataM(>4GN WordDataM4I>F4N
// *=********8*=DDDDDDDD
JWordData >L DwordDataM(>F4N DwordDataMF3>IFN
// *=****************8*=DDDDDDDDDDDDDDDD
&2cii)har6i2t >L !othin, U ?&2cii)har &2cii)har6i2tB
&2cii)har >L *=*7 E *=GD
!ull)har >L *=**
7ero0p >L *=**
0ne0p >L *=*7
0ne20p >L *=DD
Revi2ion0p >L %-t0pPrefi- *=K*
%-t0pPrefi- >L *=MB
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8* Advanced Configuration and 'ower %nterface !pecification
20.2.4 Package Length Encoding
P+,6en,th >L P+,6eadB1te U
?P+,6eadB1te B1teDataB U
?P+,6eadB1te B1teData B1teDataB U
?P+,6eadB1te B1teData B1teData B1teDataB
P+,6eadB1te >L ?bit TEI> B1teData count that follow2 ((EF)B
?bit GE.> 0nl1 u2ed if P+,6en,th ? IFB
?bit FE(> 6ea2t 2i,nificant pac+a,e len,th n1bbleB
!ote> <he hi,h 3 bit2 of the fir2t b1te reveal how man1 follow b1te2 are in the
P%&;en&t>. #f the P%&;en&t> ha2 onl1 one b1te$ bit ( throu,h G are u2ed to encode the
pac+a,e len,th (in other word2$ value2 (EIF). #f the pac+a,e len,th value i2 more than
IF$ more than one b1te mu2t be u2ed for the encodin, in which ca2e bit . and G of the
P+,6eadB1te are re2erved and mu2t be Cero. #f the multiple b1te2 encodin, i2 u2ed$
bit2 (EF of the P%&;ea"B:te become the lea2t 2i,nificant . bit2 of the re2ultin,
pac+a,e len,th value. <he ne-t B1teData will become the ne-t lea2t 2i,nificant = bit2
of the re2ultin, value and 2o on$ up to F B1teData b1te2. <hu2$ the ma-imum pac+a,e
len,th i2 3[[3=.
20.2.5 Term Objects Encoding
<erm0b9 >L !ameSpace;odifier0b9 U !amed0b9 U <1pe40pcode U <1pe30pcode
<erm6i2t >L !othin, U ?<erm0b9 <erm6i2tB
<erm&r, >L <1pe30pcode U Data0b9ect U &r,0b9 U 6ocal0b9
X2er<erm0b9 >L !ameStrin, <erm&r,6i2t
<erm&r,6i2t >L !othin, U ?<erm&r, <erm&r,6i2tB
0b9ect6i2t >L !othin, U ?0b9ect 0b9ect6i2tB
0b9ect >L !ameSpace;odifier0b9 U !amed0b9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8*4
20.2.5.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8*2 Advanced Configuration and 'ower %nterface !pecification
Namespace Modifer Objects Encoding
!ameSpace;odifier0b9 >L Def&lia2 U Def!ame U DefScope
Def&lia2 >L &lia20p !ameStrin, !ameStrin,
&lia20p >L *=*N
Def!ame >L !ame0p !ameStrin, DataRef0b9ect
!ame0p >L *=*S
DefScope >L Scope0p P+,6en,th !ameStrin, <erm6i2t
Scope0p >L *=7*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8*3
20.2.5.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8*" Advanced Configuration and 'ower %nterface !pecification
Named Objects Encoding
!amed0b9 >L DefBan+5ield U Def)reateBit5ield U Def)reateB1te5ield U
Def)reateDWord5ield U Def)reate5ield U Def)reateJWord5ield U
Def)reateWord5ield U DefDataRe,ion U DefDevice U Def%vent U
Def5ield U Def#nde-5ield U Def;ethod U Def;ute- U Def0pRe,ion U
DefPowerRe2 U DefProce22or U Def<hermal7one
DefBan+5ield >L Ban+5ield0p P+,6en,th !ameStrin, !ameStrin, Ban+@alue 5ield5la,2
5ield6i2t
Ban+5ield0p >L %-t0pPrefi- *=SG
Ban+@alue >L <erm&r, LB #nte,er
5ield5la,2 >L B1teData // bit (EF> &cce22<1pe
// ( An:Acc
// 4 B:teAcc
// 3 5or"Acc
// F D5or"Acc
// . Q5or"Acc
// G BufferAcc
// I Reserved
// TE4G Reserved
// bit .> 6oc+Rule
// ( No;oc%
// 4 ;oc%
// bit GEI> XpdateRule
// ( Presere
// 4 5r1teAs6nes
// 3 Wr1teAsZeros
// bit T> Reserved (mu2t be ()
5ield6i2t >L !othin, U ?5ield%lement 5ield6i2tB
5ield%lement >L !amed5ield U Re2erved5ield U &cce225ield
!amed5ield >L !ameSe, P+,6en,th
Re2erved5ield >L *=** P+,6en,th
&cce225ield >L *=*7 &cce22<1pe &cce22&ttrib
&cce22<1pe >L B1teData // Same a2 &cce22<1pe bit2 of 5ield5la,2.
&cce22&ttrib >L B1teData // #f &cce22<1pe i2 Buffer&cc for the S;B
// 0pRe,ion$ &cce22&ttrib can be one of
// the followin, value2>
// (-(3 #ABQu1c%
// (-(. #AB#en"Rece1e
// (-(I #ABB:te
// (-(= #AB5or"
// (-(& #ABBloc%
// (-() #ABProcessCall
// (-(D #ABBloc%ProcessCall
Def)reateBit5ield >L )reateBit5ield0p SourceBuff Bit#nde- !ameStrin,
)reateBit5ield0p >L *=SD
SourceBuff >L <erm&r, LB Buffer
Bit#nde- >L <erm&r, LB #nte,er
Def)reateB1te5ield >L )reateB1te5ield0p SourceBuff B1te#nde- !ameStrin,
)reateB1te5ield0p >L *=SC
B1te#nde- >L <erm&r, LB #nte,er
Def)reateDWord5ield >L )reateDWord5ield0p SourceBuff B1te#nde- !ameStrin,
)reateDWord5ield0p >L *=SA
Def)reate5ield >L )reate5ield0p SourceBuff Bit#nde- !umBit2 !ameStrin,
)reate5ield0p >L %-t0pPrefi- *=7K
!umBit2 >L <erm&r, LB #nte,er
Def)reateJWord5ield >L )reateJWord5ield0p SourceBuff B1te#nde- !ameStrin,
)reateJWord5ield0p >L *=SD
Def)reateWord5ield >L )reateWord5ield0p SourceBuff B1te#nde- !ameStrin,
)reateWord5ield0p >L *=SB
DefDataRe,ion >L DataRe,ion0p !ameStrin, <erm&r, <erm&r, <erm&r,
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8**
DataRe,ion0p >L %-0pPrefi- *=SS
DefDevice >L Device0p P+,6en,th !ameStrin, 0b9ect6i2t
Device0p >L %-t0pPrefi- *=S.
Def%vent >L %vent0p !ameStrin,
%vent0p >L %-t0pPrefi- *=*.
Def5ield >L 5ield0p P+,6en,th !ameStrin, 5ield5la,2 5ield6i2t
5ield0p >L %-t0pPrefi- *=S7
Def#nde-5ield >L #nde-5ield0p P+,6en,th !ameStrin, !ameStrin, 5ield5la,2 5ield6i2t
#nde-5ield0p >L %-t0pPrefi- *=SN
Def;ethod >L ;ethod0p P+,6en,th !ameStrin, ;ethod5la,2 <erm6i2t
;ethod0p >L *=7L
;ethod5la,2 >L B1teData // bit (E3> &r,)ount ((ET)
// bit F> SerialiCe5la,
// ( Not#er1al1Ee"
// 4 #er1al1Ee"
// bit .ET> S1nc6evel ((-((E(-(f)
Def;ute- >L ;ute-0p !ameStrin, S1nc5la,2
;ute-0p >L %-t0pPrefi- *=*7
S1nc5la,2 >L B1teData // bit (EF> S1nc6evel ((-((E(-(f)
// bit .ET> Reserved (mu2t be ()
Def0pRe,ion >L 0pRe,ion0p !ameStrin, Re,ionSpace Re,ion0ff2et Re,ion6en
0pRe,ion0p >L %-t0pPrefi- *=S*
Re,ionSpace >L B1teData // (-(( #:ste2Ae2or:
// (-(4 #:ste2I6
// (-(3 PCI_Conf1&
// (-(F E24e""e"Control
// (-(. #ABus
// (-(G CA6#
// (-(I Pc1Bar9ar&et
// (-=(E(-55> X2er Defined
Re,ion0ff2et >L <erm&r, LB #nte,er
Re,ion6en >L <erm&r, LB #nte,er
DefPowerRe2 >L PowerRe20p P+,6en,th !ameStrin, S12tem6evel Re2ource0rder
0b9ect6i2t
PowerRe20p >L %-t0pPrefi- *=SL
S12tem6evel >L B1teData
Re2ource0rder >L WordData
DefProce22or >L Proce22or0p P+,6en,th !ameStrin, Proc#D Pbl+&ddr Pbl+6en
0b9ect6i2t
Proce22or0p >L %-t0pPrefi- *=SK
Proc#D >L B1teData
Pbl+&ddr >L DwordData
Pbl+6en >L B1teData
Def<hermal7one >L <hermal7one0p P+,6en,th !ameStrin, 0b9ect6i2t
<hermal7one0p >L %-t0pPrefi- *=SM
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8*+ Advanced Configuration and 'ower %nterface !pecification
20.2.5.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8*9
Type 1 Opcodes Encoding
<1pe40pcode >L DefBrea+ U DefBrea+Point U Def)ontinue U Def5atal U Def#f%l2e U
Def6oad U Def!oop U Def!otif1 U DefRelea2e U DefRe2et U DefReturn
U DefSi,nal U DefSleep U DefStall U DefXnload U DefWhile
DefBrea+ >L Brea+0p
Brea+0p >L *=AM
DefBrea+Point >L Brea+Point0p
Brea+Point0p >L *=CC
Def)ontinue >L )ontinue0p
)ontinue0p >L *=FD
Def%l2e >L !othin, U ?%l2e0p P+,6en,th <erm6i2tB
%l2e0p >L *=A7
Def5atal >L 5atal0p 5atal<1pe 5atal)ode 5atal&r,
5atal0p >L %-t0pPrefi- *=K.
5atal<1pe >L B1teData
5atal)ode >L DwordData
5atal&r, >L <erm&r, LB #nte,er
Def#f%l2e >L #f0p P+,6en,th Predicate <erm6i2t Def%l2e
#f0p >L *=A*
Predicate >L <erm&r, LB #nte,er
Def6oad >L 6oad0p !ameStrin, DDB"andle0b9ect
6oad0p >L %-t0pPrefi- *=.*
DDB"andle0b9ect >L Super!ame
Def!oop >L !oop0p
!oop0p >L *=AK
Def!otif1 >L !otif10p !otif10b9ect !otif1@alue
!otif10p >L *=SN
!otif10b9ect >L Super!ame LB <hermal7one U Proce22or U Device
!otif1@alue >L <erm&r, LB #nte,er
DefRelea2e >L Relea2e0p ;ute-0b9ect
Relea2e0p >L %-t0pPrefi- *=.G
;ute-0b9ect >L Super!ame
DefRe2et >L Re2et0p %vent0b9ect
Re2et0p >L %-t0pPrefi- *=.N
%vent0b9ect >L Super!ame
DefReturn >L Return0p &r,0b9ect
Return0p >L *=AL
&r,0b9ect >L <erm&r, LB DataRef0b9ect
DefSi,nal >L Si,nal0p %vent0b9ect
Si,nal0p >L %-t0pPrefi- *=.L
DefSleep >L Sleep0p ;2ec<ime
Sleep0p >L %-t0pPrefi- *=..
;2ec<ime >L <erm&r, LB #nte,er
DefStall >L Stall0p X2ec<ime
Stall0p >L %-t0pPrefi- *=.7
X2ec<ime >L <erm&r, LB B1teData
DefXnload >L Xnload0p DDB"andle0b9ect
Xnload0p >L %-t0pPrefi- *=.A
DefWhile >L While0p P+,6en,th Predicate <erm6i2t
While0p >L *=A.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8*8 Advanced Configuration and 'ower %nterface !pecification
20.2.5.4
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8*6
Type 2 Opcodes Encoding
<1pe30pcode >L Def&c8uire U Def&dd U Def&nd U DefBuffer U Def)oncat U
Def)oncatRe2 U Def)ondRef0f U Def)op10b9ect U DefDecrement U
DefDeref0f U DefDivide U Def5indSet6eftBit U Def5indSetRi,htBit U
Def5romB)D U Def#ncrement U Def#nde- U Def6&nd U Def6%8ual U
Def6:reater U Def6:reater%8ual U Def66e22 U Def66e22%8ual U Def;id
U Def6!ot U Def6!ot%8ual U Def6oad<able U Def60r U Def;atch U
Def;od U Def;ultipl1 U Def!&nd U Def!0r U Def!ot U Def0b9ect<1pe U
Def0r U DefPac+a,e U Def@arPac+a,e U DefRef0f U DefShift6eft U
DefShiftRi,ht U DefSiCe0f U DefStore U DefSubtract U Def<imer U
Def<oB)D U Def<oBuffer U Def<oDecimalStrin, U Def<o"e-Strin, U
Def<o#nte,er U Def<oStrin, U DefWait U DefR0r U X2er<erm0b9
<1peI0pcode >L DefRef0f U DefDeref0f U Def#nde- U X2er<erm0b9
Def&c8uire >L &c8uire0p ;ute-0b9ect <imeout
&c8uire0p >L %-t0pPrefi- *=.K
<imeout >L WordData
Def&dd >L &dd0p 0perand 0perand <ar,et
&dd0p >L *=G.
0perand >L <erm&r, LB #nte,er
Def&nd >L &nd0p 0perand 0perand <ar,et
&nd0p >L *=GB
DefBuffer >L Buffer0p P+,6en,th BufferSiCe B1te6i2t
Buffer0p >L *=77
BufferSiCe >L <erm&r, LB #nte,er
Def)oncat >L )oncat0p Data Data <ar,et
)oncat0p >L *=GK
Data >L <erm&r, LB )omputationalData
Def)oncatRe2 >L )oncatRe20p BufData BufData <ar,et
)oncatRe20p >L *=SL
BufData >L <erm&r, LB Buffer
Def)ondRef0f >L )ondRef0f0p Super!ame <ar,et
)ondRef0f0p >L %-t0pPrefi- *=7.
Def)op10b9ect >L )op10b9ect0p <erm&r, Simple!ame
)op10b9ect0p >L *=FD
DefDecrement >L Decrement0p Super!ame
Decrement0p >L *=GN
DefDeref0f >L Deref0f0p 0b9Reference
Deref0f0p >L *=SK
0b9Reference >L <erm&r, LB 0b9ectReference U Strin,
DefDivide >L Divide0p Dividend Divi2or Remainder Juotient
Divide0p >L *=GS
Dividend >L <erm&r, LB #nte,er
Divi2or >L <erm&r, LB #nte,er
Remainder >L <ar,et
Juotient >L <ar,et
Def5indSet6eftBit >L 5indSet6eftBit0p 0perand <ar,et
5indSet6eftBit0p >L *=S7
Def5indSetRi,htBit >L 5indSetRi,htBit0p 0perand <ar,et
5indSetRi,htBit0p >L *=S.
Def5romB)D >L 5romB)D0p B)D@alue <ar,et
5romB)D0p >L %-t0pPrefi- *=.S
B)D@alue >L <erm&r, LB #nte,er
Def#ncrement >L #ncrement0p Super!ame
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8+ Advanced Configuration and 'ower %nterface !pecification
#ncrement0p >L *=GM
Def#nde- >L #nde-0p BuffP+,Str0b9 #nde-@alue <ar,et
#nde-0p >L *=SS
BuffP+,Str0b9 >L <erm&r, LB Buffer$ Pac+a,e or Strin,
#nde-@alue >L <erm&r, LB #nte,er
Def6&nd >L 6and0p 0perand 0perand
6and0p >L *=F*
Def6%8ual >L 6e8ual0p 0perand 0perand
6e8ual0p >L *=FK
Def6:reater >L 6,reater0p 0perand 0perand
6,reater0p >L *=FL
Def6:reater%8ual >L 6,reater%8ual0p 0perand 0perand
6,reater%8ual0p >L 6not0p 6le220p
Def66e22 >L 6le220p 0perand 0perand
6le220p >L *=FM
Def66e22%8ual >L 6le22%8ual0p 0perand 0perand
6le22%8ual0p >L 6not0p 6,reater0p
Def6!ot >L 6not0p 0perand
6not0p >L *=F.
Def6!ot%8ual >L 6not%8ual0p 0perand 0perand
6not%8ual0p >L 6not0p 6e8ual0p
Def6oad<able >L 6oad<able0p <erm&r, <erm&r, <erm&r, <erm&r, <erm&r, <erm&r,
6oad<able0p >L %-t0pPrefi- *=7D
Def60r >L 6or0p 0perand 0perand
6or0p >L *=F7
Def;atch >L ;atch0p SearchP+, ;atch0pcode 0perand ;atch0pcode 0perand
Start#nde-
;atch0p >L *=SF
SearchP+, >L <erm&r, LB Pac+a,e
;atch0pcode >L B1teData // ( ;<R
// 4 ;%J
// 3 ;6%
// F ;6<
// . ;:%
// G ;:<
Start#nde- >L <erm&r, LB #nte,er
Def;id >L ;id0p ;id0b9 <erm&r, <erm&r, <ar,et
;id0p >L *=FE
;id0b9 >L <erm&r, LB Buffer U Strin,
Def;od >L ;od0p Dividend Divi2or <ar,et
;od0p >L *=SM
Def;ultipl1 >L ;ultipl10p 0perand 0perand <ar,et
;ultipl10p >L *=GG
Def!&nd >L !and0p 0perand 0perand <ar,et
!and0p >L *=GC
Def!0r >L !or0p 0perand 0perand <ar,et
!or0p >L *=GE
Def!ot >L !ot0p 0perand <ar,et
!ot0p >L *=S*
Def0b9ect<1pe >L 0b9ect<1pe0p Super!ame
0b9ect<1pe0p >L *=SE
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8+4
Def0r >L 0r0p 0perand 0perand <ar,et
0r0p >L *=GD
DefPac+a,e >L Pac+a,e0p P+,6en,th !um%lement2 Pac+a,e%lement6i2t
Pac+a,e0p >L *=7.
Def@arPac+a,e >L @arPac+a,e0p P+,6en,th @ar!um%lement2 Pac+a,e%lement6i2t
@arPac+a,e0p >L *=7K
!um%lement2 >L B1teData
@ar!um%lement2 >L <erm&r, LB #nte,er
Pac+a,e%lement6i2t >L !othin, U ?Pac+a,e%lement Pac+a,e%lement6i2tB
Pac+a,e%lement >L DataRef0b9ect U !ameStrin,
DefRef0f >L Ref0f0p Super!ame
Ref0f0p >L *=G7
DefShift6eft >L Shift6eft0p 0perand Shift)ount <ar,et
Shift6eft0p >L *=GF
Shift)ount >L <erm&r, LB #nte,er
DefShiftRi,ht >L ShiftRi,ht0p 0perand Shift)ount <ar,et
ShiftRi,ht0p >L *=GA
DefSiCe0f >L SiCe0f0p Super!ame
SiCe0f0p >L *=SG
DefStore >L Store0p <erm&r, Super!ame
Store0p >L *=G*
DefSubtract >L Subtract0p 0perand 0perand <ar,et
Subtract0p >L *=GL
Def<imer >L <imer0p
<imer0p >L *=MB *=KK
Def<oB)D >L <oB)D0p 0perand <ar,et
<oB)D0p >L %-t0pPrefi- *=.F
Def<oBuffer >L <oBuffer0p 0perand <ar,et
<oBuffer0p >L *=FN
Def<oDecimalStrin, >L <oDecimalStrin,0p 0perand <ar,et
<oDecimalStrin,0p >L *=FG
Def<o"e-Strin, >L <o"e-Strin,0p 0perand <ar,et
<o"e-Strin,0p >L *=FS
Def<o#nte,er >L <o#nte,er0p 0perand <ar,et
<o#nte,er0p >L *=FF
Def<oStrin, >L <oStrin,0p <erm&r, 6en,th&r, <ar,et
6en,th&r, >L <erm&r, LB #nte,er
<oStrin,0p >L *=FC
DefWait >L Wait0p %vent0b9ect 0perand
Wait0p >L %-t0pPrefi- *=.M
DefR0r >L Ror0p 0perand 0perand <ar,et
Ror0p >L *=GD
20.2.6 Miscellaneous Objects Encoding
Miscellaneous o0#ects include<
Arg o0#ects
1ocal o0#ects
-e0ug o0#ects
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8+2 Advanced Configuration and 'ower %nterface !pecification
20.2.6.1
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8+3
Arg Objects Encoding
&r,0b9 >L &r,(0p U &r,40p U &r,30p U &r,F0p U &r,.0p U &r,G0p U &r,I0p
&r,(0p >L *=NS
&r,40p >L *=NF
&r,30p >L *=NA
&r,F0p >L *=NB
&r,.0p >L *=NC
&r,G0p >L *=ND
&r,I0p >L *=NE
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8+" Advanced Configuration and 'ower %nterface !pecification
20.2.6.2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8+*
Local Objects Encoding
6ocal0b9 >L 6ocal(0p U 6ocal40p U 6ocal30p U 6ocalF0p U 6ocal.0p U 6ocalG0p U
6ocalI0p U 6ocalT0p
6ocal(0p >L *=N*
6ocal40p >L *=N7
6ocal30p >L *=N.
6ocalF0p >L *=NK
6ocal.0p >L *=NL
6ocalG0p >L *=NM
6ocalI0p >L *=NN
6ocalT0p >L *=NG
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8++ Advanced Configuration and 'ower %nterface !pecification
20.2.6.3
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8+9
Debug Objects Encoding
Debu,0b9 >L Debu,0p
Debu,0p >L %-t0pPrefi- *=K7
20.3 AML Byte Stream Byte Values
The following ta0le lists all the 0(te values that can 0e found in an AM1 0(te stream and the meaning of
each 0(te value. This ta0le is useful for de0ugging AM1 code.
Ta!le +/-& AML <)te Strea% <)te 7alues
1ncoding
7alue
1ncoding 0a%e 1ncoding
;roup
6ixed List Argu%ents 7aria!le List
Argu%ents
/ ?ero2p -ata 20#ect P P
/4 2ne2p -ata 20#ect P P
/2&/* P P P P
/+ Alias2p Term 20#ect Name!tring Name!tring P
/9 P P P P
/8 Name2p Term 20#ect Name!tring -ata3ef20#ect P
/6 P P P P
/A ;(te'refi/ -ata 20#ect ;(te-ata P
/; Word'refi/ -ata 20#ect Word-ata P
/C -Word'refi/ -ata 20#ect -Word-ata P
/- !tring'refi/ -ata 20#ect AsciiChar1ist NullChar P
/. GWord'refi/ -ata 20#ect GWord-ata P
/5 P P P P
/4 !cope2p Term 20#ect Name!tring Term1ist
/44 ;uffer2p Term 20#ect TermArg ;(te1ist
/42 'ackage2p Term 20#ect ;(te-ata 'ackage Term1ist
/43 Dar'ackage2p Term 20#ect TermArg 'ackage Term1ist
/4" Method2p Term 20#ect Name!tring ;(te-ata Term1ist
/4*&/2- P P P P
/2. =O.M> -ualName'refi/ Name 20#ect Name!eg Name!eg P
/25 =OFM> MultiName'refi/ Name 20#ect ;(te-ata Name!eg=N> P
/3&/" P P P P
/"4&/*A
=OAM&O?M>
NameChar Name 20#ect P P
/*; =OVM> ./t2p'refi/ P ;(te-ata P
/*; /4 Mute/2p Term 20#ect Name!tring ;(te-ata P
/*; /2 .vent2p Term 20#ect Name!tring P
/*; /42 Cond3ef2f2p Term 20#ect !uperName !uperName P
/*; /43 Create5ield2p Term 20#ect TermArg TermArg TermArg
Name!tring
P
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
8+8 Advanced Configuration and 'ower %nterface !pecification
Ta!le +/-& AML <)te Strea% <)te 7alues
1ncoding
7alue
1ncoding 0a%e 1ncoding
;roup
6ixed List Argu%ents 7aria!le List
Argu%ents
/*; /45 1oadTa0le2p Term 20#ect TermArg TermArg TermArg
TermArg TermArg TermArg
P
/*; /2 1oad2p Term 20#ect Name!tring !uperName P
/*; /24 !tall2p Term 20#ect TermArg P
/*; /22 !leep2p Term 20#ect TermArg P
/*; /23 Ac:uire2p Term 20#ect !uperName Word-ata P
/*; /2" !ignal2p Term 20#ect !uperName P
/*; /2* Wait2p Term 20#ect !uperName TermArg P
/*; /2+ 3eset2p Term 20#ect !uperName P
/*; /29 3elease2p Term 20#ect !uperName P
/*; /28 5rom;C-2p Term 20#ect TermArg Target P
/*; /26 To;C- Term 20#ect TermArg Target P
/*; /2A ,nload2p Term 20#ect !uperName P
/*; /3 3evision2p -ata 20#ect P P
/*; /34 -e0ug2p -e0ug
20#ect
P P
/*; /32 5atal2p Term 20#ect ;(te-ata -Word-ata TermArg P
/*; /33 Timer2p Term 20#ect P P
/*; /8 2p3egion2p Term 20#ect Name!tring ;(te-ata TermArg
TermArg
P
/*; /84 5ield2p Term 20#ect Name!tring ;(te-ata 5ield1ist
/*; /82 -evice2p Term 20#ect Name!tring 20#ect1ist
/*; /83 'rocessor2p Term 20#ect Name!tring ;(te-ata
-Word-ata ;(te-ata
20#ect1ist
/*; /8" 'ower3es2p Term 20#ect Name!tring ;(te-ata Word-ata 20#ect1ist
/*; /8* Thermal?one2p Term 20#ect Name!tring 20#ect1ist
/*; /8+ %nde/5ield2p Term 20#ect Name!tring Name!tring
;(te-ata
5ield1ist
/*; /89 ;ank5ield2p Term 20#ect Name!tring Name!tring TermArg
;(te-ata
5ield1ist
/*; /88 -ata3egion2p Term 20#ect Name!tring TermArg TermArg
TermArg
P
/*C =OBM> 3ootChar Name 20#ect P P
/*- P P P P
/*. =O^M> 'arent'refi/Char Name 20#ect P P
/*5=OCM> NameCharP Name 20#ect P P
/+ =OiM> 1ocal2p 1ocal 20#ect P P
/+4 =OaM> 1ocal42p 1ocal 20#ect P P
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 8+6
Ta!le +/-& AML <)te Strea% <)te 7alues
1ncoding
7alue
1ncoding 0a%e 1ncoding
;roup
6ixed List Argu%ents 7aria!le List
Argu%ents
/+2 =O0M> 1ocal22p 1ocal 20#ect P P
/+3 =OcM> 1ocal32p 1ocal 20#ect P P
/+" =OdM> 1ocal"2p 1ocal 20#ect P P
/+* =OeM> 1ocal*2p 1ocal 20#ect P P
/++ =OfM> 1ocal+2p 1ocal 20#ect P P
/+9 =OgM> 1ocal92p 1ocal 20#ect P P
/+8 =OhM> Arg2p Arg 20#ect P P
/+6 =OiM> Arg42p Arg 20#ect P P
/+A =O#M> Arg22p Arg 20#ect P P
/+; =OkM> Arg32p Arg 20#ect P P
/+C =OlM> Arg"2p Arg 20#ect P P
/+- =OmM> Arg*2p Arg 20#ect P P
/+. =OnM> Arg+2p Arg 20#ect P P
/+5 P P P P
/9 !tore2p Term 20#ect TermArg !uperName P
/94 3ef2f2p Term 20#ect !uperName P
/92 Add2p Term 20#ect TermArg TermArg Target P
/93 Concat2p Term 20#ect TermArg TermArg Target P
/9" !u0tract2p Term 20#ect TermArg TermArg Target P
/9* %ncrement2p Term 20#ect !uperName P
/9+ -ecrement2p Term 20#ect !uperName P
/99 Multipl(2p Term 20#ect TermArg TermArg Target P
/98 -ivide2p Term 20#ect TermArg TermArg Target Target P
/96 !hift1eft2p Term 20#ect TermArg TermArg Target P
/9A !hift3ight2p Term 20#ect TermArg TermArg Target P
/9; And2p Term 20#ect TermArg TermArg Target P
/9C Nand2p Term 20#ect TermArg TermArg Target P
/9- 2r2p Term 20#ect TermArg TermArg Target P
/9. Nor2p Term 20#ect TermArg TermArg Target P
/95 Aor2p Term 20#ect TermArg TermArg Target P
/8 Not2p Term 20#ect TermArg Target P
/84 5ind!et1eft;it2p Term 20#ect TermArg Target P
/82 5ind!et3ight;it2p Term 20#ect TermArg Target P
/83 -eref2f2p Term 20#ect TermArg P
/8" Concat3es2p Term 20#ect TermArg TermArg Target P
/8* Mod2p Term 20#ect TermArg TermArg Target P
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
89 Advanced Configuration and 'ower %nterface !pecification
Ta!le +/-& AML <)te Strea% <)te 7alues
1ncoding
7alue
1ncoding 0a%e 1ncoding
;roup
6ixed List Argu%ents 7aria!le List
Argu%ents
/8+ Notif(2p Term 20#ect !uperName TermArg P
/89 !iHe2f2p Term 20#ect !uperName P
/88 %nde/2p Term 20#ect TermArg TermArg Target P
/86 Match2p Term 20#ect TermArg ;(te-ata TermArg
;(te-ata TermArg TermArg
P
/8A Create-Word5ield2p Term 20#ect TermArg TermArg Name!tring P
/8; CreateWord5ield2p Term 20#ect TermArg TermArg Name!tring P
/8C Create;(te5ield2p Term 20#ect TermArg TermArg Name!tring P
/8- Create;it5ield2p Term 20#ect TermArg TermArg Name!tring P
/8. 20#ectT(pe2p Term 20#ect !uperName P
/85 CreateGWord5ield2p Term 20#ect TermArg TermArg Name!tring P
/6 1and2p Term 20#ect TermArg TermArg P
/64 1or2p Term 20#ect TermArg TermArg P
/62 1not2p Term 20#ect TermArg P
/62 /63 1Not.:ual2p Term 20#ect TermArg TermArg P
/62 /6" 11ess.:ual2p Term 20#ect TermArg TermArg P
/62 /6* 1$reater.:ual2p Term 20#ect TermArg TermArg P
/63 1.:ual2p Term 20#ect TermArg TermArg P
/6" 1$reater2p Term 20#ect TermArg TermArg P
/6* 11ess2p Term 20#ect TermArg TermArg P
/6+ To;uffer2p Term 20#ect TermArg Target P
/69 To-ecimal!tring2p Term 20#ect TermArg Target P
/68 To@e/!tring2p Term 20#ect TermArg Target P
/66 To%nteger2p Term 20#ect TermArg Target P
/6A&/6; P P P P
/6C To!tring2p Term 20#ect TermArg TermArg Target P
/6- Cop(20#ect2p Term 20#ect TermArg !impleName P
/6. Mid2p Term 20#ect TermArg TermArg TermArg
Target
P
/65 Continue2p Term 20#ect P P
/A %f2p Term 20#ect TermArg Term1ist
/A4 .lse2p Term 20#ect P Term1ist
/A2 While2p Term 20#ect TermArg Term1ist
/A3 Noop2p Term 20#ect P P
/A" 3eturn2p Term 20#ect TermArg P
/A* ;reak2p Term 20#ect P P
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 894
Ta!le +/-& AML <)te Strea% <)te 7alues
1ncoding
7alue
1ncoding 0a%e 1ncoding
;roup
6ixed List Argu%ents 7aria!le List
Argu%ents
/A+&/C; P P P P
/CC ;reak'oint2p Term 20#ect P P
/C-&/5. P P P P
/55 2nes2p -ata 20#ect P P
20.4 AML Encoding of Names in the Namespace
Assume the following namespace e/ists<
\
S(
;%;
S%<
:%<
S4
;%;
S%<
:%<
)PX
S%<
:%<
Assume further that a definition 0lock is loaded that creates a node B!.C',.!.T, and loads a 0lock using it
as a root. Assume the loaded 0lock contains the following names<
S<P4
\:%<
\\P)#(
\\P)#(.SBS
\S3
\S3.#S&.)0;4
\\\SF
\\\S3.;%;
\\\S3.;%;.S%<
Scope(\S(.)PX.S%<.S<P4)
RS7
\&B)
\&B).D%5
/
This will 0e encoded in AM1 as<
aS<P4a
ParentPrefi-)har a:%<_a
ParentPrefi-)har ParentPrefi-)har aP)#(a
ParentPrefi-)har ParentPrefi-)har Dual!amePrefi- aP)#(a aSBS_a
Root)har aS3__a
Root)har ;ulti!amePrefi- F aS3__a a#S&_a a)0;4a
ParentPrefi-)har ParentPrefi-)har ParentPrefi-)har aSF__a
ParentPrefi-)har ParentPrefi-)har ParentPrefi-)har Dual!amePrefi- aS3__a a;%;_a
ParentPrefi-)har ParentPrefi-)har ParentPrefi-)har ;ulti!amePrefi- F aS3__a a;%;_a
aS%<_a
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
892 Advanced Configuration and 'ower %nterface !pecification
After the 0lock is loaded, the namespace will look like this =names added to the namespace 0( the loading
operation are shown in 0old><
\
S(
;%;
S%<
:%<
CP$
#E9
#9P7
XYZ
ABC
DED
+E9
PCI*
#B#
S4
;%;
S%<
:%<
)PX
S%<
:%<
#.
I#A
C6A7
AEA
#E9
SF
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 893
APPENDIX A: Device Class Specifcations
A Device Class PM Specifcations
This section defines the 0ehavior of devices as that 0ehavior relates to power management and, specificall(,
to the four device power states defined 0( AC'%. The goal is ena0ling device vendors to design power&
managea0le products that meet the 0asic needs of 2!'M and can 0e utiliHed 0( an( AC'%&compati0le
operating s(stem.
A.1 Overview
The power management of individual devices is the responsi0ilit( of a policy owner in the operating
s(stem. This software element will implement a power management polic( that is appropriate for the t(pe
=or class> of device 0eing managed. -evice power management polic( t(picall( operates in con#unction
with a glo0al s(stem power polic( implemented in the operating s(stem.
%n general, the device&class power management polic( strives to reduce power consumption while the
s(stem is working 0( transitioning among various availa0le power states according to device usage. The
challenge facing polic( owners is to minimiHe power consumption without adversel( impacting the
s(stemMs usa0ilit(. This 0alanced approach provides the user with 0oth power savings and good
performance.
;ecause the polic( owner has ver( specific knowledge a0out when a device is in use or potentiall( in use,
there is no need for hardware timers or such to determine when to make these transitions. !imilarl(, this
level of understanding of device usage makes it possi0le to use fewer device power states. $enerall(,
intermediate states attempt to draw a compromise 0etween latenc( and consumption 0ecause of the
uncertaint( of actual device usage. With the increased knowledge in the 2!, good decisions can 0e made
a0out whether the device is needed at all. With this a0ilit( to turn devices off more fre:uentl(, the 0enefit of
having intermediate states diminishes.
The polic( owner also determines what class&specific events can cause the s(stem to transition from
sleeping to working states, and ena0les this functionalit( 0ased on application or user re:uests. Notice that
the definition of the wake events that each class supports will influence the s(stemMs glo0al power polic( in
terms of the level of power management a s(stem sleeping state can attain while still meeting wake latenc(
re:uirements set 0( applications or the user.
A.2 Device Power States
The following definitions appl( to devices of all classes<
5$. !tate in which device is on and running. %t is receiving full power from the s(stem and is
delivering full functionalit( to the user.
5+. Class&specific low&power state =defined in the following section> in which device conte/t ma(
or ma( not 0e lost. ;uses in -4 cannot do an(thing to the 0us that would force devices on that 0us to
lose conte/t.
5&. Class&specific low&power state =defined in the following section> in which device conte/t ma(
or ma( not 0e lost. Attains greater power savings than -4. ;uses in -2 can cause devices on that 0us
to lose some conte/t =for e/ample, the 0us reduces power supplied to the 0us>. -evices in -2 must 0e
prepared for the 0us to 0e in -2 or higher.
5#. !tate in which device is off and not running. -evice conte/t is lost. 'ower can 0e removed
from the device.
-evice power&state transitions are t(picall( invoked through 0us&specific mechanisms =for e/ample, ATA
!tand0(, ,!; !uspend, and so on>. %n some cases, 0us&specific mechanisms are not availa0le and device&
specific mechanisms must 0e used. Notice that the e/plicit command for entering the -3 state might 0e the
removal of power.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
89" Advanced Configuration and 'ower %nterface !pecification
%t is the responsi0ilit( of the polic( owner =or other software> to restore an( lost device conte/t when
returning to the - state.
A.2.1 Bus Power Management
'olic( owners for 0us devices =for e/ample, 'C%, ,!;, !mall Computer !(stem %nterface V!C!%W> have the
additional responsi0ilit( of tracking the power states of all devices on the 0us and for transitioning the 0us
itself to onl( those power states that are consistent with those of its devices. This means that the 0us state
can 0e no lower than the highest state of one of its devices. @owever, ena0led wake events can affect this as
well. 5or e/ample, if a particular device is in the -2 state and set to wake the s(stem and the 0us can onl(
forward wake re:uests while in the -4 state, then the 0us must remain in the -4 state even if all devices are
in a lower state.
;elow are summaries of relevant 0us power management specifications with references to the sources.
A.2.2 Display Power Management
3efer to the Display Power (anagement Signaling Specification (DP(S), availa0le from<
Dideo .lectronics !tandards Association =D.!A>
24* North 5irst !treet
!uite ""
!an 7ose, CA 6*434&226
A -'M!&compliant video controller and -'M!&compliant monitor use the horiHontal and vertical s(nc
signals to control the power mode of the monitor. There are " modes of operation< normal, stand0(, suspend
and off. -'M!&compliant video controllers toggle the s(nc lines on or off to select the power mode.
A.2.3 PCMCIA/PCCARD/CardBus Power Management
3efer to the 'CMC%A ='ersonal Computer Memor( Card %nternational Association> We0 site, at
http<FFwww.pcmcia.org.
'CMC%A and 'CCA3- devices do not have device power states defined. The onl( power states availa0le
are on and off, controlled 0( the host 0us controller. The Card;us specification is a superset of the
'CCA3- specification, incorporating the power management specification for 'C% 0us. 'ower
management capa0ilities :uer(, state transition commands and wake event reporting are identical.
A.2.4 PCI Power Management
3efer to the 'C% !pecial %nterest $roup ='C%!%$> We0 site, at http<FFwww.pcisig.comF.
PCI <us Power Manage%ent Capa!ilities Kuer). 'C% ;us device capa0ilities are reported via
the optional Capa0ilities 1ist registers, which are accessed via the CapC'tr.
PCI <us Power Manage%ent State Transition Co%%ands. 'C% ;us device power states are
controlled and :ueried via the standard 'ower Management !tatusFControl 3egister ='MC!3>.
PCI <us :akeup 1vent "eporting. 'C% wake events are reported on the optional 'M.Y signal,
with setting of the WakeC%nt 0it in the 'MC!3. Wake event reporting is controlled 0( the WakeC.n 0it
in the 'MC!3 register.
A.2.5 USB Power Management
3efer to the ,niversal !erial ;us %mplementers 5orum =,!;&%5 > We0 site, at http<FFwww.us0.orgF.
2S< Power Manage%ent Capa!ilities Kuer). ,!; device capa0ilities are reported to the ,!;
@ost via the standard 'ower -escriptors. These address power consumption, latenc( time, wake
support, and 0atter( support and status notification.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 89*
2S< Power Manage%ent State Transition Co%%ands. ,!; device power states are controlled
0( the ,!; @ost via the standard !.TC5.AT,3. command. ,!; device power states are :ueried via
the standard ,!; $.TC!TAT,! command.
2S< :akeup 1vent "eporting. ,!; wake event reporting is controlled using the
!.TC5.AT,3. command, with value -.D%C.C3.M2T.CWAE.,'. ,!; wake events are reported
0( sending remote wake resume signaling.
A.2.6 Device Classes
;elow is a list of the class&specific device power management definitions availa0le in this specification.
Notice that there e/ists a default device class definition that applies to all devices, even if there is a
separate, class&specific section that adds additional re:uirements.
Audio 5evice Class. Applies to audio devices.
C3M Port 5evice Class. Applies to C2M ports devices.
5ispla) 5evice Class. Applies to C3T monitors, 1C- panels, and video controllers for those
devices.
Input 5evice Class. Applies to standard t(pes of input devices such as ke(0oards, ke(pads, mice,
pointing devices, #o(sticks, and game pads, plus new t(pes of input devices such as virtual realit(
devices.
Mode% 5evice Class. Applies to modem and modem&like =for e/ample, %!-N terminal adapters>
devices.
0etwork 5evice Class. Applies specificall( to .thernet and token ring adapters. ATM and %!-N
adapters are not supported 0( this specification.
PC Card Controller 5evice Class. Applies to 'C Card controllers and slots.
Storage 5evice Class. Applies specificall( to ATA hard disks, flopp( disks, ATA'% and !C!% C-&
32Ms, and the %-. channel.
A.3 Default Device Class
The re:uirements e/pressed in this section appl( to all devices, even if there is a separate, class&specific
power management definition that identifies additional re:uirements.
A.3.1 Default Power State Defnitions
State 5efinition
- -evice is on and running. %t is receiving full power from the s(stem, and is delivering full
functionalit( to the user.
-4 This state is not defined and not used 0( the default device class.
-2 This state is not defined and not used 0( the default device class.
-3 -evice is off and not running. -evice conte/t is assumed lost, and there is no need for an( of it to
0e preserved in hardware. This state should consume the minimum power possi0le. %ts onl(
re:uirement is to recogniHe a 0us&specific command to re&enter -. 'ower can 0e removed from
the device while in -3. %f power is removed, the device will receive a 0us&specific hardware reset
upon reapplication of power, and should initialiHe itself as in a normal power on.
A.3.2 Default Power Management Policy
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
89+ Advanced Configuration and 'ower %nterface !pecification
Present
State
0ext
State
Cause
- -3 -evice determined 0( the 2! to not 0e needed 0( an( applications or the user.
!(stem enters a sleeping state.
-3 - -evice determined 0( the 2! to 0e needed 0( some application or the user.
A.3.3 Default Wake Events
There are no default wake events, 0ecause knowledge of the device is implicit in servicing such events.
-evices can e/pose wake capa0ilities to 2!'M, and device&specific software can ena0le these, 0ut there is
no generic application&level or 2!&wide support for undefined wake events.
A.3.4 Minimum Power Capabilities
All devices must support the - and -3 states. 5unctionalit( availa0le in - must 0e availa0le after
returning to - from -3 without re:uiring a s(stem re0oot or an( user intervention. This re:uirement
applies whether or not power is removed from the device during -3.
A.4 Audio Device Class
The re:uirements e/pressed in this section appl( to audio devices.
A.4.1 Power State Defnitions
State Status 5efinition
- $e>'ired 'ower is on. -evice is operating.
-4 =ptional 'ower consumption is less than - state. -evice must 0e a0le to transition 0etween
- and -4 states within 4 ms. No audio samples ma( 0e lost 0( entering and
leaving this state.
-2 $e>'ired 'ower consumption is less than - state. -evice must 0e a0le to transition 0etween
- and -2 states within 4 ms. Audio samples ma( 0e lost 0( entering and
leaving this state.
-3 $e>'ired The device is completel( off or drawing minimal power. 5or e/ample, a stereo will
0e off, 0ut a light&emitting diode =1.-> ma( 0e on and the stereo ma( 0e listening
to %3 commands.
%f a device is in the -4 or -2 state it must resume within 4 ms. A device in the -3 state ma( take as long
as it needs to power up. %t is the responsi0ilit( of the polic( owner to advertise to the s(stem how long a
device re:uires to power up.
All audio devices must 0e capa0le of -, -2 and -3 states. %t is desira0le that an audio device 0e capa0le
of -4 state. The difference 0etween -4 and -2 is that a device capa0le of -4 can maintain complete state
information in reduced power mode. The polic( owner or other software must save all states for -2&
capa0le devices. !ome audio samples ma( 0e lost in transitioning into and out of the -2 state.
Notice that the -4 state was added to allow digital signal processor =-!'>&e:uipped audio hardware to
e/ploit low&power modes in the -!'. 5or e/ample, a -!' ma( 0e used to implement -ol0( AC&3 -ecode.
When paused it stops pla(ing audio, 0ut the -!' ma( contain thousands of 0(tes worth of state
information. %f the -!' supports a low&power state, it can shut down and later resume from e/actl( the
audio sample where it paused without losing state information.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 899
A.4.2 Power Management Policy
5or the purpose of the following state transition polic(, the following device&specific operational states are
defined<
Pla)ing. Audio is pla(ing.
"ecordingH
6oreground. Normal application is recording. 3ecording is considered foreground unless
specificall( designated low priorit(.
<ackground. !peech recognition or speech activit( detection is running. 3ecording ma( 0e
preempted 0( foreground recording or pla(ing. An( audio recording ma( 0e designated as
0ackground.
6ull 5uplex. -evice is simultaneousl( pla(ing and recording.
Paused. 5ile handle is open. 2nl( devices that are pla(ing, foreground recording or in full duple/
operation ma( 0e paused. ;ackground recording ma( not 0e paused. !tate is static and never lost. The
paused state assumes that a device must transition to the resumed state rapidl(. 'la(ing or recording
must 0e resumed within 4 ms. No audio samples ma( 0e lost 0etween the device is paused and later
resumed.
Closed. No file handle is open.
Present
State
0ext
State Cause
-3 - Audio device moves from closed to open state or paused when the device receives the
resume command.
- -4 Audio device receives pause command. %f device is -4 capa0le, this state is preferred. %f
not, the device driver will preserve conte/t, and the device will 0e set to -2.
-2F-4 - Audio device receives a resume command.
- -2 Audio device is closed. Audio inactivit( timer started.
-2 -3 Audio inactivit( timer e/pires.
- -3 Audio device is in 0ackground record mode and receives power&down command.
When an audio device is in the - state it will refuse s(stem re:uests to transition to -3 state unless it is in
0ackground record mode. When an audio device is paused =-4 or -2> and it receives a re:uest to transition
to the -3 state, it will save the state of the audio device and transition to the -3 state.
!ince multimedia applications often open and close audio files in rapid succession, it is recommended that
an inactivit( timer 0e emplo(ed 0( the polic( owner to prevent needless shutdowns =-3 transitions> of the
audio hardware. 5or e/ample, fre:uent power c(cling ma( damage audio devices powered 0( vacuum
tu0es.
A.4.3 Wake Events
An audio device ma( 0e a wake device. 5or e/ample, a ,!; microphone designed for securit( applications
might use the ,!; wake mechanism to signal an alarm condition.
A.4.4 Minimum Power Capabilities
All audio devices must 0e capa0le of -, -2 and -3 power states. %f the device is capa0le of maintaining
conte/t while in a low&power state it should advertise support for -4. Transitional latenc( for the -2 or -3
states must 0e less than 4 ms. There are no latenc( restrictions for -3 transitions, 0ut the polic( owner
should advertise the amount of time re:uired.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
898 Advanced Configuration and 'ower %nterface !pecification
A.5 COM Port Device Class
The re:uirements e/pressed in this section appl( to ,niversal As(nchronous 3eceiverFTransmitters
=,A3Ts> such as the common N!4+** 0uffered serial port and e:uivalents.
The two re:uired states for an( power&managed C2M 'ort are full on =-> and full off =-3>. This in turn
re:uires that the C2M port hardware 0e power&managea0le 0( AC'% control methods for C2M ports that
are on s(stem 0oards, or 0( standard 0us power management controls for C2M ports that are on add&in
cards =for e/ample, 'C%>. ;ecause of this, %!A&0ased C2M port add&in cards will not 0e a0le to meet this
re:uirement, and therefore cannot 0e compliant with this specification.
A.5.1 Power State Defnitions
State Status 5efinition
- $e>'ired 1ine drivers are on. ,A3T conte/t is preserved.
-4 ;0A This state is not defined for C2M 'orts. ,se the -3 state instead.
-2 ;0A This state is not defined for C2M 'orts. ,se the -3 state instead.
-3 $e>'ired 1ine drivers are off =unpoweredK outputs isolated from devices attached to the port>.
,A3T conte/t is lost. 1atenc( to return to - is less than 4 second.
A.5.2 Power Management Policy
Present
State
0ext
State Cause
-3 - 'ower&on reset
C2M port opened 0( an application
- -3 C2M port closed
!(stem enters sleeping state while wake is disa0led on this device.
!(stem enters sleeping state while wake is ena0led on this device and the device is
capa0le of generating wake to the s(stem from state -3.
A.5.3 Wake Events
%f the C2M port is capa0le of generating wake events, asserting the Jring indicatorL line =D.2" circuit 42*>
will cause the C2M port to assert a wake event. There are two common mechanisms that ma( 0e emplo(ed
=either one or 0oth> for performing machine wake using C2M ports.
The first provides a solution that is capa0le of waking the 'C whether the ,A3T is powered =-> or not
=-3>. @ere, the Jring indicatorL line =from D.2" circuit 42*> is commonl( connected directl( to the s(stem
wake device in addition to 0eing connected to the ,A3T. While this implementation is normative for C2M
ports located on s(stem mother0oards =see the AC'% specification>, it could also 0e done 0( add&in cards
with C2M ports that reside on 0uses supporting s(stem wake from devices in -3 =for e/ample, 'M.Y
signal on 'C%>.
The second mechanism re:uires that the ,A3T 0e powered =-> to use the ,A3TMs interrupt output pin to
generate the wake event instead. When using this method, the 2! C2M port polic( owner or power
management control methods are e/pected to configure the ,A3T. Although an( ,A3T interrupt source
=for e/ample, Odata read(M> could theoreticall( 0e used to wake the s(stem, these methods are 0e(ond the
scope of this document.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 896
A.5.4 Minimum Power Capabilities
A C2M port conforming to this specification must support the - and -3 states.
A.6 Display Device Class
The re:uirements e/pressed in this section appl( to all devices engaged in the displa( of program content,
which includes full screen displa( devices, displa( controllers, and graphics adapters. This class does not
include video capture devices unless the( are children of the graphics adapter. This class does not include
edge displa(s or hardware indicators for device states.
While saving power from the displa( and adapter are primar( goals of -ispla( -evice Class power
management definitions, the definitions are also intended to ensure that the user perceives the s(stem as
doffd during s(stem sleeping states, as re:uired a0ove. When the s(stem enters a lower power state, the
screen must go 0lack so the user knows the s(stem is idle. This is important 0ecause devices that cannot
actuall( save power =standard televisions, for e/ample> can still support the user notice of s(stem idle 0(
going 0lack.
A.6.1 Power State Defnitions
A.6.1.1 CRT Monitors (not including other full screen displays)
State Status 5efinition
- $e>'ired This state is e:uivalent to the J2nL state defined in the D.!A -'M! specification
=see 3elated -ocuments> and is signaled to the displa( using the -'M! method.
-ispla( is full( on
Dideo image is active
-4 =ptional This state is e:uivalent to the J!tand0(L state defined in the D.!A -'M! and is
signaled to the displa( using the -'M! method.
-ispla( is functional 0ut ma( 0e conserving energ(
Dideo image is 0lank
1atenc( to return to - must 0e less than * seconds
-2 $e>'ired This state is e:uivalent to the J!uspendL state defined in the D.!A -'M!
specification and is signaled to the displa( using the -'M! method.
-ispla( is functional and conserving energ(
Dideo image is 0lank
1atenc( to return to - is less than 4 seconds
-3 $e>'ired This state is e:uivalent to the J2ffL state defined in the D.!A -'M! specification
and is signaled to the displa( using the -'M! method.
-ispla( is non&functional
Dideo image is 0lank
C3T Monitors are a special case in power management. 2n the one hand, the( support a common defined
method =-'M!> for changing power states. 2n the other hand, that procedure and the C3T support is
e/tremel( slow and out of keeping with other faster power control methods used 0( other forms of displa(.
This definition should not preclude the use of faster and more effective methods of transitioning the C3T if
the( are availa0le and known to the controller. -'M! is not recommended as solution for new displa(
devices in the future.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
88 Advanced Configuration and 'ower %nterface !pecification
A.6.1.2 Internal Flat Panel Devices
!tate !tatus -efinition
- $e>'ired This state is e:uivalent to the J2nL state for a -'M! device, 0ut is signaled to the
panel 0( the correct application of power andFor controller specific signaling.
-ispla( is full( on
;acklight =if present> is full( on=su0#ect to performance state re:uirements I see
0elow>
Dideo image is active
-4 =ptional This state is not re:uired to 0e ph(sicall( different than a -3 state if the device is
a0le to meet the resume re:uirement and the driver is a0le to restore state.
-ispla( retains internal state 0ut ma( 0e conserving energ(
;acklight=if present> is full( off
Dideo image is 0lank
1atenc( to return to - must 0e less than * milliseconds
-2 =ptional This state is not re:uired to 0e ph(sicall( different than a -3 state if the device is
a0le to meet the resume re:uirement and the driver is a0le to restore state.
-ispla( retains state 0ut is conserving energ(
;acklight =if present> is full( offK
Dideo image is 0lank
1atenc( to return to - is less than * milliseconds
-3 $e>'ired This state is e:uivalent to the J2ffL state defined in the D.!A -'M!
specification. %t is signaled 0( the removal of power or possi0l( 0( controller&
specific signaling.
-ispla( is non&functional
;acklight =if present> is full( off.
Dideo image is 0lank
1atenc( to return to - is less than * milliseconds
%nternal flat panels =also known as local flat panels or sometimes as 1C-s> do not normall( support or
re:uire -'M! signaling to change power states. %nstead, controllers capa0le of managing such panels tend
to provide vendor&specific methods to control internal flat panels, often involving special se:uencing of
power signals to the panel. !ome ma( 0e managed onl( 0( the application or removal of power.
;acklight control for power management states is likewise controller and even platform specific. Note that
on&off 0acklight control for power management states is often unrelated to 0acklight intensit( or 0rightness
control that is used while in the - state.
The * milliseconds is onl( to allow some e/isting hardware to function . The target for new devices
should 0e 4 milliseconds.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 884
A.6.1.3 DVI Displays (Digital Flat Panels and DVI Monitors)
!tate !tatus -efinition
- $e>'ired This state is e:uivalent to the J2nL state for a -'M! device, 0ut is signaled to the
displa( 0( the correct application of power andFor controller specific signaling.
-ispla( is full( on
Dideo image is active
-4 =ptional This state is not re:uired to 0e ph(sicall( different than a -3 state if the device is
a0le to meet the resume re:uirement and the driver is a0le to restore state. %t is
signaled 0( the removal of displa( output and time e/piring. The ph(sical state
entered is no different than -2.
-ispla( retains internal state 0ut ma( 0e conserving energ(
Dideo image is 0lank
1atenc( to return to - must 0e less than 2* milliseconds
-2 =ptional This state is not re:uired to 0e ph(sicall( different than a -3 state if the device is
a0le to meet the resume re:uirement and the driver is a0le to restore state. %t is
signaled 0( the removal of displa( output and time e/piring The ph(sical state
entered is no different than -4.
-ispla( retains state 0ut is conserving energ(
Dideo image is 0lank
1atenc( to return to - is less than 2* milliseconds
-3 $e>'ired This state is e:uivalent to the J2ffL state defined in the D.!A -'M!
specification. %t is signaled 0( the removal of displa( output and time e/piring
-ispla( is non&functional
Dideo image is 0lank
1atenc( to return to - is less than 2* milliseconds
Although 2* milliseconds is shown here 0ecause not all devices in this group are fast now, the target
resume for a new device should 0e 4 milliseconds.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
882 Advanced Configuration and 'ower %nterface !pecification
A.6.1.4 Standard TV Devices (and Analog HDTVs)
!tate !tatus -efinition
- $e>'ired This state is e:uivalent to the J2nL state for a -'M! device.
-ispla( is full( on
Dideo image is active
-4 =ptional Dideo image is 0lank
1atenc( to return to - must 0e less than 4 milliseconds
-2 =ptional Dideo image is 0lank
1atenc( to return to - must 0e less than 4 milliseconds
-3 $e>'ired This state is not e:uivalent to the J2ffL state defined in the D.!A -'M!
specification 0ecause not power is actuall( saved.
Dideo image is 0lank
1atenc( to return to - is less than 4 milliseconds
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 883
A.6.1.5 Other (new) Full Screen Devices
!ome devices not specificall( defined here alread( e/ist, such as pro#ectors that emulate C3Ts or @-TDs.
2thers ma( 0e coming. %t is important for an( device used for full screen displa( to support power
transitions and power management states, 0ut the primar( re:uirement for the method should 0e low
overhead.
!tate !tatus -efinition
- $e>'ired This state is e:uivalent to the J2nL state for a -'M! device, 0ut is signaled to the
panel 0( the correct application of power andFor device specific signaling known
to the controller.
-ispla( is full( on
Dideo image is active
-4 =ptional This state is not re:uired to 0e ph(sicall( different than a -3 state if the device is
a0le to meet the resume re:uirement and the driver is a0le to restore state. %t is
signaled to the panel 0( the correct application of power andFor device specific
signaling known to the controller..
-ispla( retains internal state 0ut ma( 0e conserving energ(
Dideo image is 0lank
1atenc( to return to - must 0e less than 4 milliseconds
-2 =ptional This state is not re:uired to 0e ph(sicall( different than a -3 state if the device is
a0le to meet the resume re:uirement and the driver is a0le to restore state. %t is
signaled to the panel 0( the correct application of power andFor device specific
signaling known to the controller.
-ispla( retains state 0ut is conserving energ(
Dideo image is 0lank
1atenc( to return to - is less than 4 milliseconds
-3 $e>'ired This state is e:uivalent to the J2ffL state defined in the D.!A -'M!
specification. %t is signaled 0( the removal of displa( output andFor device
specific methods known to the controller.
-ispla( is non&functional
Dideo image is 0lank
1atenc( to return to - is less than 2* milliseconds
Although 2* milliseconds is shown here 0ecause not all devices in this group are fast now, the target
resume for a new device should 0e 4 milliseconds.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
88" Advanced Configuration and 'ower %nterface !pecification
A.6.1.6 Video Controllers (Graphics Adapters)
State Status 5efinition
- $e>'ired ;ack&end is on
Dideo controller conte/t is preserved
Dideo memor( contents are preserved
-4 =ptional ;ack&end is off, e/cept for C3T control signaling =-'M!>
Dideo controller conte/t is preserved
Dideo memor( contents is preserved
1atenc( to return to - is less than 4 milliseconds
-2 =ptional ;ack&end is off, e/cept for C3T control signaling =-'M!>
Dideo controller conte/t is lost
Dideo memor( contents is lost
1atenc( to return to - is less than 2 milliseconds
-3 $e>'ired ;ack&end is off
Dideo controller conte/t is lost =power removed>
Dideo memor( contents is lost =power removed>
1atenc( to return to - is less than 2 milliseconds
A.6.1.7 Display Codecs
1ike the displa(s the( control, displa( codecs are children of the adapter and cannot 0e in a higher state
than the adapter or a lower state than the displa(s the( control . %t is generall( not helpful to deal with
codecs entirel( separatel( from the adapter or the displa(s the( control. While it ma( var( from device to
device, a codec will either 0e safel( powered down when its displa( is powered down or it ma( re:uire
power as long as the adapter receives power.
A.6.2 Power Management Policy for the Display Class
Present
State
0ext
State Cause
- -4 ,ser inactivit( for a period of time =T4>
-4 -2 ,ser inactivit( for a period of time =T2 ) T4>
-2 -3 ,ser inactivit( for a period of time =T3 ) T2>
-4F-2F-3 - ,ser activit( or application ,% change =for e/ample, dialog pop&up>
These state transition definitions appl( to 0oth the full screen displa( and the video controller. @owever, the
control of the two devices is independent, e/cept that a video controller will never 0e put into a lower
power state than its full screen displa(. Also, while full screen displa(s can transition directl( from -4 to
-3 or from -2 to -3, the adapters re:uire a transition to - from -4 or -2 0efore entering -3.
Transitions for the video controller are commanded via the 0us&specific control mechanism for device
states. MonitorF1C- transitions are commanded 0( signaling from the video controller and are onl(
generated as a result of e/plicit commands from the polic(&owner. 5ull screen displa( power control is
functionall( independent from an( other interface the monitor ma( provide =such as ,!;>. 5or instance,
@u0s and @%- devices in the monitor enclosure ma( 0e power&managed 0( their driver over the ,!; 0us,
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 88*
0ut the MonitorF1C- device itself ma( notK it must 0e power&managed from the video controller using the
methods a0ove.
A.6.3 Wake Events
-ispla( devices incorporating a s(stem power switch should generate a wake event when the switch is
pressed while the s(stem is sleeping.
A.6.4 Minimum Power Capabilities
A C3T monitor conforming to this specification must support the -, -2, and -3 states. 2ther full screen
displa(s onl( need to support - and -3. !upport for the -4 state is optional in all cases. Transitional
latencies for the -4 or -2 state must meet the re:uirements a0ove.
A video controller conforming to this specification must support the - and -3 states. !upport for the -4
and -2 states is optional. Transitional latencies for the -4 must 0e less than 4 milliseconds while -2 and
-3 must transition to - in less than 2 milliseconds.
A.6.5Performance States for Display Class Devices
'erformance states for displa( devices and adapters have one clear difference from defined power
management states. There is no displa( in an( power management state higher than -. @owever,
performance states are all applied within -, which means the( save power while continuing to displa(.
Not all displa( class devices will support performance states, 0ut in all cases, the( must allow continued
displa( where the( e/ist.
A.6.5.1 Common Requirements for Display Class Performance States
The definition of each state =up the line toward the 2!'M> must include ma/imum latenc( information on
transitions into the state and transitions out of the state. =5or states other than -'!4, it ma( 0e necessar( to
indicate whether the latenc( is the time from -'! to -'!/ or onl( from -'!/&4 to -'!/.>
.ach state has to have a relative weight indicator or a relative power savings indicator. %.e., it can make a
difference in 2!'M policies whether -'!4 saves 2X power and -'!2 save 9*X power even if latenc( is
longer.
While A!1 Name!pace structures ma( provide some of this information, it is recommended that displa(
class performance states 0e entered and e/ited 0( driver and not 0( control method wherever possi0le.
A.6.5.2 Performance states for Full Screen Displays
A.6.5.2.1 CRT Performance States
!ome C3Ts =in theor(> have the capa0ilit( for dreduced ond && a mode which displa(s 0ut uses less power
than full performance. .ven without this capa0ilit(, a C3T ma( 0e a0le to use reduced refresh or other
methods to reduce the total power of displa(ing.
A.6.5.2.2 Internal Flat Panel
%n general, panels consume a fi/ed amount of power. @owever, some panels are also capa0le of supporting
reduced refresh. More important, the amount of 0acklight 0rightness is a ma#or factor in s(stem power.
This clearl( needs to 0e coordinated with direct A!1 control methods for 0rightness and with am0ient light
sensing when present. @owever, a performance state ma( 0e achieved 0( offsetting the 0rightness value
computed 0( other methods, either 0( a fi/ed amount or a fi/ed percentage.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
88+ Advanced Configuration and 'ower %nterface !pecification
A.6.5.2.3 DVI Full Screen Devices
-D% -evices are normall( capa0le of fre:uenc( control and ma( 0e a0le to 0enefit 0( fre:uenc( control.
@owever, 0ecause of sensitivit( to signal loss, -D% devices ma( have limitations on other t(pes of
performance control.
A.6.5.2.4 Standard TV and Analog HDTVs
!tandard TD and Analog @-TDs do not appear capa0le of performance states. Codecs controlling them
ma( 0e capa0le of power saving, however.
A.6.5.2.5 New Devices
The a0ilit( to reduce power while continuing to displa( will 0e increasingl( important.
A.6.5.3 Performance States for Video Controllers/Display Adapters
Adapters are somewhat limited during performance states 0ecause the( have to continue to support displa(
on one or more full screen devices. @owever, the( can still do a num0er of things to support performance
states, including
Changes to 0asic displa( and render capa0ilities, including speed or fre:uenc( range supported.
5eatureFCapa0ilit(FGualit( Control I limiting specific hardware features, limiting refresh rates,
limiting resolutions.
The limiting factor on what can 0e supported ma( sometimes 0e in the 2!'M. %f the 2!'M support
d(namic changes in these features during a performance state change =even if no other time>, more
opportunities arise.
2nce again, the latenc( on transitions and the power saved 0( specific states have to 0e made availa0le to
the 2!'M in order to use these options effectivel(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 889
A.7 Input Device Class
The re:uirements e/pressed in this section appl( to standard t(pes of input devices such as ke(0oards,
ke(pads, mice, pointing devices, #o(sticks, game pads, to devices that com0ine these kinds of input
functionalit( =composite devices, and so on>, and to new t(pes of input devices such as virtual realit(
devices, simulation devices, and so on.
A.7.1 Power State Defnitions
State Status 5efinition
- $e>'ired -evice is receiving full power from its power source, delivering full functionalit( to
the user, and preserving applica0le conte/t and state information.
-4 =ptional %nput device power consumption is greatl( reduced. %n general, device is in a power
management state and is not delivering an( functionalit( to the user e/cept wake
functionalit( if applica0le. -evice status, state, or other information indicators =for
e/ample, 1.-s, 1C- displa(s, and so on> are turned off to save power.
The following device conte/t and state information should 0e preserved 0( the
polic( owner or other software<
Ee)!oard. Num, caps, scroll lock states =and Compose and Eana states if
applica0le> and associated 1.-Findicator states, repeat dela(, and repeat rate.
Fo)stick. 5orced feed0ack effects =if applica0le>.
An) input device. All conte/t and state information that cannot 0e preserved 0( the
device when itMs conserving power.
-2 ;0A This state is not defined for input devices, use -4 as the power management state
instead.
-3 $e>'ired %nput device is off and not running. %n general, the device is not delivering an(
functionalit( to the user e/cept wake functionalit( if applica0le. -evice conte/t and
state information is lost.
A.7.2 Power Management Policy
Present
State
0ext
State Cause
-3 - 3e:uested 0( the s(stem
- -4F-3[ 3e:uested 0( the s(stem =for e/ample, s(stem goes to sleep with wake ena0led>
-F-4 -3 3e:uested 0( the s(stem =for e/ample, s(stem goes to sleep with wake disa0led>
'ower is removed
-4F-3 - -evice with ena0led wake capa0ilit( re:uests transition 0( generating a wake event
3e:uested 0( the s(stem
[-epends on capa0ilit( of device =if it features -4 or -3 wake capa0ilit( or not>K device will 0e put in state
with the lowest possi0le power consumption.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
888 Advanced Configuration and 'ower %nterface !pecification
A.7.3 Wake Events
%t is recommended, 0ut not re:uired, that input devices implement and support 0us&specific wake
mechanisms if these are defined for their 0us t(pe. This is recommended 0ecause a user t(picall( uses an
input device of some kind to wake the s(stem when it is in a power management state =for e/ample, when
the s(stem is sleeping>.
The actual input data =particular 0utton or ke( pressed> thatMs associated with a wake event should never 0e
discarded 0( the device itself, 0ut should alwa(s 0e passed along to the polic( owner or other software for
further interpretation. This software implements a polic( for how this input data should 0e interpreted, and
decides what should 0e passed along to higher&level software, and so on.
%t is recommended that the device 0utton=s> or ke(=s> used for power management purposes are clearl(
la0eled with te/t andFor icons. This is recommended for ke(0oards and other input devices on which all
0uttons or ke(s are t(picall( la0eled with te/t andFor icons that identif( their usage.
5or e/ample, a ke(0oard could include a special&purpose power management 0utton =for e/ample,
J'owerL> that, when pressed during a s(stem sleeping state, generates a wake event. Alternativel(, the
0utton=s> on mice and other pointing devices could 0e used to trigger a wake event.
./amples of more advanced wake events include ke(0oard wake signaling when an( ke( is pressed, mouse
wake signaling on detection of AFS motion, #o(stick wake signaling on AFS motion, and so on. @owever,
in order to avoid accidental or unintentional wake of the s(stem, and to give the user some control over
which input events will result in a s(stem wake, itMs suggested that more advanced t(pes of wake events are
implemented as features that can 0e turned on or off 0( the user =for e/ample, as part of the 2!'M user
interface>.
A.7.4 Minimum Power Capabilities
An input device conforming to this specification must support the - and -3 states. !upport for the -4
state is optional.
A.8 Modem Device Class
The re:uirements e/pressed in this section appl( to modems and similar devices, such as ,!; controlled
%!-N Terminal Adapters =Jdigital modemsL> and computer&connected telephone devices =dCT phonesd>.
This specification will refer to these devices as JmodemsK the same considerations appl( to digital modems
and CT phones unless e/plicitl( stated otherwise.
The scope of this section is further restricted to modems that support power management using methods
defined 0( the relevant 'C&modem connection 0us. These include 'C%, ,!;, 'CCA3- ='CMC%A>,
Card;us, and modems on the s(stem mother0oard descri0ed 0( AC'% ;%2! control methods. The scope
does not include 0us&specific means for devices to alert the host 'C =for e/ample, how to deliver a
LringingLM message>, nor does it address how those alerting operations are controlled.
A.8.1 Technology Overview
Modems are traditionall( serial devices, 0ut toda( modems ma( 0e attached to a 'C 0( man( different
means. 5urther, man( new modems e/pose a software serial interface, where the modem controller
function is implemented in software. This specification addresses three different connection t(pes<
Traditional connections without power&managed connections =for e/ample, C2M, 1'T, %!A>
'ower managed connections =for e/ample, 'CCA3-, Card;us, 'C%, ,!;>
Mother0oard modems
5or some of the a0ove modem connection t(pes mentioned, there are three different modem architectures
possi0le<
Traditional modem =-AA, -!', and controller in hardware>
Controller&less design =-AA and -!' in hardware>
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 886
d!oft modemd design =-AA and C2-.C onl( in hardware>
The hardware components of the modem shall 0e controlled 0( the relevant 0us commands, where
applica0le =,!;, 'C%, Card;us>. The software components are dependent on the power state of the C',.
A.8.1.1 Traditional Connections
%n older methods =C2M, 1'T, %!A> the modem is controlled primaril( 0( serialiHed A!C%% command
strings =for e/ample, D.2*ter> and traditional D.2" =3!&232> out&of&0and leads. %n these legac( devices,
there are no common means for power management other than the power switch for the device, or the
entire s(stem unit.
An e/ternal modem connected to a C2M port or 1'T port t(picall( has its own power suppl(. An 1'T port
modem might run from the current on the 1'T port Z*D suppl(. 5or C2M or 1'T port modems, power is
t(picall( controlled 0( a user switch.
The most common modem t(pe is an %!A card with an em0edded C2M port. 5rom a software standpoint,
the( are logicall( identical to e/ternal modems, 0ut the modems are powered 0( the 'C s(stem unit. 'ower
is drawn from the %!A 0us without independent power switching.
A.8.1.2 Power-Managed Connections
'CMC%A, 'CCA3- and Card;us slots are powered and power&managed 0( the s(stem, using means
defined in the relevant 0us specifications. 5or 'CMC%A and 'CCA3- devices, onl( - and -3 states are
availa0le, via !ocket !ervices in the 2! andFor AC'% ;%2!. Card;us adds intermediate states, using the
same mechanisms defined for 'C% ;us.
'C% 0us slots are powered and power&managed 0( the s(stem, using means defined in the 'C% specification.
,!; devices ma( 0e powered 0( the ,!; itself =4mA or *mA>, or have their own e/ternal power
suppl(. All ,!; devices are power&managed 0( the ,!; 0us master, using means defined in the ,!;
specification.
A.8.1.3 Motherboard Modems
A modem em0edded in the mother0oard is powered 0( controls on the mother0oard. %t should 0e power&
managed 0( using control methods e/posed via AC'% ;%2! ta0les.
A.8.2 Power State Defnitions
State Status 5efinition
- $e>'ired 'hone interface is on =ma( 0e on or off hook>
!peaker is on
Controller Conte/t is preserved
-4 ;0A Not defined =do not use>
-2 =ptional 'hone interface is not powered 0( the host =on hook>
!peaker is off
Controller conte/t is preserved
2 seconds ma/imum restore time
-3 $e>'ired 'hone interface is not powered 0( host =on hook>
!peaker is off
Controller conte/t ma( 0e lost
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
86 Advanced Configuration and 'ower %nterface !pecification
* seconds ma/imum restore time
A.8.3 Power Management Policy
Present
State
0ext
State Cause
-2F-3 - !(stem issues a 0us command to enter the - state =for e/ample, an application is
answering or originating a call>.
- -2 !(stem issues a 0us command to enter the -2 state. =for e/ample, an application is
listening for an incoming call>.
- -3 !(stem issues a 0us command to enter the -3 state =for e/ample, all applications
have closed the Modem device>.
A.8.4 Wake Events
5or an( t(pe of modem device, wake events =if supported and ena0led> are onl( generated in response to
detected JringingL from an incoming call. All other events associated with modems =D.80is messages, and
so on> re:uire that the 'C 0e in the JworkingL state to capture them. The methods and signals used to
generate the wake ma( var( as a function of the modem connection =0us> t(pe and modem architecture.
Machine wake is allowed from an( modem power state =-, -2, and -3>, and is accomplished 0( methods
descri0ed in the appropriate 0us power management specification ='C%, ,!;, 'CCA3->, or 0( AC'%
s(stem 0oard control methods =for Modem on Mother0oard implementations>.
%f the specific modem implementation or connection t(pe does not ena0le it to assert s(stem wake
signaling, these modems will not 0e a0le to wake the machine. The 2! modem polic( owner will have to
retain the 'C in the JworkingL state to perform all t(pes of event detection =including ringing>.
A.8.5 Minimum Power Capabilities
A modem or similar device conforming to this specification must support the - and -3 states. !upport of
the -2 state is optional.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 864
A.9 Network Device Class
The re:uirements e/pressed in this section appl( to .thernet and token ring adapters. ATM and %!-N
adapters are not supported 0( this specification.
A.9.1 Power State Defnitions
5or the purpose of the following state definitions Jno 0us transmissionL means that transmit re:uests from
the host processor are not honored, and Jno 0us receptionL means that received data are not transferred to
host memor(.
State Status 5efinition
- $e>'ired -evice is on and running and is delivering full functionalit( and performance to the
user
-evice is full( compliant with the re:uirements of the attached network
-4 =ptional No 0us transmission allowed
No 0us reception allowed
No interrupts can occur
-evice conte/t ma( 0e lost
-2 =ptional No 0us transmission allowed
No 0us reception allowed
No interrupts can occur
-evice conte/t ma( 0e lost
-3 $e>'ired -evice conte/t is assumed to 0e lost
No 0us transmission allowed
No 0us reception allowed
No interrupts can occur
This document does not specif( ma/imum power and ma/imum latenc( re:uirements for the sleeping
states 0ecause these num0ers are ver( different for different network technologies. The device must meet
the re:uirements of the 0us that it attaches to.
Although the descriptions of states -4 and -2 are the same, the choice of whether to implement -4 or -2
or 0oth ma( depend on 0us services re:uired, power re:uirements, or time re:uired to restore the ph(sical
la(er. 5or e/ample, a device designed for a particular 0us might include state -4 0ecause it needs a 0us
service such as a 0us clock to support Magic 'acketj wake, and that service is availa0le in the 0us
deviceMs -4 power state 0ut not in -2. Also, a device might include 0oth state -4 and state -2 to provide a
choice 0etween lower power and lower latenc(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
862 Advanced Configuration and 'ower %nterface !pecification
A.9.2 Power Management Policy
Present
State
0ext
State Cause
- -x !(stem enters sleep state. %f wake is ena0led, -x is the lowest power state =for
e/ample, -4, -2, -3> from which the network device supports s(stem wake.
An appropriate time&out has elapsed after a Jlink downL condition was detected. -x
is the lowest power state in which the network device can detect Jlink up.L
- -3 !(stem initiated network shutdown.
!(stem enters sleep state and wake is either not ena0led or the network device is
capa0le of waking from -3.
-4F-2F-3 - !(stem wake =transition to !>, including a wake caused 0( a network wake event.
A.9.3 Wake Events
Network wake events are generall( the result of either a change in the lin3 stat's or the reception of a wa3e
frame from the network.
A.9.3.1 Link Status Events
1ink status wake events are useful to indicate a change in the networkMs availa0ilit(, particularl( when this
change ma( impact the level at which the s(stem should re&enter the sleeping state. 5or e/ample, a
transition from Jlink offL to Jlink onL ma( trigger the s(stem to re&enter sleep at a higher level =for
e/ample, !2 versus !3> so that wake frames can 0e detected. Conversel(, a transition from Jlink onL to
Jlink offL ma( trigger the s(stem to re&enter sleep at a deeper level =for e/ample, !3 versus !2> since the
network is not currentl( availa0le. The network device should implement an internal dela( to avoid
unnecessar( transitions when the link status toggles on or off momentaril(.
A.9.3.2 Wake Frame Events
Wake frame events are used to wake the s(stem whenever meaningf'l data is presented to the s(stem over
the network. ./amples of meaningful data include the reception of a Magic 'acketj, a management
re:uest from a remote administrator, or simpl( network traffic directl( targeted to the local s(stem. %n all of
these cases the network device was pre&programmed 0( the polic( owner or other software with
information on how to identif( wake frames from other network traffic. The details of how this information
is passed 0etween software and network device depend on the 2! and therefore are not descri0ed in this
specification.
A.9.4 Minimum Power Capabilities
A network device conforming to this specification must support the - and -3 states. !upport for the -4
and -2 states is optional.
A.10 PC Card Controller Device Class
The re:uirements e/pressed in this section appl( to 'C Card controller devices and the 'C Card slots.
'ower management of PC Cards is not defined 0( this specification. 'C Card power management is
defined 0( the relevant power management specification for the cardMs device class =for e/ample, network,
modem, and so on>, in con#unction with the 'C Card standard =for 4+&0it cards> or the 'C% 'ower
Management !pecification =for Card;us cards>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 863
A.10.1 Power State Defnitions
State Status 5efinition
- $e>'ired Card status change interrupts are full( functional.
Card functional interrupts are full( functional.
Controller conte/t =for e/ample, memor(, %F2 windows> is full( functional.
Controller interface is full( functional =processor can access cards>.
'ower to cards =slots> is availa0le =ma( 0e on or off under software control>.
The controller is at its highest power consumption level.
;us command response time is at its fastest level.
'C Cards can 0e in an( -x power state =-&-3>.
0oteH %n - state, C!T!C@$ interrupts can 0e passed to a s(stem from a powered
down 'C Card =for more detail, refer to section *.2.44.2 of 'C Card !tandard,
.lectrical !pecification>.
-4 =ptional Card status change interrupts are disa0led. C!T!C@$ interrupt events are still
detecta0le 0( the controller and cause the 0us&specific wake signal to 0e asserted if
wake is ena0led on the controller.
Card functional interrupts are disa0led.
Controller conte/t is preserved =all register contents must 0e maintained 0ut
memor( and %F2 windows need not 0e functional>.
Controller interface is non&functional =processor cannot access cards>.
'ower to cards =slots> is availa0le =ma( 0e on or offK retains power setting it had at
time of entr( to -4>.
'ower&level consumption for the controller is high 0ut less than -.
The time re:uired to restore the function from the -4 state to the - state is :uicker
than resumption from -3.
;us command response time is e:ual to or slower than in -.
'C Cards can 0e in the -4, -2, or -3 power states =not ->.
0oteH %n -4 state, C!T!C@$ interrupts can 0e passed to a s(stem from a powered&
down 'C Card =for more detail, refer to section *.2.44.2 of 'C Card !tandard,
.lectrical !pecification>.
-2 =ptional 5unctionall( the same as -4 =ma( 0e implemented instead of -4 in order to allow
0us andFor s(stem to enter a lower&power state>.
-3 $e>'ired Card status change interrupt< -isa0led and need not 0e detected.
Card functional interrupt< -isa0led and need not 0e detected.
Controller conte/t =for e/ample, memor(, %F2 windows>< 1ost.
Controller interface< Non&functional =processor can not access cards>.
Clock to controller< 2ff.
'ower to cards =slots>< 2ff =card conte/t lost>.
0oteH %f Dcc is removed =for e/ample, 'C% ;us ;3> while the device is in the -3
state, a 0us&specific reset =for e/ample, 'C% 3!TY> must 0e asserted when power is
restored and functions will then return to the - state with a full power&on reset
se:uence. Whenever the transition from -3 to - is initiated through assertion of a
0us&specific reset, the power&on defaults will 0e restored to the function 0(
hardware #ust as at initial power up. The function must then 0e full( initialiHed and
reconfigured 0( software.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
86" Advanced Configuration and 'ower %nterface !pecification
A.10.2 Power Management Policy
The 'C Card controller is a 0us controller. As such, its power state is dependent on the devices plugged into
the 0us =child devices>. 2!'M will track the state of all devices on the 0us and will put the 0us into the 0est
possi0le power state 0ased on the current device re:uirements on that 0us. 5or e/ample, if the 'C Card
cards are all in the -4 state, 2!'M will put the 'C Card controller in the -4 state.
Present
State
0ext
State Cause
-2F-3 - An( card in an( slot needing to transition to state - due to a wake event or 0ecause
of s(stem usage.
- -4 No card in an( slot is in state -.
- -2 No card in an( slot is in state - or -4.
- -3 All cards in all slots are in state -3.
A.10.3 Wake Events
A wake event is an( event that would normall( assert the controllerMs status change interrupt =for e/ample,
card insertion, card 0atter( state change, card 3e:Attn event, and so on> or ring&indicate signal.
A.10.4 Minimum Power Capabilities
A 'C Card controller device conforming to this specification must support the - and -3 states. !upport
for the -4 or -2 states is optional.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 86*
A.11 Storage Device Class
The re:uirements e/pressed in this section appl( to ATA hard disks, flopp( disks, ATA'% and !C!% C-&
32Ms, and the %-. channel.
A.11.1 Power State Defnitions
A.11.1.1 Hard Disk, CD-ROM and IDE/ATAPI Removable Storage Devices
State Status 5efinition
- $e>'ired -rive controller =for e/ample, interface and control electronics> is functional.
%nterface mode conte/t =for e/ample, communications timings> is programmed.
-4 =ptional -rive controller =for e/ample, interface and control electronics> is functional.
%nterface mode conte/t =for e/ample, communications timings> is preserved.
-rive motor =for e/ample, spindle> is stopped, with fast&start mode ena0led, if
availa0le.
1aser =if an(> is off.
3ecommended latenc( to return to - is less than * seconds.
'ower consumption in -4 should 0e no more than 8X of power consumed in -.
0oteH 5or ATA devices, this state is invoked 0( the !tand0( %mmediate command.
-2 ;0A This state is not defined for storage devices.
-3 $e>'ired -rive controller =for e/ample, interface and control electronics> is not functionalK
conte/t is lost.
%nterface mode =for e/ample, communications timings> is not preserved.
-rive motor =for e/ample, spindle> is stopped.
1aser =if an(> is off.
'ower consumption in -3 is no more than 4X of power consumed in -.
0oteH 5or ATA devices, this state is invoked 0( the JsleepL command.
A.11.1.2 Floppy Disk Devices
State Status 5efinition
- $e>'ired -rive controller =for e/ample, interface and control electronics> is functional.
-rive motor =for e/ample, spindle> is turning.
-4 ;0A This state is not defined for flopp( disk drives.
-2 ;0A This state is not defined for flopp( disk drives.
-3 $e>'ired -rive controller =for e/ample, interface and control electronics> is not functionalK
conte/t is lost.
-rive motor =for e/ample, spindle> is stopped.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
86+ Advanced Configuration and 'ower %nterface !pecification
A.11.1.3 IDE Channel Devices
State Status 5efinition
- $e>'ired Adapter is functional.
Adapter interface mode =for e/ample, communications timings> is programmed.
'ower is applied to the 0us =and all devices connected to it>.
-4 ;0A This state is not defined for the %-. Channel.
-2 ;0A This state is not defined for the %-. Channel.
-3 $e>'ired Adapter is non&functional.
Adapter interface mode =for e/ample, communications timings> is not preserved.
'ower to the 0us =and all devices connected to it> ma( 0e off.
A.11.2 Power Management Policy
A.11.2.1 Hard Disk, Floppy Disk, CD-ROM and IDE/ATAPI Removable
Storage Devices
Present
State
0ext
State Cause
-3 - -evice usage =high&priorit( %F2>.
- -4[ -evice inactivit( =no high&priorit( %F2> for some period of time =T4>.
- -3 -evice inactivit( =no high&priorit( %F2> for a period of time =T2\)T4>.
!(stem enters sleeping state.
-4[ - -evice usage =@igh&priorit( %F2>.
[ %f supported. 0oteH 5or ATA, the -3&to&- transition re:uires a reset of the %-. channel. This means
that 0oth devices on a channel must 0e placed into -3 at the same time.
A.11.2.2 IDE Channel Devices
Present
State
0ext
State Cause
-3 - An( device on the channel needing to transition to a state other than state -3.
- -3 All devices on the channel in state -3.
A.11.3 Wake Events
!torage devices with remova0le media can, optionall(, signal wake upon insertion of media using their 0us&
specific notification mechanism. There are no other wake events defined for !torage devices.
A.11.4 Minimum Power Capabilities
A hard disk, C-&32M or %-.FATA'% remova0le storage device conforming to this specification must
support the - and -3 states. !upport for the -4 state is optional.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 869
A flopp( disk and %-. channel device conforming to this specification must support the - and -3 states.
APPENDIX B: Video Extensions
B ACPI Extensions for Display Adapters
B.1 Introduction
This section of the document descri0es a num0er of specialiHed AC'% methods to support mother0oard
graphics devices.
%n man( cases, s(stem manufacturers need to add special support to handle multiple output devices such as
panels and TD&out capa0ilities, as well as special power management features. This is particularl( true for
note0ook manufacturers. The methods descri0ed here have 0een designed to ena0le interaction 0etween the
s(stem ;%2!, video driver, and 2! to smoothl( support these features.
!(stems containing a 0uilt&in displa( adapter are re:uired to implement the AC'% ./tensions for -ispla(
Adapters.
Ta!le <-+ 7ideo 1xtension 3!Cect "eJuire%ents
Method 5escription
C-2! .na0leF-isa0le output switching 3e:uired if s(stem supports displa(
switching or 1C- 0rightness levels
C-2- .numerate all devices attached to displa(
adapter
3e:uired if integrated controller supports
output switching
C32M $et 32M -ata 3e:uired if 32M image is stored in
proprietar( format
C$'- $et '2!T -evice 3e:uired if CD'2 is implemented
C!'- !et '2!T -evice 3e:uired if CD'2 is implemented
CD'2 Dideo '2!T 2ptions 3e:uired if s(stem supports changing post
D$A device
CA-3 3eturn the uni:ue %- for this device 3e:uired
C;C1 Guer( list of 0rightness control levels
supported
3e:uired if em0edded 1C- supports
0rightness control
C;CM !et the 0rightness level 3e:uired if C;C1 is implemented
C--C 3eturn the .-%- for this device 3e:uired if em0edded 1C- does not
support return of .-%- via standard
interface
C-C! 3eturn status of output device 3e:uired if the s(stem supports displa(
switching =via hotke(>
C-$! Guer( graphics state 3e:uired if the s(stem supports displa(
switching =via hotke(
C-!! -evice state set 3e:uired if the s(stem supports displa(
switching =via hotke(>.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
868 Advanced Configuration and 'ower %nterface !pecification
B.2 Defnitions
<uilt-in displa) adapter. This is a graphics chip that is 0uilt into the mother0oard and cannot 0e
replaced. AC'% information is valid for such 0uilt&in devices.
Add-in displa) adapter. This is a graphics chip or 0oard that can 0e added to or removed from
the computer. ;ecause the s(stem ;%2! cannot have specific knowledge of add&in 0oards, AC'%
information is not availa0le for add&in devices.
<oot-up displa) adapter. This is the displa( adapter programmed 0( the s(stem ;%2! during
machine power&on self&test ='2!T>. %t is the device upon which the machine will show the initial
operating s(stem 0oot screen, as well as an( s(stem ;%2! messages.
The s(stem can change the 0oot&up displa( adapter, and it can switch 0etween the 0uilt&in adapter
and the add&in adapter.
5ispla) device. This is a s(non(m for the term displa( adapter discussed a0ove.
3utput device. This is a device, which is a recipient of the output of a displa( device. 5or
e/ample, a C3T or a TD is an output device.
B.3 ACPI Namespace
This is an e/ample of the displa(&related namespace on an AC'% s(stem<
:P% // &)P# :eneralEpurpo2e "W event
_6(- // !otif1(@:&$ (-=() to tell 0SP; of the event$ when u2er pre22e2
// the hot +e1 to 2witch the output 2tatu2 of the monitor.
// !otif1(@:&$ (-=4) to tell the event to 0SP;$ when there are an1
// chan,e2 on the 2ubEdevice2 for the @:& controller
SB
UE P)#
UE @:& // Define the @:& controller in the name2pace
UE _PS( / PR(
UE _PS4 / PR4
UE _PSF
UE _D0S // ;ethod to control di2pla1 output 2witchin,
UE _D0D // ;ethod to retrieve information about child output device2
UE _R0; // ;ethod to retrieve the R0; ima,e for thi2 device
UE _:PD // ;ethod for determinin, which @:& device will po2t
UE _SPD // ;ethod for controllin, which @:& device will po2t
UE _@P0 // ;ethod for determinin, the po2t option2
UE )R< // )hild device )R<
UE _&DR // "ardware #D for thi2 device
UE _DD) // :et %D#D information from the monitor device
UE _D)S // :et current hardware 2tatu2
UE _D:S // Juer1 de2ired hardware active \ inactive 2tate
UE _DSS // Set hardware active \ inactive 2tate
UE _PS( \
UE _PS4 E Power method2
UE _PS3 E for the output device
UE _PSF /
UE 6)D // )hild device 6)D
UE _&DR // "ardware #D for thi2 device
UE _DD) // :et %D#D information from the monitor device
UE _D)S // :et current hardware 2tatu2
UE _D:S // Juer1 de2ired hardware active \ inactive 2tate
UE _DSS // Set hardware active \ inactive 2tate
UE _B)6 // Bri,htne22 control level2
UE _B); // Bri,htne22 control method
UE _BJ) // Bri,htne22 Juer1 )urrent 6evel
UE _PS( \
UE _PS4 E Power method2
UE _PS3 E for the output device
UE _PSF /
UE <@ // )hild Device <@
UE _&DR // "ardware #D for thi2 device
UE _DD) // :et %D#D information from the monitor device
UE _D)S // :et current hardware 2tatu2
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 866
UE _D:S // Juer1 de2ired hardware active \ inactive 2tate
UE _DSS // Set hardware active \ inactive 2tate
The 1C- device represents the 0uilt&in output device. Mo0ile 'Cs will alwa(s have a 0uilt&in 1C- displa(,
0ut desktop s(stems that have a 0uilt&in graphics adapter generall( donMt have a 0uilt&in output device.
B.4 Display-specifc Methods
The methods descri0ed in this section are all associated with specific displa( devices. This device&specific
association is represented in the namespace e/ample in the previous section 0( the positioning of these
methods in a device tree.
B.4.1 _DOS (Enable/Disable Output Switching)
Man( AC'% machines currentl( reprogram the active displa( output automaticall( when the user presses
the displa( toggle switch on the ke(0oard. This is done 0ecause most video device drivers are currentl( not
capa0le of 0eing notified s(nchronousl( of such state changes. @owever, this 0ehavior violates the AC'%
specification, 0ecause the s(stem modifies some graphics device registers.
The e/istence of the C-2! method indicates that the s(stem ;%2! is capa0le of automaticall( switching
the active displa( output or controlling the 0rightness of the 1C-. %f it e/ists at all, the C-2! method must
0e present for all displa( output devices. This method is re:uired if the s(stem supports displa( switching
or 1C- 0rightness control.
Arguments<
;it 4<
< The s(stem ;%2! should not automaticall( switch =toggle> the active displa( output,
0ut instead #ust save the desired state change for the displa( output devices in
varia0les associated with each displa( output, and generate the displa( switch event.
2!'M can :uer( these state changes 0( calling the C-$! method.
4< The s(stem ;%2! should automaticall( switch =toggle> the active displa( output, with
no interaction re:uired on the 2! part. The displa( switch event should not 0e
generated in this case.
2< The C-$! values should 0e locked. %tMs highl( recommended that the s(stem ;%2!
do nothing when hotke( pressed. No switch, no notification.
3< The s(stem ;%2! should not automaticall( switch =toggle> the active displa( output,
0ut instead generate the displa( switch event notif( codes /82, /83, or /8".
2!'M will determine what displa( output state should 0e set, and change the displa(
output state without further involvement from the s(stem ;%2!.
;it 2
< The s(stem ;%2! should automaticall( control the 0rightness level of the 1C- when
the power changes from AC to -C.
4< The s(stem ;%2! should not automaticall( control the 0rightness level of the 1C-
when the power changes from AC to -C.
3eturn Dalue<
None
The C-2! method controls this automatic switching 0ehavior. This method should do so 0( saving the
parameter passed to this method in a glo0al varia0le somewhere in the ;%2! data segment. The s(stem
;%2! then checks the value of this varia0le when doing displa( switching. This method is also used to
control the generation of the displa( switching 0otif)=D$A, /8F/84>.
The s(stem ;%2!, when doing switching of the active displa(, must verif( the state of the varia0le set 0(
the C-2! method. The default value of this varia0le must 0e 4.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
6 Advanced Configuration and 'ower %nterface !pecification
B.4.2 _DOD (Enumerate All Devices Attached to the Display Adapter)
This method is used to enumerate devices attached to the displa( adapter. This method is re:uired if
integrated controller supports output switching.
2n man( laptops toda(, a num0er of devices can 0e connected to the graphics adapter in the machine.
These devices are on the mother0oard and generall( are not directl( enumera0le 0( the video driverK for
this reason, all mother0oard D$A attached devices are listed in the AC'% namespace.
These devices fall into two categories<
7ideo output devices. 5or e/ample, a machine with a single displa( device on the mother0oard
can have three possi0le output devices attached to it, such as a TD, a C3T, or a panel.
0on-video output devices. 5or e/ample, TD Tuner, -D- decoder, Dideo Capture. The( #ust
attach to D$A and their power management closel( relates to D$A.
;oth AC'% and the video driver have the a0ilit( to program and configure output devices. This means that
0oth AC'% and the video driver must enumerate the devices using the same %-s. To solve this pro0lem, the
C-2- method returns a list of devices attached to the graphics adapter, along with device&specific
configuration information. This information will allow the cooperation 0etween AC'% components and the
video driver.
.ver( child device enumerated in the AC'% namespace under the graphics adapter must 0e specified in this
list of devices. .ach displa( device must have its own %-, which is uni:ue with respect to an( other
attacha0le devices enumerated.
Arguments<
None
3eturn Dalue<
A 0uffer containing an arra( of video device attri0utes as descri0ed in the ta0le 0elow.
!ample Code<
;ethod (_D0D$ ()
Return (
Pac+a,e()

(-(((((44($ // Primar1 6)D panel$ not detectable b1 B#0S


(-=((((4(($ // )R< t1pe di2pla1$ not detectable b1 B#0S
(-=((((33($ // <@ t1pe di2pla1$ not detectable b1 the B#0S
(-=((((.44$ // Secondar1 6)D panel$ not detectable b1 B#0S
/
)
/
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 64
Ta!le <-&H 7ideo 3utput 5evice Attri!utes
<its 5efinition
4*<
5evice I5. The device %- must match the %-Ms specified 0( Dideo Chip Dendors. The( must
also 0e uni:ue under D$A namespace.
;it 3<
5ispla) Index
A Hero&0ased instance of the -ispla(, when multiple displa(s of the same t(pe
are attached, regardless of where it is associated. !tarting from the first adapter
and its first displa( of the t(pe on the first integrated internal device and then
incrementing per device&function according to its relative port num0er.
;it 9<"
5ispla) Port Attach%ent
This field differentiates displa(s of the same t(pe attached at different points of
one adapter. The Hero&0ased num0er scheme is specific to each Dideo Chip
DendorsM implementation.
;it 44<8
5ispla) T)pe
-escri0es the specific t(pe of -ispla( Technolog( in use.
I 2ther
4 I D$A[ C3T or D.!A[ Compati0le Analog Monitor
2 I TDF@-TD or other Analog&Dideo Monitor
3 I ./ternal -igital Monitor =!ee Note 4.>
" I %nternalF%ntegrated -igital 5lat 'anel =!ee Note 2.>
*e4* I 3eserved for future use
;it 4*<42 Chipset Dendor !pecific.
4+ ;%2! can detect the device.
49
Non&D$A output device whose power is related to the D$A device. This can 0e used when
specif(ing devices like TD Tuner, -D- decoder, Dideo Capture N etc.
2<48
5or D$A multiple&head devices, this specifies head or pipe %- e.g. for -ual&'ipe[, -ual&
-ispla([, -uo&Diew[, TwinDiew[, Triple&Diew[ N etc, 0eginning with for head or single&
head device and increasing for each additional head.
3<24 3eserved =must 0e >
34
5evice I5 Sche%e
4 I ,ses the 0it&field definitions a0ove =0its 4*<>
I 2ther scheme, contact the Dideo Chip Dendor
As mentioned in the a0ove Ta0le, a J'ipeL or J@eadL refers to a uni:ue displa( content stream e.g. at a
particular color&depth, resolution, and refresh&rate. The J'ortL refers to the displa( output device
attachment and ma( include a -AC, encoder or other mechanism re:uired to support a given displa( end&
point. The J-ispla( T(peL descri0es the generaliHed class of displa( output technolog(, and the means of
integration. The J-ispla( %nde/L is then an inde/ that assists in creating a uni:ue identifier displa( end&
points in scenarios where other attri0utes are the same.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
62 Advanced Configuration and 'ower %nterface !pecification
6igure <-+ 1xa%ple 5ispla) Architecture
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 63
Ta!le <-#H 1xa%ple 5evice Ids
<its 5efinition
//(((( ;it 34 \ . 2ther proprietar( scheme & /44 -evice %- is an e/ception. =!ee Note 3>
/44 %ntegrated 1C- 'anel Y4 using a common, 0ackwards compati0le %-
/84 %ntegrated D$A C3T or D.!A compati0le Monitor Y4 on 'ort
/82" %ntegrated TD Y4 on 'ort"
/8"4 %ntegrated %nternal 1C- 'anel Y4 on 'ort4
/8"24 1D-! 'anel Y2 -ual&1ink using 'ort2 c 3. =!ee Note ">
/8434 D$A C3T or D.!A compati0le Monitor Y2 on 'ort3
/8424 -ual&1ink D$A C3T or D.!A compati0le Monitor Y2 using 'ort2 c 3. =!ee Note ".>
/832 -D% Monitor Y4 on 'ort2 =shares 'ort2 with a -ual&5unction -D%FTD .ncoder>. =!ee
Note *>
/8334 -D% Monitor Y2 on 'ort3
/833 -ual&1ink -D% Monitor Y4 using 'ort2 c 3
/8234 TD Y2 on 'ort2 =shares 'ort2 with a -ual&5unction -D%FTD .ncoder>. =!ee Note *>
Notes<
4. An J./ternal -igital MonitorL is an e/ternal displa( device attacha0le via a user&accessi0le
connector standard =e.g. -5'[ or -D%[ Compati0le Monitors>.
2. An J%nternal 5lat 'anelL is a non&detacha0le fi/ed pi/el displa( device, including a 0acklight, and
is internall( associated, without user&accessi0le connectors, to the Dideo Chip =e.g. T5T 1C- via
TM-![, 1D-![ interface>.
3. When ;it 34 is , no assumptions can 0e made on which %- will 0e used for an( particular displa(
t(pe. Contact the Dideo Chip vendor for details of the %- scheme emplo(ed.
". %n certain cases multiple -ispla(s 'orts ma( 0e com0ined to increase 0andwidth for a particular
-ispla( in higher&resolution modes. %n this situation, the -ispla( T(pe and 'ort Num0er should
remain the same in order to retain a consistent %- for the same device, regardless of the selected
displa( mode.
*. %n certain cases, more than one t(pe of displa( =and connector> ma( 0e supporta0le on a single
'ort =e.g. -D% Z TD Z C3T on a single -ispla( .ncoder device>, while onl( one displa( is
selecta0le at an( time. %n this case the 'ort Num0er field of the %- ma( 0e the same as other
-ispla( %-Ms however the other fields =e.g. -ispla( T(pe> provide uni:ueness.
B.4.3 _ROM (Get ROM Data)
This method is used to get a cop( of the displa( devicesM 32M data. This method is re:uired when the
32M image is stored in a proprietar( format such as stored in the s(stem ;%2! 32M. This method is not
necessar( if the 32M image can 0e read through standard 'C% interface =using 32M ;A3>.
The video driver can use the data returned 0( this method to program the device. The format of the data
returned 0( this function is a large linear 0uffer limited to " E;. The content of the 0uffer is defined 0( the
graphics independent hardware vendor =%@D> that 0uilds this device. The format of this 32M data will
traditionall( 0e compati0le with the 32M format of the normal 'C% video card, which will allow the video
driver to program its device, independentl( of mother0oard versus add&in card issues.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
6" Advanced Configuration and 'ower %nterface !pecification
The data returned 0( the C32M method is implementation&specific data that the video driver needs to
program the device. This method is defined to provide this data as mother0oard devices t(picall( donMt
have a dedicated option 32M. This method will allow a video driver to get the ke( implementation specific
data it needs so that it can full( control and program the device without ;%2! support.
Arguments<
Arg< 2ffset of the displa( device 32M data.
Arg4< !iHe of the 0uffer to fill in =up to "E>.
2utput<
;uffer of 0(tes
B.4.4 _GPD (Get POST Device)
This method is re:uired if the CD'2 method is implemented.
This method is used as a mechanism for the 2! to :uer( a CM2! value that determines which D$A device
will 0e posted at 0oot. A Hero return value indicates the mother0oard D$A will 0e posted on the ne/t 0oot,
a 4 indicates a 'C% D$A device will 0e posted, and a 2 indicates an A$' D$A device will 0e posted.
Arguments<
None
3eturn Dalue<
A 32&0it value
;it 4<
I 'ost the mother0oard D$A device
4 I 'ost an add&in 'C% D$A device
4 I 'ost an add&in A$' D$A device
44 I 'ost an add&in 'C%&./press D$A device
;it 34<2
3eserved =must 0e >
B.4.5 _SPD (Set POST Device)
This method is re:uired if the CD'2 method is implemented.
This method is used as a mechanism for the 2! to update a CM2! value that determines which video
device will 0e posted at 0oot. A Hero argument will cause the Jmother0oardL to 0e posted on the ne/t 0oot,
a 4 will cause an add&in 'C% device to 0e posted, and a 2 will cause an add&in A$' device to 0e posted.
Arguments<
;it 4<
I 'ost the mother0oard D$A device
4 I 'ost an add&in 'C% D$A device
4 I 'ost an add&in A$' D$A device
44 I 'ost an add&in 'C%&./press D$A device
;it 34<2
3eserved =must 0e >
3eturn Dalue<
A 32&0it value
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 6*
I !uccess
non&Hero I 5ailure
!ample Code<
;ethod (_SPD$ 4) // ;a+e the motherboard device the device to po2t /
B.4.6 _VPO (Video POST Options)
This method is re:uired for s(stems with video devices 0uilt onto the mother0oard and support changing
post&D$A device.
This method is used as a mechanism for the 2! to determine what options are implemented. This method
will 0e used in con#unction with C$'- and C!'-.
Arguments<
None
3eturn Dalue<
A 32&0it integer
;it < 'osting the mother0oard D$A device is an option. =;it should alwa(s 0e set>
;it 4< 'osting a 'C% D$A device is an option.
;it 2< 'osting an A$' D$A device is an option.
;it 3< 'osting a 'C%&./press D$A device is an option.
;its 34<"< 3eserved =must 0e Hero>
B.5 Notifcations for Display Devices
-ispla( devices ma( need to know a0out e/ternal, as(nchronous events. %n order to accommodate that, the
following notifications are defined.
The event num0er is standardiHed 0ecause the event will 0e handled 0( the 2! directl( under certain
circumstances =see C-2! method in this specification>.
These notifications are valid for -ispla( -evices.
7alue 5escription
/8 C)cle 3utput 5evice ,sed to notif( 2!'M whenever the state of one of the output devices
attached to the D$A controller has 0een switched or toggled. This event will, for e/ample, 0e
generated when the user presses a hotke( to switch the active displa( output from the 1C-
panel to the C3T.
/84 3utput 5evice Status Change ,sed to notif( 2!'M whenever the state of an( output
devices attached to the D$A controller has 0een changed. This event will, for e/ample, 0e
generated when the user plugs&in or remove a C3T from the D$A port. %n this case, 2!'M
will re&enumerate all devices attached to D$A
/82 C)cle 5ispla) 3utput Hotke) Pressed ,sed to notif( 2!'M whenever the user has pressed
the C(cle displa( hotke(.
/83 0ext 5ispla) 3utput Hotke) Pressed ,sed to notif( 2!'M whenever the user has pressed
the Ne/t displa( hotke(.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
6+ Advanced Configuration and 'ower %nterface !pecification
7alue 5escription
/8" Previous 5ispla) 3utput Hotke) Pressed ,sed to notif( 2!'M whenever the user has
pressed the 'revious displa( hotke(.
B.6 Output Device-specifc Methods
The methods in this section are methods associated with the displa( output device.
B.6.1 _ADR (Return the Unique ID for this Device)
This method returns a uni:ue %- representing the displa( output device. All output devices must have a
uni:ue hardware %-. This method is re:uired for all The %-s returned 0( this method will appear in the list
of hardware %-s returned 0( the C-2- method.
Arguments<
None
3eturn Dalue<
32&0it device %-
!ample Code<
;ethod (_&DR$ ()
return((-(4(() // device #D for thi2 )R<
/
This method is re:uired for all output displa( devices.
B.6.2 _BCL (Query List of Brightness Control Levels Supported)
This method allows the 2! to :uer( a list of 0rightness level supported 0( 0uilt&in displa( output devices.
=This method in not allowed for e/ternall( connected displa(s.> This method is re:uired if an integrated
1C- is present and supports 0rightness levels.
.ach 0rightness level is represented 0( a num0er 0etween and 4, and can 0e thought of as a percentage.
5or e/ample, * can 0e *X power consumption or *X 0rightness, as defined 0( the 2.M.
The 2.M ma( define the num0er as d?ero 0rightnessd that can mean to turn off the lighting =e.g. 1C-
panel 0acklight> in the device. This ma( 0e useful in the case of an output device that can still 0e viewed
using onl( am0ient light, for e/ample, a transflective 1C-. %f Notif(=2utput -evice, /8*> for J?ero
0rightnessL is issued, 2!'M ma( 0e a0le to turn off the lighting 0( calling C;CM=>.
Arguments<
None
3eturn Dalue<
'ackage of 0(tes
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 69
!ample Code<
;ethod (_B)6$ ()
// 6i2t of 2upported bri,htne22 level2
Return (Pac+a,e(T)
=($ // level when machine ha2 full power
G($ // level when machine i2 on batterie2
// other 2upported level2
3($ .($ I($ =($ 4((/
/
The first num0er in the package is the level of the panel when full power is connected to the machine. The
second num0er in the package is the level of the panel when the machine is on 0atteries. All other num0ers
are treated as a list of levels 2!'M will c(cle through when the user toggles =via a ke(stroke> the
0rightness level of the displa(.
These levels will 0e set using the C;CM method descri0ed in the following section.
B.6.3 _BCM (Set the Brightness Level)
This method allows 2!'M to set the 0rightness level of a 0uilt&in displa( output device.
The 2! will onl( set levels that were reported via the C;C1 method. This method is re:uired if C;C1 is
implemented.
Arguments<
Arg< -esired 0rightness level
3eturn Dalue<
None
!ample Code<
;ethod (_B);$ 4) // Set the re8ue2ted level /
The method will 0e called in response to a power source change or at the specific re:uest of the end user,
for e/ample, when the user presses a function ke( that represents 0rightness control.
B.6.4 _BQC (Brightness Query Current level)
This method returns the current 0rightness level of a 0uilt&in displa( output device.
Arguments<
None
3eturn Dalue<
An %nteger I must 0e one of the values listed in the C;C1.
B.6.5 _DDC (Return the EDID for this Device)
This method returns an .-%- =./tended -ispla( %dentification -ata> structure that represents the displa(
output device. This method is re:uired for integrated 1C-s that do not have another standard mechanism
for returning .-%- data.
Arguments<
Arg< 3e:uested data length in 0(tes
/4 I 428 0(tes
/2 I 2*+ 0(tes
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
68 Advanced Configuration and 'ower %nterface !pecification
3eturn Dalue<
I 5ailure, invalid parameter
non&Hero I 3e:uested data, 428 or 2*+ 0(tes of data
!ample Code<
;ethod (_DD)$ 3)
#f (6%8ual (&r,($ 4)) Return (Buffer(43=) $$$$ /) /
#f (6%8ual (&r,($ 3)) Return (Buffer(3GI) $$$$ /) /
Return (()
/
The 0uffer will later 0e interpreted as an .-%- data 0lock. The format of this data is defined 0( the D.!A
.-%- specification.
B.6.6 _DCS (Return the Status of Output Device)
This method is re:uired if hotke( displa( switching is supported.
Arguments<
None
3eturn Dalue<
32&0it device status
Ta!le <-( 5evice Status
<its 5efinition
2utput connector e/ists in the s(stem now
4 2utput is activated
2 2utput is read( to switch
3 2utput is not defective =it is functioning properl(>
" -evice is attached =this is optional>
*&34 3eserved =must 0e Hero>
./ample<
%f the output signal is activated 0( C-!!, C-C! returns /45 or /5.
%f the output signal is inactivated 0( C-!!, C-C! returns /4- or /-.
%f the device is not attached or cannot 0e detected, C-C! returns ///// and should return
/4//// if it is attached.
%f the output signal cannot 0e activated, C -C! returns /4; or /;.
%f the output connector does not e/ist =when undocked>, C-C! returns /.
B.6.7 _DGS (Query Graphics State)
This method is used to :uer( the state =active or inactive> of the output device. This method is re:uired if
hotke( displa( switching is supported.
Arguments<
None
3eturn Dalue<
A 32&0it device state
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 66
Ta!le <-A 5evice State
<its 5efinition
I ne/t desired state is inactive
4 I means ne/t desired state is active
4&34 3eserved =must 0e Hero>
The desired state represents what the user wants to activate or deactivate, 0ased on the special function
ke(s the user pressed. 2!'M will :uer( the desired state when it receives the displa( toggle event
=descri0ed earlier>.
B.6.8 _DSS Device Set State
2!'M will call this method when it determines the outputs can 0e activated or deactivated. 2!'M will
manage this to avoid flickering as much as possi0le. This method is re:uired if hotke( displa( switching is
supported.
Arguments<
A 32&0it device state
3eturn Dalue<
None
Ta!le <-- 5evice Status
<its 5efinition
I !et output device to inactive state
4 I !et output device to active state
3 I -o whatever ;it34 re:uires to do
4 I -onMt do actual switching, 0ut need to change C-$! to ne/t state
34 I -onMt do actual switching, #ust cache the change
4 I %f ;it3 \ , commit actual switching, including an( C-!! with M!;\ called 0efore
%f ;it3 \ 4, donMt do actual switching, change C-$! to ne/t state
4&26 3eserved =must 0e Hero>
./ample ,sage<
2! ma( call in such an order to turn off C3T, and turn on 1C-
)R<._DSS(()K
6)D._DSS(=((((((46)K
or
6)D._DSS(4)K
)R<._DSS(=(((((((6)K
2! ma( call in such an order to force ;%2! to make C-$! #ump to ne/t state without actual C3T, 1C-
switching
)R<._DSS(.(((((((6)K
6)D._DSS()((((((46)K
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
64 Advanced Configuration and 'ower %nterface !pecification
B.7 Notifcations Specifc to Output Devices
2utput devices ma( need to know a0out e/ternal, as(nchronous events. %n order, each of these events
corresponds to accommodate that, pressing a ke( or 0utton on the following machine. ,sing these
notifications is not appropriate if no ph(sical device e/ists that is associated with them. 2!'M ma( ignore
an( of these notifications if, for e/ample the current user does not have permission to change the state of
the output device.
These notifications are onl( valid for 2utput -evices.
7alue 5escription
/8* C)cle <rightness ,sed to notif( 2!'M that the output device 0rightness should 0e increased
0( one level. ,sed to notif( 2!'M that the user pressed a 0utton or ke( that is associated with
c(cling 0rightness. A useful response 0( 2!'M would 0e to increase output device 0rightness
0( one or more levels. =1evels are defined in C;C1.> %f the 0rightness level is currentl( at the
ma/imum value, it should 0e set to the minimum level.
/8+ Increase <rightness ,sed to notif( 2!'M that the output device 0rightness should 0e
increased 0( one or more levels as defined 0( the C;C1 o0#ect. ,sed to notif( 2!'M that the
user pressed a 0utton or ke( that is associated with increasing 0rightness. %f the 0rightness
level is currentl( at the ma/imum value, 2!'M ma( should ignore the notification.
/89 5ecrease <rightness ,sed to notif( 2!'M that the output device 0rightness should 0e
decreased 0( one or more levels as defined 0( the C;C1 o0#ect. ,sed to notif( 2!'M that the
user pressed a 0utton or ke( that is associated with decreasing device 0rightness. %f the
0rightness level is currentl( at the minimum value, 2!'M ma( should ignore the notification.
/88 Iero <rightness ,sed to notif( 2!'M that the output device 0rightness should 0e Heroed,
effectivel( turning off an( lighting that is associated with the device. ,sed to notif( 2!'M that
the user pressed a 0utton or ke( associated with Heroing device 0rightness. This is not to 0e
confused with putting the device in a -3 state. While the 0rightness ma( 0e decreased to Hero,
the device ma( still 0e displa(ing, using onl( am0ient light.
/86 5ispla) 5evice 3ff ,sed to notif( 2!'M that the device should 0e put in an off state, one
that is not active or visi0le to the user, usuall( -3, 0ut possi0l( -4 or -2. ,sed to notif(
2!'M that the user pressed a low power 0utton or ke( associated with putting the device in an
off state. There is no need for a corresponding Jdevice onL notification, for two reasons. 5irst,
2!'M ma( choose to toggle device state when this event is pressed multiple times. !econd,
2!'M ma( =and pro0a0l( will> choose to turn the monitor on whenever the user t(pes on the
ke(0oard, moves the mouse, or otherwise indicates that he or she is attempting to interact with
the machine.
B.8 Notes on State Changes
%t is possi0le to have an( num0er of simultaneous active output devices. %t is possi0le to have , 4, 2 ... and
so on active output devices. 5or e/ample, it is possi0le for 0oth the 1C- device and the C3T device to 0e
active simultaneousl(. %t is also possi0le for all displa( outputs devices to 0e inactive =this could happen in
a s(stem where multiple graphics cards are present>.
The state of the output device is separate from the power state of the device. The JactiveL state represents
whether the image 0eing generated 0( the graphics adapter would 0e sent to this particular output device. A
device can 0e powered off or in a low&power mode 0ut still 0e the active output device. A device can also
0e in an off state 0ut still 0e powered on.
./ample of the displa(&switching mechanism<
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 644
The laptop has three output devices on the D$A adapter. At this moment in time, the panel and the TD are
0oth active, while the C3T is inactive. The automatic displa(&switching capa0ilit( has 0een disa0led 0(
2!'M 0( calling C-2!=>, represented 0( glo0al varia0le displa(Cswitching \ .
The s(stem ;%2!, in order to track the state of these devices, will have three glo0al varia0le to track the
state of these devices. There are currentl( initialiHed to<
crt_active W (
panel_active W 4
tv_active W 4
The user now presses the displa( toggle switch, which would switch the TD output to the C3T.
The s(stem ;%2! first updates three temporar( varia0les representing the desired state of output devices<
want_crt_active W 4
want_panel_active W 4
want_tv_active W (
Then the s(stem ;%2! checks the displa(Cswitching varia0le. ;ecause this varia0le is set to Hero, the
s(stem ;%2! does not do an( device reprogramming, 0ut instead generates a 0otif)=D$A, /8F/84>
event for the displa(. This event will 0e sent to 2!'M.
2!'M will call the C-$! method for each enumerated output device to determine which devices should
now 0e active. 2!'M will determine whether this is possi0le, and will reconfigure the internal data
structure of the 2! to represent this state change. The graphics modes will 0e recomputed and reset.
5inall(, 2!'M will call the C-!! method for each output device it has reconfigured.
0oteH 2!'M ma( not have called the C-!! routines with the same values and the C-$! routines returned,
0ecause the user ma( 0e overriding the default 0ehavior of the hardware&switching driver or operating
s(stem&provided ,%. The data returned 0( the C-$! method =the wantCAAA values> are onl( a hint to the
2! as to what should happen with the output devices.
%f the displa(&switching varia0le is set to 4, then the ;%2! would not send the event, 0ut instead would
automaticall( reprogram the devices to switch outputs. An( legac( displa( notification mechanism could
also 0e performed at this time.
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
642 Advanced Configuration and 'ower %nterface !pecification
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 643
Index
C.7/.................................................................463
AC adapter
device %-....................................................4"*
power source o0#ects..................................322
AC status notification......................................36
access t(pes, 2peration 3egion......................"9*
access, device..................................................394
AccessAs term................................................38
acoustics.................................................!ee noise
AC'%
definition.......................................................43
device %-............................................4"*, 4**
goals................................................................4
AC'% @ardware...............................See hardware
AC'% Machine 1anguage......................See AM1
AC'% mode
entering.......................................................""
e/iting........................................................."8
AC'% Namespace
AM1 encoding............................................*36
control method access.................................43"
definition.......................................................43
displa( adapters..........................................*++
em0edded controller device definition.......392
generic hardware registers............................99
Modifier 20#ects encoding, AM1..............*28
naming conventions....................................426
'rocessor statements...................................2+
root namespaces..........................................434
!M;us host controller o0#ects....................399
AC'% !ource 1anguage...........................See A!1
AC'% !(stem -escription ta0les...........See ta0les
AC'%&compati0le hardware.............See hardware
Ac:uire =Ac:uire a Mute/>............................."*2
Ac:uire terms.................................................."6*
active cooling
CAC/ o0#ect........................................329, 33+
control methods..........................................33
definition..............................................."", 32+
engaging.....................................................33
preferences............................................"", 333
threshold values..........................................333
active line printer =1'T> ports...........................3*
Active 1ist =CA1/> o0#ect...............................33+
Add =%nteger Add>..........................................."*2
add&in displa( adapter, definition....................*++
Address =CA-3> o0#ect...................................4*6
Address 3ange t(pes.......................................389
address register =!M;CA--3>......................3+*
Address !pace -escriptors
-W23- resource descriptor format..........243
./tended.....................................................249
GW23- resource descriptor format24, *3,
**, *+
resource specific flags................................222
W23- resource descriptor format.............24*
Address !pace 3esource -escriptors
valid com0inations......................................26
addresses
alarm fields...................................................+9
;A3s =;ase Address 3egisters>................."9+
0locking, ;%2!...........................................389
0us t(pes.....................4+, 4+2, 489, 488, 486
control methods..........................................43"
decoding.....................................................26"
5AC!..........................................................4*
format...........................................................89
functional fi/ed hardware............................."+
$eneric Address !tructure =$A!>................89
generic hardware...................................."+, *2
%F2 =!>A'%C........................................449, 229
map interfaces.............................................389
map samples...............................................364
mi/ed, preventing...............................449, 229
registers.........................................................*8
reset register..................................................99
slave....................................................38, 39*
!M;us........................................................39*
s(stem description ta0les..............................83
Advanced Configuration and 'ower %nterface See
AC'%
Advanced 'rogramma0le %nterrupt ControllerSee
A'%C
alarm address register =!M;CA13MCA--3>
....................................................................3++
alarm data register =!M;CA13MC-ATA>.....3++
alarm events......................................................++
Alias =-eclare Name Alias>............................"*3
allocation, device resources............................486
Am0ient 1ight !ensor devices........................4"+
AM1
Arg 20#ects encoding.................................*3"
0atter( events..............................................343
0(te values..................................................*3*
code event handler........................................"8
compiling......................................................"+
Control Method ;atter(..............................34"
data 0uffers, !M;us...................................384
-ata 20#ects encoding................................*29
-e0ug 20#ects encoding.............................*3"
definition.......................................................43
grammar......................................................*2+
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
64" Advanced Configuration and 'ower %nterface !pecification
1ocal 20#ects encoding..............................*3"
Name 20#ects encoding..............................*2+
Named 20#ects encoding............................*28
Namespace encoding..................................*36
Namespace Modifier 20#ects encoding......*28
notation conventions...................................*2*
'ackage 1ength encoding...........................*28
purpose of....................................................."+
sleep 0utton code e/ample............................+"
!M;us device access protocols..................382
specification................................................*2*
Term 20#ects encoding...............................*28
T(pe 4 2pcodes encoding..........................*3
T(pe 2 2pcodes encoding..........................*34
And =%nteger ;itwise And>.............................."*3
angle 0rackets
AM1...........................................................*2*
A!1 notation..............................................."42
answering phones
modem e/ample............................................33
waking computer..........................................3*
A'%C
CMAT =Multiple A'%C Ta0le .ntr(>...........49*
definition.......................................................43
%F2.........................................................4*, 44"
local..............................................................4+
multiple description table (MA"').............4+
NM%............................................................44+
'rocessor 1ocal...........................................443
structure t(pes.............................................443
support.................................................444, 44"
A'M ;%2!........................................................2*
appliance 'Cs..................................................4"
A3;C-%!..........................................................9*
architecture, s(stem description ta0les.............83
Arg 20#ects encoding, AM1...........................*3"
arguments, control methods............................43"
Argx =Method Argument -ata 20#ects>.........."*3
arrow s(m0ol
A!1 notation..............................................."42
A!1
C5%A usage e/ample...................................4+6
C@'' e/ample............................................494
AM1, relation to........................................."44
case sensitivit(............................................"33
CM2! protocols........................................."9+
comments...................................................."44
converting to AM1......................................."+
data and constant terms.............................."4"
data t(pes...................................................."3+
definition.......................................................43
-efinition ;lock terms..............................."+
.C&!M;&@C device code..........................393
em0edded controller device code...............393
grammar......................................................"44
grammar notation........................................"42
inde/ with 0uffers e/ample code................"84
lid status code e/ample.................................84
macros........................................................."3+
modifiers....................................................."33
multiple !mart ;atter( su0s(stem code.....343
name and pathname terms.........................."43
nested packages sample code....................."8
o0#ect names..............................................."33
o0#ects, declaring........................................433
opcode terms..............................................."4+
opcodes......................................................."4+
operator reference......................................."*2
operator summar(.......................................""9
operator summar( 0( t(pe..........................""6
parameter ke(word terms..........................."2+
parameters..................................................."36
power 0utton code e/ample..........................+2
'ower 3esource statements........................233
primar( terms.............................................."49
reserved o0#ect names................................."33
resource template terms.............................."29
root and secondar( terms............................"43
!M;;lock code..........................................38"
!M;;lock'rocessCall code.......................38*
!M;;(te code............................................383
!M;'rocessCall code................................38*
!M;Guick code.........................................382
!M;!end3eceive code..............................382
!M;us data 0uffer code.............................384
!M;us devices...........................................396
!M;Word code..........................................383
storing results.............................................."36
strings.........................................................."44
thermal Hone e/amples...............................3"*
virtual register code....................................38
AT interrupt model..........................................424
ATA hard disks.......................See storage devices
audi0le output........................................!ee noise
audio devices, power management.........*"3, *""
aware device drivers.......................................436
;ack 5rom !leep =C;5!>................................2""
;ank5ield =-eclare ;ankF-ata 5ield>............"*3
0ar s(m0ol
AM1 notation.............................................*2+
A!1 notation..............................................."42
;A3s =;ase Address 3egisters>......................"9+
;ase ;us Num0er =C;;N> o0#ect...................226
0atteries..........................See also !mart ;atteries
capacit(.........................................................36
Control Method ;atteries...........................343
emergenc( shutdown...................................."4
events..........................................................343
low&level warnings.......................................36
management..................................................38
multiple.........................................................38
power status information..............................34
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 64*
remaining capacit(......................................348
t(pes supported.............................................34
;atter( %nformation =C;%5> o0#ect..................34*
;atter( !tatus =C;!T> o0#ect..........349, 346, 324
;atter( Trip 'oint =C;T'> o0#ect....................348
0a( devices......................................................328
;%2!
address range t(pes.....................................389
configuring 0oot devices..............................39
determining AC'% support............................+8
-evice 20#ects............................................"+4
devices, switching.......................................*96
-ock Name =C;-N>...................................228
initialiHation................................................"3
legac( functions............................................2*
legac( specifications.....................................44
limitations on power management..................2
memor( initialiHation.................................."*
relation to AC'%.............................................."
resetting ena0le 0its......................................96
!" !leeping state transition........................"
0its
alarm.............................................................+9
child........................................................*2, 99
child status....................................................96
control...........................................................99
diagram legend............................................."8
ena0le............................................................**
general&purpose events.................................96
generic hardware registers............................99
ignored....................................................4*, *2
interrupt status..............................................*2
lid status........................................................84
parent......................................................*2, 99
'M timer.......................................................9*
'M4 Control registers...................................9"
'M4 .na0le registers....................................93
'M4 !tatus registers.....................................+6
'M2 Control register....................................9*
processor control register.............................9+
processor 1D12............................................9+
processor 1D13............................................99
register notation............................................"6
reserved.............................................49, *2, 8+
reset register..................................................99
!M;us protocol encoding..........................39+
status.......................................................**, 99
s(stem event signals.....................................39
wake ena0led................................................32
write&onl(.....................................................*3
0lanks.............................................................."44
0lock count register =!M;C;CNT>................3+*
0lock devices, $'..........................................264
;lock Write&3ead ;lock 'rocess Call
=!M;;lock'rocessCall> protocol..............38*
0locking, control methods...............................43"
0locks, register..................................................*+
;MC31-..........................................................9"
;MC!T!...........................................................+6
0old
AM1 notation.............................................*2*
A!1 notation..............................................."42
0oot architecture flags, %A&'C........................4*
0oot devices......................................................39
0oot resources, em0edded controller..............422
0ootstrap 32M................................................"+
0oot&up............................................................"2
0oot&up displa( adapter, definition.................*++
0rackets, angle
AM1 notation.............................................*2*
A!1 notation..............................................."42
;reak =;reak from While>.............................."*"
;reak'oint =./ecution ;reak 'oint>..............."**
0ridges
;ase ;us Num0er =C;;N>.........................226
-W23-.....................................................24"
flags............................................................22"
%!A 0us device....................................283, "+2
power states..................................................34
purpose.........................................................8*
GW23-.............................................242, 22
W23-........................................................24+
;rightness Control 1evels !upported, Guer( 1ist
of =C;C1>...................................................*9"
0rightness control, 1C-s................................*+*
;rightness 1evel, !et =C;CM>........................*9*
;uffer =-eclare ;uffer 20#ect>......................."**
;uffer field data t(pe, A!1....................."39, ""4
0uffers, !M;us...............................................384
0uilt&in displa( adapter, definition..................*++
;urst -isa0le .m0edded Controller =;-C.C>
....................................................................3*6
;urst .na0le .m0edded Controller =;.C.C> 3*6
;urst flags.......................................................3*9
0urst mode.......................................................3*6
;usF-evice packages......................................"+4
0uses
power management standards...............26, *"2
segment locations.......................................226
setting power states.......................................34
0utton control models.......................................+4
0uttons.................See power 0uttonK sleep 0utton
0(te values, AM1............................................*3*
C processor power state
definition.......................................................22
implementation...........................................2**
C4 processor power state
definition.......................................................22
implementation...........................................2*9
C2 processor power state
definition.......................................................22
implementation...........................................2*9
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
64+ Advanced Configuration and 'ower %nterface !pecification
C3 processor power state
definition.......................................................22
implementation...........................................2*9
cache controller configuration........................""
caches, flushing.......................................2*8, "4
capacit(, 0atter(
calculating.....................................................36
low&level warnings......................................."4
remaining....................................................348
status information.........................................34
Card;us mode.................................................229
Case =Conditional ./ecution>........................."**
case sensitivit(, A!1......................................."33
categor( names....................................................*
Celsius scale....................................................326
centenar( value, 3TC alarm..............................+9
Central 'rocessing ,nit..........................See C',
C.NT,3S........................................................+9
channels, -MA...............................................2
chemistr( independence..................................36
child 0its......................................................*2, 99
child o0#ects, A!1 statements........................."44
child status 0its..................................................96
C1ECDA1.........................................................9+
clock logic.......................................................2**
CM2! protocols............................................."9+
cold 0oots..................................................99, ""
cold insertion and removal..............................46
C2M port devices, power management..33, *"3,
*"*
command protocols, !M;us...........................39*
command register =!M;CCM->.....................3+*
commands, em0edded controller interface.....3*8
comments, A!1..............................................."44
compati0ilit( memor(....................................."+
compati0ilit(, compiler...................................*43
Compati0le %- =CC%-> o0#ect.........................4+
compiling, A!1 to AM1..........................."+, *43
composite 0atter(..............................................38
Concatenate =Concatenate -ata>....................."*+
Concatenate3esTemplate =Concatenate 3esource
Templates>.................................................."*+
Cond3ef2f =Conditional 3eference 2f>........."*+
configuration o0#ects, device..........................4+*
configuring
;%2! initialiHation......................................""
0oot devices..................................................39
modem e/ample............................................39
'lug and 'la( devices...................................39
conte/t, device..................................................4"
conte/t, s(stem
definition.......................................................49
during emergenc( shutdown........................."2
restoring........................................................2
!" sleeping state.........................................366
sleep states lost in.........................................22
contiguous 3AM............................................."+
Continue =Continue %nnermost .nclosing While>
...................................................................."*9
control 0its
functions.......................................................99
s(m0ol.........................................................."8
Control Method ;atter(............38, 4"2, 4"*, 343
control methods...........See also o0#ects, See also
o0#ects, See also o0#ects, See also o0#ects
CA-3 =3eturn the ,ni:ue %- for this -evice>
................................................................*9"
C;C1 =Guer( 1ist of ;rightness Control
1evels !upported>..................................*9"
C;CM =!et the ;rightness 1evel>..............*9*
C;-N =;%2! -ock Name>.........................228
C;5! =;ack 5rom !leep>............................2""
C-CE =-ock>.............................................229
C-C! =3eturn the !tatus of 2utput -evice>
................................................................*9+
C--C =3eturn the .-%- for this -evice>. .*9*
C--! =-evice !et !tate>............................*99
C-$! =Guer( $raphics !tate>....................*9+
C-2- =.numerate All -evices Attached to
the -ispla( Adapter>..............................*+8
C-2! =.na0leF-isa0le 2utput !witching>.*+9
C5-M =5lopp( -isk -rive Mode>.............26
C$'- =$et '2!T -evice>..........................*92
C$T5 =$et Task 5ile>.................................28"
C$TM =$et Timing Mode>.........................28+
C$T! =$oing To !leep>..............................2"*
C1%- =lid device>................299, 298, 282, 3"
CM!$ =Message>........................................29*
C255...........................................................23"
C2N............................................................23*
C'! ='ower !tate >..................................239
C'!4 ='ower !tate 4>..................................238
C'!2 ='ower !tate 2>..................................238
C'!3 ='ower !tate 3>..................................238
C'!C ='ower !tate Current>.......................238
C'!W..........................................................2"
C'T! ='repare To !leep>............................2""
C3.$ =3egion>...........................................228
C32M =$et 3om -ata>..............................*94
C!C' =!et Cooling 'olic(>.........................338
C!'- =!et '2!T -evice>...........................*92
C!!T =!(stem !tatus>.................................29*
C!TM =!et Timing Mode>..........................289
CTM' =Temperature>..........................329, 3"4
CD'2 =Dideo '2!T 2'tions>....................*93
CWAE =!(stem Wake>................................2*
arguments....................................................43"
A!1, writing..............................................."44
0atter(.........................................................34"
definition.......................................................43
device identification...................................4*6
device removal............................................46
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 649
generic o0#ects............................................4"+
initialiHation =C%N%>.....................................229
lid device....................................29+, 282, 3"
2.M&supplied............................................2"3
overview.....................................................43"
power 0utton.........................................+2, 282
'ower 3esource o0#ects..............................23"
power source...............................................322
resources.....................................................4+*
sleep 0utton...........................................+", 282
!mart ;atter( !u0s(stem............................344
s(stem indicators........................................29*
thermal management..................................33*
video e/tensions.........................................*+*
control registers.................................................**
controllers, em0edded
definition.......................................................4"
interface........................................................4"
conversion, data t(pes....................................."3+
cooling modes..........................................."", 32+
cooling preferences..................................."", 333
Cop(20#ect =Cop( an 20#ect>........................"*9
core logic, s(stem events..................................39
C',
0oot configuration......................................""
0oot&up........................................................"2
cache flushing.............................................2*8
clock logic..................................................2**
definition.......................................................4"
fi/ed hardware control............................"*, "+
multiple performance state control.............2+6
non&s(mmetric power state support............2*"
passive cooling...........................................33
performance states........................................23
power management.......................................3+
processor power states..........................22, 2*3
thermal management...................................."3
throttling.............................................2**, 2+*
waking operations.........................................34
crashed s(stems...........................................+4, +2
Create;it5ield =Create 4&;it ;uffer 5ield>....."*9
Create;(te5ield =Create 8&;it ;uffer 5ield>. ."*8
Create-Word5ield =Create 32&;it ;uffer 5ield>
...................................................................."*8
Create5ield =Create Ar0itrar( 1ength ;uffer
5ield>..........................................................."*8
CreateGWord5ield =Create +"&;it ;uffer 5ield>
...................................................................."*8
CreateWord5ield =Create 4+&;it ;uffer 5ield>
...................................................................."*6
Critical !atter) state......................................."4
Critical Temperature =CC3T> o0#ect.......332, 33+
critical temperature shutdowns...............32+, 332
Cross -evice -ependenc(................................*3
C3T monitors, power management................*"+
C&!tates =processor power>.....................2*8, 2+4
CT phones.........................................See modems
Current 3esource !ettings =CC3!> o0#ects...4++,
3
C/ states.....................See processor power states
-&5ull( 2n
control method............................................239
definition.......................................................24
%n 3ush Current =C%3C> o0#ect...................2"4
power resource o0#ect.................................236
transitioning to............................................236
-4 -evice !tate
control methods..........................................238
definition.......................................................24
power resource o0#ects...............................236
transitioning to............................................236
-2 -evice !tate
control methods..........................................238
definition.......................................................24
power resource o0#ects...............................236
transitioning to............................................236
-3&2ff
control methods..........................................238
definition.......................................................24
transitioning to............................................23*
dash character
AM1 notation.............................................*2+
A!1 notation..............................................."42
data 0uffers, !M;us........................................384
-ata 20#ects encoding, AM1.........................*29
data o0#ects, A!1
;uffer.........................................................."**
'ackage.......................................................*
data register arra( =!M;C-ATA>...................3+*
data t(pes
A!1............................................................."3+
concatenate.................................""*, ""+, "*+
data t(pes, resource.........!ee resource data t(pes
-ataTa0le3egion =Create -ata Ta0le 2peration
3egion>......................................................."*6
da( alarm...........................................................+9
da( mode...........................................................26
-ASCA13M.....................................................+9
--; @andle data t(pe, A!1..................."39, ""4
--T, 'lug and 'la( devices.............................3+
-e0ug =-e0ugger 2utput>.............................."*6
-e0ug 20#ect data t(pe, A!1................."39, ""4
-e0ug 20#ects encoding, AM1......................*3"
-e0ug 'ort !pecification, Microsoft................62
de0ugging
re:uirements for.........................................."44
decimals, notation..........................................."44
-ecrement =%nteger -ecrement>....................."+
-efault =-efault ./ecution 'ath in !witch>. . ."+
defined generic o0#ects...................................4"+
-efinition ;locks
A!1 code...................................................."33
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
648 Advanced Configuration and 'ower %nterface !pecification
definition.......................................................4"
encoding.....................................................434
loading..........................................8*, 46, "88
loading from A!-T...................................."86
unloading....................................................*48
-efinition;lock =-eclare -efinition ;lock>. ."+
definitions...................................See terminolog(
degrees, Eelvin...............................................326
dependencies, device.................................*3, 24
-eref2f =-ereference an 20#ect 3eference>. ."+4
description ta0les...................................See ta0les
design guides...................................................*, 9
desktop 'Cs
power management.......................................28
profile s(stem t(pe.....................................4"
-evice =-eclare ;usF-evice 'ackage>..........."+4
device and processor performance states....23, 3+
-evice Class 'ower Management specifications
......................................................................3
-evice data t(pe, A!1............................"39, ""4
device drivers, AC'%&Aware...........................436
-evice Name =C--N> o0#ect..........................4+4
device power
management..........................................26, *"4
modem e/ample............................................33
o0#ects.........................................................23*
re:uirements...............................................*"3
resources.......................................................3
specifications..............................................*"4
standards.................................................26, 3
states.............................................................24
status.............................................................34
-evice !et !tate =C-!!>.................................*99
devices
audio, power management..........................*""
class&specific o0#ects..................................4""
C2M port, power management..................*"*
configuration o0#ects..................................4+*
conte/t, definition.........................................4"
definition.......................................................4"
graphics.......................................................*+*
identification o0#ects..................................4*6
input, power management..........................***
insertion and removal o0#ects.....................486
interference...................................................*3
modems, power management.....................**+
network, power management......................**6
o0#ect notification.......................................4"4
'C Card controllers, power management...*+
'lug and 'la( %-s.......................................4""
power states..................................................24
resource allocation......................................486
resource control method.............................4+*
!M;us, declaring.......................................399
storage, power management.......................*+3
waking s(stem............................................236
-evices Attached to the -ispla( Adapter
=C-2->.......................................................*+8
diagram legends................................................"8
-ifferentiated -efinition ;lock
;usF-evice packages.................................."+4
definition.......................................................4"
determining device power capa0ilities.........3
modem e/ample............................................3"
-ifferentiated -escription ;lock
isolation logic...............................................3"
-ifferentiated !(stem -escription Ta0le.......See
-!-T
digital modems..................................See modems
-irect Memor( Access =C-MA> o0#ect..........4+9
-isa0le =C-%!> o0#ect.....................................4++
-isa0le 2utput !witching =C-2!>.................*+9
displa( adapters
AC'% Namespace........................................*++
control methods..........................................*+*
definitions...................................................*++
re:uirements for..........................................*+*
switching devices........................................*98
displa( devices, power management.......*"3, *"+
-ispla( 'ower Management !ignaling
!pecification =-'M!>................................*"2
-ivide =%nteger -ivide>..................................."+2
-MA resource descriptor format....................2
-MA 3esource -escriptor Macro.................."+3
-ock =C-CE> control method........................229
docking
control methods..................................486, 229
event signals.................................................39
o0#ects.........................................................464
:uer( events..................................................96
documentation
organiHation....................................................6
supplemental.................................................44
drain rates, 0atter(.............................................36
drivers
interference...................................................*3
restoration.....................................................24
-!-T
definition...............................................4", 44
location.........................................................8"
purpose.........................................................8*
dual 82*6.................................................44", 44*
dual&0utton model.............................................+4
dut( c(cle........................................................2**
-D- decoders.................................................*+8
-W23-...........................................................9+
-W23- resource descriptor format..............243
-Word%2 =-Word %2 3esource -escriptor
Macro>........................................................"+3
-WordMemor( =-Word Memor( 3esource
-escriptor Macro>......................................"+*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 646
-Word!pace =-Word !pace 3esource
-escriptor Macro>......................................"++
d(namic insertion and removal.......................486
d(namic o0#ects..............................................43*
d(namic 2peration 3egions............................"66
d(namic transitioning........................................"6
.CTM3CDA1....................................................9*
.82 mapping.................................................389
.CC-ATA =em0edded controller data register>
....................................................................3*8
.CC!C =3> =em0edded controller status register>
....................................................................3*9
.CC!C =W> =em0edded controller command
register>.......................................................3*8
.C-T..............................................................422
.C%..................See em0edded controller interface
.C&!M;&@C...........................................3+2, 393
.-%- control methods =C--C>......................*9*
.5%
definition.......................................................4"
$etMemor(Map interface..........................386
3!-' location..............................................86
.%!A %-...........................................................4+4
.%!A%- =.%!A %- !tring To %nteger Conversion
Macro>........................................................"+9
.#ect =C.7/> o0#ect..........................................463
.#ect -evice 1ist =C.-1> o0#ect.....................464
.#ection -ependent -evice =C.7-> o0#ect.....464
e#ection mechanisms.......................................486
.lse =Alternate ./ecution>.............................."+8
.lse%f =AlternateFConditional ./ecution>......."+8
em0edded controller
address space................................................*2
0oot resources ta0le....................................422
0urst mode..................................................3*6
definition.......................................................4"
device %-....................................................4"*
device o0#ect...............................................283
event control e/ample...................................98
multiple.......................................................3*3
operations.....................................................82
:ueuing events............................................4"
region control method.................................228
em0edded controller interface
AC'% Namespace o0#ects...........................392
algorithms...................................................3+4
A!1 code, device........................................393
0i&directional communications...................3*3
;urst flag....................................................3*9
command interrupt model...........................3+4
command register =.CC!C =W>>................3*8
command set...............................................3*8
commands, restricted..................................392
configurations, additional...........................3*+
data register =.CC-ATA>...........................3*8
definition.......................................................4"
device access..............................................394
firmware re:uirements................................3+
%nput ;uffer 5ull =%;5> flag................3*9, 3+2
interrupt model...........................................3+
o0#ects.........................................................392
2.M&defina0le values................................3+2
2utput ;uffer 5ull =2;5> flag............3*9, 3+2
registers.......................................................3*+
shared..................................................3*", 3*+
!M;us host controller................................3+2
!M;us notification header =2!C!M;C.DT>
................................................................3+
!M;us protocol descriptions.....................3++
!M;us registers..........................................3+3
!M% event flags...........................................3*9
specifications..............................................3*3
status register =.C&!C =W>>........................3*9
emergenc( shutdown........................................"4
ena0le 0its
corresponding status 0its..............................96
resetting........................................................96
s(m0ol.........................................................."8
ena0le register...................................................39
.na0leF-isa0le 2utput !witch =C-2!>..........*+9
encoding
AM1...........................................................*2+
-efinition ;locks........................................434
o0#ect names, A!1......................................"33
ta0les.............................................................8+
.nd -ependent 5unctions resource descriptor
format.........................................................22
end tag resource descriptor format..................2"
.nd-ependent5n .nd -ependent 5unctions
-escriptor Macro>......................................"+6
energ( conservation........See power management
.nterprise servers............................................4"
.numerate All -evices Attached to the -ispla(
Adapter =C-2->.........................................*+8
enumeration, ena0ling.....................................399
errors, fatal......................................................"9"
.thernet adapters..................See network devices
.vent =-eclare .vent !(nchroniHation 20#ect>
...................................................................."+6
.vent data t(pe, A!1.............................."39, ""4
events
alarm.............................................................++
AM1 code handler........................................"8
0atter(.........................................................343
0utton............................................................+4
ena0le register...............................................39
fi/ed feature..................................................4*
fi/ed handling.............................................439
general model...............................................39
general&purpose registers........................4*, 99
hardware.......................................................*
interrupt..................................................*, +8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
62 Advanced Configuration and 'ower %nterface !pecification
link status....................................................*+
2!&transparent..............................................*4
power 0utton.................................................+2
power 0utton override...................................+3
programming model...................................43*
:uer(.............................................................98
shared............................................................*2
status register................................................39
s(nchroniHation o0#ects..............................*4
s(nchroniHation, waiting for.......................*46
user&initiated.................................................+4
wake frame.................................................*+
e/iting AC'% mode.........................................."8
e/tended %F2 0us.............................................4"*
./tended %nterrupt resource descriptor format
....................................................................22"
./tended %2 3esource -escriptor Macro......."9
./tended Memor( 3esource -escriptor Macro
...................................................................."94
./tended resource descriptor format..............249
./tended 3oot !(stems -escription Ta0le....See
A!-T
./tended !pace 3esource -escriptor Macro.."93
./tensi0le 5irmware %nterface.................See .5%
./ternal =-eclare ./ternal 20#ects>..............."9"
5AC!
definition.......................................................4*
flags............................................................49
$lo0al 1ock................................................48
ta0le fields..................................................4*
5A-T
alarm 0its......................................................++
cache flushing.....................................2*8, "2
definition.......................................................4*
flags............................................................44
location.........................................................8"
optional feature 0its......................................+6
'lug and 'la( %-s.......................................4+6
processor power states................................2*"
purpose.........................................................8"
reset register location....................................99
!C% interrupt mapping..................................+8
ta0le fields....................................................6*
fans
active cooling........................................"", 33
device operations........................................283
noise preferences..........................................""
'lug and 'la( %-...........................................82
thermal Hone e/ample.................................3"+
5atal =5atal .rror Check>................................"9"
fatal errors......................................................."9"
features
fi/ed..............................................................4*
generic..........................................................4*
generic hardware..........................................96
5ield =-eclare 5ield 20#ects>.........................."9*
fields
alarm.............................................................+9
cache flushing............................................."2
declaring o0#ects........................................."9*
em0edded controller 0oot resources...........422
5AC!..........................................................4*
5A-T....................................................6*, 4+6
%F2 A'%C.....................................................44"
%F2 !A'%C...................................................449
MA-T........................................................442
NM%............................................................44+
'rocessor 1ocal A'%C.................................443
processor performance........................294, 3"2
reserved.........................................................8+
3!-T............................................................62
!;!T...........................................................422
!M;us........................................................396
!tart -ependent 5unctions.........................24
A!-T............................................................6"
5ind!et1eft;it =5ind 5irst !et 1eft ;it>.........."99
5ind!et3ight;it =5ind 5irst !et 3ight ;it>....."99
firmware
AC'% !(stem..................................................*
em0edded controller re:uirements.............3+
2!'M controls.............................................2+
!MM functional fi/ed hardware
implementation........................................."+
5irmware AC'% Control !tructure........See 5AC!
5i/ed AC'% -escription Ta0le.............See 5A-T
fi/ed event handling........................................439
fi/ed features
definition.......................................................4*
events............................................................4*
registers.........................................................4*
fi/ed hardware
definition......................................................."*
feature control 0its........................................9"
feature ena0le 0its.........................................94
feature status 0its..........................................+6
features.........................................................*3
functional implementation............................"*
interfaces......................................................."*
power 0utton.................................................+2
programming model....................................."*
register 0locks...............................................*+
registers...................................................**, +6
sleep 0utton...................................................+"
fi/ed location %F2 port descriptor resource
descriptor format........................................23
5i/ed 3egister 3esource 'rovider =C5%A>......4+6
fi/ed width registers........................................22+
5i/ed%2 =5i/ed %2 3esource -escriptor>......."99
5i/ed1ist........................................................."44
flags
;urst...........................................................3*9
-W23-.....................................................24"
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 624
5AC!..........................................................49
5A-T..........................................................44
%F2 resource................................................223
%A&'C 0oot architecture..............................4*
%nput ;uffer 5ull =%;5>.......................3*9, 3+2
interrupt vector...........................................22*
local A'%C...................................................443
MA-T........................................................442
memor( resource........................................222
M'! %NT%...................................................44*
2utput ;uffer 5ull =2;5>...................3*9, 3+2
GW23-.............................................244, 248
!M% event =!M%C.DT>...............................3*9
s(stem t(pe.................................................4*
W23-........................................................24+
flopp( controller device o0#ects......................286
5lopp( -isk -rive Mode =C5-M> control
method........................................................26
5lopp( -isk .numerate =C5-.> o0#ect..........286
5lopp( -isk %nformation =C5-%> o0#ect..........286
flopp( disks............................See storage devices
flushing caches........................................2*8, "4
fre:uenc( mismatch........................................4"2
5rom;C- =Convert ;C- To %nteger>............"98
5unction =-eclare Control Method>................"98
functional device configuration......................""
functional fi/ed hardware................................."*
functions
.nd -ependent...........................................22
!tart -ependent..........................................24
$ Working state
0ehavior during...........................................36+
definition.......................................................46
properties......................................................2
transitioning to.............................................."6
transitioning to !leeping state...................."4
transitioning to !oft&2ff............................."4
$4 !leeping state
definition.......................................................46
properties......................................................2
transitioning to............................................36+
$2 !oft 2ff
definition.......................................................46
properties......................................................2
transitioning to..............................................*
$3 Mechanical 2ff
definition.......................................................46
properties......................................................2
transitioning from........................................."6
transitioning to..............................................28
game pads..................................See input devices
$A!......................See $eneric Address !tructure
$;1C.N...........................................................93
$;1C31!.........................................................9"
$;1C!T!..........................................................9
general event model..........................................39
general&purpose event registers
addresses.................................................*8, 99
0locks......................................................+, 96
definition.......................................................4*
event ..........................................................96
event ena0le...............................................8
event status................................................8
event 4..........................................................8
event 4 ena0le...............................................84
event 4 status................................................8
grouping........................................................*9
wake events, role in....................................4"
general&purpose events
handling......................................................438
wake............................................................438
generic address space, !M;us........................39*
$eneric Address !tructure =$A!>.....................89
generic events
e/ample.................................................98, 2*2
top&level........................................................98
generic feature, definition.................................4*
generic hardware
definition......................................................."*
features...................................................*", 96
power 0utton control.....................................+2
programming model....................................."+
registers............................................."+, **, 99
sleep 0utton control......................................+"
generic %!A 0us device....................................283
generic o0#ects................................................4"+
generic register resource descriptor format.....22+
$et '2!T -evice =C$'->..............................*92
$et 'ower !tatus...............................................34
$et 32M -ata =C32M>.................................*94
$et Task 5ile =C$T5> control method.............28"
$et Timing Mode =C$TM> control method....28+
$etMemor(Map..............................................386
$lo0al 1ock....................................................48
$lo0al 1ock =C$1E> o0#ect............................234
$lo0al 1ock Mute/.........................................4*"
$lo0al 1ock !tructure.....................................48
glo0al stand0( timer..........................................*2
glo0al s(stem interrupts..........................44", 42
glo0al s(stem states
definition.................................................4*, 46
terminolog(...................................................46
transitioning....................................29, *, *9
goals
AC'%...............................................................4
2!'M.............................................................4
power management.........................................2
$oing To !leep =C$T!> control method.........2"*
$'.
0lock devices......................................4"+, 264
control method............................................436
grammar
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
622 Advanced Configuration and 'ower %nterface !pecification
AM1...........................................................*2+
A!1............................................................."44
grammar notation
AM1...........................................................*2*
A!1............................................................."42
graphics devices, re:uirements for.................*+*
$raphics !tate, Guer( =C-$!>.......................*9+
$reen 'Cs, power management for..................28
groupings, register.............See register groupings
guides, design..................................................*, 9
hardware..........See also fi/ed hardwareK generic
hardware
AC'% interfaces.............................................."
AC'% specifications......................................"*
definition.......................................................43
events............................................................*
features.........................................................*3
fi/ed.............................................................."*
generic.........................................................."+
ignored 0its...................................................*2
interfaces.........................................................*
legac(............................................................*2
legac( vs. AC'%..............................................3
2.M implementation.....................................3
2!&independent......................................"+, "9
2!'M model................................................"6
register definitions........................................"+
registers.........................................................**
reserved 0its..................................................*2
value&added..................................................."9
hardware %- =C@%-> o0#ect.....................4+4, 34
headers, long.....................................................6"
headers, ta0le...............................................83, 6
heat management..........See thermal management
he/adecimals, notation...................................."44
holes, compati0ilit(........................................."+
home 'Cs, power management for...................28
host controller o0#ects, !M;us.......................399
hot insertion and removal........................46, 463
@ot 'lug Memor( Ta0le !pecification, Microsoft
......................................................................62
@ot 'lug 'arameters =C@''> o0#ect494, 493, 49*
@ot Temperature =C@2T> o0#ect.....................339
hung s(stems...............................................+4, +2
h(steresis.........................................................328
%F2 A'%C
CMAT =Multiple A'%C Ta0le .ntr(............49*
definition.......................................................4*
$lo0al !(stem %nterrupts............................424
mi/ed addresses, preventing...............449, 229
structure......................................................44"
%F2 operations, laH(.............................................2
%F2 port resource descriptor format.................22
%F2 resource flag.............................................223
%F2 !A'%C
definition.......................................................4*
mi/ed addresses, preventing...............449, 229
'latform %nterrupt !ource structure............448
structure......................................................449
%F2 space.....................................................*2, 8*
%A =%ntel Architecture> specifications................44
%A processors...................................................2*8
%A&32 s(stems..................................................."+
%A&'C
0oot architecture flags................................4*
definition.......................................................4*
interrupt models..........................................44*
memor( map s(stem...................................389
memor( mapping........................................"*
3!-' location..............................................88
%-, Compati0le =CC%- o0#ect>........................4+
%-.
controller device.........................................28*
drives............................................................"9
%-. devices............................See storage devices
identification o0#ects, device..........................4*6
idle loops, C',.................................................3+
idle timers, legac(.............................................*2
%-s, 'lug and 'la(...................................4"", 4*6
%f =Conditional ./ecution>.............................."96
ignored 0its
definition.................................................4*, *2
'M4 !tatus register.......................................94
implementation re:uirements
2.M...............................................................3
2!...................................................................6
2!'M.............................................................8
%n 3ush Current =C%3C> o0#ect........................2"4
%nclude =%nclude Additional A!1 5ile>............"96
%ncrement =%nteger %ncrement>........................"8
independence, 2!
AC'%...............................................................2
functional fi/ed hardware............................."+
generic hardware.........................................."9
%ndependent @ardware Dendors =%@Ds>
power management standards.......................26
%nde/ =%nde/ed 3eference To Mem0er 20#ect>
...................................................................."8
%nde/ with ;uffers.........................................."84
%nde/ with 'ackages......................................."8
%nde/ with !trings..........................................."84
%nde/5ield =-eclare %nde/F-ata 5ields>.........."82
indicators, s(stem............................................29*
initialiHation
;%2!..........................................................."3
0oot&up........................................................"2
2!..............................................................."9
initialiHation o0#ect =C%N%>..............................229
%nput ;uffer 5ull =%;5> flag....................3*9, 3+2
input devices, power management..........*"3, ***
%nputF2utput..............................................See %F2
insertion and removal o0#ects.........................486
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 623
insertion and removal, 0atteries......................343
%NT 4* mapping..............................................389
%nteger data t(pe, A!1............................"39, ""4
%ntegers............................................................"33
%ntel Architecture specifications........................44
%ntel Architecture&'ersonal Computer. See %A&'C
interdependent resources.................................24
interfaces
AC'%..............................................................."
0atter(...........................................................38
;%2!, legac(.................................................2*
Control Method ;atter(..............................34"
design guides..................................................*
.C&!M;&@C..............................................3+2
em0edded controller.....................................4"
e/tensi0le firmware =.5%>.............................4"
fi/ed hardware.............................................."*
hardware.........................................................*
mapping......................................................389
sharing protocols........................................3*+
!M;us..................................................49, 39*
interference, device...........................................*3
%nterrupt =./tended %nterrupt -escriptor Macro>
...................................................................."83
interrupt events
logic..............................................................*
!C%................................................................+8
sharea0le.......................................................+8
!M%...............................................................+8
%nterrupt !ource 2verrides..............................44*
interrupt sources, non&maska0le =NM%s>........44+
interrupt status 0its............................................*2
interrupts
em0edded controller interface....................3+
./tended %nterrupt resource descriptor format
................................................................22"
models.........................................444, 44", 42
'latform %nterrupt !ource structure............448
'M%s............................................................448
invocation, control methods............................43"
%2 =%F2 'ort 3esource -escriptor Macro>......"8"
%3G =%nterrupt 3esource -escriptor Macro...."8*
%3GNo5lags =%nterrupt 3esource -escriptor
Macro>........................................................"8*
%3Gs
mapping..............................................44", 44+
'C% routing.................................................48*
resource descriptor format..........................466
%!A
0us device...................................4"*, 4**, 283
-evice 20#ects code..................................."+2
interrupt sources.........................................44*
old cards......................................................22
%!-N Terminal Adapters...................See modems
isolation logic....................................................3"
italics, A!1 notation........................................"42
#o(sticks....................................See input devices
Eelvin scale.....................................................326
kernel..................................................................."
ke(, logic diagrams..........................................."8
ke(0oard controllers........................................3*3
ke(0oards..................................See input devices
1And =1ogical And>........................................"8+
large resource resource descriptor format.......2"
latenc(
accepta0le.............................................29, *9
glo0al power states.......................................2
processor power states................................2*3
laH( %F2 operations..............................................2
1C- panels
0rightness control.......................................*+*
power management.....................................*"+
legac( ;%2! interfaces.....................................2*
legac( hardware
;%2! specification........................................44
0oot flags....................................................4*
converting to fi/ed........................................"*
definition.......................................................4+
interrupt handlers..........................................+8
support............................................................3
legac( 2!, definition........................................4+
legac( s(stems
definition.......................................................4+
memor( mapping........................................"*
power 0utton functions.................................28
power management.......................................*4
power state transitions.................................."6
switching devices out of.............................229
transitioning to AC'%....................................+8
legends, logic diagrams....................................."8
1.:ual =1ogical .:ual>..................................."8+
1$reater =1ogical $reater>............................."8+
1$reater.:ual =1ogical $reater Than 2r .:ual>
...................................................................."89
lid device.........................................................4"*
lid status notification values....................4"3, 4""
lid switch...........................................................84
life, 0atter(........................................................36
link status events.............................................*+
1%NT................................................................44+
11ess =1ogical 1ess>......................................."89
11ess.:ual =1ogical 1ess Than 2r .:ual>. . . ."89
1Not =1ogical Not>........................................."88
1Not.:ual =1ogical Not .:ual>......................"88
1oad =1oad -efinition ;lock>........................"88
loading -efinition ;locks.........8*, 46, "88, "86
1oadTa0le =1oad -efinition ;lock 5rom A!-T>
...................................................................."86
local A'%C, definition.......................................4+
1ocal 20#ects encoding, AM1........................*3"
1ocalx =Method 1ocal -ata 20#ects>.............."6
1ock =C1CE> o0#ect........................................463
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
62" Advanced Configuration and 'ower %nterface !pecification
1ock, $lo0al...................................................48
logic
fi/ed power 0utton........................................+2
generic hardware event e/ample..................98
lid switch......................................................84
sleep 0utton...................................................+"
sleepingFwake control...................................+*
logic diagram legends......................................."8
12r =1ogical 2r>............................................."6
low&level warnings, 0atter(...............................36
1'T ports..........................................................3*
macros, A!1
2"&0it Memor( 3esource -escriptor.........."64
32&0it 5i/ed Memor( 3esource -escriptor "63
32&0it Memor( 3esource -escriptor.........."62
coding........................................................."3+
-MA 3esource -escriptor........................."+3
-Word%2 3esource -escriptor.................."+3
-WordMemor( 3esource -escriptor........."+*
-Word!pace 3esource -escriptor............."++
.%!A%- Conversion...................................."+9
.nd -ependent 5unctions 3esource
-escriptor..............................................."+6
./tended %nterrupt 3esource -escriptor...."83
./tended%2 3esource -escriptor..............."9
./tendedMemor( 3esource -escriptor....."94
./tended!pace 3esource -escriptor.........."93
5i/ed%2 3esource -escriptor....................."99
%F2 'ort 3esource -escriptor....................."8"
%3G %nterrupt 3esource -escriptor............"8*
%3GNo5lags %nterrupt 3esource -escriptor
................................................................"8*
GWord%2 3esource -escriptor..................*2
GWordMemor( 3esource -escriptor.........*3
GWord!pace 3esource -escriptor.............**
3egister 3esource -escriptor.....................*9
3esourceTemplate......................................*8
!tart -ependent 5unction No'ri 3esource
-escriptor...............................................*42
!tart -ependent 5unction 3esource
-escriptor...............................................*44
,nicode Conversion...................................*48
,,%- Conversion.......................................*49
Dendor1ong 3esource -escriptor..............*48
Dendor!hort 3esource -escriptor..............*46
Word;usNum0er 3esource -escriptor......*2
Word%2 3esource -escripto.......................*24
Word!pace 3esource -escriptor................*23
MA"'
CMAT o0#ect...............................................49*
definition......................................................4+
flags............................................................442
interrupt models..........................................444
ta0le fields...................................................442
Magic 'acket wake.........................................**6
management.....See power managementK thermal
management
mapping
.82............................................................389
.5% $etMemor(Map..................................386
%NT 4*.........................................................389
interfaces for...............................................389
%3Gs....................................................44", 44+
'C% interrupt pins.......................................48"
ph(sical memor(........................................"*
Guer( !(stem Address Map function.........363
samples.......................................................364
Match =5ind 20#ect Match>............................"6
Mechanical 2ff
definition.......................................................46
properties......................................................2
transitioning from........................................."6
transitioning to..............................................28
memor(
;%2! initialiHation......................................"*
controller configuration..............................""
descriptor macros........................................"63
devices........................................................26"
map interfaces.............................................389
map sample.................................................364
ND!............................................................"*
ph(sical mapping........................................"*
resource flag...............................................222
memor( device................................................4"*
memor( range descriptors
2"&;it..........................................................2+
32&;it..........................................................29
32&;it 5i/ed 1ocation.................................28
purpose.......................................................2+
memor( space...................................................*2
Memor(2" =Memor( 3esource -escriptor
Macro>........................................................"64
Memor(32 =Memor( 3esource -escriptor
Macro>........................................................"62
Memor(325i/ed =Memor( 3esource -escriptor
Macro>........................................................"63
Message =CM!$> control method...................29*
Method =-eclare Control Method>................."63
Method data t(pe, A!1..........................."39, ""4
methods, control...................See control methods
mice...........................................See input devices
Microsoft -evice Class 'ower Management
specifications................................................3
Mid =./tract 'ortion of ;uffer or !tring>......."6"
mo0ile 'Cs
lid switch......................................................84
power management.......................................28
profile s(stem t(pe.....................................4"
Mod =%nteger Modulo>...................................."6"
modems
configuration e/ample..................................39
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 62*
power management.............................*"3, **+
power management e/ample........................33
modifiers
A!1 names................................................."33
Module -evice........................................4"+, 262
M2N&A13M....................................................+9
monitors.................................See displa( devices
month alarm......................................................+9
mother0oard device configurations
AC'% goals......................................................4
controlled 0( 2!'M.....................................2*
modems.......................................................**9
M'! %NT% flags...............................................44*
Multiple APIC "escription 'able......ee MA"'
Multiple A'%C Ta0le .ntr( =CMAT> o0#ect....49*
multiple !mart ;atter( !u0s(stem..................342
Multipl( =%nteger Multipl(>............................."6*
multiprocessor 'Cs
performance control....................................2+6
power management for.................................28
mute/
ac:uiring....................................................."*2
$lo0al 1ock................................................4*"
release s(nchroniHation o0#ects..................*8
Mute/ =-eclare !(nchroniHationFMute/ 20#ect>
...................................................................."6*
Mute/ data t(pe, A!1............................."39, ""4
Name =-eclare Named 20#ect>......................."6*
Name 20#ects encoding, AM1.......................*2+
name terms, A!1............................................."43
Named 20#ects encoding, AM1.....................*28
names, o0#ect.....................................................4+
Namespace.........................See AC'% Namespace
naming conventions........................................426
NAnd =%nteger ;itwise Nand>........................."6+
nested packages..............................................."8
network devices, power management.....*"3, **6
NM%s...............................................................44+
noise, active cooling..........................................""
non&linear address spaces................................39*
Non&Maska0le %nterrupt !ources =NM%s>.......44+
non&visi0le states, device power.......................24
Non&Dolatile !leep state, definition..................2
Non&Dolatile !leeping memor( =ND!>..........."*
No2p Code =No 2peration>............................"6+
N2r =%nteger ;itwise Nor>.............................."6+
Not =%nteger ;itwise Not>..............................."69
notation
AM1...........................................................*2*
A!1............................................................."42
numeric constants......................................."44
register 0its..................................................."6
Nothing............................................................"44
notification
0atter( removal...........................................343
power 0utton control.....................................+2
!mart ;atter( status....................................36
temperature changes...................................326
Notif( =Notif( 20#ect of .vent>......................"69
numeric constants, notation............................."44
ND! files
checking validit(........................................"9
restoring from...............................................2
ND! memor(.................................................."*
o0#ect name, definition......................................4+
20#ect 3eference data t(pe, A!1............"39, ""4
o0#ectsSee also control methods, See also control
methods, See also control methods, See also
control methods
CAC/ =Active Cooling>......................329, 33+
CA-3 =Address>.........................................4*6
CA1/ =Active 1ist>.....................................33+
C;;N =;ase ;us Num0er>.........................226
C;%5 =;atter( %nformation>........................34*
C;!T =;atter( !tatus>.................349, 346, 324
C;T' =;atter( Trip 'oint>..........................348
CC%- =Compati0le %->................................4+
CC3! =Current 3esource !ettings>.....4++, 3
CC3T =Critical Temperature>..............332, 33+
CC!T =C !tates>..........................................2+4
C--N =-evice Name.................................4+4
C-%! =-isa0le>............................................4++
C-MA =-irect Memor( Access>................4+9
C.-1 =.#ect -evice 1ist>...........................464
C.7- =.#ection -ependent -evice>............464
C.7/ =.#ect>................................................463
C5-. =5lopp( -isk .numerate>.................286
C5-% =5lopp( -%sk %nformation>................286
C5%A =5i/ed 3egister 3esource 'rovider>. .4+6
C$1E =$lo0al 1ock>..................................234
C@%- =hardware %->...........................4+4, 34
C@2T =@ot Temperature>...........................339
C@'' =@ot 'lug 'arameters>......494, 493, 49*
C%N% =%nit>...................................................229
C%3C =%n 3ush Current>..............................2"4
C1CE =1ock>..............................................463
CMAT =Multiple A'%C Ta0le .ntr(>...........49*
C'C1 ='ower Consumer 1ist>....................322
C'CT ='erformance Control>......................29
C''C ='erformance 'resent Capa0ilities>. .294
C'3 ='ower 3esources for ->................236
C'34 ='ower 3esources for -4>................236
C'32 ='ower 3esources for -2>................236
C'3! ='ossi0le 3esource !ettings>............48"
C'3T ='C% 3outing Ta0le>..........................48"
C'3W ='ower 3esources for Wake>...4", 236
C'!1 ='assive 1ist>....................................339
C'!3 ='ower !ource>.................................322
C'!! ='erformance !upported !tates>.....2+3,
2+9, 29, 293
C'!D ='assive>...................................329, 339
C'TC ='rocessor Throttling Control>.........2+*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
62+ Advanced Configuration and 'ower %nterface !pecification
C'AM ='ro/imit(>......................................48+
C3MD =3emove>........................................468
C!4-...........................................................2"4
C!2-...........................................................2"4
C!3-...........................................................2"2
C!"-...........................................................2"2
C!;! =!mart ;atter( !u0s(stem>...............34
C!.$ =!egment>.........................................226
C!3! =!et 3esource !ettings>....................486
C!TA =!tatus>......................................468, 23*
C!T3 =!tring>.............................................4+"
C!,N =!lot ,ser Num0er>.........................4+"
CTC4 =Thermal Constant 4>........................3"4
CTC2 =Thermal Constant 2>........................3"4
CT!' =Thermal !ampling 'eriod>..............3"2
CT?- =Thermal ?one -evices>..................3"3
CT?' =Thermal ?one 'olling>....284, 3", 3"3
C,%- =,ni:ue %->......................................4+*
A!1 encoding............................................."33
A!1 statements..........................................."44
A!1, declaring............................................433
control methods..........................................43"
definition.......................................................4+
device configuration...................................4+*
device identification...................................4*6
device insertion and removal......................486
device power resource................................236
device&specific............................................29*
d(namic......................................................43*
.C&!M;&@C..............................................393
em0edded controller interface....................392
flopp( controller.........................................286
generic........................................................4"+
glo0al scope................................................434
initialiHation................................................229
Module -evice...........................................262
names, reserved.........................................."33
Notif( operator...........................................4"4
2!&defined..................................................4*3
'ower 3esource..........................................233
processor.....................................................2*6
revision data................................................4*9
!mart ;atter(..............................................34
!M;us host controller................................399
static............................................................43*
thermal management..................................33*
unnamed.....................................................432
20#ectT(pe......................................................"44
20#ectT(pe =$et 20#ect T(pe>........................"69
2.M implementation..........................................3
2.M&supplied control methods......................2"3
off...........................See Mechanical 2ffK !oft&2ff
255.................................................................23"
2N...................................................................23*
2ne =Constant 2ne 20#ect>............................."68
2nes =Constant 2nes 20#ect>.........................."68
opcodes
T(pe 4, AM1..............................................*3
T(pe 2, AM1..............................................*34
2perating !(stem......................................See 2!
2perating !(stem&directed 'ower Management
.........................................................See 2!'M
2peration 3egion data t(pe, A!1..........."39, ""4
2peration 3egion 5ield ,nit data t(pe, A!1"39,
""4
operation regions
!M;us................................................39*, 398
2peration3egion =-eclare 2peration 3egion>
...................................................................."68
2peration3egion term
access t(pes................................................"9*
operator reference, A!1.................................."*2
operator summar( 0( t(pe, A!1.....................""6
operator summar(, A!1..................................""9
operators, A!1................................................"3+
2p3egion........................................................43"
2r =%nteger ;itwise 2r>...................................*
organiHation, document.......................................6
original e:uipment manufacturer..........See 2.M
2!
AM1 support, re:uired..............................."44
0oot flags....................................................4*
compati0ilit( re:uirements.............................6
defined o0#ect names..................................4*3
device power management...........................3
drivers, em0edded controller interface.......3*3
functional fi/ed hardware implementation..."+
independent generic hardware......................"9
legac( hardware interaction............................3
loading........................................................"9
name o0#ect.................................................4*9
polic( owner, device power management. .*"4
power management.........................................2
Guer( !(stem Address Map.......................363
!" !leeping state transition........................"
transparent events.........................................*4
2!'M
caches, flushing.........................................."4
cooling polic( changes...............................329
cooling preferences.......................................""
definition.......................................................4+
device insertion and removal......................486
event handlers...............................................*2
e/clusive controls.........................................2+
fi/ed hardware access..................................."*
fi/ed hardware registers...............................+6
functions.......................................................2*
general&event register access........................96
generic hardware model..............................."9
$et 'ower !tatus..........................................34
goals................................................................4
hardware model............................................"6
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 629
implementation re:uirements.........................8
passive cooling...........................................33
performance states........................................3+
power management vs. performance..........233
power state control.......................................2+
3eal Time Clock Alarm =3TC>.....................++
resetting s(stem............................................99
!et 'ower !tate operation.............................3
!M;us registration.....................................399
thermal management............................"3, 32*
transitioning to sleeping states....................369
transitioning working to sleeping states....."4
transitioning working to soft&off state........"4
2utput ;uffer 5ull =2;5> flag................3*9, 3+2
output devices
control methods..........................................*9+
definition.....................................................*++
switching.....................................................*98
t(pes of.......................................................*+8
override, power 0utton......................................+3
'C;1E..............................................................9+
'C1D12.............................................................9+
'C1D13.............................................................99
' performance state, definition.......................23
'4 performance state, definition.......................23
'ackage =-eclare 'ackage 20#ect>.................*
'ackage data t(pe, A!1.........................."39, ""4
packages
definition.......................................................4+
length..........................................................434
length encoding, AM1................................*28
nested.........................................................."8
packet error checking ='.C>...........................39+
parameters, A!1.............................................."36
parent 0its....................................................*2, 99
parent o0#ects, A!1 statements......................."44
parentheses, AM1 notation.............................*2+
'assive =C'!D> o0#ect.............................329, 339
passive cooling
definition..............................................."", 32+
preferences............................................"", 333
processor clock throttling...........................33
threshold values..........................................333
'assive 1ist =C'!1> o0#ect..............................339
'C Card controllers, power management.....*"3,
*+
'C ke(0oard controllers..................................3*3
'CCA3-.........................................................*"2
'C%
;A3 target operations................................"9+
0us num0er.................................................226
0uses, address space translation...................8*
-evice 20#ects code..................................."+2
device power management.........................*"2
interrupt pins...............................................48"
%3G routing.................................................48*
power management.....................................*"2
'C% configuration space.............................."*, *2
'C% %nterrupt 1ink device...............................4"*
'C% 3outing Ta0le =C'3T> o0#ect...................48"
'C%!%$............................................................*"2
'CMC%A.........................................................*"2
'.C =packet error checking>...................3+", 39+
'erformance Control =C'CT> o0#ect...............29
'erformance 'resent Capa0ilities =C''C> o0#ect
....................................................................294
performance states
definitions.....................................................23
device............................................................3+
'erformance !upported !tates =C'!!> o0#ect 2+3,
2+9, 29, 293
performance, energ( conservation vs......."", 233
'ersistent !(stem -escription Ta0le ='!-T>..444
phones, answering
modem e/ample............................................33
waking computer..........................................3*
'%C method.....................................................4*8
pins
general event model......................................38
$'................................................................96
platform
implementation...............................................*
independence..................................................2
'latform %nterrupt !ource structure.................448
'latform Management %nterrupts ='M%s>........448
'lug and 'la( devices
AC'% control.................................................3+
%-s......................................................4"", 4*6
large resource items....................................2*
resource control method.............................4+*
small resource items...................................466
specifications................................................44
'M timer
0its................................................................9*
function.........................................................*2
idle time, determining...................................3+
operations.....................................................+
register address.............................................*8
register 0locks...............................................*6
'M4 Control registers
addresses.......................................................*8
0its................................................................9"
0locks............................................................*6
grouping..................................................*9, 93
'M4 .na0le registers........................................94
'M4 .vent registers
addresses.......................................................*8
0locks............................................................*6
grouping..................................................*9, +6
'M4 !tatus registers.........................................+6
'M2 Control registers
addresses.......................................................*8
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
628 Advanced Configuration and 'ower %nterface !pecification
0its................................................................9*
0locks............................................................*6
'M2 Controller register grouping.....................*9
'M%s................................................................448
'n performance state, definition.......................23
'N';%2!..........................................................2*
'olarit( flags...................................................44*
polic( owner....................................................*"4
polling, thermal.......................................328, 326
port descriptors, %F2........................................22
porta0ilit(..........................See independence, 2!
'ossi0le 3esource !ettings =C'3!> o0#ect......48"
'2!T -evice control methods........................*92
power 0utton
A!1 code e/ample........................................+2
control methods....................................+2, 282
definition.......................................................4+
device %-....................................................4"*
dual&0utton model.........................................+4
fi/ed hardware..............................................+2
functions.......................................................28
o0#ect notification values............................4"3
override...................................................+3, +*
single&0utton model......................................+4
'ower Consumer 1ist =C'C1> o0#ect..............322
power consumption
device and processor performance states.....23
device power states.......................................24
glo0al power states.......................................2
power loss
Mechanical 2ff............................................."6
!" Non&Dolatile !leep state..........................2
power management
audio devices..............................................*""
;%2!...............................................................2
0uses...........................................................*"2
C2M port devices.......................................*"*
cooling, relationship to.................................""
definition.......................................................4+
desktop 'Cs..................................................28
device............................................26, *"4, *"3
device o0#ects.............................................23*
displa( devices............................................*"+
displa( standards........................................*"2
goals................................................................2
input devices...............................................***
laH( %F2 operations.........................................2
legac(............................................................*4
mo0ile 'Cs....................................................28
modem devices...........................................**+
modem e/ample............................................33
multiprocessor 'Cs.......................................28
network devices..........................................**6
'C Card controllers....................................*+
'C%..............................................................*"2
'CMC%A.....................................................*"2
performance states........................................3+
performance vs. energ( conservation..."", 233
'lug and 'la( devices...................................39
preferred s(stem t(pes................................4"
processor.......................................................3+
servers...........................................................28
setting device power states...........................34
standards.......................................................26
storage devices............................................*+3
power management ='M> timer
0its................................................................9*
function.........................................................*2
idle time, determining...................................3+
operations.....................................................+
register address.............................................*8
register 0locks...............................................*6
'ower 3esource data t(pe, A!1.............."39, ""4
power resources
0atter( management....................................39
child o0#ects................................................23"
definition.......................................................4+
device o0#ects.............................................236
devices, turning off.......................................34
-ifferentiated -efinition ;lock....................3
isolation logic...............................................3"
o0#ects.........................................................233
shared............................................................3*
wake s(stem o0#ect.....................................236
'ower !ource =C'!3> o0#ect...........................322
power sources
AC adapter..................................................322
definition.......................................................4+
o0#ect notification values............................4"3
power states
control methods..........................................239
controlled 0( 2!'M.....................................2+
device............................................................24
glo0al............................................................46
non&s(mmetric processor............................2*"
o0#ects.........................................................239
processor...............................................22, 2*3
sleeping.........................................................22
transitioning.................................................."6
user&visi0le....................................................29
'ower3esource =-eclare 'ower 3esource>....*4
preferences, user
performance vs. energ( conservation..."", 333
power 0utton.................................................28
preferred 'M profile s(stem...........................4"
'repare to !leep =C'T!> control method........2""
'rocess Call =!M;'rocessCall> protocol.......38*
processor.................................................See C',
'rocessor =-eclare 'rocessor>........................*4
processor and device performance states..........23
processor control 0lock.....................................+
processor control registers
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 626
addresses.......................................................*8
0its................................................................9+
'rocessor data t(pe, A!1........................"39, ""4
processor device notification values...............4""
'rocessor devices............................................4"+
'rocessor 1ocal A'%C.............................443, 44+
'rocessor 1ocal !A'%C...................................448
processor 1D12 register............................9+, 2*"
processor 1D13 register............................99, 2*"
processor o0#ects.............................................2*6
processor register 0lock....................................9+
'rocessor Throttling Control =C'TC> o0#ect...2+*
programming models
events..........................................................43*
feature summar(...........................................*"
fi/ed.............................................................."*
generic.........................................................."+
protocol register =!M;C'3TC1>....................3+"
protocols
;A3s =;ase Address 3egisters>................."9+
CM2!........................................................."9+
!M;us........................................3++, 39*, 382
'ro/imit( =C'AM> o0#ect...............................48+
'!-T...............................................................444
pseudocode language.............................See AM1
pulsed interrupts..............................................3+
'W3;TNC.N...................................................93
'W3;TNC!T!.................................................9
Guer( .m0edded Controller =G3C.C>...........3*6
:uer( events......................................................98
Guer( !(stem Address Map function.............363
:uer( value, definition......................................"8
:uotes
AM1 notation.............................................*2*
A!1 notation..............................................."42
GWord %2 3esource -escriptor Macro..........*2
GWord Memor( 3esource -escriptor Macro. *3
GW23- resource descriptor format....24, *3,
**, *+
GWord !pace 3esource -escriptor Macro.....**
3ead .m0edded Controller =3-C.C>............3*8
3eadFWrite ;lock =!M;;lock> protocol........38"
3eadFWrite ;(te =!M;;(te> protocol............383
3eadFWrite Guick =!M;Guick> protocol.......382
3eadFWrite Word =!M;Word> protocol.........383
3eal Time Clock Alarm =3TC>.........................++
reclaim memor(.............................................."*
3ef2f =Create 20#ect 3eference>....................*+
3egion =C3.$> control method......................228
register 0its, notation........................................."6
register 0locks...................................................*+
register definitions, hardware............................"+
3egister $eneric 3egister -escriptor Macro>.*9
register groupings
definition.................................................49, *+
list of.............................................................*9
registers
;A3s =;ase Address 3egisters>................."9+
control...........................................................**
.C&!M;&@C..............................................3+2
em0edded controller interface....................3*+
ena0le............................................................39
fi/ed feature..................................................4*
fi/ed hardware..............................................+6
general&purpose event...................................4*
reset...............................................................99
!M;&@C.....................................................39
status.............................................................39
statusFena0le.................................................**
virtual..................................................39+, 38
related device interference................................*3
3elease =3elease a Mute/ !(nchroniHation
20#ect>........................................................*9
3elease terms.................................................."6*
3emaining ;atter( 'ercentage..................36, 348
removal o0#ects...............................................486
removal, 0atteries............................................343
3emove =C3MD> o0#ect..................................468
re:uirements, implementation
2!...................................................................6
2!'M.............................................................8
reserved 0its
definition.......................................................49
hardware.......................................................*2
'M4 Control registers...................................9"
'M4 .na0le registers....................................93
'M4 !tatus register.................................9, 94
software re:uirements..................................8+
reserved o0#ect names....................................."33
reserved !M;us protocol values....................39*
3eset =3eset an .vent !(nchroniHation 20#ect>
....................................................................*8
reset register......................................................99
resource data t(pes
Address !pace 3esource -escriptors.........26
control methods..........................................466
-MA...........................................................2
.nd -ependent 5unctions...........................22
end tag........................................................2"
%3G.............................................................466
large............................................................2"
large vendor defined...................................29
memor( range descriptors..........................2+
small...........................................................466
small vendor defined..................................2"
!tart -ependent 5unctions.........................24
vendor defined............................................29
resources
allocation....................................................486
control method............................................4+*
interdependencies.......................................24
resources, power...................See power resources
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
63 Advanced Configuration and 'ower %nterface !pecification
3esourceTemplate 3esource To ;uffer
Conversion Macro>.....................................*8
restoring s(stem conte/t...........................2, 366
results, storing................................................."36
3eturn =3eturn from Method ./ecution>........*8
3evision =Constant 3evision 20#ect>..............*8
revision data o0#ect.........................................4*9
3%!C processors..............................................26
3%!C s(stems....................................................28
32M control methods.....................................*94
3oot !(stem -escription 'ointer.........See 3!-'
3oot !(stem -escription Ta0le............See 3!-T
3!-'
definition.......................................................49
location.........................................................88
ta0le structure...............................................86
3!-T
definition.......................................................49
location.........................................................8"
ta0le fields....................................................62
3TC =3eal Time Clock Alarm>.........................++
3TCFCM2! protocols....................................."9+
3TCC.N............................................................93
3TCC!T!..........................................................94
! !tate =Working>..........................................2"9
!4 !leeping state
C!4- o0#ect................................................2"4
0ehavior during...........................................2"9
definition.......................................................22
implementation...........................................368
transitioning................................................2"*
waking using 3TC........................................++
!2 !leeping state
C!2- o0#ect................................................2"4
0ehavior during...........................................2"9
definition.......................................................22
implementation...........................................368
transitioning................................................2"*
waking using 3TC........................................++
!3 !leeping state
C!3- o0#ect................................................2"2
0ehavior during...........................................2"8
definition.......................................................22
implementation...........................................366
transitioning................................................2"*
waking using 3TC........................................++
!" !leeping state
C!"- o0#ect................................................2"2
0ehavior during...........................................2"8
definition.................................................2, 22
implementation...........................................366
low&level 0atter(..........................................."4
waking using 3TC........................................++
!* !oft&2ff
0ehavior during...................................2"6, "
definition.................................................46, 22
properties......................................................2
transitioning to............................................"4
!A'%C
definition.......................................................49
%F2.........................................................4*, 449
local..............................................................4+
NM%............................................................44+
'rocessor 1ocal...........................................448
support........................................................444
!ATA
controller device.........................................288
saving s(stem conte/t
during emergenc( shutdown........................."2
!" Non&Dolatile !leep state..................2, 366
!;!T...............................................................422
!C%
0atter( status information.............................34
definition.......................................................49
em0edded controller events........................3+4
ena0le 0its.....................................................32
interrupt handlers....................................*4, +8
!C%C.N.................................................+8, +6, 9"
!cope =2pen Named !cope>...........................*6
!C!%, power management...............................*"2
!econdar( !(stem -escription Ta0le...See !!-T
!egment =C!.$> o0#ect...................................226
!endF3eceive ;(te =!M;!end3eceive> protocol
....................................................................382
separators, A!1..............................................."44
!erialiHed methods.................................."98, "6"
server machines, power management...............28
!et Cooling 'olic( =!C'> control method......338
!et '2!T -evice =C!'->...............................*92
!et 'ower !tate.................................................3
!et 3esource !ettings =C!3!> o0#ect..............486
!et the ;rightness 1evel =C;CM>...................*9*
!et Timing Mode =C!TM> control method.....289
settings, user
performance vs. energ( conservation..."", 333
power 0utton.................................................28
sharea0le interrupts...........................................+8
shared interface, em0edded controller....3*", 3*+
!hift1eft =%nteger !hift 1eft>...........................*6
!hift3ight =%nteger !hift 3ight>......................*4
!hort Dendor&-efined 3esource -escriptor
macro..........................................................*46
shutdown, emergenc(..............................."4, 332
shutting down........See Mechanical 2ffK !oft&2ff
!ignal =!ignal a !(nchroniHation .vent>........*4
signatures
collisions, avoiding.................................64, 62
interpreting.............................................8", 62
values, storing...............................................8+
!imple ;oot 5lag !pecification, Microsoft......62
single :uotes
AM1 notation.............................................*2*
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 634
A!1 notation..............................................."42
single&0utton model..........................................+4
!iHe2f =$et -ata 20#ect !iHe>........................*4
slave addresses, !M;us..........................38, 39*
!leep =Milliseconds !leep>.............................*4
sleep 0utton
A!1 code e/ample........................................+"
control methods....................................+", 282
definition.......................................................49
device %-....................................................4"*
fi/ed hardware..............................................+"
o0#ect notification values............................4"3
support..........................................................+3
!leeping states
0ehavior during...........................................2"9
0utton logic...................................................+"
control methods..........................................2""
definitions...............................................46, 22
entering.......................................................369
logic controlling............................................+*
non&volatile...................................................2
o0#ects.........................................................2"4
packages, s(stem state................................2"*
power consumption......................................2
power loss.....................................................2
properties......................................................2
transitioning..................................29, 2"*, *9
transitioning to............................................36+
user settings..................................................28
waking using 3TC........................................++
!lot ,ser Num0er =C!,N> o0#ect...................4+"
!1'C.N....................................................9", 369
!1'C.N field....................................................+*
!1'CTS'/................................................9", 369
!1'CTS'/ field..........................................*+, +*
!1';TNC.N....................................................93
!1';TNC!T!...................................................9
small resource data t(pe..................................466
!mart ;atteries
control methods..........................................344
definition.......................................................49
device %-....................................................4"*
multiple 0atter( su0s(stem.........................342
o0#ects.........................................................34
single 0atter( su0s(stem.............................344
!M;us data 0uffers....................................384
!M;us devices...........................................398
specifications................................................44
status notification........................................36
su0s(stem.............................................38, 39
supported......................................................34
ta0le..............................................................49
ta0le formats...............................................422
!mart ;atter( Charger
functions.....................................................36
status notification........................................36
!mart ;atter( !elector....................................34
!mart ;atter( !(stem Manager
functions.....................................................38
status notification........................................34
!M;&@C.........................................38, 342, 39
!M;us
address register =!M;CA--3>..................3+*
address space..............................................39*
alarm address register =!M;CA13MCA--3>
................................................................3++
alarm data register =!M;CA13MC-ATA> 3++
0lock count register =!M;C;CNT>............3+*
;lock Write&3ead ;lock 'rocess Call
=!M;;lock'rocessCall> protocol..........38*
command register =!M;CCM->................3+*
commands, restricted..................................392
data 0uffers.................................................384
data register arra( =!M;C-ATA>...............3+*
definition.......................................................49
device access, em0edded controller interface
................................................................394
device enumeration, ena0ling.....................399
device %-....................................................4"*
em0edded controller interface....................3+2
encoding, 0it...............................................39+
fields, declaring..........................................396
generic hardware addresses..........................*2
host controller notification header
=2!C!M;C.DT>....................................3+
host controller o0#ects, declaring................399
interface........................................................49
operation regions................................39*, 398
'.C =packet error checking>......................39+
'rocess Call =!M;'rocessCall> protocol...38*
protocol register =!M;C'3TC1>...............3+"
protocols.....................................3++, 39*, 382
3eadFWrite ;lock =!M;;lock> protocol. . .38"
3eadFWrite ;(te =!M;;(te> protocol.......383
3eadFWrite Guick =!M;Guick>.................382
3eadFWrite Word =!M;Word> protocol.....383
!endF3eceive ;(te =!M;!end3eceive>
protocol..................................................382
slave addresses....................................38, 39*
specifications................................................44
status codes.................................................39+
status register =!M;C!T!>.........................3+3
transactions.................................................39+
virtual registers...........................................39+
!M;us devices................................................4"+
!M%
definition.......................................................49
em0edded controller firmware...................3+
event flags =!M%C.DT>..............................3*9
interrupt events.......................................*4, +8
!MM firmware.................................................."+
!oft&2ff
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
632 Advanced Configuration and 'ower %nterface !pecification
0ehavior during...................................2"6, "
definition.................................................46, 22
properties......................................................2
transitioning crashed s(stems to...................+2
transitioning to......................................*, "4
!2@2 servers.................................................4"
sources, power.........................See power sources
!!-T.........................................................49, 444
!tall =!tall for a !hort Time>...........................*44
standards
device power states.......................................3
power management.......................................26
!tart -ependent functions resource descriptor
format.........................................................24
!tart-ependent5n !tart -ependent 5unction
3esource -escriptor Macro>.......................*44
!tart-ependent5nNo'ri !tart -ependent
5unction 3esource -escriptor Macro>.......*42
statements
.lse%f..........................................................."+8
%f "+8
'ower 3esource..........................................233
'rocessor.....................................................2*6
statements, A!1.............................................."44
states...........................................See power states
static o0#ects....................................................43*
!tatus =C!TA>..................................................23*
!tatus =C!TA> o0#ect.......................................468
status 0its
corresponding ena0le 0its.............................96
functions.......................................................99
s(m0ol.........................................................."8
status codes, !M;us.......................................39+
status notification, !mart ;atter(.....................36
status register....................................................39
status register =!M;C!T!>.............................3+3
status, 0atter(....................................................34
statusFena0le registers.......................................**
stick( status 0it, definition................................"8
storage devices, power management.......*"3, *+3
!tore =!tore an 20#ect>....................................*42
storing results, A!1 operators........................."36
!treamlined Advanced 'rogramma0le %nterrupt
Controller........................................See !A'%C
!tring =C!T3> o0#ect.......................................4+"
!tring data t(pe, A!1.............................."39, ""4
strings, A!1............................................."44, "3"
!u0tract =%nteger !u0tract>..............................*42
supplemental documentation.............................44
surprise&st(le removal.............................486, 468
!witch =!elect Code To ./ecute ;ased 2n
./pression>.................................................*43
switching, output devices................................*98
!/ states..................................See !leeping states
s(m0ols, logic diagrams...................................."8
s(nta/
2peration3egion.........................................398
'ower 3esource statements........................233
s(nta/, A!1....................................................."44
s(stem conte/t
definition.......................................................49
during emergenc( shutdown........................."2
restoring........................................................2
!" !leeping state.........................................366
sleep states lost in.........................................22
!(stem Control %nterrupt..........................See !C%
s(stem description ta0les......................See ta0les
s(stem events, general model...........................39
s(stem indicators.............................................29*
!(stem Management ;us...................See !M;us
!(stem Management %nterrupt................See !M%
!(stem Management Mode...................See !MM
s(stem memor( space.......................................*2
s(stem states, glo0al.......See glo0al s(stem states
!(stem !tatus =C!!T> control method............29*
!(stem Wake =CWAE> control method...........2*
ta0les
address format..............................................89
compati0ilit(.................................................89
-!-T..........................................................44
em0edded controller 0oot resources...........422
encoding format............................................8+
5AC!..........................................................4*
5A-T............................................................6*
headers....................................................83, 6
MA-T........................................................442
overview.......................................................83
3!-'............................................................86
3!-T............................................................62
!;!T =!mart ;atter( -escription>.............422
signatures................................................64, 62
!!-T...........................................................444
A!-T............................................................6"
Temperature =CTM'> control method.....329, 3"4
temperature changes, detecting.......................328
temperature management..................See thermal
management
Term 20#ects encoding, AM1.........................*28
terminolog(
design guides..............................................*, 9
device power states.......................................24
general..........................................................43
glo0al s(stem states......................................46
performance states........................................23
processor power states..................................22
sleeping states...............................................22
terms
AM1...........................................................*2*
A!1 notation..............................................."42
Thermal Constant 4 =CTC4> o0#ect.................3"4
Thermal Constant 2 =CTC2> o0#ect.................3"4
thermal management
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
%nde/ 633
control methods..........................................33*
energ( conservation, optimiHing...................""
notification of temperature changes...........326
o0#ects.........................................................33*
2!'M controlled........................................32*
overview......................................................."3
performance, optimiHing...............................""
polling.................................................328, 326
temperature changes, detecting..................328
threshold settings, d(namicall( changing...329
trip points....................................................326
Thermal !ampling 'eriod =CT!'> o0#ect........3"2
thermal states, definition...................................48
Thermal ?one data t(pe, A!1................."39, ""4
Thermal ?one -evices =CT?-> o0#ect............3"3
Thermal ?one 'olling =CT?'> o0#ect....284, 3",
3"3
thermal Hones
0asic configuration.............................3"*, 3"8
e/amples.............................................3"*, 3"8
mo0ile 'C e/ample......................................."3
multiple........................................................."*
multiple&speed fan e/ample........................3"+
o0#ect notification values............................4"3
o0#ect re:uirements....................................3""
Thermal?one =-eclare Thermal ?one>...........*4"
thirt(&two 0it fi/ed location memor( range
resource descriptor format..........................28
thirt(&two 0it memor( range resource descriptor
format.........................................................29
throttling..................................................2**, 2+*
T@TC.N...........................................................9+
Timer =$et +"&;it Timer Dalue>......................*4*
timers
glo0al stand0(...............................................*2
idle................................................................*2
power management ='M>.......................*2, +
TM3& field........................................................+4
TM3C.N...........................................................93
TM3C!T!.........................................................+6
TM3CDA1........................................................9*
To;C- =Convert %nteger to ;C->..................*4*
To;uffer =Convert -ata to ;uffer>.................*4+
To-ecimal!tring =Convert -ata to -ecimal
!tring>.........................................................*4+
To@e/!tring =Convert -ata to @e/adecimal
!tring>.........................................................*4+
To%nteger =Convert -ata to %nteger>...............*4+
token ring adapters...............See network devices
top of memor(................................................."+
To!tring =Convert ;uffer To !tring>...............*49
transactions, !M;us
data 0uffers.................................................384
status codes.................................................39+
transitioning
crashed s(stems......................................+4, +2
device power states.....................................*"4
1egac( mode to AC'%..................................+8
power states....................................29, "6, *9
working to sleeping states.........................."4
working to soft&off states............................"4
transparent events..............................................*4
transparent switching, device power states.......24
trap monitors.....................................................*2
Trigger Mode flags..........................................44*
trip points, thermal..........................................326
turning off............See Mechanical 2ffK !oft&2ffK
transitioning
TDs..................................................................*+8
twent(&four 0it memor( range resource
descriptor format........................................2+
T(pe 4 2pcodes, AM1 encoding....................*3
T(pe 2 2pcodes, AM1 encoding....................*34
,A3Ts, power management...........................*"*
,nicode =!tring To ,nicode Conversion Macro>
....................................................................*48
,ninitialHed data t(pe, A!1...................."39, ""4
,ni:ue %- =C,%-> o0#ect................................4+*
,nload =,nload -efinition ;lock>.................*48
unnamed o0#ects..............................................432
unrelated device interference............................*3
upper case, A!1 names..................................."33
,!;, power management...............................*"2
user preferences
performance vs. energ( conservation..."", 333
power 0utton.................................................28
user&visi0le power states...................................29
,,%- =Convert !tring to ,,%- Macro>.........*49
value&added hardware
ena0ling 2!'M............................................"9
registers.........................................................99
Daria0le 1ist...................................................."44
DC3&st(le e#ection mechanism.......................486
vendor defined large resource descriptor format
....................................................................29
vendor defined resource data t(pes.................29
vendor defined small resource descriptor format
....................................................................2"
Dendor1ong 1ong Dendor&-efined -escriptor
macro>.........................................................*48
Dendor!hort Dendor -efined 3esource
-escriptor Macro>......................................*46
D.!A specifications.......................................*"2
D$A........................................................*+8, *92
video controllers, power management............*"+
Dideo .lectronics !tandards Associations
=D.!A>.......................................................*"2
video e/tensions, re:uirements for.................*+*
Dideo '2!T 2ptions =CD'2>.........................*93
virtual data o0#ects.........................................."*6
virtual registers........................................39+, 38
visi0le states
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a
63" Advanced Configuration and 'ower %nterface !pecification
glo0al s(stem................................................46
power............................................................29
Wait =Wait for a !(nchroniHation .vent>........*46
WAEC!T! =Wake !tatus>...........................++, 94
wake frame events...........................................*+
waking
C;5! =;ack 5rom !leep> control method. .2""
CWAE control method................................2*
audio devices..............................................*"*
C2M ports..................................................*"+
device power resource o0#ect =C'3W>.......236
devices........................................................*""
disa0ling s(stem&waking devices...............2"
displa( devices............................................**3
initialiHation................................................"2
input devices...............................................**+
latenc( time..........................................29, *9
lid switch......................................................84
logic controlling............................................+*
modem devices...........................................**8
modem e/ample......................................33, 3*
network devices..........................................*+
2! operations...............................................34
'C Card controllers....................................*+2
3eal Time Clock Alarm =3TC>.....................++
resetting lost ena0le 0its...............................96
storage devices............................................*+"
warm insertion and removal....................46, 463
warnings, 0atter(...............................................36
W;%ND-................................................2*8, "2
we0 sites
%ntel Architecture..........................................44
Microsoft......................................................44
'C%!%$.......................................................*"2
'CMC%A.....................................................*"2
!mart ;atter( !(stem...................................44
!M;us specification...................................39*
,!;&%5.......................................................*"2
While =Conditional 1oop>...............................*2
W23- resource descriptor format.................24*
Word;usNum0er =Word ;us Num0er 3esource
-escriptor Macro>......................................*2
Word%2 =Word %2 3esource -escriptor Macro>
....................................................................*24
Word!pace =Word !pace 3esource -escriptor
Macro>........................................................*23
Working state
0ehavior during...........................................36+
definition.......................................................46
properties......................................................2
transitioning to.............................................."6
transitioning to !leeping state...................."4
transitioning to !oft&2ff............................."4
workstations....................................................4"
Write .m0edded Controller =W3C.C>...........3*8
write&onl( 0its
control..........................................................."8
definition.......................................................*3
A2r =%nteger ;itwise Aor>..............................*2"
A!-T
definition.......................................................48
loading -efinition ;lock............................"86
location.........................................................8"
ta0le fields....................................................6"
?ero =Constant ?ero 20#ect>...........................*2"
?ero, 2ne, 2nes data t(pe, A!1............."39, ""4
Hones, thermal..........................See thermal Hones
Hewlett-Packard@Intel@Microsoft@Phoenix@Toshi!a

Potrebbero piacerti anche