|
|
|
--易祝兵 2007-12-7
L/ k a6 i' h( ^9 ?+ I- G5 f: V) Q在BIOS初始化platform PM寄存器后,支持ACPI的操作系统会开启ACPI模式,一般同时开启SCI事件的响应。
7 y" G3 v& E7 K; g
" g& p7 N6 ~( `$ q$ E4 v7 t什么是SCI?什么是SMI?
( b; u' G# D F; z% d+ C) T" T; d$ A这里如您不知道,我只大致解释一下:8 I. n5 F5 M2 B5 A" |3 ^6 \! r
SCI:系统控制中断,会由产生一个IRQ x(此x号码,一般可由平台的寄存器设定)中断请求,操作系统的ACPI驱动会响应此中断。( D b% u% g: J+ Z3 B" m
SMI:系统管理中断,由各设备或软件需要SMM服务时,下拉CPU的SMI Pin所产生,系统不论在做什么,都会挂起现执行的操作,跳至一个特殊的模式,叫系统管理模式(SMM)(当然是比操作系统有更高的优先权啦,才不管你0/3 level什么的。)
* z8 I) d7 r/ [5 c; Q/ h; K3 {; e: u X6 |) K; b5 H; s4 t5 p
当你配置了一个GPIO产生events后,又打开了ACPI和SCI。那么系统在此GPIO Status发生变化的时候,ACPI驱动就会捕捉到。即:一般就执行一个ACPI里_GPE()内的一个方法。这是普通的。* U( G, d z* S2 G
) Q2 l4 r6 ?2 n! q5 f5 K$ `/ g p
ICH7 GPIO Status的寄存器如下:
( e( w; `8 v- L+ ?% L+ n% V
4 {& l) x$ z x1 e' p9 m$ I3 q
1 I& t+ O3 I% }5 s8 ~* k
让GPIO产生SCI或SMI的Switch寄存器:7 Z: J$ r: w* \# H9 R
; @2 O6 i# l. d4 }% I* e. W1 q
# v9 ?# ~- o' j. N: F0 p% f, V一种机器所用到的的GPIO:! ~0 t: e0 J( T2 \) X* V7 O
h! i9 q# y1 l; y/ @) d1 t3 Y2 A# l3 w) h8 y
处理这些事件的方法如下:/ u- H- e7 {! T
) t, S6 `& x2 v j$ z9 l4 d注意上面,的_L04是指你GPEx_STS的PM寄存器的第4个bit位发生变化时,所执行的ACPI事件方法,并不一定是指第4个GPIO所生产的方法,各平台有各平台的Chipset手册,注意看好。 h& p3 V/ d6 \, I* V. s9 I
* }- D: f, C: W7 w
那什么是Q方法?
' s2 ?3 q: z. v7 g: `当你的平台定义了ACPI嵌入式控制器(EC,PNPID:PNP0C09[PNPID的文档,见本站内的贴子:http://www.ufoit.com/bbs/thread-97-1-1.html]),并指定了EC所使用的GPIO,那么,此GPIO的事件(状态发生变化)产生时,就会产生一个Q事件,处理此事件的,就叫Q方法,可以有从0到FF个,即: _Q00() ~ Q255()。% G) O# g$ c* U
0 ~; h6 x. @' I( P6 l既然有256个,哪如何区分Q事件呢?
! m- a9 A( V+ q; ^- v5 n当Q事件产生时,OSPM会向ACPI EC发出一个命令去查询此Q事件的号码。EC会响应并回复一个号码给OSPM,然后OSPM就会执行ACPI里的某个Q方法。# } F" b7 S/ i: s6 {7 a; \
& X, d% k7 R7 x, O9 u
如EC发现温度发生变化,就会向ACPI Thermal驱动发出通知,更新ACPI Thermal,以便系统按要求处理散热方案,如下图:
* j9 C! `4 J& IMethod(_Q34) { // embedded controller event for thermal Notify
* x5 p& I7 {- g5 s5 \ x, V (\_SB.TZ0.THM1, 0x80)
~9 ~! E$ \ x}8 m. c) F- z: q- `6 V, t3 B
2 ?! n1 T- ]1 ~2 `) }1 Z详见文档: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution.
3 d1 F- c- X9 N8 F! i, W1 m如找不到ACPI 3.0b请到:http://www.ufoit.com/bbs/thread-7-1-1.html 处或 http://www.acpi.info 下载。 |
|