找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
楼主: peterhu

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
! m$ w2 Z) i+ \2 b* H* X8 `' g看看是到哪里死掉的。
回复

使用道具 举报

发表于 2009-6-11 22:45:28 | 显示全部楼层

找到死机的原理了

感谢版主的回答,
; `1 d1 z' S4 x( y1 i! h今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。: H6 i+ Q% B0 J1 Q. O
我们在操作系统下用SE在64口下d4 .a7是发现在发d4的时候触摸板的数据线就被拉低了,而在发a7数据线又被拉高了。而且现在EC就死了。当发a8时又好了。现在我不知道在重启的时候是我们EC都会接到什么命令。还有这些命令是OS发的还是BIOS发的。现在感觉自己越来越糊涂了,还请版主指教!谢谢了
回复

使用道具 举报

 楼主| 发表于 2009-6-12 09:52:51 | 显示全部楼层
如果像你描述的状况,那么EC就没有死(还可以收CMD).在我们的code中A7,A8是disable touchpad,enable touchpad的命令; x- W2 p$ v2 u: g! O' k* R# ?
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
& Q" N# }5 L3 b3 X# s7 x/ [这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析" g0 h, |( t3 B; N' f! x' o
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
7 V) B, r# b% K* A3 |6 D5 \; `7 x& t  G9 n
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
1 {* j! ^6 B, ce83,) r4 M" W) h, h" {& @% Z3 }
IFE,
. C4 u' m, }* U3 `/ r3 ze23,oFA,
3 {( j  D, w6 G( k# i: uID1,DDF,LPC RST
5 k% Q" c# \) B$ ESwrong LPC RST9 ?6 E9 y, ^8 m! j- M0 @; h
LPC_Reset_Flag=64
' A2 G1 g, k1 E: ?
  C: L4 k) @: S# J% R5 i
ID1,DDF,
0 C5 V, X& Z' [  bIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,& q* W8 s- i5 ^7 W" r8 Q
ID1,DDF,- o- d& x1 f& S" f% V0 G
I90,VED,C,RFA,OFA,V01,C,RFA,
7 _/ S$ c, x! E- q! R/ {% wID1,DDF,O,OFA,O,9 @, f+ T5 H% @1 u! q
e2A,>IDLE
/ e) q) B, c  H' f: k' P" q: r3 soFA,<
) @4 v# i6 {7 l, M, ae00,# b8 V& r- _/ z( r* S
IAA,O55,O,
5 Z7 V, R0 c3 G. S8 FIAD,3 u8 I* w+ D! u0 `, B& b- L/ x- X$ A
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,4 {% D9 I. P& e/ s3 b* V8 B9 D
I60,O,D65,3 G1 c- F0 |/ N( I3 B# X
I60,D6D,VF5,C,RFA,OFA,K20,; L' Z; N( ~2 ?" n# j  R8 X; E& n% [
IAD,* U$ K- k7 Z5 h- W# S5 E
IAE,O,VF5,C,RFA,OFA,K20,
5 Z: U$ Q" R& s" I$ g5 lIAD,& N4 m) t1 ^" ^/ J( Y
IAE,O,
8 |5 O; g  u5 Z: A; oIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,' e7 Q4 }% L# o) t5 h& D* D0 X9 S% W' E
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,6 E3 f& l( R6 S* k
IAE,O,
7 v# Q9 m! D/ K4 s  \0 Y& y# m+ |' Fe91,d2F,d00,, m0 h8 o" F5 r: G4 c! T
e10,d83,d2F,P3_K#; h# C! Y$ f0 f7 l  j1 m9 `
P3_K#

) e3 q% m6 m8 S, |; O. E& c1 c* |% U7 s( Z) e
e23,oFA,
* `6 H3 P7 `+ P$ R7 D. dI90,VED,C,RFA,OFA,
  F6 q- Q# ]( oIAD,
" S$ r- {2 a, N$ d, i! Q) fIAD,O,9 i. j5 y# k2 H! I$ [4 Z) ~9 F
IAE,V03,C,RFA,OFA,
5 |  G& E6 r2 s: e( c8 EIAD,
$ R8 z) B1 T: p- N7 G% xIAD,O,
- n$ s% E" Q5 f' O. N* `8 O4 S% D" Z( hIAE,9 G3 Z: ?' J' k9 F
I90,VED,C,RFA,OFA,
! G3 s6 f% b/ ~- N2 t3 r, xIAD,
% _* q* v: ], [$ G* RIAD,O,
9 U: H  T& ~% N* M. |IAE,V05,C,RFA,OFA,
, V2 x/ T9 C$ a9 ~IAD,0 S* k' W" ~( v" x4 u
IAD,O,
5 e; q# G: o5 v6 F5 DIAE,O,
( q2 \0 ?$ b0 [0 Z8 re90,d2E,o00,
0 K9 V0 W/ z' Y9 I/ H+ c, m, E4 Ne91,d2F,d00,P3_K#, }+ W+ P. i( B7 j0 h( _) T: d
P3_K#

# i7 L  J! U9 x& C+ M2 i/ ~
6 Y0 n/ r. D- X5 A, k! w$ wIAD,VF3,C,RFA,OFA,5 w8 u8 M  D/ @8 M1 r! j
IAD,
% \# C7 b- H, ?  k  u! i  LIAD,O," G& k) j0 b$ \; p
IAE,VF3,C,RFA,OFA,
8 R7 G- t+ l/ n/ q: a+ aIAD,- D/ @" `4 V3 @6 z& w1 U
IAD,O,
( m7 L% g5 J( Z$ s  G' h7 F, }IAE,V20,C,K10,RFE,OFE,K08,
4 J6 g! }" S; |7 oIAD,
- ?7 e' Q0 F# @* [( uIAD,O,
. ^7 a1 j  }8 L& QIAE,V20,C,K10,RFE,OFE,K08,. M  Z% N9 E6 ]* R3 x
IAD,9 W/ r+ n* K( N. @* V
IAD,O,
0 i, t2 H% w5 L4 L3 EIAE,V20,C,K10,RFE,OFE,K08,/ j: t1 y% `5 J2 Z' h9 ^
IAD,/ }/ m3 V6 k/ N$ Q
IAD,O,. u5 x7 ?) U$ A9 v
IAE,
" K. c3 M% K% E* @: K5 ?IAE,VF4,C,RFA,OFA,
' d* ]# d+ Q4 v' Q  L% tIAD,
0 W% ]- f$ Z  LIAD,O,
; d# Q6 X; Q' t& n, ^0 p& vIAE,VF4,C,RFA,OFA,* W2 f" D; u( n7 L
IAD,5 |+ P/ h1 g8 n- _' c3 ~
IAD,O,2 R1 j8 L# R( z6 y3 g
IAE,VF2,C,RFA,RAB,R41,OFA,
& x8 ?- ~% V; G1 E9 _* b/ l' vIAD,$ h* F9 Q: q9 Y, {) I; j
IAE,O,OAB,
" f7 Y& {; N7 i5 fIAD,
* s0 n) Z. [  |IAE,O,O41," N$ ~$ Y7 y8 Q- ^9 t/ N
IAD,
( v( }; N7 g8 U6 w, L6 K# S% i9 N' u" jIAE,O,VF2,C,RFA,RAB,R41,OFA,
/ q" l) g, u  Z! uIAD,
+ |& S- y  S4 ~1 s( ?4 W  gIAD,O,OAB,2 v& i9 {& p4 M+ Q% Q* I8 d# l
IAE,O,O41,
. c% Q+ T3 O+ b) ]: zIAD,
0 E  h; b2 z/ A5 ^IAD,O,4 v" _" X' i8 I+ D- O: o
IAE,VF2,C,RFA,RAB,R41,OFA,6 |' _2 m* P6 E/ V4 i! }7 f
IAD,
, Z& F) q% g, W+ \2 ?% I) SIAD,O,OAB,  x  b/ C; J6 w- D2 z! c( h" m
IAE,O,O41,1 I4 V! m6 \( e" Q- E; {5 d- m
IAD,0 R: f4 C1 P/ F" N2 }- [' Z! d
IAD,O,/ a9 C. J* D" R$ _0 x
IAE,8 o+ {* q* ]8 _- {
I90,VED,C,RFA,OFA,6 ]' t. V! A5 |- V
IAD,
! J9 T7 r$ e' U4 pIAD,O,6 |# n) M  ?' r  P! q2 }, C
IAE,V00,C,RFA,OFA,
' n& t1 u8 L7 m% DIAD,
4 f$ h7 z- _: Z$ MIAD,O,6 ^# ~' z: z3 f3 b6 ?: C# v
IAE,% `3 t- g* m" Y/ }0 Y
ID1,DDD,
$ }4 R: ]# B9 pID1,DDF,- J+ X( m1 m! v$ R
ID1,DDF,
* s. G! V  x% j' N$ r9 w( Be22,oFA,5 @+ y0 r" R: W# Z/ I' c! c
e83,
' [8 r% M5 e7 Y, c9 Ae83,
9 z# q  p- Z7 v' x7 s, c6 N) Fe83,
( [3 j; g' }# P* z! {1 pe83,
8 o% I! |: H+ ?e83,( g: f  P9 w' ]- \) |( H% f
e83,7 h0 V0 {2 d, F3 a
e83,
' I7 ^6 z! Y7 ~; P9 i2 f, ve83,8 O( J5 s4 t- K* T( B
e83,& W& ], Q( x, ]) o5 D
IAD,
/ E3 s' _. [; s1 B) E0 X9 aIA7,
5 b) t% N" T4 AIAE,O,* _3 R5 V) b4 k$ [# l' s
IA8,
/ {- ?% T; N7 dI60,D44,- K: N3 B5 w& D8 Z) w$ p
IAD,5 B  d; F" Q8 ?
IA7,3 T  s' u- r  b; {
IAE,O,+ a. A- K- @* {7 V
IA8,VFF,C,RFA,OFA,RAA,OAA,9 _, k& P9 P$ k6 V( n, ~- B, K: O3 i
IAD,O,K20,
% g' I: n& y6 J$ a3 KIA7,3 k& V: A6 Q# Y6 q
IAE,O,1 u' A( T0 x8 Y+ Q5 e0 a5 W
IA8,) O4 f: w& l4 v6 A8 j9 s
I60,D04,
& o8 }: x& L' `: q! |IAD,
3 o! T9 c. j: P/ |( zIA7,
! l. W* v& |0 hIAE,O,' G7 @! q8 J% e, I$ a
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
. R' n) w" p4 q8 c# ~3 j6 ?IAD,O,
0 P9 G" w8 `/ f" S+ R, Z3 |IA7,& L" z) W& b1 V# O9 |' {' X1 E
IAE,O,6 a' z" N4 v. }; @! q9 n: F
IA8,6 [7 X: R! i# c9 N: I
I60,D44,
( R. L: a+ P8 ~- nIAD,
2 J/ ?0 f: h! @. v) K& UIA7,, t" e6 P5 ^& ?' e3 D
IAE,O,
! v" u! n1 [+ m  e' XIA8,
8 ]# k) L+ A4 m4 |) ^ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,* T; P5 Q& v. S; Y9 y; d. R
IAE,O,% N& x3 }" q7 i
IA8,$ R- O# ?5 n; g1 o9 g/ X( S
IAD,4 [2 a& u" e" U9 j  u1 O/ a
IA7,+ X. }( L5 F2 I  o# d
IAE,O,
, n! |% ~# Z6 @  b% B* e7 h! {IA8,
( t: k3 M8 R( S% V8 m; n# eI60,D47,
" K9 R, b, T6 H& R. k6 yIAD,
$ u$ T! \# ~( |, kIA7,
' f' ^% m) D1 Y3 AIAE,O,: O1 `8 Y6 q! x
IA8,
( r/ w/ E& c& w$ t% g! xID4,VFF,5 ^5 b, i6 m8 T
e83,C,RFA,OFA,9 z) B- w4 \  a8 M
e83,O,RAA,R00,OAA,O,O00,
; s, `0 [6 h8 M& \ID4,VF2,O,C,RFA,R00,OFA,O,O00,8 Q+ P1 `+ X3 e9 L: _
ID4,VE8,O,C,RFA,OFA,& Z- g, N  o4 s
ID4,V00,O,C,RFA,OFA,
; t) S8 G  l, t# R# w; y* }ID4,VE6,O,C,RFA,OFA,& y! g& G, B/ a4 ?' T0 F
ID4,VE6,O,C,RFA,OFA,
4 _$ B/ T: F2 g; VID4,VE6,O,C,RFA,OFA,' o( J) C9 |% ?8 N+ W+ R
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
  Z+ [' t+ j/ A/ n7 D2 uID4,VE8,O,C,RFA,OFA,
( I- G- `$ j& |* ~9 W. JID4,V03,O,C,RFA,OFA,# u* F! d% R' a9 l+ `& s" I  k
ID4,VF3,O,C,RFA,OFA,
0 Q& t, y$ ]2 \& jID4,VC8,O,C,RFA,OFA,( t# T: i9 X8 Y' K% Q/ U+ C
ID4,VF3,O,C,RFA,OFA,
5 k5 q' D, e$ V, |9 L) h3 jID4,V64,O,C,RFA,OFA,
1 D$ {, k- ?- P4 Z4 nID4,VF3,O,C,RFA,OFA,8 \0 ?2 I: \4 z5 R# }1 r  t: R
ID4,V50,O,C,RFA,OFA,2 ?. {; G$ A$ S  w: T$ c
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
: A3 v; S+ M+ \& eID4,VF3,O,C,RFA,OFA,( _  \) G1 o- ]2 Y& Q0 `$ W
ID4,VC8,O,C,RFA,OFA,
% j# z* n; O* I0 e# r, yID4,VF3,O,C,RFA,OFA,
% [/ q$ M+ C+ g6 u1 z4 l8 BID4,VC8,O,C,RFA,OFA,
4 k5 j# E/ Y5 o5 J6 ?ID4,VF3,O,C,RFA,OFA,
4 o6 i/ l; z) H' Y2 t. a* gID4,V50,O,C,RFA,OFA,
2 u" y5 D3 |: M+ f0 Z2 c% qID4,VF2,O,C,RFA,R03,OFA,O,O03,
+ p5 j9 U& D0 s0 Y& [9 xID4,VF3,O,C,RFA,OFA,( s. o2 H! e3 u: S& ]. S+ G
ID4,V64,O,C,RFA,OFA,+ i8 P- A7 Q$ I1 t8 X6 D  F( B
ID4,VE8,O,C,RFA,OFA,. Q/ ]' ?. N2 ?
ID4,V03,O,C,RFA,OFA,  y  A* \9 C7 G6 G3 i
ID4,VF4,O,C,RFA,OFA,O,
* D: ~. h; f: l. ~e83,6 B/ \4 f+ i6 l' H1 t0 F# z
e83,
$ ~+ }; e" E% ]8 t' g* _e83,
6 \; H' u5 ?. p8 {, Ie83,# L& F5 ~  e7 T6 Q2 k# v0 B
e83,# `3 w; @: b5 j; W6 N( n% Z9 H
e83,9 s% e9 |3 e0 @
e83,
3 i! F6 I2 ~4 e( j; P# a8 M4 R1 Ge83,
% [0 f' {  m6 w2 Ee83,
( j! F8 F& c, z+ x" R5 qe83,00,C8,2E,
0 r" y2 O$ F' Be83,00,C8,2E,3 L8 x7 F% X# i! x
e83,00,C8,2E,
% M9 N! v8 C* u7 oe83,00,C8,2E,5 j$ @0 k6 B, L" N# K" Y  a" O. [: U# `
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,, u2 y+ Y  |- u/ t' d; g; k9 q
e83,
6 s: p  h: I8 b; T

% j: }& K8 ?: U( I
, w# q1 G2 T) F8 F& B( }[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

发表于 2009-6-12 22:21:11 | 显示全部楼层

感谢

谢谢您的答复, O/ e) G1 e& l, q6 g2 J
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
8 `% @  P0 z# _1 V9 l      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
& k! l8 U7 u7 M8 \1 Z# _  b# R      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
9 S1 R$ x3 f3 b: ~; K      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
  v6 P: J: J; PBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。' ?6 t9 }; {5 j! K+ \4 E
Device(EC0) {- }5 O7 }+ p7 B& {6 L0 k
Name(_HID, EISAID("PNP0C09"))& A* N# d6 i! a
......
3 q# d% l/ e! |4 @1 Y$ R) U% K. i$ _}
3 W) J9 [( O, |* d" V- p" X# NPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
3 ~5 J& F) S& r; D8 A就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
/ O( x, Q( H+ A* y1 O3 s2、   
. ]: n' v& J' R/ kName(_CRS,ResourceTemplate(){           
7 X% L# T) P$ Q3 p0 R        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x844 h) Q: n) ~6 r" D; D6 B: {8 M- z
            IO(Decode16, 0x66, 0x66, 0, 1)
' J( X! Q3 s+ e5 t        })0 N/ U/ j9 T& T
3、接着就是" R2 G& D# Q6 [. K" ?1 _5 C! O
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7- y6 v' g* I* P6 L, T
通过这个声明,OS知道EC和哪个GPE关联起来
% T+ B) n+ O/ F/ R& U+ _- ?而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
. W1 Z* C8 d3 O" A# f6 T! @! {: C. B  \# MEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。/ g: N3 w' o& A/ M+ u
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
6 g/ @, ^$ m8 i/ H% d* a2 D3、OK,看看linux是如何处理SCI中断的3 u" l$ l, m% s. V
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute" [6 ?5 t3 u$ e0 C) S7 ]; W
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)2 A( w' W$ K8 U/ |/ S4 B/ `1 H
4、EC接到0x84查询命令之后,就把Q事件号传给OS6 m, g1 L& p7 {2 W# Z. y! V
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

发表于 2009-6-13 10:49:19 | 显示全部楼层
高手还是很多啊!感谢您的回答!
1 }4 p# X+ x9 I3 D    主要是我们现在很难看到BIOS的代码,其实代码我到时有就是没有看AMI代码的环境!您写的这些代码应该是BIOS代码吧!是不是可以这么理解,BIOS会提交一个ACPI的表给OS。这个表有我们EC的设备号和通过什么端口进行通信对不对,还有就是如何区分那个SCI是我们EC发的,这一切的动作完全由BIOS设置并给OS。是不是可以这么理解请指教
回复

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分* p7 p% r" v& G& }5 i
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
( O; [8 F$ p3 w* P! |1 T有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
2 p' p' L9 h+ Z/ |$ U( Jqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm& d: g3 l7 E. H9 N$ s
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。  [7 w. Y$ a. c" {
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

发表于 2009-7-3 16:07:30 | 显示全部楼层

分析的很好

分析的很透彻,学习了
回复

使用道具 举报

发表于 2010-4-7 10:31:29 | 显示全部楼层
好文章,收益不少,peter
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-4-19 22:01 , Processed in 0.079211 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表