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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?& w; Z$ Q1 u1 U  r6 k; |: u
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,3 _' V$ q0 a  X+ w8 `4 y: |9 `
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
% k+ V, t  W; [- Z  w7 @我们在操作系统下用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的命令
4 S8 Q: U$ v- _' t6 n1 T0 gD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
8 z8 R% U& r5 G# P这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
, `9 d' ], C4 L9 _) V其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。* \/ d6 m6 F# z+ H) V$ C5 K0 U! M# ~

# \2 A3 u6 D3 @; ^VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
6 ]" E$ H/ U$ m  T1 qe83,
$ j+ S/ v6 V% A) `2 E/ P5 JIFE,# o8 T# q( C4 o+ a' V. o6 v$ b& |3 E
e23,oFA,/ s  s, \/ K. V# _6 n* G( P
ID1,DDF,LPC RST
( X2 k9 Y. i8 F! F' W2 s7 GSwrong LPC RST
  [, W: }% ^0 B5 h3 oLPC_Reset_Flag=64

/ U: s; B$ E+ Q7 \& s% o0 p3 t( T. R$ l& v7 t% A
ID1,DDF,
7 A/ i; W4 T" s  aIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,, Z0 V' y; b8 m5 R
ID1,DDF,
$ H; J& U( {" A" @' J, ~I90,VED,C,RFA,OFA,V01,C,RFA,
- W6 i& E2 J9 x; a/ z# S2 PID1,DDF,O,OFA,O,
. h2 u) j$ z& L5 ]e2A,>IDLE
2 Q0 x: z+ ~9 Q7 x; q4 V# ZoFA,<
" H7 f. C5 J/ J6 H  ke00,
3 P1 J/ e+ C& D  v1 s/ [5 sIAA,O55,O,1 z; p" f2 `# A7 L% A
IAD,
/ g/ ?6 @; r& J" _- `1 zID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,7 U4 j' k6 O9 t8 B3 `" G
I60,O,D65,
2 G4 {" B; D1 C7 Q6 @8 G* S5 F1 gI60,D6D,VF5,C,RFA,OFA,K20,
3 O! m+ `6 p, C) P7 jIAD,1 K8 Y2 z* _* F0 E  b( P
IAE,O,VF5,C,RFA,OFA,K20,% X+ n. z( g+ e
IAD,
& i* i4 c. t; G# u5 q' OIAE,O,
& L0 ~; j9 {' E- G/ H- uIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
9 g& V3 e7 w) D6 a; ^! \I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
" b" @/ W. B7 i( W+ Z4 M; cIAE,O,  I  e% F: t5 _! I
e91,d2F,d00,
0 _. |& k6 p( a* P2 y+ }( Ze10,d83,d2F,P3_K#
4 @+ x4 Q: ^) [5 YP3_K#

# R: n. o; R  \% ?1 X) k* U; `: u0 v6 E0 g0 v0 X* Z) b
e23,oFA,
" H/ ?. F* y: s6 `I90,VED,C,RFA,OFA,; M7 }# e! S+ F( Y9 n
IAD,8 e: y6 b. |) j7 m
IAD,O,
$ ~3 t& \, |1 m! L; Q+ BIAE,V03,C,RFA,OFA,. R8 O0 T8 Z/ H  \
IAD,! a4 C! d) X& s' p
IAD,O,/ ?3 J( L  M3 h4 ~! w2 V
IAE,
3 R, v! x6 S$ Y5 h5 A. AI90,VED,C,RFA,OFA,
3 o( A: c" X( p. uIAD,
7 }$ }  J) c9 pIAD,O,0 b6 F5 \3 A6 f- w
IAE,V05,C,RFA,OFA,
5 w' A9 r, m/ k" n; }' H" JIAD,0 Y* k; q# f8 D' n3 f" \. Y
IAD,O,
/ B3 T4 A" |! @# d; cIAE,O,
- a6 {. g& K0 j3 l( qe90,d2E,o00,. a0 F. N( E$ U' O6 ?2 y
e91,d2F,d00,P3_K#
7 N6 d3 ]9 b* e: MP3_K#
5 s! B/ a% ?$ _5 ?1 U

6 a. c0 N3 }# _1 p8 ^; D/ [IAD,VF3,C,RFA,OFA,: b% Y2 _. I! P
IAD,, Z* R8 y& R2 K: D5 V* }- o& F. H
IAD,O,
- b; O3 g; @2 t% U3 LIAE,VF3,C,RFA,OFA,
% t% s" }4 S3 h5 D/ r* tIAD,
9 c# G. F1 S* hIAD,O,
0 V$ Z' c  ?" }- ?. R, aIAE,V20,C,K10,RFE,OFE,K08,) N" Y# E4 p+ l5 s- J0 r: X
IAD,9 ]4 w3 m2 t+ G$ g* r! u0 l5 ^" j
IAD,O,' Q, L7 {: Z1 V
IAE,V20,C,K10,RFE,OFE,K08,! C: F5 _* ]* G0 O
IAD,
. \* w3 X9 _* {# k+ J1 F( ~4 o9 s) wIAD,O,9 s$ M3 `' Y3 U, F
IAE,V20,C,K10,RFE,OFE,K08,
. a! Q2 V1 H8 p( d$ n; l2 @& x. ~9 HIAD,/ G3 G( ~3 B4 x9 d
IAD,O," u& ~7 @3 R) D9 N/ v0 V
IAE,
, b# e; x6 m# w. E; T& Z/ [IAE,VF4,C,RFA,OFA,
; [' l3 \' X9 Z  Q  z2 vIAD,
! G  p9 g4 T/ r) b2 C  z3 IIAD,O,- ?, |" C. L4 O$ j$ b, _; h
IAE,VF4,C,RFA,OFA,1 N  W7 d7 f; v+ u
IAD,) _; t& I) Q5 b1 H7 W
IAD,O,6 _, {/ G+ U0 P1 @$ }$ C" m
IAE,VF2,C,RFA,RAB,R41,OFA,
7 }2 D! b% F9 C' j: \IAD,
1 Y7 _, _! h$ m  N' j' E& l, `IAE,O,OAB,
2 l' X6 ^/ |0 v4 f0 lIAD,
6 C& G$ R. t0 CIAE,O,O41,
* p6 e4 z) G8 P) M+ CIAD,
, ]3 f) F* s, ^" {' ^IAE,O,VF2,C,RFA,RAB,R41,OFA,
# ^" L$ F5 b- vIAD,4 ^/ h+ J4 G8 a' t& F/ |4 E
IAD,O,OAB,
+ j4 L2 i% F, nIAE,O,O41,
0 Y$ k2 _1 M0 f2 u8 U' c- mIAD,9 u) M7 U2 Q- n) F
IAD,O,
3 o; k3 ?6 n9 r; |6 c0 K& cIAE,VF2,C,RFA,RAB,R41,OFA,
5 j1 H. W+ ]) GIAD,
% c! }: w6 S' }. q- GIAD,O,OAB,
& b! h% ^! w! PIAE,O,O41,) e) v6 F$ z6 h' n$ w! p4 S4 r6 y
IAD,
' C* M! u/ d- C" {- mIAD,O,1 K$ ^2 }9 P+ J9 D
IAE,# [' a7 J% m4 V2 c  c0 z: c, U' H
I90,VED,C,RFA,OFA,
6 p/ p# l1 S, l9 C  SIAD,$ V7 a2 i; X& i/ f, N8 [; w
IAD,O,, `4 c7 f9 A" i3 d2 P( `
IAE,V00,C,RFA,OFA,- G5 S! D  Z. e& d9 l% C$ ~
IAD,
- y2 I0 k% G; ?IAD,O,
5 ~' ?6 j9 \* ~9 qIAE,3 v2 a! a( F3 W& E" O
ID1,DDD,; I/ Q6 E4 O, Q# ~  X
ID1,DDF,
4 S; @7 K8 @, a, Q7 J. C6 ZID1,DDF,! y- Q( P5 R; p" K
e22,oFA,/ v' a, v) W1 |$ r
e83,
1 M' m0 F/ b, r# m% Be83,
# u' \- Z7 q4 p1 F9 ], h& ~) Se83,# {% b2 w2 z5 ?" Q9 N
e83,
1 K4 k; c- x! }7 z7 Q; f9 o+ O! Qe83,
) _" \2 t. P6 ie83,
8 T) L2 D( o, R5 q* Z- D7 _& ne83,
1 v0 P0 u5 a) ^/ w  Z0 |e83,$ U3 f" d# g" B3 I6 }
e83,
4 K* W' k! e0 tIAD,% ?1 ?) M: Q5 D* i5 E% I2 _5 i
IA7,5 ?: z" }8 M! m/ f' y9 C
IAE,O,4 x, k" ^% ]2 ?, L( G7 r2 n
IA8,
9 ]0 @7 m  W9 `  x9 u) U) E' T9 |I60,D44,
+ D: `, B1 w  @( Y' h: T6 n: qIAD,# Q/ Y4 a: ^& U  x
IA7,
+ G2 A9 T& }" I6 o, T6 E. s3 mIAE,O,4 C3 Z1 G. g$ }) Y$ j
IA8,VFF,C,RFA,OFA,RAA,OAA,
( w  `+ W+ |. T. d% X: l4 uIAD,O,K20,
2 i3 Q" O: w5 S% N# j& lIA7,8 H7 v% p( }1 V- W( b! p4 B7 Y8 N
IAE,O,
, [( K$ V0 e0 L5 u" d) O0 qIA8,
- K8 D" C- @3 \5 U7 @0 DI60,D04,
9 S  q( T9 U/ A- q; ?! fIAD,
" N5 F2 f+ U& L& [IA7,; W$ S4 E) E% _; H; S4 i
IAE,O,
9 L# [- Z6 A1 f% AIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
- c0 F7 o- k- Y- J1 cIAD,O,, P- u, U# q: F" ?2 |
IA7," i9 K1 t: m5 t5 w7 D1 A
IAE,O," T4 |2 U& T9 j- h. {5 A
IA8,. r9 O+ i9 V' F* _) p+ o$ k/ @- {
I60,D44,
- K' o% C/ d8 x* S8 W. I8 B; C* X" ?IAD,! t( B8 G! o% E" Q* ?3 l# _5 w
IA7,
6 [* I7 W9 ^( p1 |0 HIAE,O,4 h; I% k4 g! _* l4 Z6 w2 x
IA8,, c! j7 B6 t# V! C  E; r& q
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
# Z: k1 C2 d# l! GIAE,O,
* p4 D% B2 p& V" n* k. ?IA8,
+ N1 Q) `' _3 S+ H3 m/ D$ [IAD,+ {  d2 c2 j# [- P  r* i
IA7,4 y3 R# k$ A# Z
IAE,O,
3 B1 \  E" \4 jIA8,
  j2 x9 {  y& R) q4 n, t( vI60,D47,% D' w" {* l3 A5 C5 {- ]' ^6 K& u  V
IAD,- H% {" }: x& D7 w- L7 ~
IA7,5 ?( O2 F( B4 n$ h9 A  x
IAE,O,( H8 ^; K" t& }/ H
IA8,
" i  r5 i0 G2 }2 A% vID4,VFF,+ n" h( k: w+ `* Z; ]8 p/ i
e83,C,RFA,OFA,
" e2 q# [+ s: ~4 X) I% C$ v/ Oe83,O,RAA,R00,OAA,O,O00,
: H" p' K; m: n( FID4,VF2,O,C,RFA,R00,OFA,O,O00,5 E  ~& o5 H; ~) A# ~
ID4,VE8,O,C,RFA,OFA,% d; K) M- Y& v/ Z' H% X
ID4,V00,O,C,RFA,OFA,
* q3 K& P" c1 V& LID4,VE6,O,C,RFA,OFA,! e0 s- u; r: Q0 Q& V. C
ID4,VE6,O,C,RFA,OFA,
) Q: t; J  _: L4 E3 Y  l/ GID4,VE6,O,C,RFA,OFA,- G/ @7 L* f# l5 x" `
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,+ Q0 I' X6 s! N
ID4,VE8,O,C,RFA,OFA,. u" `! o, V/ C% x2 [) X  N
ID4,V03,O,C,RFA,OFA,
) _2 v* j0 @' y2 {9 YID4,VF3,O,C,RFA,OFA,
5 C. O2 n4 K4 HID4,VC8,O,C,RFA,OFA,
# d' I: q' C- U0 {  p5 ~" @8 X: H9 BID4,VF3,O,C,RFA,OFA,+ e9 X% e# t& g# [% l
ID4,V64,O,C,RFA,OFA,
, [( x; F+ T8 e( s* k1 l5 tID4,VF3,O,C,RFA,OFA,3 a* b" T6 m% W/ @& X1 u
ID4,V50,O,C,RFA,OFA,
/ N5 q: R9 v% z# e# }ID4,VF2,O,C,RFA,R03,OFA,O,O03,5 c: |6 \8 p- w2 f6 R/ N, f
ID4,VF3,O,C,RFA,OFA,
* C2 s* {8 H; i9 `- k5 L8 J- _: |" G, AID4,VC8,O,C,RFA,OFA,6 r4 u2 [' h  m# ^. J5 [
ID4,VF3,O,C,RFA,OFA,7 o, X4 x# E- R  c) v& U  Y
ID4,VC8,O,C,RFA,OFA," ~& p& A: V6 Q8 f7 X* x  {2 r+ K
ID4,VF3,O,C,RFA,OFA,
: d: i  U5 Y: z% S) OID4,V50,O,C,RFA,OFA,
4 I& `8 C2 @( {. e3 G! G% w9 uID4,VF2,O,C,RFA,R03,OFA,O,O03,* g, L  t6 C9 ]' U/ E# L: [
ID4,VF3,O,C,RFA,OFA,. D. |# v$ B7 d2 s) j
ID4,V64,O,C,RFA,OFA,2 |. ~3 B+ m! Z8 O; l
ID4,VE8,O,C,RFA,OFA,
) i$ B+ a+ {% f' t! |4 Z. f9 Z& yID4,V03,O,C,RFA,OFA,7 u4 ^( X* f% @8 D
ID4,VF4,O,C,RFA,OFA,O,
4 F2 P3 Y% K3 S; ?4 ce83,. R0 L% _) ~7 q0 r; U6 a! ^, P* ^
e83,6 v2 w/ C- Z$ ^5 q3 z2 q
e83,! q* Y9 [' v5 T. f/ d1 Y
e83,6 E4 Z6 n+ u+ _+ T4 b9 U) j
e83,3 {. {' P6 k9 T6 r4 I3 l
e83,3 H! b0 g" ~7 f) h7 m( l1 f
e83,4 _1 `2 u+ |. U
e83,
9 d$ ^% u& }1 Ze83,
+ F, i( _/ e. F! {0 b7 ~3 ]" Qe83,00,C8,2E,/ H* w; k0 S; X5 c8 B. p0 B
e83,00,C8,2E,: B' H, ]6 a* E% x
e83,00,C8,2E,
( d9 S& @& c! q9 O! J0 \e83,00,C8,2E,
5 p. {0 G: {, n  T' Ue83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
& j' i3 Y. W  J& x7 S' [8 }6 ee83,1 S! h& h; @8 C- f  N" V- q2 I9 S6 Y

9 `3 Q' Z/ |5 L$ t5 |. `- ]1 |/ k# p5 f  g0 V1 u% M
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复# y9 u3 p/ {" C" ?0 x. J# U
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。" K8 s7 h# f# e- R) _
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
! }5 V% S- @; V# W$ @) m8 g' M      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。5 M) A, y/ Q! a2 r2 x
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
  l, I: o$ ~$ I8 Q. tBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。; d+ h& k5 A1 l( h
Device(EC0) {
( N! ]3 ~+ ]7 w  \: ]- pName(_HID, EISAID("PNP0C09"))4 N. J# e4 T5 [/ y; \' D
......
; r( @- Y* C. n- [/ d& z6 U; p7 J}
8 R. _/ o. C/ ]4 j% T$ kPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
: \3 o# \! o0 B- B7 z( G就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)% s' O' q0 v( }6 u  w
2、   
$ g( U& L/ E' iName(_CRS,ResourceTemplate(){           
1 M/ v  s% @" A1 d* K        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
) y  F0 B  t6 a3 A            IO(Decode16, 0x66, 0x66, 0, 1)3 S5 _; k4 U" R0 m
        })
3 h/ o. X2 h  u3、接着就是% X* F# }( j, m3 E; }5 H! t+ v
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
' z% D7 U. u7 a6 g5 _( I" X通过这个声明,OS知道EC和哪个GPE关联起来5 D$ Y& ~1 F6 q, ~
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
3 [2 H% S" f- h9 B0 GEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
! @: q/ x6 Z/ }3 K: _/ g而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。4 i6 l! D* P9 N4 Y: N) D6 l8 B
3、OK,看看linux是如何处理SCI中断的2 M( v( T7 R+ t; |
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute  O" o- o7 t/ E
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
# ?! A! D0 I: X6 ~* {; `. c5 p0 R4、EC接到0x84查询命令之后,就把Q事件号传给OS
, \( O* V" W* l7 P& bOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分) \. p! O: V) M3 J7 K- d/ f1 F9 f) I
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了1 W$ r% C7 V) K
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
& Z8 K( r( D1 C$ I8 h! xqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
( ]9 m6 y2 r0 T1 qbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。; j5 C- D. y/ w
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 14:04 , Processed in 0.074827 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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