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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
1 W9 c& u) |# s8 r' d看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,, I" N2 ~9 x! }6 r
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。( t. p( C/ A( X4 [' o" p: ~& j3 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的命令$ x2 I7 H# E2 `/ @# L7 |
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check& t' y4 E4 j1 p' E3 U+ ^  T
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
' }% y2 k) f/ L: o. U1 `其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。/ l& I7 \( i+ P/ Y* ?# g. m7 B

$ e2 u- c, D( [6 n0 P( [VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
3 K: [- N# L! X/ x2 ae83,
' `2 J1 \* w% A" zIFE,
7 L" X# n- G* R4 a# He23,oFA,
6 v7 w, W; o  Y# p$ L+ A/ zID1,DDF,LPC RST
, l* m: }9 r' j8 y7 C+ v. g8 @Swrong LPC RST# ~2 b% }4 G$ k3 l! l. K
LPC_Reset_Flag=64
4 J3 w" Z+ }3 X+ d& _2 V
9 I6 B9 b+ U% N. f
ID1,DDF,0 j0 G, y. R$ z. ]- {
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,9 O" H; b; B0 N/ X; s) G- p1 y9 ]
ID1,DDF,1 {" D& m8 S' ]4 |1 F5 L5 h
I90,VED,C,RFA,OFA,V01,C,RFA,
  [  p; Q3 r: s1 }( D9 o) B  e0 WID1,DDF,O,OFA,O,  j/ j" T+ Y! }0 @/ v# v+ b4 E
e2A,>IDLE( H2 f7 B" t$ b" Q2 X& \
oFA,<8 U* b7 D, ?9 e% C+ T
e00,
7 `0 [+ H# ]5 p8 z0 o5 A7 LIAA,O55,O,9 `& Z2 f- H% f, `5 ?" v% `8 z
IAD,
$ ^1 u+ _. _, I7 Y' C$ l' rID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,7 g& ^) Q! i7 V$ L* O# K
I60,O,D65,+ P0 X& ?( J$ K! r7 {, m5 |# G8 Y
I60,D6D,VF5,C,RFA,OFA,K20,& N2 P# R' D  L8 W9 j
IAD,7 u$ v; a" g. t# e7 x
IAE,O,VF5,C,RFA,OFA,K20,, C* U" p1 F- _2 R! r
IAD,
: U. D5 \( G2 kIAE,O,, b8 N3 Z. U9 D- }2 b$ C
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
+ y  T! o2 v) ^6 II60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,& H5 N  H% D4 A3 ?  B! w2 m
IAE,O,
$ k' ^' C3 ]3 F2 v, ?e91,d2F,d00,
! q. m  B" d, x* X# \e10,d83,d2F,P3_K#8 [% |0 x! l. B/ t0 N( I5 S
P3_K#

5 f+ r  n3 y  h5 S1 j" M( Z) q. C2 U- P9 v' w# E) X# e
e23,oFA,; f5 k5 I/ R7 ]6 R# c* \  b
I90,VED,C,RFA,OFA,
4 \. l  K; }5 z' q. nIAD,$ f3 d# v  s6 |; a- y. _
IAD,O,) c, h# {, X  m+ D" M: @, l/ c% x' D6 w
IAE,V03,C,RFA,OFA,
+ e( V. ^2 N2 v& J, CIAD,) J# R. V% {, E4 u3 c
IAD,O,' n( b( W- ~; k9 w; t
IAE,
* v. D# |' a0 C% \# FI90,VED,C,RFA,OFA,
0 k- G. J; i! S# z( \8 Y9 }! V5 mIAD,
" C* E: O% y! m! i  g/ x7 zIAD,O,
, o6 c; l2 n* F* s$ wIAE,V05,C,RFA,OFA,
. I0 ]/ I& A: |5 o: v8 l3 ^IAD,
7 Z' E# T( w" ~: b8 QIAD,O,: B2 ~: _( K6 A8 [& z; {- Q6 T, z
IAE,O,
9 z" Z4 i+ K. F' R- C& ^& |e90,d2E,o00,
7 W: G$ ^7 }! Q, Z2 @e91,d2F,d00,P3_K#
. V2 I9 P5 s  j2 LP3_K#
6 H0 g/ p! ?9 c4 D1 ^& s" P

- {9 w& q, `" \& q9 L" cIAD,VF3,C,RFA,OFA,2 X& R7 A! d$ j
IAD,1 J4 ^$ u5 M6 H2 Z/ t# e
IAD,O,
5 ^3 f$ a! I$ n, k) Z. TIAE,VF3,C,RFA,OFA,
* `) M; l" X" ^* C$ U8 k* PIAD,
. H, l6 @( u& C, [IAD,O,! ~( `! H! h& r! N1 @
IAE,V20,C,K10,RFE,OFE,K08,) Z% g9 F! a. L% V7 j6 {
IAD,
" m& o- _+ r1 ~* x1 x2 P5 fIAD,O,3 R/ \( z! k# x# H6 [1 j
IAE,V20,C,K10,RFE,OFE,K08,
% u( |6 i8 l. q. ^IAD,# o% t8 Q6 I  I6 s
IAD,O,
1 p- O/ T- p9 L6 ?0 wIAE,V20,C,K10,RFE,OFE,K08,, L+ R+ Z% v! r; b* y
IAD,
; D2 p4 p0 A9 q: @# K/ CIAD,O,
7 o" B* N1 K0 M* X% M6 KIAE,% E! q) v- z+ O
IAE,VF4,C,RFA,OFA,+ d+ r& O8 t1 w% ^* }
IAD,
" F; T1 I5 o" b" V& ~. e! GIAD,O,
' s5 X( s, o# m' X7 s7 tIAE,VF4,C,RFA,OFA,6 r  |8 b8 g4 i: O  l
IAD,0 B4 `; M. d6 F9 ]9 g
IAD,O,
& p% L6 S  Q. f+ wIAE,VF2,C,RFA,RAB,R41,OFA,
- A- e2 _! I1 EIAD,' _6 h1 C& v# H
IAE,O,OAB,
- u4 M8 \7 g9 a) L! O0 C  J% UIAD,, \2 ?; S6 q4 s1 _( n3 u" R& O
IAE,O,O41,+ P# U  Y1 g* B* L  ~' o4 B
IAD,
/ T; k0 o5 r* l! N% e; G# kIAE,O,VF2,C,RFA,RAB,R41,OFA,
  Y" @) _& t" B/ \4 j0 t, ^IAD,
  P" `" S# C1 B' p* _  IIAD,O,OAB,
/ |9 O' K1 Y, P; Q" T. M/ W  T! WIAE,O,O41,6 e6 D3 E! z9 ]4 i1 y3 X4 ]8 h
IAD,
# O8 P8 J9 o; l2 cIAD,O,
5 E7 i5 b3 ~3 ~( y. [$ vIAE,VF2,C,RFA,RAB,R41,OFA,
/ m1 i7 B9 w5 j9 a: P( |) g6 o. xIAD,6 k# N5 p" m& m" `- W: c5 C/ a
IAD,O,OAB,
; t. G! Z9 y" {  R! {IAE,O,O41,! x/ h- ^3 m) c+ s- ]
IAD,
+ j/ w9 }# q* W4 RIAD,O,
$ A% R; `3 {) ?: H2 w" TIAE,5 i, g0 \: m8 ]2 u3 H. h; X
I90,VED,C,RFA,OFA,+ P/ w1 m; Q1 U
IAD,% k$ G6 ]) f% z/ \" y# ]+ E
IAD,O,$ Z% E1 h5 ~/ \* c  {6 s$ q5 Y1 Q
IAE,V00,C,RFA,OFA,9 P# O' l# q# k3 n
IAD,
: T" P! f8 e/ y5 B* kIAD,O,  J; Q- u0 E% B; O% U+ v
IAE,
. ]# j( x) Z" A5 P/ j7 C+ ^, W: ~ID1,DDD,) R' N- N, N4 A9 [; X
ID1,DDF,' j1 h5 K: _: t' T% |9 M
ID1,DDF,5 L2 L; P! i1 ?, F8 p; I
e22,oFA,7 T# N% Y$ [9 z" f2 k; [4 [2 n! y( A
e83,5 I! H( \. _6 a) W9 `
e83,
3 \1 }2 W" d, c+ w8 Z  r, ye83,
4 A3 d7 |7 ~  f6 Q1 qe83,
/ o' k) z3 \* B' de83,
- {/ c( z  g6 B; Qe83,
+ F& P; P6 Q1 z- v! @! me83,& ^1 S7 L7 n' S) F- O: y% l
e83,( A% U, @+ b1 U, Z6 w
e83,. R9 \; e7 U. m0 J( N- [
IAD,  v* D  R6 Y1 ?  o: G8 z# V  m9 T
IA7,6 [! n4 e  A* C# U/ h: D7 y; d
IAE,O,
, ?0 ^" _9 W9 L& D% S* \) A! mIA8,0 Z! p% {$ O% ~7 }/ H
I60,D44,
) }0 y5 B  d' x7 `IAD,
2 V3 U  n1 C$ N: V( kIA7,
. P6 C  ]# o  k1 ZIAE,O,
' _, p( n: M7 Y! Z# k) BIA8,VFF,C,RFA,OFA,RAA,OAA,
1 V) \0 B, @: X  M  I- E9 OIAD,O,K20,0 I( @! |$ i% P
IA7,
4 k) t4 P9 F; T# n5 e& iIAE,O,( Q" L" ~  N& z4 |* D- i
IA8,  v4 [* s1 g4 A: ^# @7 d1 Z
I60,D04,: w8 k  G' q; t* G
IAD," v; x- y, R1 u" E) R/ I
IA7,- L9 A$ {4 y) ~4 W2 G, o
IAE,O,& n, ^" z! n( K
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,( \- N' T( A9 R; {: U% W
IAD,O,8 ]& ]0 J* m1 J
IA7,
  f7 m- F8 \1 c0 TIAE,O,& V" K0 ?0 b1 g1 l4 k6 y
IA8,
5 i6 {8 b! @3 W& Z  QI60,D44,7 y5 x) s" f+ [7 B
IAD,. d% g+ s0 h! P4 [, r, S, G( f- l
IA7,  s. }5 o4 D- D/ P
IAE,O,8 A1 N0 F' N  K) c! w
IA8,( f# O' `9 Y# n% O/ D! d
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,# b% L) w5 X! h5 ]9 S  N8 v
IAE,O,
( R: ~# `- {  t6 FIA8,
$ a& @/ H8 Z5 V% N7 zIAD,, s/ Z. N( p, y
IA7,
2 u+ b5 e& \0 fIAE,O,
: i5 {  C# l3 k* u, CIA8,
% Y  X0 b, V( {1 BI60,D47,% E5 U3 g9 d( H- F1 g. B3 E
IAD,7 i) v, p) X2 I3 F# n5 l/ H
IA7,8 j7 h7 ~, Q% s: Y1 u7 v9 J
IAE,O,7 N, h! p0 l( _; d& ^( r% J
IA8,$ W2 d: }+ G$ D  A' b! G$ |
ID4,VFF,- u' o# h. M4 L) [' S! b, T, d( J
e83,C,RFA,OFA,7 s" h4 a- b) ~. v% K7 P3 v
e83,O,RAA,R00,OAA,O,O00,  e  }: I$ E, Z, e- S* W
ID4,VF2,O,C,RFA,R00,OFA,O,O00,! G6 Z8 n% @9 X  e7 B) o- t
ID4,VE8,O,C,RFA,OFA,
( w+ {5 Z/ }$ q$ z& V& ?+ d/ d8 _; h, qID4,V00,O,C,RFA,OFA,' L  w; n- ~/ o& I0 z
ID4,VE6,O,C,RFA,OFA,
3 D6 n# q( ?/ N8 T5 X3 oID4,VE6,O,C,RFA,OFA,
! M  _) Z- Y  y& _1 j8 e7 _ID4,VE6,O,C,RFA,OFA,
5 Q; q9 C0 ^5 g. jID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
9 O+ n( o1 l/ d: q6 N. kID4,VE8,O,C,RFA,OFA,
) q5 Q/ I3 M6 y; [6 [+ o/ u! RID4,V03,O,C,RFA,OFA,
. q3 ~( S) x  r5 z; WID4,VF3,O,C,RFA,OFA," f+ f- c8 O+ m1 l
ID4,VC8,O,C,RFA,OFA,
. i7 E; U: Q3 m+ v* P" h: o" bID4,VF3,O,C,RFA,OFA,8 X" a7 M% l2 ]8 j, h1 o
ID4,V64,O,C,RFA,OFA," |, \4 k/ ~' b  V1 p
ID4,VF3,O,C,RFA,OFA,
7 r1 ]- a# H5 N4 E1 i: z) uID4,V50,O,C,RFA,OFA,# t9 V" K) H" i9 ~& E
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
6 k7 D0 J: M: f( {4 C- z8 T. mID4,VF3,O,C,RFA,OFA,: x7 B4 t- L3 _, u8 O5 V/ Y+ F
ID4,VC8,O,C,RFA,OFA,
+ }# c5 T9 N+ vID4,VF3,O,C,RFA,OFA,5 ~) g/ {6 m* R, o  K3 R
ID4,VC8,O,C,RFA,OFA,
( i6 y. j0 t4 P# u9 @/ sID4,VF3,O,C,RFA,OFA,/ Y% H# v: f, j$ I8 A
ID4,V50,O,C,RFA,OFA,
0 u+ `1 `2 O2 P7 q. l$ g2 cID4,VF2,O,C,RFA,R03,OFA,O,O03,
0 X. y, P0 w7 L' O6 {+ {ID4,VF3,O,C,RFA,OFA,+ H/ x, p' F; g' ^, ?, Z% r
ID4,V64,O,C,RFA,OFA,* y0 O& [. \3 {3 S9 p8 L6 H% z
ID4,VE8,O,C,RFA,OFA,
0 I6 w5 l) n% ?" qID4,V03,O,C,RFA,OFA,
% ~7 H* U4 H- f( i* q6 `ID4,VF4,O,C,RFA,OFA,O,6 C6 b, k$ K5 e+ [1 x& A
e83,& L& }. T# o1 i
e83,
. M/ e, e8 D% U& d; je83,
; B% h6 [) w; _4 A% R' Xe83,7 e' E, H" B' F1 M+ ?- E* Z
e83,0 D" `4 b3 ?) Q- p' Q5 x3 l
e83,
1 {$ G6 Y9 \% r% |! M9 Z* R2 B8 _e83,4 w1 ]2 z! d/ m/ q# B
e83,0 n$ V- K# ~2 r2 I' `4 }3 p1 I
e83,$ [- b/ s8 X  K+ _( I4 T0 s( x
e83,00,C8,2E,9 z/ r6 @# m1 B7 X
e83,00,C8,2E,
& u' `3 @/ N3 N/ Q0 ^5 S1 }" we83,00,C8,2E,
' \4 C2 ^1 R9 de83,00,C8,2E,7 J" R, t& f- U4 [" t5 V+ V
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,, j$ m( u3 L+ a5 }2 f- S. F" _
e83,9 A& t7 O+ j' E# L% C2 R

7 C; C# z( r9 L  n/ K9 K2 ?
, V; A4 j+ |) f8 y/ k0 k# O; S$ \$ U[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。1 w" g4 n; C, l6 u
Device(EC0) {5 t4 t4 o  J' j+ ~
Name(_HID, EISAID("PNP0C09"))+ V& J6 |# i! B( S5 Y9 c6 q# h- C
......0 O- O$ }+ I) j7 m2 V5 T! ~
}
$ {/ E3 w: ^7 SPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
6 m- a% J; s2 D  W, z& W  ~就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
! \- T) a1 }7 V2、    + Y  s) f6 u% T3 D
Name(_CRS,ResourceTemplate(){           
9 g' w* W4 f2 z0 j        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
& `: W5 A7 r! C7 r6 a0 d            IO(Decode16, 0x66, 0x66, 0, 1)3 i  A6 d/ @0 x5 \) F
        })
; ~' {$ E% N; _$ X7 W3、接着就是
8 k5 b/ S0 K6 \- |7 R, x! v9 ~Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
/ w. d; G. K6 K通过这个声明,OS知道EC和哪个GPE关联起来
+ R; C3 M/ K  ]" O4 R* j4 j2 @而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来, \' p9 ^2 x; A7 ^' f1 T" ?
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
1 r2 n# f! ~4 \4 g5 d. e1 R) S而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
; }- p; I4 X% ~# ~, U; e+ ^3、OK,看看linux是如何处理SCI中断的
" }3 f! `9 M5 c; Z7 m" Sacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
- R: y- |! {# r3 Q' F! g. J" z+ A6 uacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
+ |) w* d5 X" J1 w% ~# x3 H" c4、EC接到0x84查询命令之后,就把Q事件号传给OS( \, q9 h- \$ `. ^: ~
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分7 J: {) b% Z: K( S. c5 b5 O" H1 e
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了8 ]+ t7 E- j% [* {8 i) H; M2 W
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
; J4 V2 ^8 e" p0 ]. c" p' n: Fqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm8 `5 t. Q, P1 w1 y' D4 d- u* j) z
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
3 _' k9 Q- X3 `/ r/ P, C0 z& s版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 10:54 , Processed in 0.026248 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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