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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
$ X) M8 y: V, R0 z' a3 E' o2 \看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
4 q& u6 g1 d/ I2 a. B9 N* _* d今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
6 i& S; l7 F# {$ y( m/ w我们在操作系统下用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的命令
; j- r+ m+ Y3 O, X7 x- _5 X+ `. sD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check* z, }' k9 C# x0 F. Y' M3 Z
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
9 f4 w! n; {7 N6 J0 z( ]其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
7 D/ H9 X3 Z3 F4 X- t5 V( U; q6 n5 z9 b
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,# u5 \  S8 d; _/ o
e83,
3 K8 o4 P/ d* s- k; _6 h! CIFE,9 h( X& s; u$ t4 V& g: t$ v
e23,oFA,
* O* a) o3 [' t- o, C! A% C- sID1,DDF,LPC RST% W1 |" I4 ?6 L' Y. q, v4 W0 y
Swrong LPC RST8 y+ w3 H: L$ N4 H1 P6 O. X
LPC_Reset_Flag=64
, c) \' |0 X& V  w& i$ O, T7 P
) X' U9 m7 ]7 A+ u, w
ID1,DDF,
5 j1 `; c2 d9 H$ W. aIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,) T: f, o& s6 u2 j. d
ID1,DDF,& S  _, I  Q, n0 }8 A
I90,VED,C,RFA,OFA,V01,C,RFA,4 d' m& m+ H; A) l3 W- b# N3 w( @
ID1,DDF,O,OFA,O,1 A6 B7 w- y3 p5 D( ?1 S! Q
e2A,>IDLE
; M! Y+ t# }( c$ c9 ^# woFA,<# H- }9 y3 x, M/ X& D
e00,2 b+ _# X) ^% u* m, M: A
IAA,O55,O,
# [$ j) ~5 q7 x0 nIAD,
( c8 E# I) G* M% ?5 T& WID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
8 u! v' k+ Q  c- c* }I60,O,D65,! X" M& ~: G, k+ T+ r' m9 A. @
I60,D6D,VF5,C,RFA,OFA,K20,
& P8 d/ q2 I* k) R. vIAD,. n) w( u6 j, x5 R% ]& A% I
IAE,O,VF5,C,RFA,OFA,K20,& {. ]: M3 H4 P5 |1 v2 I
IAD,( r# y' ~5 T1 \2 f
IAE,O,  o5 _" l8 d" I0 n- [
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,  z, ~7 ^5 `5 \) J+ O+ J% ]
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,0 _8 k/ \0 z% L  v; r
IAE,O,% C( S7 M! M" f
e91,d2F,d00,
+ j  f1 F  ~  ~/ f$ ze10,d83,d2F,P3_K#! k' `4 U4 i# ^! X/ L
P3_K#

. T8 ]% G' `: t' x" N
: o5 ~$ D2 u% I; Ie23,oFA,
0 t8 |% z% r: @% aI90,VED,C,RFA,OFA,* b9 [2 n* r, k, F
IAD,: W8 p8 E- r% p# B, J& k8 Q
IAD,O,
7 h( v0 `& ~. H1 u. FIAE,V03,C,RFA,OFA,4 L* F/ n. E- _. u3 ]& v1 H
IAD,3 Y, |8 M/ G- V
IAD,O,1 f, p" v) b# I
IAE,
4 S5 e/ E8 s! \4 C; yI90,VED,C,RFA,OFA,8 B, V0 |& _  `- S# |
IAD,2 W* E' A- J8 N  n; l
IAD,O,
& F, l9 L; F' @6 XIAE,V05,C,RFA,OFA,
4 U$ K, f# h' _% A( W- U4 gIAD,
! s2 \! A, d6 l$ f/ ~9 s, F( `IAD,O,
! r- N1 u6 q$ V0 u+ p3 A: NIAE,O,+ H4 @- [2 a* b+ g) i1 s! X3 n4 G* }
e90,d2E,o00,2 D$ c8 b* g' D* ]0 o( @& d& Q
e91,d2F,d00,P3_K#( T& T$ E5 ?& V
P3_K#

5 l4 d( [6 E+ W% c& H: F  a3 z7 P  Q1 y, }3 ^# b# W- Q1 C2 l6 x
IAD,VF3,C,RFA,OFA,
- k. S$ C# p! q% e. J0 YIAD,
6 V( @" Z; Q5 \! XIAD,O,5 @3 @9 B* e, `4 k. d
IAE,VF3,C,RFA,OFA,
" g8 O1 T* K# I7 NIAD,
% v7 ?, A* f$ u- @" @5 f6 uIAD,O,
( z- M! s" M; U) N  uIAE,V20,C,K10,RFE,OFE,K08,% E5 Y; d3 d" z+ O. ?
IAD,
7 M  S" o) Y( k# p( }8 _# p, HIAD,O,0 Y6 @8 S; [3 t: [5 l2 T$ {. s
IAE,V20,C,K10,RFE,OFE,K08,, J' j; z" ~+ g* `" i
IAD," C2 ?4 a2 `1 K% ?
IAD,O,) B9 L: f: H. i4 ~
IAE,V20,C,K10,RFE,OFE,K08,
) U" z- l& {1 @: H& d+ N% n5 HIAD,. a" q' S3 N9 `, a
IAD,O,. J( y, J+ x8 W0 t; n6 e! U, n
IAE,' l+ u% G; b. o  q
IAE,VF4,C,RFA,OFA,
/ E6 Q8 E2 K- O, w4 K4 h. pIAD,
6 b+ D: l+ E  Z6 _6 ]* AIAD,O,
/ `) z" ^8 p* l' c7 TIAE,VF4,C,RFA,OFA,
2 w6 D2 \9 P4 {) s% RIAD,& `/ n6 A: ]! ?! l" h, o  A8 G
IAD,O,. }5 ]9 ^' Z7 y6 y0 R  b
IAE,VF2,C,RFA,RAB,R41,OFA,: d/ D8 R: L: F. v1 x, |8 x
IAD,  M3 z1 o8 E- ~- `; k) V
IAE,O,OAB,. w& w% n3 _/ O4 V
IAD,
' [, n9 J' d3 ^4 u; A! QIAE,O,O41,
: D6 J# T9 R3 \( u" O+ j) |  FIAD,8 b, w3 [6 e9 S3 t3 \" k& a# ]5 Y
IAE,O,VF2,C,RFA,RAB,R41,OFA,
: B* Q, A% W& h- b" ^IAD,
. Z1 r" G( j1 d  ?/ E: I0 s0 G9 zIAD,O,OAB,
, E5 t/ _; g+ E, @! XIAE,O,O41,
( x7 J7 A2 H/ S/ E3 @+ NIAD,
$ K3 q) B/ ^  n1 q" RIAD,O,/ r9 W8 x8 |. m/ H* A
IAE,VF2,C,RFA,RAB,R41,OFA,$ G6 y' N1 @/ T/ `' h. _+ g
IAD,$ w( T: g% ?  q  r$ @7 e
IAD,O,OAB,# ^$ s  s9 Z' W& X
IAE,O,O41,
8 J8 [& J5 o1 {9 T- c3 b3 U$ uIAD,+ L6 s* N/ h0 x- Z
IAD,O,/ ]6 }6 L. v& w# W9 p
IAE,
- u; f' f: j$ M& k& m! a5 u0 uI90,VED,C,RFA,OFA,1 O( B- v/ `2 h% Z  r" S* ?5 W+ x
IAD,
+ C$ ~! N2 e3 D; K, gIAD,O,7 I7 q3 m% _1 J" s" d( S
IAE,V00,C,RFA,OFA,
( G& [; i) @6 j2 HIAD,7 l8 g' T( w0 x2 d5 o
IAD,O,
2 s* @1 F, T) J* |IAE,) Q7 Z5 H( f$ a8 G6 x% c% D
ID1,DDD,
2 p0 e5 H: I* U: H, b5 tID1,DDF,; Q! t, B! g" |, m" [. o' Y5 p1 G
ID1,DDF,
7 n% n; L9 ?, e+ X- Le22,oFA,
$ t+ m1 d+ R( V9 B" Re83,
* C4 t5 [+ B9 E9 A( ?) we83,2 U% m3 @' N( v  `  S2 N
e83,
9 E8 {4 f. q7 B; }' pe83,
; d" d9 m  P0 t7 z; we83,
) E1 R1 A5 u! ^% C7 f: W  u: U! D7 `  ce83,8 N; _0 `) j, P  u
e83,2 \' g, q( x& G0 E) W2 j  F
e83,
- t& S4 [5 l( f5 Be83,' y- C+ I# r4 D# X. w
IAD,
5 @  ^$ Y. T+ B6 _" @IA7,/ ?/ j4 F$ O7 M
IAE,O,1 `3 w$ @+ H. Q7 b, S+ O
IA8,  b3 L" Z5 Q3 ~$ {6 X
I60,D44,
. j" ]6 ?% B' A) cIAD,/ t/ i9 G( K" G" O( @: K1 s
IA7,
3 U2 V8 Z% O1 W5 H/ E( W" p! IIAE,O,- V: b0 X, U5 T1 t# D, b
IA8,VFF,C,RFA,OFA,RAA,OAA,
/ i+ ?( U* b1 ~* C) k8 lIAD,O,K20,
. r+ k4 _; K5 L& h2 o* p( WIA7,
2 f# S. V. _  z7 \2 c& MIAE,O,+ t+ [) d$ [" y
IA8,
; A) `$ F, M4 d- {& A0 sI60,D04,
6 M* s5 ]" T' `( ]( p9 B" TIAD,/ z# R  ]6 e9 I* [  U# Y
IA7,
0 y, ~2 G3 k# C& nIAE,O,
* F3 D, s, _$ A6 W1 m/ D4 UIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,- F: k. }$ c( I9 m! K& g) u6 M6 Q$ p
IAD,O,
/ u: R$ P- q: C, S$ @& oIA7,( k/ L. D9 _7 [. C$ o* u7 C( K
IAE,O,
3 B( F2 p  B1 m! g7 ]! i' jIA8,
% N2 |1 i0 a4 g* V8 MI60,D44,# k% y4 ^; W. N% U% {
IAD,
& [4 l+ [( k  ]' \; j$ c) y  XIA7,
6 R; r  [; E& m2 ZIAE,O,- ~7 _. Z; Y. a* Q. r
IA8,0 q- r3 Z. |, s; f
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,8 J+ T0 M& Z; v; r! z
IAE,O,8 |6 A' g5 T+ m# f, u" \
IA8,
5 `# q" h2 d& G1 v5 m5 N( ?IAD,
7 C4 F1 ^# f, T1 u0 k' H, S% PIA7,) f' n0 U8 ~6 ]" C: d3 Y1 J) Y' k) X
IAE,O,6 h6 a! y0 B  o2 ]3 w
IA8,
2 U' [9 R1 G( aI60,D47,! {8 o5 Z$ k7 x! k! W! G  |, T
IAD,$ |5 `, x; c. o8 m0 \
IA7,* }1 }/ X# u7 ?
IAE,O,* y9 P- A9 G* O- S/ P+ }0 T$ n. S5 s% ^: z
IA8,
. \; m; m7 k$ P) F& \  iID4,VFF,/ u, E9 m4 l! j7 l4 x
e83,C,RFA,OFA,3 ], b9 r2 R# ~( u: K" w5 f+ S
e83,O,RAA,R00,OAA,O,O00,) _* B  C* a( @$ s5 S
ID4,VF2,O,C,RFA,R00,OFA,O,O00,, h' A+ ^% w' L- P% E
ID4,VE8,O,C,RFA,OFA,
1 c- z9 i  V9 Q+ S" B4 ~+ P( GID4,V00,O,C,RFA,OFA,# ^" P5 D0 b+ x0 y" x5 i+ P
ID4,VE6,O,C,RFA,OFA,5 m  |  h2 f; t% a  z! y- `
ID4,VE6,O,C,RFA,OFA,
& |" @2 E5 T. W8 qID4,VE6,O,C,RFA,OFA,- Y7 q8 r. o) i. @" n" d
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
; b& |' |$ J+ J+ [ID4,VE8,O,C,RFA,OFA,
; `' W, V8 B9 Y# T( xID4,V03,O,C,RFA,OFA,9 Y& i6 z! x5 M+ S6 G% Q2 z
ID4,VF3,O,C,RFA,OFA,5 R  G. E( ?: {* e/ _
ID4,VC8,O,C,RFA,OFA," s) p4 o5 r* q0 O* w
ID4,VF3,O,C,RFA,OFA,2 u3 W! Z3 f4 D3 P( m
ID4,V64,O,C,RFA,OFA,: B7 y% k+ _8 n0 y  B( y4 D
ID4,VF3,O,C,RFA,OFA,
5 M7 Z: S% P! G! {6 [ID4,V50,O,C,RFA,OFA,
( O8 y/ i; r* O- }# U4 X5 D( f8 y4 |ID4,VF2,O,C,RFA,R03,OFA,O,O03,
. z" L4 M( a1 K) ]ID4,VF3,O,C,RFA,OFA,
3 c- D( c) M8 }3 o  zID4,VC8,O,C,RFA,OFA,
3 M7 Z. R* h. n% q/ _8 O2 }0 j  w  D6 BID4,VF3,O,C,RFA,OFA,
; ?$ W8 E3 q  o( N0 `ID4,VC8,O,C,RFA,OFA,6 @+ e9 I/ E" Z1 [+ Z6 B6 W, a
ID4,VF3,O,C,RFA,OFA,: A, L3 l" n# G8 E" {+ I6 Q
ID4,V50,O,C,RFA,OFA,) |8 h" F( x2 D+ g- ^
ID4,VF2,O,C,RFA,R03,OFA,O,O03,! e+ S: ^7 N0 v' b; ]
ID4,VF3,O,C,RFA,OFA,; \( [* ?2 u" A
ID4,V64,O,C,RFA,OFA,
" v2 C3 Z* @7 MID4,VE8,O,C,RFA,OFA,
) O1 V' F& K7 j3 h& [0 T8 Z, OID4,V03,O,C,RFA,OFA,
% ?+ v5 S6 B; B0 Q# B; r0 iID4,VF4,O,C,RFA,OFA,O,* J9 C( h5 q+ s0 ?7 n
e83,* G3 t- A! r* `5 C2 m6 F$ H0 M
e83,' [* ^4 _; [1 V& F# B& \
e83,
; n( g7 H0 P- {5 h3 Qe83,
! _- m4 n% N+ @e83,
5 G9 Y4 ~9 A& ]e83,  C4 d0 m8 c' w9 t( j2 o. E
e83,
  ^% S1 J: h, V( r8 b% ue83,# O( ]) u  \/ _/ e7 g5 m0 \7 i
e83,
$ v8 P' v- }& D  I+ q. We83,00,C8,2E,7 O! ]0 ]1 S* a) [1 x
e83,00,C8,2E,
+ d2 d: @$ ^# |e83,00,C8,2E,' S/ Q( R1 R8 B; a1 c+ G- t
e83,00,C8,2E,
: S3 h9 o% ~! t/ }e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
) t9 E2 O; R5 c2 E7 g8 ?e83,9 R4 D; n0 T- Q0 L* ^

( K3 W; D. P5 T! ^! ]- U1 x0 O! j0 W' C; b1 k0 R8 v
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。$ B! c& h% @/ f) b
Device(EC0) {
' V1 `0 @$ U, S/ g0 h5 ]Name(_HID, EISAID("PNP0C09"))4 X" A3 V, M; m% Q9 ~& f+ ^
......
) t6 ^# F5 \. ~4 n7 l}+ ~/ V, R6 m# T" P5 c
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
/ j, ~- J% o+ p1 C! v# C, n就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
4 G7 Y5 ~8 i$ I/ M2、   
0 a3 t. ], ?9 _: _Name(_CRS,ResourceTemplate(){           7 W1 h0 e, p# _6 w
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84) ?3 W" g# e% v9 |
            IO(Decode16, 0x66, 0x66, 0, 1). {. Z; X4 w6 q$ ?5 s" o  h
        })
% v) V/ K) }3 F0 n) [6 I5 P3、接着就是. t  [3 E) u9 C4 |' K, w7 c
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO76 P7 f5 b8 j/ H- B) C
通过这个声明,OS知道EC和哪个GPE关联起来
1 L' \" ?! S; B; y5 n: g/ f  I而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来# _+ m1 n5 d# \% g+ T0 q
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。: V% Z! c" u7 n2 l
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。6 v% X7 R& r2 n2 I# T6 J  ^
3、OK,看看linux是如何处理SCI中断的
1 x) d; x/ g0 w9 R5 ]acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute# h* s! ~2 p; Y7 ]( z6 L1 a
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
; p/ t7 v( [: J1 D% Z2 O9 q4、EC接到0x84查询命令之后,就把Q事件号传给OS$ f9 @/ H& {1 J+ G/ }
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分. V; j; C6 g* w1 S+ ]
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
5 g% C7 E9 \) _; i0 o有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。% `) |0 M8 t! c9 Y9 {. ?
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
* t# R0 t3 N/ g9 Q  Rbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
: B. i' W6 q# u版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-16 06:50 , Processed in 0.040826 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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