|
|
|
--易祝兵 2007-12-7 : l5 t, o9 r6 n9 ^- l$ q& E$ G* R
在BIOS初始化platform PM寄存器后,支持ACPI的操作系统会开启ACPI模式,一般同时开启SCI事件的响应。
, }# H$ e$ a8 V8 c" s0 M- S k
1 ?: I! `5 A% G# r% P3 ^: j什么是SCI?什么是SMI?
! _* U( T& T/ S0 Y; W0 u% v" a) ]这里如您不知道,我只大致解释一下:+ X; w" N+ i# ]) \7 K
SCI:系统控制中断,会由产生一个IRQ x(此x号码,一般可由平台的寄存器设定)中断请求,操作系统的ACPI驱动会响应此中断。0 H7 s1 `% }: g* r8 ] y" Z
SMI:系统管理中断,由各设备或软件需要SMM服务时,下拉CPU的SMI Pin所产生,系统不论在做什么,都会挂起现执行的操作,跳至一个特殊的模式,叫系统管理模式(SMM)(当然是比操作系统有更高的优先权啦,才不管你0/3 level什么的。)( @- i" F- }# G. n
# e( g- ?7 ~' R; }
当你配置了一个GPIO产生events后,又打开了ACPI和SCI。那么系统在此GPIO Status发生变化的时候,ACPI驱动就会捕捉到。即:一般就执行一个ACPI里_GPE()内的一个方法。这是普通的。
: d) _) i# P) G' K4 I4 A
3 E* G! Y- X% u) ~2 X0 O" OICH7 GPIO Status的寄存器如下:
, ?* c! N0 P# i$ h, ]& @
1 X, [" T5 k5 y# g: k0 |; P
% f+ g1 J3 V7 k: |, t( ^& l
让GPIO产生SCI或SMI的Switch寄存器:( g' O- |- K5 C/ ?
# T- e8 ~$ K: N% t7 [& e" X
* h5 n1 l9 r+ g一种机器所用到的的GPIO:
. `5 E9 ~$ H* F4 u$ a2 h2 \; q" @
Y8 t7 r6 |9 J0 h) Z; K1 r
( x$ S! s9 |: U, z9 n8 T2 \处理这些事件的方法如下:
' z# R/ \. I1 t: Q9 u: Q4 {
3 O" A9 {. z( U" A& N7 E
注意上面,的_L04是指你GPEx_STS的PM寄存器的第4个bit位发生变化时,所执行的ACPI事件方法,并不一定是指第4个GPIO所生产的方法,各平台有各平台的Chipset手册,注意看好。
# u2 O! S3 p' t
" I' N( F4 O$ i7 Q那什么是Q方法?
4 O3 Z- I: V6 K/ M1 h/ W当你的平台定义了ACPI嵌入式控制器(EC,PNPID:PNP0C09[PNPID的文档,见本站内的贴子:http://www.ufoit.com/bbs/thread-97-1-1.html]),并指定了EC所使用的GPIO,那么,此GPIO的事件(状态发生变化)产生时,就会产生一个Q事件,处理此事件的,就叫Q方法,可以有从0到FF个,即: _Q00() ~ Q255()。* v; l; e% r0 | j" u
* [7 M! X |5 N5 A$ q: j+ c+ p; }既然有256个,哪如何区分Q事件呢?- O* \& Y% P9 x2 x
当Q事件产生时,OSPM会向ACPI EC发出一个命令去查询此Q事件的号码。EC会响应并回复一个号码给OSPM,然后OSPM就会执行ACPI里的某个Q方法。7 P: w e/ P( o: \- i* Z, l/ A
4 M8 R/ g7 R0 g8 M$ ]- k
如EC发现温度发生变化,就会向ACPI Thermal驱动发出通知,更新ACPI Thermal,以便系统按要求处理散热方案,如下图:6 o7 e. _2 h L) ^, ?# D) C
Method(_Q34) { // embedded controller event for thermal Notify- E0 i; @: ~ t" d# ~; z7 X* r; Q
(\_SB.TZ0.THM1, 0x80) 7 Z1 X3 h$ R8 }: r" @
}
- T2 W: e5 y* a% ~/ W, a, i
) O; Z! j. a1 @! Y) m& K% Y详见文档: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution.
' l" J8 ^" y m, i) O" W9 t I如找不到ACPI 3.0b请到:http://www.ufoit.com/bbs/thread-7-1-1.html 处或 http://www.acpi.info 下载。 |
|