|
--易祝兵 2007-12-7
6 |5 p2 l5 q" t' F$ ?8 f5 {7 M在BIOS初始化platform PM寄存器后,支持ACPI的操作系统会开启ACPI模式,一般同时开启SCI事件的响应。! y! \* O" E1 @* L0 C
) ~- x2 n% J1 [$ p7 k, l& e什么是SCI?什么是SMI?& N: p* {- z* j* U
这里如您不知道,我只大致解释一下:
7 O+ I) P7 A5 z! K) GSCI:系统控制中断,会由产生一个IRQ x(此x号码,一般可由平台的寄存器设定)中断请求,操作系统的ACPI驱动会响应此中断。
1 V, I+ g j2 r3 F; c0 C' G& R( gSMI:系统管理中断,由各设备或软件需要SMM服务时,下拉CPU的SMI Pin所产生,系统不论在做什么,都会挂起现执行的操作,跳至一个特殊的模式,叫系统管理模式(SMM)(当然是比操作系统有更高的优先权啦,才不管你0/3 level什么的。)
# X$ S4 o$ g1 V/ D+ ?) z
1 Y; K! I: V2 H5 `. B& e K当你配置了一个GPIO产生events后,又打开了ACPI和SCI。那么系统在此GPIO Status发生变化的时候,ACPI驱动就会捕捉到。即:一般就执行一个ACPI里_GPE()内的一个方法。这是普通的。
9 `* z7 r! h' P3 J& s; `
" k9 i7 t! n% ?0 C6 i$ qICH7 GPIO Status的寄存器如下:
; W, u4 f! q& s( [
6 m, e$ _+ [, N* q) R; ?
/ b7 f* E4 e% h( a! y9 Q
让GPIO产生SCI或SMI的Switch寄存器:7 V8 H* X$ j* N, q7 W5 a2 {
8 E0 q) p; L- j. P) I
* n1 {' g0 s# }# p3 i! l一种机器所用到的的GPIO:
0 R. c( ?, @8 K
5 O' _" i4 Q4 E: X# |! k
) o& j' ^6 w' Q: H6 x处理这些事件的方法如下:
! {7 E9 w N, y% S5 W+ w& J
4 y8 g3 p% g; H
注意上面,的_L04是指你GPEx_STS的PM寄存器的第4个bit位发生变化时,所执行的ACPI事件方法,并不一定是指第4个GPIO所生产的方法,各平台有各平台的Chipset手册,注意看好。/ `! v4 N# U- m, P* ~/ x
# A3 s, g2 \' X$ n8 X6 r9 {那什么是Q方法?3 c( u% w X2 x: i* z, o4 h
当你的平台定义了ACPI嵌入式控制器(EC,PNPID:PNP0C09[PNPID的文档,见本站内的贴子:http://www.ufoit.com/bbs/thread-97-1-1.html]),并指定了EC所使用的GPIO,那么,此GPIO的事件(状态发生变化)产生时,就会产生一个Q事件,处理此事件的,就叫Q方法,可以有从0到FF个,即: _Q00() ~ Q255()。' O, b- ]: W7 J' _. q* v' [, p
- Q. h" C7 @2 G' \6 H% ?
既然有256个,哪如何区分Q事件呢?
! T9 t3 Z: U% D a( U s* Y o当Q事件产生时,OSPM会向ACPI EC发出一个命令去查询此Q事件的号码。EC会响应并回复一个号码给OSPM,然后OSPM就会执行ACPI里的某个Q方法。" ?3 j! g& U/ i! P& c# t9 a" \
, i7 V- A( [8 v s2 A2 a: h7 S
如EC发现温度发生变化,就会向ACPI Thermal驱动发出通知,更新ACPI Thermal,以便系统按要求处理散热方案,如下图:
' V# v! Y( I; SMethod(_Q34) { // embedded controller event for thermal Notify
! J! x* F: E4 _/ p0 {9 r- G (\_SB.TZ0.THM1, 0x80) * n4 A8 f0 b& ^. _, A; r' {0 U3 Q
}
5 a/ [" ?: W( w$ S+ I. B0 j
8 o7 @( Q8 O7 m- C4 @3 i+ i! a详见文档: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution.; p ], ?9 E/ i$ M, s
如找不到ACPI 3.0b请到:http://www.ufoit.com/bbs/thread-7-1-1.html 处或 http://www.acpi.info 下载。 |
|