|
--易祝兵 2007-12-7
0 ]. F: M1 X B/ C在BIOS初始化platform PM寄存器后,支持ACPI的操作系统会开启ACPI模式,一般同时开启SCI事件的响应。8 J; N) k& x3 s4 c. f
* {6 y$ |& g, w% e% _8 F什么是SCI?什么是SMI?( ^6 t3 |1 Q0 f: T1 V4 S+ O" y( o: s" I
这里如您不知道,我只大致解释一下:
2 h7 Z5 ?/ B7 X4 `SCI:系统控制中断,会由产生一个IRQ x(此x号码,一般可由平台的寄存器设定)中断请求,操作系统的ACPI驱动会响应此中断。. R Q) _# W( m; M
SMI:系统管理中断,由各设备或软件需要SMM服务时,下拉CPU的SMI Pin所产生,系统不论在做什么,都会挂起现执行的操作,跳至一个特殊的模式,叫系统管理模式(SMM)(当然是比操作系统有更高的优先权啦,才不管你0/3 level什么的。) O% f; Z8 @9 [# ]7 r! M$ ]
% q' e; h% b) p+ S; a9 G0 `
当你配置了一个GPIO产生events后,又打开了ACPI和SCI。那么系统在此GPIO Status发生变化的时候,ACPI驱动就会捕捉到。即:一般就执行一个ACPI里_GPE()内的一个方法。这是普通的。+ [% w; y4 l" x6 ]7 a6 T8 H L
) `8 {/ B( A( P/ u5 H2 {+ \
ICH7 GPIO Status的寄存器如下:
$ ]# f- X$ [( I$ m& Z5 R
; q x+ r$ }1 s0 y u' W
0 w1 I2 o' u: P, D+ f让GPIO产生SCI或SMI的Switch寄存器:* {; k' K. Z' I3 p) ?. b* z
2 n! I& L* N( A9 C1 N' f7 M4 a
, _0 j/ {; [. m2 b6 K8 z一种机器所用到的的GPIO:! a \3 t' V9 g) ?6 I# ^& M+ d
! H* ]3 g% {* z5 Q, [$ R
; p1 |3 [% M% h0 M
处理这些事件的方法如下:
6 h6 M8 i; t5 F/ o7 S# @, d' l3 J
$ g# q' u0 c9 d- @) ?( ?4 [! I
注意上面,的_L04是指你GPEx_STS的PM寄存器的第4个bit位发生变化时,所执行的ACPI事件方法,并不一定是指第4个GPIO所生产的方法,各平台有各平台的Chipset手册,注意看好。
. \' `. e* F0 D |2 T6 b/ ~4 g: y- s* m& h, @! y$ M
那什么是Q方法?' E3 `5 Y- h+ d0 ?
当你的平台定义了ACPI嵌入式控制器(EC,PNPID:PNP0C09[PNPID的文档,见本站内的贴子:http://www.ufoit.com/bbs/thread-97-1-1.html]),并指定了EC所使用的GPIO,那么,此GPIO的事件(状态发生变化)产生时,就会产生一个Q事件,处理此事件的,就叫Q方法,可以有从0到FF个,即: _Q00() ~ Q255()。* {% t. O! u! \6 [; ]) R% R
0 u, Q- K8 ^1 a) O1 i既然有256个,哪如何区分Q事件呢?( d- m9 X+ _7 F# Q- ?& c. \9 u
当Q事件产生时,OSPM会向ACPI EC发出一个命令去查询此Q事件的号码。EC会响应并回复一个号码给OSPM,然后OSPM就会执行ACPI里的某个Q方法。9 v% C. d- T T0 t% T: X
8 H. P2 ~1 n% r如EC发现温度发生变化,就会向ACPI Thermal驱动发出通知,更新ACPI Thermal,以便系统按要求处理散热方案,如下图:+ g4 ^ L* H* z" A; _! \ Z
Method(_Q34) { // embedded controller event for thermal Notify' @+ @, Y+ b3 G& [' e: s# b9 c- {5 A
(\_SB.TZ0.THM1, 0x80) - `& Z' D% J5 B' Y% S9 F) q
}
/ [5 B- K& z) K4 A+ \3 z0 M) |: `7 ]1 |- z2 l
详见文档: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution.
$ R& ?/ N% I0 z0 G! I1 t如找不到ACPI 3.0b请到:http://www.ufoit.com/bbs/thread-7-1-1.html 处或 http://www.acpi.info 下载。 |
|