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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
9 T2 z9 N" F1 F% m/ N' C! |- v, `, M看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,/ c1 N. L" o2 U5 S. V
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。' G$ E; |$ H- X/ L- ?; c0 a
我们在操作系统下用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的命令0 a6 N7 o) T7 q4 b; |- k+ }( ]
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check4 }6 l( {. c  j2 Y4 ~* u9 f
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析& N' n( U* \, j  P" o
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
# C/ F7 Q& I8 A7 S4 Y0 K' s: l
0 z1 m2 l/ {6 A% w7 t% [: R- `! l9 rVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,2 v3 k7 J, d5 ?/ v
e83,7 ]/ i+ G, P: i, x6 c% m9 }* B+ Z
IFE,
; |1 u: P9 p8 X: Ke23,oFA,; G5 Z$ m6 ]. _7 p
ID1,DDF,LPC RST! X, O! n8 i8 o$ V, ]8 H% p
Swrong LPC RST
6 U  ]3 K0 x8 C" A: G; m5 ~LPC_Reset_Flag=64
* J5 B# m5 n# _' Q7 ?. I4 ~2 L
! B! T' `' |, m
ID1,DDF,. v' R( X; s: l2 @
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
6 M- {! M  ^/ F* n1 k, \3 M0 @$ LID1,DDF,4 Q9 @& O+ z1 m" C7 s# d0 N
I90,VED,C,RFA,OFA,V01,C,RFA,
/ o/ m! n% Z3 E6 `1 N. NID1,DDF,O,OFA,O,8 l- j% w4 V: g/ H3 D, L* n
e2A,>IDLE
4 O2 P5 }( {$ n' r7 ]1 }# q  r, ~oFA,<
5 O/ F+ o1 w/ L5 d' b9 Ke00,
( p% u: d6 c7 C" wIAA,O55,O,+ x: s' F' I! t, G  I4 t
IAD,
! b. B1 N0 P9 j/ sID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
& W& ~: h  e" d1 D' x3 {I60,O,D65,
' }" r+ `9 U- N- a! rI60,D6D,VF5,C,RFA,OFA,K20,
* Q3 Y3 v) J$ u3 u. r. v6 u) ~- XIAD,4 H4 }$ ]' @$ E
IAE,O,VF5,C,RFA,OFA,K20,
# I. ~9 m% G: x$ KIAD,
8 x/ j* c' u, Y  iIAE,O,5 |' K. b* S- e; _6 ^8 ^7 A& ~
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,/ X% j: \3 ^3 D+ F0 |& d
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,% ?1 E2 L2 j5 }/ T! m% q2 h
IAE,O,
5 C0 h' F2 d5 E# d; Oe91,d2F,d00,7 h/ w8 ~4 k% m3 m. Q4 }( n# ?) v
e10,d83,d2F,P3_K#+ K: S9 O9 u9 S% ^. w- _' B- f$ }6 l
P3_K#

. A, k1 l( w9 S$ y2 ]# o
" f. \4 s, r; t7 x/ l& `e23,oFA,# g, i  `  {7 y7 E- V' h
I90,VED,C,RFA,OFA,
5 x! e2 x# k- }8 pIAD,
$ Y% _2 I/ o  f9 E- }IAD,O,$ R* b$ B6 M1 \
IAE,V03,C,RFA,OFA,: S. {& @1 T! B+ u' ?, e  `; G
IAD,
( u3 X  Q" F  e2 @( X# x5 AIAD,O,  p& K+ R, F( y
IAE,- ]1 t4 Z$ J0 S- O2 u; ?
I90,VED,C,RFA,OFA,
9 X* o+ M8 s/ {0 rIAD,
& Z& H0 W- d' Y; O1 J3 Z' W1 ~! jIAD,O,; u- B" W* x. p/ G* e, {
IAE,V05,C,RFA,OFA,4 Y2 H/ a4 p+ j5 `- Z3 p3 l! M' L
IAD,
3 `. g( O! D) m/ E2 AIAD,O,. d, o3 V' J) u9 Y$ N
IAE,O,/ E& r3 ]  t1 z
e90,d2E,o00,
+ L* n) o* V/ f1 ~8 _0 f9 ze91,d2F,d00,P3_K#3 ]& J. B4 c. n3 l* S
P3_K#

) R& F% B! B: o" p2 y/ G, `
3 X" ~* O! s4 p+ s9 t0 q9 rIAD,VF3,C,RFA,OFA,3 x' B8 ~' p- b; `1 u2 ?( ~2 D
IAD,
% N' F0 d0 |3 J1 R0 hIAD,O,
, o- O3 k* m$ v% ^2 r2 k5 U6 ]IAE,VF3,C,RFA,OFA,
9 q$ Q5 p' k5 J2 y7 Q  RIAD,0 E: @0 X" N5 ?% K% A- m1 k! ^
IAD,O,# h% }' m- d% f& R- Q; |) a, K
IAE,V20,C,K10,RFE,OFE,K08,
4 T, S' H1 J; s3 h& TIAD,( Y! X6 O; t: M9 g' m3 y
IAD,O,
+ e7 X2 b5 ~* E/ C4 aIAE,V20,C,K10,RFE,OFE,K08,
- K& C8 A; W* z6 I/ d/ Z- u% YIAD,6 v/ T- S3 ~6 w4 S0 N/ g0 _
IAD,O,
, z) l& x* v8 YIAE,V20,C,K10,RFE,OFE,K08,8 B5 n( p( j4 n/ H7 [3 f
IAD,2 J! z, n& ]; O/ n( K3 U# J* h
IAD,O,
' R7 U( S( ?- W  XIAE,/ X- \! b6 P  B0 }# \# ?
IAE,VF4,C,RFA,OFA,
  \$ N: T: Q8 _' Z0 RIAD,
- _6 T- C( x( I. N; L& l$ cIAD,O,
! F4 {! }; G8 i5 |* a( z6 ]IAE,VF4,C,RFA,OFA," L2 w- \) f# ]& N
IAD,
) U8 u9 \" @2 w: wIAD,O,  C5 \( j% R3 L% E* O0 |) ]
IAE,VF2,C,RFA,RAB,R41,OFA,
3 B0 l" F' G+ X% \2 o! r9 RIAD,
+ W3 d" b: T1 g# f3 c/ uIAE,O,OAB,
+ G0 A5 X) C5 A5 [5 iIAD,
8 g7 G0 n6 a+ J- |1 @IAE,O,O41,& M# z3 S$ @: {. ^) |
IAD,4 G8 u7 S! |5 m4 {) L9 w( [
IAE,O,VF2,C,RFA,RAB,R41,OFA,
6 D6 h3 T! {7 b; Q; {* WIAD,
! }  `0 n  E8 w* {3 n' eIAD,O,OAB,- H9 B2 r) C/ R- q# w
IAE,O,O41,- [8 `9 m" K6 t  w0 [& Y% I0 E* W
IAD,
. H% I, n: s$ k! E+ J" aIAD,O,% |) o6 [+ [1 G! O/ Z- t7 N- g
IAE,VF2,C,RFA,RAB,R41,OFA," c1 C8 N, H7 c% v) ~/ ~
IAD,9 V6 W0 w  Z" Q( w7 c% J4 g
IAD,O,OAB,( G- o1 t+ A4 }' g
IAE,O,O41," P4 W9 M. M3 k  J* {2 w
IAD,1 B7 r+ n5 l" G6 C2 n, n
IAD,O," M+ s( w: g) P( u; [
IAE,
: a' @' i" t! C* Y- ?; Q- Q  iI90,VED,C,RFA,OFA,
1 C( h9 g5 ?+ \, x: `IAD,% R9 Z* V! d: M
IAD,O,0 w/ F/ \1 }- ]( B( ~" `3 i. |
IAE,V00,C,RFA,OFA,6 z2 a, ]0 D/ ?
IAD,+ p* Z+ J+ C/ E7 `. R) t* m
IAD,O,
; y. u+ F. n' Q9 A. [- g7 zIAE,
/ F% e9 t" n, d" N8 MID1,DDD,
. J+ }8 C; U/ o' h1 O- k! V; mID1,DDF,3 X% f. ?2 P1 D* U" ]7 H% Y
ID1,DDF,
5 G8 Y5 q' m: m* h1 ^6 _9 I, ?e22,oFA,
1 [& A2 M* Z8 `( q! Ie83,& Q# G5 D& {! G" v" D( ^- e$ i  q: a
e83,
+ D8 ^: g% a- ], }  V% ^e83,
. K" q' J. c; B$ D1 b1 Be83,
  [& u' b2 w3 le83,
2 u" l$ l; L& e% K9 p7 Z& [0 De83,
) Z$ W5 E/ Z7 ~; L; ]! e1 j+ ee83,9 P' M& y, o6 D% Y+ M& r3 L! U
e83,
# o0 @' h& A) y" ~. y* {e83,8 o0 j. Y3 S5 m1 z' E1 C9 c
IAD," C) m" A- H  k* j) V
IA7,
8 A# L% I2 ]* v8 zIAE,O,
) {: B) T2 F! M: O  s. b& v0 GIA8,
, Q8 x4 e# F' @. R% j5 tI60,D44,& v" q- F% w6 p8 W7 i9 e" @
IAD,
( @( g2 e) A. R+ p' sIA7,5 F. k0 b$ A8 m7 X1 B
IAE,O,
% Y8 G  L& r; Z+ l+ b/ yIA8,VFF,C,RFA,OFA,RAA,OAA,& v' D, y( h  y6 g- C( q) k4 u
IAD,O,K20,; r# `! h- G& F' w4 J+ f
IA7,0 M8 c2 P5 c+ ~- a' @
IAE,O,/ N1 T9 G; [4 D
IA8,
% [' c7 d6 A* c4 ^  J1 t: XI60,D04,% I4 y: X- x; _1 @1 |
IAD,
9 h( L! j* O) u& h) qIA7,3 n4 k& _2 J& W' {/ I6 ~7 m: M4 W- G
IAE,O,
5 c' ]+ X4 P' Z  G8 {IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,+ \$ L( t2 U" z. ~8 u5 y
IAD,O,7 y1 }3 Q( ?; O) C
IA7,) e3 z+ v, b6 |0 D; A$ \- I
IAE,O,
* ]% |1 r, }" P. Q3 T2 ?2 a8 \. K. ]IA8,8 w& E# s; Q7 d. F6 h
I60,D44,
5 E! E% ]- V  ]5 H0 y% x( X: W* a" DIAD,8 Q: \  b. [* L  o3 X1 F
IA7,; m7 v1 ^5 [: b$ n
IAE,O,
) Z( R' g5 P4 ^7 N4 ?IA8,6 q1 W) Y/ h" U+ y! o
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,2 u8 `7 }( ^' i# }' ?( J5 _
IAE,O,  s3 R( D7 J& o3 }$ O! |+ m5 j9 h
IA8,6 q: J1 \6 e7 C4 }- P
IAD,9 }9 a+ A( Z4 |. c% q, |
IA7,
& W: h5 Y) @. D/ ]. r) z/ N: ZIAE,O,; b. M, Q/ o( x* }9 ?2 ]
IA8,$ ~* j% G; H9 T
I60,D47,
  d* @8 r7 g$ \# z6 R& ^' A$ x, }IAD,
3 Q+ K8 f5 [; k! X1 }+ g$ PIA7,
8 d* p0 }: C# i. T# b" TIAE,O,
+ T/ i% s5 l4 k% k; V5 v' D9 P- wIA8,
; _1 v5 k' C% @# f8 MID4,VFF,  d1 z( E3 r$ g7 ]. i
e83,C,RFA,OFA,# ~' a1 h0 K1 _
e83,O,RAA,R00,OAA,O,O00,$ |; L4 s$ E1 }4 g; |  P
ID4,VF2,O,C,RFA,R00,OFA,O,O00,( H) N: [) B  W  F3 K  n
ID4,VE8,O,C,RFA,OFA,/ z6 f# X2 E$ W- ]0 R
ID4,V00,O,C,RFA,OFA,
9 h+ d  q9 C' m4 eID4,VE6,O,C,RFA,OFA,
3 x; ?  g* G$ x3 t+ zID4,VE6,O,C,RFA,OFA,
2 c* a6 o$ F9 q; z8 [8 PID4,VE6,O,C,RFA,OFA,
8 f4 m+ `9 k" k! P4 G1 D$ fID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,- H% Y+ W/ M7 C2 y6 g( ~2 j0 D
ID4,VE8,O,C,RFA,OFA,
$ j/ p7 x/ n9 F0 F7 l0 w2 `# F5 {ID4,V03,O,C,RFA,OFA,  z2 B. e+ H6 b
ID4,VF3,O,C,RFA,OFA,! D3 u" x$ U5 b; T: k) F! x5 k
ID4,VC8,O,C,RFA,OFA,: T  x# R$ X) Q' R: e
ID4,VF3,O,C,RFA,OFA," S; v+ |: {- Y
ID4,V64,O,C,RFA,OFA,( ]; w$ L) l+ b8 v
ID4,VF3,O,C,RFA,OFA,% M. F/ v  X* [3 X, [) d* e
ID4,V50,O,C,RFA,OFA,
" F+ D: a- V9 e: _4 n( c- @ID4,VF2,O,C,RFA,R03,OFA,O,O03,
* _/ x8 H: a4 iID4,VF3,O,C,RFA,OFA,
9 |0 d% f5 Z* ^1 D( }ID4,VC8,O,C,RFA,OFA,1 a: ~/ S9 Z; d9 d) t
ID4,VF3,O,C,RFA,OFA,# v* E1 x# H7 s8 W: b
ID4,VC8,O,C,RFA,OFA,9 h5 k3 K  V6 ^# v! \
ID4,VF3,O,C,RFA,OFA,
* d! e; I7 Y0 [9 m% A' F+ S, wID4,V50,O,C,RFA,OFA,) }  e+ h: {/ u5 l' ~
ID4,VF2,O,C,RFA,R03,OFA,O,O03,& v) V" C7 O5 ^) F; @& g: K7 r' t+ z0 \
ID4,VF3,O,C,RFA,OFA,
2 {7 W) g& }9 i& kID4,V64,O,C,RFA,OFA,
; J6 Z: p6 L( a& N( o( tID4,VE8,O,C,RFA,OFA,
- P) L! g! H8 y# _ID4,V03,O,C,RFA,OFA,
5 T1 d- I( A: z. qID4,VF4,O,C,RFA,OFA,O,
- A8 W: }* X" w; A4 le83,1 g8 L" H% I1 A- M# j2 O) V
e83,/ y  U- q( [2 T6 \- `0 q  Q
e83,
% M; M- N8 R  h7 B3 q& ye83,! M4 |2 A8 o1 l$ ~, ?6 ~. s; r, H
e83,
, S' V! `# ^3 m! x9 }: w5 `  ye83,' i% Z! V  J3 e/ w) `: U: S# |& B
e83,6 H1 I1 z& }9 X7 e6 B" f, f( X" s
e83,
! G$ p3 h- S9 s6 d5 Z& ae83,
$ z& p8 ]9 k+ J, d; a( Je83,00,C8,2E,9 _2 K/ z0 |- y$ J: T
e83,00,C8,2E,+ S% u- K! Z( z2 L
e83,00,C8,2E,
( W6 P! U% U7 _/ O+ ~. M% a+ Ye83,00,C8,2E,& i5 S$ ]* q- W% M
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
. T3 i- `3 _2 D3 P) D0 Fe83,* n2 B7 ^( [  V/ M3 |& c

0 e" `" Z+ K" k" B. M- o
( [3 W/ Y6 |7 s; M[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
3 l' ^1 [) E3 l  w. M. y- q     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。0 K7 }0 S6 b  a$ C) M
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!# _9 U6 s2 s# e2 c: a
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
" c+ h& c* j' u" x! _& f      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!9 L2 ]. {( Z" Y
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
! O# M; H% W: r% O4 y* a+ lDevice(EC0) {
8 z, L" c1 r. @9 L, UName(_HID, EISAID("PNP0C09"))
* z. ~* b- ?9 F/ K) I; s......
% V6 `+ R: c$ k}
/ E& b: f' k* g& PPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
) V8 b! _& H( G5 S* R3 J( i0 |就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)7 e0 U3 z. b2 X6 g
2、   
0 S9 N, e" X- T6 ^( iName(_CRS,ResourceTemplate(){           
$ q* i/ G" Z, u        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
1 A& [2 X) |" O) }( ^2 B+ z8 {            IO(Decode16, 0x66, 0x66, 0, 1)
) s$ B; ~3 A+ S5 K7 t        })
; I: d3 v: m' Y" {/ q0 u3、接着就是) j1 e3 o3 n% q- e8 z2 C
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO74 z9 L1 ^: x- T$ U
通过这个声明,OS知道EC和哪个GPE关联起来8 \7 P; m3 c0 E* ~* D0 f6 _
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来; n; F4 O% k# B: y8 l
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
5 B2 H1 n- }* @2 g# V: W而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。; O; p8 f) P. `- j' X7 G* c
3、OK,看看linux是如何处理SCI中断的
4 {. |. M6 i4 V- Z1 A" l& D9 y* Facpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute. V( n# ?( w' }( e) j2 m
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
% B8 p. e$ ]# h0 Q+ {4、EC接到0x84查询命令之后,就把Q事件号传给OS- w9 q- E. [9 e9 l2 }
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分% \0 w! [% Y$ `1 O) r* }( U3 X1 q
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了6 [* Y9 X! O% R9 r; c
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。& c- m9 c9 k! G, N
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm5 \+ A# {# ?" J1 L6 i# z. M. O
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
% C+ O0 D* A5 C" A! X* c版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 21:00 , Processed in 0.040069 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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