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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
# t8 q. |+ k. ^8 x% z( a看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
9 v( B* V5 M5 M( x4 }# W今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
; J, ^: w/ R1 s- Y" {我们在操作系统下用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的命令2 Q% H* x( V% L+ k. b: J
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check# y, J( ^. X  T) L
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析' G5 G+ }9 d' x; @: m" B) L
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。2 P5 d7 a5 P5 W7 V+ _+ W4 x

' E, \8 _# G+ `* f7 C8 M8 JVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,7 D7 u) k' u9 d* I$ h* Y7 F& N
e83," P  i( z, R% `8 E) K- v) \
IFE,
, @; w+ i2 i6 N/ E' e2 d5 V( Ue23,oFA,8 W- D% R# C8 p: m: m/ D
ID1,DDF,LPC RST* a! r" p1 T0 Y, _* Y3 T1 Z4 e/ `
Swrong LPC RST
8 a. h& b  x7 P) i9 W$ `6 i7 a/ h5 SLPC_Reset_Flag=64
( W4 Z, \' n: W; k+ F' ^  V

2 G" [) M! |2 t  ^- B& f3 WID1,DDF," V7 o- I5 ?, M' H
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,. q6 O* T0 f& V8 z- e
ID1,DDF,
, a+ u' y6 i( O* gI90,VED,C,RFA,OFA,V01,C,RFA,5 ?" C  ]2 u) K0 o- W
ID1,DDF,O,OFA,O,5 h8 o- Q9 D/ s' l
e2A,>IDLE$ T6 f) M6 F, B& Q& T. y
oFA,<$ @, C+ n6 X; C. \4 i( B; [6 L
e00,
- ?4 x4 ?, _; O7 Q6 ^1 iIAA,O55,O,
3 ?; I! w2 B% {3 L) T' }IAD,$ g; \& k7 T6 H. y( |) e
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,8 K3 l/ t% B% L
I60,O,D65,! Z6 w, t  C" Q/ ?5 C
I60,D6D,VF5,C,RFA,OFA,K20,
3 h) u" ^% I% W% sIAD,
. H& d1 s4 V7 ?6 NIAE,O,VF5,C,RFA,OFA,K20,4 d$ r4 q' l9 ?4 M' e% U( F2 z9 C" ?
IAD,
2 L- s. V+ F5 _9 z) w. H  ZIAE,O,4 e4 L; H' L7 Z- t5 G
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,0 Z# t4 o: W" J. f. w
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
( z. x0 V! x6 O' K% yIAE,O,- y) H2 k& t$ d$ ?. H( ]; R" q! f
e91,d2F,d00,
  _# h$ O9 t( t: u! ~e10,d83,d2F,P3_K#
/ x+ W+ s' U6 O7 hP3_K#
) ~8 f* j4 S! b6 O* W% C5 S( w
8 P6 ?6 @7 p$ E0 j0 _/ ?
e23,oFA,  ^) o# `5 d8 i0 L; `  m$ T0 i2 n
I90,VED,C,RFA,OFA,; ?1 G3 L6 b7 }  f! Q
IAD,; B# p" E7 Q2 n  j4 _, I
IAD,O,+ L# N4 e; {6 }0 e
IAE,V03,C,RFA,OFA,
* ?. d8 p% K5 O9 H1 LIAD,
+ `" E- S4 z0 H3 ~& I" w" p8 V6 N3 \IAD,O,  K, h& y+ h8 h
IAE,1 l% T+ f" a0 ~6 I9 L
I90,VED,C,RFA,OFA,5 _$ w0 ?% z, }. C3 r- l
IAD,7 h; l4 U! A1 U6 q8 p
IAD,O," y# v. N1 U7 R+ j
IAE,V05,C,RFA,OFA,4 Y0 O- D. V( V3 {
IAD,
  z9 k8 u( V% `4 O1 h: g4 ~) G. Y/ dIAD,O,
$ b& k7 W' `  v5 n3 NIAE,O,
3 u, q7 S8 e' |* t# ^; ge90,d2E,o00,  _% Q, \0 y. y
e91,d2F,d00,P3_K#+ T5 d6 T, H  Q* j. C8 U9 i+ O4 m7 Y
P3_K#
+ C$ y  E- B+ m& M

- h# Q$ x2 p( z9 TIAD,VF3,C,RFA,OFA,
3 D' ]) A  o, m7 z% P2 X+ Y2 J0 n4 tIAD,
9 Y2 M1 {$ L/ C8 t2 ~1 RIAD,O,; c" q# h7 `* a( L1 E
IAE,VF3,C,RFA,OFA,3 y" _2 z7 D/ I: s( }4 X/ R. |" w
IAD,
. _: c# D& N: {. j' e9 WIAD,O,
, j  N0 x+ u% ?  DIAE,V20,C,K10,RFE,OFE,K08,8 I# S4 K4 ^5 E5 ?' d. V% ~
IAD,# b: N& a0 S" k5 T+ R, a
IAD,O,
7 h9 ]1 a6 h; L* D8 c9 T) xIAE,V20,C,K10,RFE,OFE,K08,
: X7 \+ x' ]5 |6 XIAD,
) D8 j6 h8 q) g. j3 Z% L  }( rIAD,O,
7 Q6 f+ E) h& T7 \) e8 n0 XIAE,V20,C,K10,RFE,OFE,K08,
7 N& Y* |* @' F% |$ ~+ H6 p7 vIAD,, [* N* h) R1 a- L( i& v4 ?
IAD,O,
1 @. a0 g9 \- P/ nIAE,
" K: Y$ K. T) W. v/ }  M; ^IAE,VF4,C,RFA,OFA,2 }* U/ D$ x: g% |
IAD,. u: D& y% J3 B/ D1 \
IAD,O,
- k; n1 D/ r8 d+ w: z& PIAE,VF4,C,RFA,OFA,
: }( g7 R4 ]- R) r; b# h% h% O) iIAD,3 |8 C) _4 E, v& e4 G" ^% p
IAD,O,; @$ _( q  B+ c8 J
IAE,VF2,C,RFA,RAB,R41,OFA,6 w8 L- H9 g4 J$ s- r7 b
IAD,
; A; D# L  Q" cIAE,O,OAB,1 o2 t, A6 j7 y. T
IAD,' T6 s0 b8 E8 A3 s& Q: j
IAE,O,O41,
& ]6 e; w% Z% D5 V0 vIAD,, V* k& Y4 g+ [
IAE,O,VF2,C,RFA,RAB,R41,OFA,7 }2 ]  D8 D/ u. V- r0 t0 v9 N
IAD,5 W( n# e- W( U* p. k* j
IAD,O,OAB," p/ V7 i/ M7 L9 @
IAE,O,O41,2 e) y" G0 V# n
IAD,  J. u: ?5 h  T, k$ R
IAD,O,
8 m& f5 A% u# Z" H5 Y; d+ {IAE,VF2,C,RFA,RAB,R41,OFA,1 H! C* v3 g( Z4 `2 v! l. M9 y
IAD,+ i0 k! V" S, j" j8 F+ R: v6 [
IAD,O,OAB,& W1 X/ O1 u& M8 M* k
IAE,O,O41,
+ n& u8 d& c3 v' jIAD,
& A- |% y( g& @& K" S& GIAD,O,
& E; q9 T% r4 e/ t6 y4 j+ K$ n4 l! YIAE,
3 ~! t! c8 o0 ?I90,VED,C,RFA,OFA,0 l9 |$ h$ w% i* ~" k4 F: ]
IAD,
- Q" N# L1 `* p7 |" m% B, jIAD,O,
, X( U4 V6 V) Y- [  LIAE,V00,C,RFA,OFA,
' K  ?9 Y8 j4 J3 f# ]- C8 Z, gIAD,4 D  O5 A5 }( b$ u/ N
IAD,O,
$ `) A+ T; U) ?, u& jIAE,
7 y! E$ \# R+ w$ f$ _/ Q3 n+ yID1,DDD,
9 @0 t2 q* z) h/ R* |5 g0 SID1,DDF,; V% i2 ^4 \  R1 q" k, l  J$ P8 E! y
ID1,DDF,
9 h2 y  z  r6 U4 Z$ j" Ze22,oFA,3 V* s. G' i) P( p8 T
e83,
( \/ e/ A: q2 M: me83,$ b$ s2 ^: A( A; j% f
e83,6 E4 m  X' z0 U  x5 g+ q
e83,
1 b  [$ c4 ^$ _7 Ye83,
5 v% B9 K# p2 ]4 [* `/ ?% oe83,, b" }' a6 Q- [8 y8 Z5 C
e83,
& h/ _  r: I5 {' we83,
  ?" u9 N, [1 {: v9 w2 E8 r0 Ye83,
% U4 n  G5 X% x$ W+ T' [IAD,
8 X0 A. Z$ s' r- g0 F- YIA7,! F0 [- [6 o  B4 ?
IAE,O,0 A1 E. L" H9 ~$ g1 V+ x
IA8,
6 ]; o* m7 n1 N) ?8 }5 G$ XI60,D44,+ E! h9 o& N. E
IAD,
8 ^4 m9 W* u6 a/ kIA7,
6 Z2 u/ q+ c- G  O9 {# gIAE,O,
/ k1 R+ n" q- T- {IA8,VFF,C,RFA,OFA,RAA,OAA,$ ?+ h* N% w+ J) w+ @. @' b
IAD,O,K20,& L7 F  Z; C: U
IA7," ]) X6 G; X) Q5 I$ M7 B( Y( Y& u& x) ]
IAE,O,/ h% Z% w( H; ~: E3 K7 k2 l) q: S, a9 J
IA8,
3 K7 N. |1 q( ~) t7 FI60,D04,
2 S' t& u4 S- \* b/ nIAD,2 l8 N# r" s2 p
IA7,4 H' c; p$ {+ N* U% Z4 v
IAE,O,/ l7 C2 Y3 z+ {$ w1 H, T' q
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
; m( q: f/ t( oIAD,O,, g8 ~# V$ o. P: E$ N% L) i
IA7,
" C9 i* v5 C3 g& M/ i$ V+ pIAE,O,% r% V  g# L2 R# F. W/ l
IA8,
% c& v$ b5 ^; o2 C) |9 S# MI60,D44,
' U6 ~0 R' K( j# WIAD,
$ c; d+ c" ^( e' LIA7,( n( A" T1 _5 A$ z- Y3 n: A
IAE,O,
) s0 E6 I: \. R4 Z# V6 T  BIA8,
. P3 Z$ \* x  l3 M9 PID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
9 Z9 n) o1 l$ x4 A. k% I9 FIAE,O,* `$ x( K+ Y- a% D. r
IA8,+ H! P( O3 U0 s( g; R/ _& N
IAD,
2 b. T" @/ a: F0 K8 XIA7,
! W: b4 ]5 [# n6 y- b9 o" k0 fIAE,O,
0 O0 C0 F  D, ~+ l7 G4 A8 kIA8,
5 ^! R9 S/ b8 j0 m" }! ~3 JI60,D47,
' G( |, @! r% U8 }" b! J0 q# _2 HIAD,( m% I+ w1 L0 ~) n0 K! D) z
IA7,
" b- p+ m5 X+ g0 @# tIAE,O,
* i) f1 C8 o4 P' ~, X  iIA8,+ {7 M" x! ^  f9 L/ _" P
ID4,VFF,8 W0 U9 f; f  Q9 v( ]* L1 N/ g
e83,C,RFA,OFA,
1 D' D; b( P/ Y: re83,O,RAA,R00,OAA,O,O00,
; {5 x- _4 r4 m+ O6 C) LID4,VF2,O,C,RFA,R00,OFA,O,O00,
7 D& I0 i. |& E: {. j  FID4,VE8,O,C,RFA,OFA,
" ~, X* ]0 s, ?( ^ID4,V00,O,C,RFA,OFA,& k0 Q: e7 F7 t4 j# `# _9 m
ID4,VE6,O,C,RFA,OFA,
8 }* `0 s9 ]3 B; ^" E! d( zID4,VE6,O,C,RFA,OFA,
4 O% ^% S" A' A7 _8 w- IID4,VE6,O,C,RFA,OFA,. O6 Y2 L( H% {/ l7 F
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64," Q4 H5 y% c9 S
ID4,VE8,O,C,RFA,OFA,. a6 V. ]* g0 g1 V6 ~/ c; h
ID4,V03,O,C,RFA,OFA,
' u3 I$ r+ ?) W: K- d6 MID4,VF3,O,C,RFA,OFA,6 u, f5 q4 X9 N$ g; F! G, M2 x
ID4,VC8,O,C,RFA,OFA,( d" ?$ T% r! v2 d  N
ID4,VF3,O,C,RFA,OFA,
& E8 R3 H( h  b( ^6 XID4,V64,O,C,RFA,OFA,9 [% r) D( v; H2 q' |/ L
ID4,VF3,O,C,RFA,OFA,
+ g) S! a6 V8 K5 F+ _9 j0 K7 D& EID4,V50,O,C,RFA,OFA,' _+ i+ L( k/ W$ J
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
/ @9 k" J) v. \# yID4,VF3,O,C,RFA,OFA,
$ T0 v2 K& d2 [5 g1 MID4,VC8,O,C,RFA,OFA,
, M+ P* t" ?- r1 ~. ^: p- UID4,VF3,O,C,RFA,OFA,& e  P  s# Z3 ]# v" Z
ID4,VC8,O,C,RFA,OFA,
2 g, @* V" g9 \3 KID4,VF3,O,C,RFA,OFA,! F0 h4 l" M7 D0 p1 I* K0 T( Z
ID4,V50,O,C,RFA,OFA,* c7 Q  d' n+ B/ i, n& d7 \
ID4,VF2,O,C,RFA,R03,OFA,O,O03,% N) X8 G5 a7 Q% w* k6 y' w
ID4,VF3,O,C,RFA,OFA,
+ F# p9 R6 t; r3 v: GID4,V64,O,C,RFA,OFA,
- M! F( |, M% g7 @+ WID4,VE8,O,C,RFA,OFA,
' z' O, @; s+ L2 J4 N8 KID4,V03,O,C,RFA,OFA,
( Y' S$ b3 A' O7 d( v" J9 {ID4,VF4,O,C,RFA,OFA,O,
: v1 r+ S  G( F4 a* Me83,2 T5 T5 M1 b* B  V/ Y
e83,
$ H4 y6 o, c" D- l) v0 s  f/ }1 ve83,
; Y# x7 D& ?1 h' c+ Z* ^# z( Ke83,4 Z: k7 p: c4 ^! ~$ p3 k
e83,6 Y  i2 u' {2 r( N9 X# R
e83,
5 ], o! F/ ^5 D# {5 J7 V8 A3 Ne83,; P: |. B9 D7 h* i
e83,! T: l% l4 @3 l
e83,: i5 n' @2 Z0 y1 R0 v
e83,00,C8,2E,
" S* p0 ~/ L5 }" H1 X  ae83,00,C8,2E,$ L* F3 ?8 p* z2 j5 v
e83,00,C8,2E,0 X& a4 `; D/ p$ X; p! u
e83,00,C8,2E,  P9 T2 a: K+ P0 i$ ]7 L/ P: q
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
1 s' e5 g8 C" v* Se83,! b9 h1 D* A' t% R
5 {, \( e; u3 F" X1 R0 z

6 I3 y5 n7 e  D! ][ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
1 A+ [5 c+ c8 P* P) _     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
/ T3 h' q: T+ U2 X6 A3 v% C+ o) K      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!) w& c  M) I9 z) z+ ~. C( _4 ?
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。$ M9 G: V6 }6 I% Q& T
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!* w: x5 ^6 a4 o+ |- ~, W9 j0 ]
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。: D; X. d, S% I( C+ A! N( Q
Device(EC0) {
" c$ l2 {; y( f( z* y- t  q7 i; B: `! R# NName(_HID, EISAID("PNP0C09"))
5 Z8 r. b9 B( D) ?4 ^% d......
4 ]0 U9 N2 H& Q% F1 G}7 n3 W+ Z# q" H0 s: ]2 Q7 V
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
, M5 j( s( ~% P8 H7 ?就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)- t* ?; g2 l6 v1 V2 C( n
2、   
/ C$ P; Q- R' \7 ?% DName(_CRS,ResourceTemplate(){           
  U0 a. z" w4 d5 \* k3 H5 }        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84( f" U; w  L. K. h% [
            IO(Decode16, 0x66, 0x66, 0, 1)" M  r4 @" ?/ R2 n# Q0 r+ A5 G
        })
: a9 a1 ]) A2 Z  g: k, {0 z3、接着就是
7 S3 Z" [* p/ V% U# c, |  a0 [% f. DName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
, K3 t8 U' g) w: N& E5 C通过这个声明,OS知道EC和哪个GPE关联起来
7 o/ v- A+ l8 V% k; w" \- s而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
) G: L5 U3 }. A6 s+ c. J9 }2 FEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
" D5 v* R+ U3 E而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。+ x3 k4 t( _/ i3 I
3、OK,看看linux是如何处理SCI中断的
7 A2 W: q# @+ t% X$ ~acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
3 q) y7 Z" H, l& K6 U* _3 cacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
' @0 Y3 x7 b# W0 i4、EC接到0x84查询命令之后,就把Q事件号传给OS
0 `5 i& Z+ F, B+ fOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分7 ^4 m0 ]- N& S9 w( Z8 H
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了3 P: _1 E& d: `& h# Q5 X
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
/ r' n" e! r: j. mqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm1 a5 r" k4 k7 ]2 J
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
2 ~- e& i  y( A, @$ L版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 15:05 , Processed in 0.171313 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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