|
--易祝兵 2007-12-7 2 T6 }$ Z4 b, y8 V3 y _) [0 h- k# T
在BIOS初始化platform PM寄存器后,支持ACPI的操作系统会开启ACPI模式,一般同时开启SCI事件的响应。
' O O& o& t) d" B& ?# _! C' i2 {" g1 w* Q% _" ^: ?* }
什么是SCI?什么是SMI?) @0 \9 \# L! f6 X; N
这里如您不知道,我只大致解释一下:: \( ~2 m6 u5 m Q0 ]1 S, `
SCI:系统控制中断,会由产生一个IRQ x(此x号码,一般可由平台的寄存器设定)中断请求,操作系统的ACPI驱动会响应此中断。
3 |1 `" r A# R W1 I: e8 M9 c4 d1 ]SMI:系统管理中断,由各设备或软件需要SMM服务时,下拉CPU的SMI Pin所产生,系统不论在做什么,都会挂起现执行的操作,跳至一个特殊的模式,叫系统管理模式(SMM)(当然是比操作系统有更高的优先权啦,才不管你0/3 level什么的。)
$ n& C8 I+ _6 N0 q* c- l6 n8 F8 ?4 W! v2 c$ q C, s1 u; [
当你配置了一个GPIO产生events后,又打开了ACPI和SCI。那么系统在此GPIO Status发生变化的时候,ACPI驱动就会捕捉到。即:一般就执行一个ACPI里_GPE()内的一个方法。这是普通的。+ ^, X y: Q B' H6 ^' }
* A0 q) Z% k' |2 W$ M9 r) @
ICH7 GPIO Status的寄存器如下:+ O3 A* [1 r6 L/ l' U0 a* p0 M8 \
3 |4 h2 X' K( k
. D# k/ t9 C$ J1 V+ U: K让GPIO产生SCI或SMI的Switch寄存器:! x+ o2 d; c* O+ u A
$ X! u; d& i8 t+ ?; o
& x) d# z4 V; p
一种机器所用到的的GPIO:! P# D2 E8 l! k, p ^5 W
+ t& j! d$ L/ k; m8 ?4 r" z$ ?9 {
. k% Q) y9 y1 R, y! c
处理这些事件的方法如下:
& D# X0 _ I C' ^, ?
6 y8 Q, F4 u+ {' r1 Y( L$ B. V注意上面,的_L04是指你GPEx_STS的PM寄存器的第4个bit位发生变化时,所执行的ACPI事件方法,并不一定是指第4个GPIO所生产的方法,各平台有各平台的Chipset手册,注意看好。0 r6 x! p3 e: {: Y( J
! n: r3 Q) s; ]- {9 N V# ?! r4 I; g
那什么是Q方法?
' i, Z8 R& W {1 p L7 J当你的平台定义了ACPI嵌入式控制器(EC,PNPID:PNP0C09[PNPID的文档,见本站内的贴子:http://www.ufoit.com/bbs/thread-97-1-1.html]),并指定了EC所使用的GPIO,那么,此GPIO的事件(状态发生变化)产生时,就会产生一个Q事件,处理此事件的,就叫Q方法,可以有从0到FF个,即: _Q00() ~ Q255()。
* I$ Y6 X( [0 [ I ^! E: L- P0 ^) O+ ~0 k7 D+ c! L
既然有256个,哪如何区分Q事件呢?
& r; v# W. X1 |5 W- {0 S当Q事件产生时,OSPM会向ACPI EC发出一个命令去查询此Q事件的号码。EC会响应并回复一个号码给OSPM,然后OSPM就会执行ACPI里的某个Q方法。* O V9 ~$ f& A* R# I; G S; ~
& a" U; L% h1 W6 y9 c# _: w( `如EC发现温度发生变化,就会向ACPI Thermal驱动发出通知,更新ACPI Thermal,以便系统按要求处理散热方案,如下图:
! G. | `8 M# j* hMethod(_Q34) { // embedded controller event for thermal Notify
# ~9 C& m' B9 s0 }! |+ I7 H; h7 | (\_SB.TZ0.THM1, 0x80)
- z- M) q* @5 @, K2 H" @} [1 m8 D- Y' G& h
2 z" X2 \/ C- a详见文档: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution." w& j1 Y5 r2 R6 a' a4 {
如找不到ACPI 3.0b请到:http://www.ufoit.com/bbs/thread-7-1-1.html 处或 http://www.acpi.info 下载。 |
|