24h購物| | PChome| 登入
2010-11-17 15:43:56| 人氣13,343| 回應2 | 上一篇 | 下一篇

[BIOS] ACPI _GPE & _Q方法

推薦 0 收藏 0 轉貼0 訂閱站台

BIOS知識點滴Follow Bini系列之--ACPI _GPE & _Q方法

--易祝兵 2007-12-7


BIOS初始化platform PM寄存器後,支持ACPI的操作系統會開啟ACPI模式,
一般同時開啟SCI事件的響應。
什麼是SCI?什麼是SMI
這裡如您不知道,我只大致解釋一下:
SCI:系統控制中斷,會由產生一個IRQ x(此x號碼,一般可由平台的寄存器設定)
           中斷請求,操作系統的ACPI驅動會響應此中斷。6 e6 B, I0 _# ]" [8 A) O
SMI:系統管理中斷,由各設備或軟件需要SMM服務時,下拉CPU的SMI Pin所產生,
           系統不論在做什麼,都會掛起現執行的操作,跳至一個特殊的模式,叫系統管理模式
         (SMM)(當然是比操作系統有更高的優先權啦,才不管你0/3 level什麼的。)
當你配置了一個GPIO產生events後,又打開了ACPI和SCI。那麼系統在此GPIO Status發生變化的時候,ACPI驅動就會捕捉到。即:一般就執行一個ACPI裡_GPE()內的一個方法。這是普通的。
ICH7 GPIO Status的寄存器如下:

讓GPIO產生SCI或SMI的Switch寄存器:3 o0 L/ a$ b/ ]4 X/ G

\8 g5 i# R
一種機器所用到的的GPIO:+ g  e) }+ v8 D
& B2 T1 W% ]+ Q) u2 S
! A7 E  Z1 K+ m( @2 B! f
處理這些事件的方法如下:
注意上面,的_L04是指你GPEx_STS的PM寄存器的第4個bit位發生變化時,所執行的ACPI事件方法,並不是指第4個GPIO所生產的方法,各平台有各平台的Chipset手冊,注意看好。, M- z3 _( B9 w( e+ p8 ?
: S' B$ }: c  m, {& u1 K7 X
那什麼是Q方法?6 Z% C3 l0 G/ O* L2 O
當你的平台定義了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
既然有256個,哪如何區分Q事件呢?
( S6 w' l. N2 P% u. [當Q事件產生時,OSPM會向ACPI EC發出一個命令去查詢此Q事件的號碼。EC會響應並回復一個號碼給OSPM,然後OSPM就會執行ACPI裡的某個Q方法。9 j* v6 l' u. O0 C+ D  c7 u
( N9 j3 j* u8 @' d9 |" q
如EC發現溫度發生變化,就會向ACPI Thermal驅動發出通知,更新ACPI Thermal,以便系統按要求處理散熱方案,如下圖:
Method(_Q34) { // embedded controller event for thermal Notify9 j" r0 S; \! x. y& @. {
    (\_SB.TZ0.THM1, 0x80) 8 i! A4 P7 V- R! e/ d1 [% Y3 r
}

" R9 n( i
詳見文檔: ACPI 3.0b -> 5.6.2.2.3 Queuing the Matching Control Method for Execution.0 {3 k% h! p+ l) X  @9 r

台長: 一隻貓
人氣(13,343) | 回應(2)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類

日本藤素
不錯的分享 http://heijin.hi99.cc/
2019-01-17 12:45:32
印度神油
很讚的分享~~


http://www.yyj.tw/
2020-01-11 17:48:38
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文