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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
% @5 c- c4 M0 {3 l看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,* b; ~4 {( V2 m$ n+ {! ?. E
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
$ ~- I, `4 L* r4 F2 A3 g3 z" f我们在操作系统下用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( E1 k( M4 }
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
7 _6 e7 j  l5 s" D! s5 f: D这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
) q  d1 r" A/ C0 k2 u, Y" n+ I其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。# X# Y6 x( ~  t2 N
2 A0 @) W% D: H- |1 X
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,8 }$ T0 X1 I  @/ ~
e83,- t# x8 ~/ r6 Y. U9 ~& N1 t1 E
IFE,+ [" \3 c8 K  s! ^% w9 ]8 x+ i
e23,oFA,2 u# l+ m4 ]2 h% y/ Z3 j( ^1 m4 |: a' ]
ID1,DDF,LPC RST
. U$ M2 Y  T& L7 E" {Swrong LPC RST
2 d0 ?  g" D6 t) g& u9 F, SLPC_Reset_Flag=64
! \4 j5 R2 L- Z  Z2 R: C% C$ z
- c3 \7 n  t! {& V6 }
ID1,DDF,- ~+ P8 S& Y. m" m5 y6 F
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,3 ~5 l" k/ W3 u+ f6 V6 Z5 c7 I
ID1,DDF,- t& N- C4 h) t
I90,VED,C,RFA,OFA,V01,C,RFA,
& r0 N& |! ^! q. m5 I8 oID1,DDF,O,OFA,O,4 v+ B7 {, n8 a, y
e2A,>IDLE
+ K0 f" ~1 p4 a/ m9 X$ \5 w0 KoFA,<
: E1 i. h& ~% U' ye00,
# g+ a! |' D& c* `IAA,O55,O,
" T: n8 o% ~8 c" p( K3 f% N7 QIAD,- y9 B0 Y* W- H0 B3 A" H' F; K  o
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
. k$ C/ U0 b  B7 h* t+ U' v$ YI60,O,D65,
+ \1 b& z% A: |6 M8 lI60,D6D,VF5,C,RFA,OFA,K20,$ V6 ~9 Y* S- s7 m) S& b$ X
IAD,
4 y, \' G7 z; e3 @$ A# KIAE,O,VF5,C,RFA,OFA,K20,; A- @# W( R0 \% C
IAD,4 g% ~9 l0 c" d
IAE,O,
7 X; ^) f- J9 X' Q0 p  ~4 dIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,' z) A! `( m4 h( L/ _8 k8 g2 ^
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
8 ^' f2 z% l: }% @3 B9 ~1 u7 i0 YIAE,O,
: W# z- P. z" V* q0 W* Ve91,d2F,d00,
0 Y/ W( l) x. {# _# P, n: {& K6 ae10,d83,d2F,P3_K#/ U3 ?. d! K" L6 b
P3_K#

4 ?/ d$ Z( N- r# e6 e( E. \- U
' |) Z4 h/ c& ?- T& de23,oFA,8 W' V: n3 ^2 F1 y8 P4 Q  g
I90,VED,C,RFA,OFA,: G. b8 Z7 V; y: J2 j, n
IAD,
9 d" O. n% j8 T* Z# UIAD,O,
+ X3 k: Q9 O, |IAE,V03,C,RFA,OFA,
! E# d; _) z' b1 `: w( }IAD,
5 F1 {2 c1 b4 S& hIAD,O,
5 r& E$ [! C, P) H# p6 j  AIAE,
) M7 a: o1 S2 t. @, u% |4 R$ yI90,VED,C,RFA,OFA,
% N9 s( o. L* `$ q, g3 T6 G8 QIAD,
8 H. q+ }  G  Z# tIAD,O,0 t, v/ _; G  I9 m& C
IAE,V05,C,RFA,OFA,
/ _: i+ r# U) U4 G8 JIAD,
6 o0 S; B3 Q$ y3 |IAD,O,! M) O* I1 t  `
IAE,O,- M- W, A5 r0 ^4 w4 O2 Y( o
e90,d2E,o00,
9 R2 X9 f" o# r! r7 v  j& L& z  d1 B0 S# le91,d2F,d00,P3_K#. B8 l  U5 ~, S7 w
P3_K#
5 N2 C7 B6 L% i% |
  A  u6 B: I6 Y; X! X3 C8 d; Y
IAD,VF3,C,RFA,OFA,( a* Y; T: w+ K; z9 F- U
IAD,
' a7 x$ r2 Y6 o2 l' nIAD,O,
/ f% M7 i1 V' j: c- }9 y3 D' V) AIAE,VF3,C,RFA,OFA,
+ R& ?' U  y3 M1 v- K2 i, XIAD,. N) L* P- S7 F/ r* M! P3 ]% p
IAD,O,- H+ ~7 K9 k# c
IAE,V20,C,K10,RFE,OFE,K08,
' B. ~6 @0 J5 z8 w' A* G/ nIAD," R" [/ h! G% V; @- @' L7 w
IAD,O,
: |6 [7 T* _7 E5 z! i9 nIAE,V20,C,K10,RFE,OFE,K08,: P4 V7 g$ {; s; x2 E: n; ]* \9 y' Y; G
IAD,
+ }* q  o# \& {8 |" J0 gIAD,O,6 a" ~- R3 Q( x) x2 Q. \5 L' ~# v
IAE,V20,C,K10,RFE,OFE,K08,4 v* Q& q0 f3 z
IAD,
4 R, L+ i0 }: L( q& fIAD,O,
+ k, L; u2 ^& y2 X0 R! A: ^IAE,4 \* X% J$ g! P' v, R  h4 O0 |/ U) v7 s8 N
IAE,VF4,C,RFA,OFA,
) i+ Y6 @4 \. d  ~1 t& SIAD,
7 z3 K( O' D  |( R, KIAD,O,
0 ]0 D2 q; C$ U" @# p% s+ M8 V% g9 wIAE,VF4,C,RFA,OFA,- ?* ?% k4 r% [+ f% s
IAD,
+ f5 g  Y. [! }  MIAD,O,
5 Q+ n6 Y+ s9 @# `- Z- X6 UIAE,VF2,C,RFA,RAB,R41,OFA,
0 m! v: n9 i/ ]1 @2 W  D- kIAD,
) T' O3 {9 a- ]7 d  H; X2 [6 d$ Q3 BIAE,O,OAB,
& N6 w, Z7 e/ j6 y% J" WIAD,9 L9 G  m* l! p% t
IAE,O,O41,
9 c1 j& K$ |2 f7 OIAD,
, q$ G: p4 z! ~" y6 X& a$ w6 qIAE,O,VF2,C,RFA,RAB,R41,OFA,
8 ?# T# s4 i! dIAD,
, P( h9 m- I  hIAD,O,OAB,
. F$ [  _2 d5 y, Y9 O) @$ dIAE,O,O41,
2 v" \9 ^: I/ d0 \. S2 q9 cIAD,
7 s7 z" I3 ?/ b2 c/ [- c, E; R" JIAD,O,( U0 w, m; Y( h6 n$ C# ^
IAE,VF2,C,RFA,RAB,R41,OFA,
% Q/ k5 l7 `6 pIAD,
8 @2 |3 K3 W* GIAD,O,OAB,
# y3 O- L, E4 O0 q( JIAE,O,O41,
: {; A9 J( U& u  [& _7 DIAD,
  s9 A! }' `& L9 j& o* f  @IAD,O,
. M6 V# l4 ]7 wIAE,
( X$ S3 o! M6 Y* O5 e0 e) J) J% bI90,VED,C,RFA,OFA,
  p* I: c2 l! j" H9 YIAD,) j2 d, e3 g* U0 `9 X2 @* E
IAD,O,6 y! a! Q( N! {- n9 x3 W
IAE,V00,C,RFA,OFA,
7 W3 ]6 B' f5 S' SIAD,
7 r. P5 I# G. ]& O2 J  p. K" nIAD,O,3 n8 N+ ^& L' B, q1 G
IAE,
+ ?1 P2 ~! C8 Z# b$ IID1,DDD,* S: }# ^" }; e* l7 q% O
ID1,DDF,0 b" S6 z$ @) M; K5 O% {8 D
ID1,DDF,
+ x' {% ?* }3 y/ F9 R/ M- Me22,oFA,
- K( w+ S/ ^3 G: `, A( L( u2 \7 U' z5 ve83,
' Z% h) b0 u9 e' ^. K8 J* b2 Ge83,' g" e$ R, r2 F: {
e83,7 D; i3 m5 ?1 `& C
e83,0 M6 P9 p/ I: l/ O7 F, _: M
e83,( t# ~- b1 E- @4 @
e83,
9 c8 r: s/ Y  H, f4 w) c" Ue83,
7 s4 H  i+ p  X7 d* m# Le83,$ i# J/ _( t( @9 G
e83,0 H1 c, J' O5 `* w) M* c" Q
IAD,: R( M. s0 U6 _9 N+ l2 ^
IA7,
7 _$ }8 c3 S- X2 o5 v6 X# PIAE,O,; B5 @4 Q; q; g8 G3 I0 E
IA8,
) V2 B+ H2 V: l' g1 wI60,D44,# R9 e1 S6 [  w+ R
IAD,
! ^$ q& u: D4 l4 hIA7,6 x- h; E6 X' o, O8 i0 U% D
IAE,O,
* [" t/ \: d" m8 n# iIA8,VFF,C,RFA,OFA,RAA,OAA,: n8 g2 [$ R- x" l, e
IAD,O,K20,) A- t) S) k; x' s2 k
IA7,! m! s* N- r" k/ y* s
IAE,O,
! ^6 z5 i! q" Z# VIA8,9 ?3 E) ~$ w1 m7 M* L8 g
I60,D04,- q- s3 C( \2 r0 g
IAD,
) R0 x9 A3 J0 G& `2 L! kIA7,
. ~' X  N5 Y7 g; N9 p/ wIAE,O,
' M: ]$ {- q3 N& E+ ~9 m/ v% aIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
9 ?/ Z2 O* D+ R  w/ r! U$ yIAD,O,
5 l+ a- z# n, a7 V  J/ QIA7,& v' @) M: Y& D+ `; Y4 c: J8 g
IAE,O,. g0 m6 U% j/ v" @9 N$ k
IA8,+ t; d0 e5 a' d/ N) G" Q  R
I60,D44,0 F0 l- R2 S# S8 J# I
IAD,
, \1 d: g0 j! _; A( I2 ZIA7,
4 H7 i$ F2 J# QIAE,O,
) T3 p4 u8 v2 X% z( ?- ~9 T$ hIA8,
: p! ?' V# l% B5 C* s: h* KID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,- d1 G" e+ x+ `& ]. _* Z0 A& }4 M
IAE,O,, r! Y! R/ L" {
IA8,6 X, C0 f7 \# P; S( [7 X
IAD,- j7 D  H8 I# A9 U
IA7,
, A- b0 ?) s4 j( s! LIAE,O,5 t5 M: K5 W( _+ W- S& y
IA8,
% ~+ L3 U6 x) m9 B9 YI60,D47,8 I! Q+ R! E0 f- L3 g+ p
IAD,
$ a7 [# c. J8 j( h9 l1 n7 L8 wIA7,
' Z# h" ^! s9 l) m; O. jIAE,O,6 `5 @3 K, ^" A0 M
IA8,2 X& T! u2 p  y# ?0 b
ID4,VFF,. {0 i! O% l: j( S3 f, C. N4 \
e83,C,RFA,OFA,5 N; Y! V/ f# m+ k; V. o4 M- }8 }
e83,O,RAA,R00,OAA,O,O00,& d8 ]2 M2 B0 h9 {2 ^" g% a/ A
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
5 D! V; t: K8 Y  P, x$ @ID4,VE8,O,C,RFA,OFA,
$ l0 y% S' [& U' J; x$ ?: N1 j3 p' kID4,V00,O,C,RFA,OFA,+ d2 D: Q  b' ~2 a; a( f
ID4,VE6,O,C,RFA,OFA,, D/ s' P5 y% q5 H6 }  J
ID4,VE6,O,C,RFA,OFA,- w- I) f! Y) H& e, h
ID4,VE6,O,C,RFA,OFA,6 H6 w2 F& q" ^, i; _0 m4 m
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,% `; A1 V! m% b# E
ID4,VE8,O,C,RFA,OFA,
4 K: `3 O/ q5 d- Q0 ~/ ^; yID4,V03,O,C,RFA,OFA,
+ Z2 R8 w. }0 d' pID4,VF3,O,C,RFA,OFA,- C7 P6 [$ G4 x& J+ O( J
ID4,VC8,O,C,RFA,OFA,6 U$ _, M+ [5 ~
ID4,VF3,O,C,RFA,OFA,4 {" F( T$ A+ O' ]: Z8 c0 i" ?
ID4,V64,O,C,RFA,OFA,% K& s- c% t; e7 N# g
ID4,VF3,O,C,RFA,OFA,$ J/ T! y. f( p& d4 U
ID4,V50,O,C,RFA,OFA,
# k. M3 F* p# h0 wID4,VF2,O,C,RFA,R03,OFA,O,O03,$ |8 |# z; ?8 A# }4 p
ID4,VF3,O,C,RFA,OFA,
- s' y4 \, @0 i9 h& cID4,VC8,O,C,RFA,OFA,% K. c) O% f9 T& J$ B! s! ]6 r
ID4,VF3,O,C,RFA,OFA,
( L0 w0 a2 i6 g$ f5 }ID4,VC8,O,C,RFA,OFA,
0 t- H# P* E9 [' o. v3 \* _: u& QID4,VF3,O,C,RFA,OFA,- ~1 A+ J# s6 h, ?( v( w( N
ID4,V50,O,C,RFA,OFA,. Y1 U/ w/ C4 D* z$ ]- R) T) a8 I
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
- q& @$ c" i5 k; QID4,VF3,O,C,RFA,OFA,* i/ o8 v- [  X' P) P5 \
ID4,V64,O,C,RFA,OFA,4 [! @9 ^' q' s9 P# Y
ID4,VE8,O,C,RFA,OFA,
% X$ N; `% P9 J: t3 ~. `' p, v( F* _ID4,V03,O,C,RFA,OFA,2 G* b% r4 V' g
ID4,VF4,O,C,RFA,OFA,O,
5 Q6 n$ D% F4 o7 `e83,, W0 k* U7 P) t) s( y
e83,6 h3 |/ U4 X  Z" Y. `: F& y
e83,
0 X, J7 F# `* [e83,) N4 r/ G) U7 a2 O
e83,6 R/ `: X2 ^& |& W
e83,  d$ G5 y. F# E! C
e83,9 U! O) U" d. I3 N4 w  }0 w) B) |) X
e83,4 _" k% @1 F+ W$ ^7 N: B4 b
e83,  @& C/ Y" k+ v# `$ C. Z
e83,00,C8,2E,! l1 J2 j( [: G# V, }5 P: o
e83,00,C8,2E,. k7 V- ?. `3 `1 [+ Q
e83,00,C8,2E,; Y4 y+ H; |3 P3 m9 c. G
e83,00,C8,2E,
- {; M4 L  A, a7 ve83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
+ ^- s/ i3 B& g$ ge83,' H. Y# }( g8 p. _* f

  _% v6 d0 M3 n; J- V
4 \+ C) [4 `8 {! [3 a- G8 I% z' m* e[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。1 _, T* w" M& j9 O3 q$ O6 U
Device(EC0) {
0 T4 r8 ~  c) fName(_HID, EISAID("PNP0C09"))! W$ N  @/ h& t* ?( U8 V8 B! u
......4 W' j/ N$ P: h- \, @
}1 @3 x7 j& H  P/ ]$ F# b
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
( L9 K5 x' p+ u4 Y: c4 h: Q就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)9 P1 \7 C. o. z0 ~
2、   
3 }& u! R* |# I: d, ~/ {Name(_CRS,ResourceTemplate(){           ! m/ D! c- D- X) |! L
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x840 |9 e; q2 a$ o" L9 h
            IO(Decode16, 0x66, 0x66, 0, 1)
7 s1 c( V9 l' ^- L& s8 }+ t        })8 A3 M' t! a5 q/ \; s* P& b
3、接着就是" V& q1 l( m/ e$ Z6 m
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO78 j4 J3 C/ K$ K
通过这个声明,OS知道EC和哪个GPE关联起来, U  Q! {$ r" I; N; A
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来; a+ ^9 U2 F( c3 ]( T
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。# q' L$ ]& }6 a  d  i$ ~) f) Z
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。+ E: r2 \# [' }6 Q) v9 u
3、OK,看看linux是如何处理SCI中断的( \* C7 p4 d6 O
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
+ z% k9 c6 k1 m5 h2 C2 _% dacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
* ~2 ^; F& X- J3 H& l4、EC接到0x84查询命令之后,就把Q事件号传给OS
5 v6 y) z& [; V4 sOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分: x/ `: j# L. ^6 _# R3 c
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了7 F8 ]( X* A% U& D
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
1 V0 }. ~0 d6 l) }. r* W% S- M& j: x  Oqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm$ ]6 {2 e$ ^& Y8 d- W8 H$ j# V
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。; b: U5 \6 k) Q7 Q/ n
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-4 15:46 , Processed in 0.056550 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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