|
|
|
--易祝兵 2007-12-7
" a) d. v& J$ ~; o; r1 q9 `: P在BIOS初始化platform PM寄存器后,支持ACPI的操作系统会开启ACPI模式,一般同时开启SCI事件的响应。
. V! i$ |" A- A N( K- b& d P& |& Z0 q. z) i/ |% k/ s
什么是SCI?什么是SMI?: I0 P. p" p$ z' N
这里如您不知道,我只大致解释一下:
, m6 Q( X, z; K, a" c/ XSCI:系统控制中断,会由产生一个IRQ x(此x号码,一般可由平台的寄存器设定)中断请求,操作系统的ACPI驱动会响应此中断。5 v- `: N$ m) j* i! }
SMI:系统管理中断,由各设备或软件需要SMM服务时,下拉CPU的SMI Pin所产生,系统不论在做什么,都会挂起现执行的操作,跳至一个特殊的模式,叫系统管理模式(SMM)(当然是比操作系统有更高的优先权啦,才不管你0/3 level什么的。) [) l& P1 e2 m- ~' n# F. }/ ~
( `; Y7 ~: Q& J: _) Q4 V
当你配置了一个GPIO产生events后,又打开了ACPI和SCI。那么系统在此GPIO Status发生变化的时候,ACPI驱动就会捕捉到。即:一般就执行一个ACPI里_GPE()内的一个方法。这是普通的。
1 }& N+ d) I, V4 y7 Y& D
$ [! T2 L# ~) a( y7 e' l0 }ICH7 GPIO Status的寄存器如下:1 F" h- S( |2 V* u7 J/ [
8 W+ b4 }% P9 D! w: P$ `8 T& C9 i4 r5 a
让GPIO产生SCI或SMI的Switch寄存器:% _, S$ _2 h5 [0 o) a
* t; y1 ]0 a0 U6 b4 l
( _" v) d4 w0 N1 p/ b一种机器所用到的的GPIO:4 E9 ?2 l; F6 A8 e) l$ t5 Y
0 m1 u I3 I6 W E, E6 _4 Y, ?4 U3 C0 Z. H/ g# J$ g
处理这些事件的方法如下:; T6 Q) v/ w$ a# Z1 W1 s6 I
$ v5 ^( y& }/ C! z1 V5 Y2 H" g
注意上面,的_L04是指你GPEx_STS的PM寄存器的第4个bit位发生变化时,所执行的ACPI事件方法,并不一定是指第4个GPIO所生产的方法,各平台有各平台的Chipset手册,注意看好。% Z P L3 |+ X
% i4 k8 ^" s' N9 r那什么是Q方法?
0 c, X" v" x& _- m: v当你的平台定义了ACPI嵌入式控制器(EC,PNPID:PNP0C09[PNPID的文档,见本站内的贴子:http://www.ufoit.com/bbs/thread-97-1-1.html]),并指定了EC所使用的GPIO,那么,此GPIO的事件(状态发生变化)产生时,就会产生一个Q事件,处理此事件的,就叫Q方法,可以有从0到FF个,即: _Q00() ~ Q255()。# G8 ]: x1 u! Q w! u3 ^4 n% m! X
4 A2 d% y4 Z- {. i5 P9 a
既然有256个,哪如何区分Q事件呢?
, V$ m" E1 [+ m, B+ U5 P当Q事件产生时,OSPM会向ACPI EC发出一个命令去查询此Q事件的号码。EC会响应并回复一个号码给OSPM,然后OSPM就会执行ACPI里的某个Q方法。
% z: E0 ?9 P9 a! f2 i% ~4 z8 W
3 ^1 J, E" |, @" k& N2 m4 h0 L如EC发现温度发生变化,就会向ACPI Thermal驱动发出通知,更新ACPI Thermal,以便系统按要求处理散热方案,如下图:! S: A4 l3 o! B4 m
Method(_Q34) { // embedded controller event for thermal Notify; _8 Y5 {: f( G m k" d$ @" G
(\_SB.TZ0.THM1, 0x80) 7 g- @5 b" Y# ?* O) ^; B
}* ?, k+ g1 l7 V$ H1 G1 s; U6 O( Y9 u
# _, q1 n5 m3 H$ K4 J5 L/ p详见文档: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution.9 T0 S! l5 K$ U2 `- t
如找不到ACPI 3.0b请到:http://www.ufoit.com/bbs/thread-7-1-1.html 处或 http://www.acpi.info 下载。 |
|