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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,5 J3 ?% l# {6 [. _: F% c
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
/ A# S, S  x( s! b3 l1 h$ |我们在操作系统下用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的命令
( z/ p. A5 _  F! @D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
+ E. N! Y, X" v3 v8 x3 H* F3 Y( L) K这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析8 {% M1 S0 J# V% [# D
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。0 M" |' Z  v* X. ?- [1 N" I

6 L7 o  _$ s& k/ f# jVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,% V  {" _2 Y' A* `( h0 {4 B5 P
e83,/ M% ?- g( R5 f# w
IFE,
% F# p6 I: h4 K0 K. m% t7 y( Fe23,oFA,' E/ k( t7 i* R+ v& v$ F5 A
ID1,DDF,LPC RST
$ E* a: R! M9 [" ^3 g$ @Swrong LPC RST
, k& N7 N& P- [; b# A. b. MLPC_Reset_Flag=64

: h- C* ]+ v% k! J
" d2 P3 c0 g" PID1,DDF,
0 q) @# z# @5 l5 X4 P/ s1 M+ sIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
$ l- c/ ?7 W) e) K- D" RID1,DDF,
. h; t4 Z4 b  ~) b5 x! xI90,VED,C,RFA,OFA,V01,C,RFA,
2 X- Q7 u( o) J( ~+ J6 f; bID1,DDF,O,OFA,O,( t# P$ `# q/ s: B! B/ J3 @8 L
e2A,>IDLE
9 ^  Q1 k- t" E2 v( YoFA,<
# l3 G0 i1 J' L; re00,8 J( X2 R% V4 g& T" O, o
IAA,O55,O,1 U& @& Q2 d) C) q' j" a4 G4 Y
IAD,
" W3 \' J# ~. d" m/ A3 K9 @ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
7 ^; ?% K. ?$ t4 `I60,O,D65,6 O8 Z) H. t8 G
I60,D6D,VF5,C,RFA,OFA,K20,
% e. O: _+ w( _* Q4 s# r9 LIAD,
4 P2 n6 c% Q# p, I* l5 Z5 y9 ~IAE,O,VF5,C,RFA,OFA,K20,/ l: c! c# b0 D& x1 f
IAD,
9 x. ?5 @" c* N5 Z" }6 @IAE,O,, X. C3 {' a6 V+ Z" N5 @- L
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
% c- p4 R: V1 LI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,) N- E9 U4 e6 {" d' f# }
IAE,O,1 W0 I# f  {) L& I
e91,d2F,d00,( M2 @$ |% s  B
e10,d83,d2F,P3_K#
+ u' @5 b; w, RP3_K#
$ N1 T- @' V, u1 {0 {' v; Q
$ Y, w! U  _/ _+ ]$ y' v1 g
e23,oFA,' w4 G+ d- y: S/ k: X" u
I90,VED,C,RFA,OFA,9 ?1 v' Q& X' O+ D; W7 n; `* x$ h
IAD,+ \2 {" }' [$ B
IAD,O,8 r0 r1 z) F8 [
IAE,V03,C,RFA,OFA,  E$ |, f8 h& N& M- c' w
IAD,
( m: R' f" q) a$ mIAD,O,
; L  P) B& t  v. G: Y. l& Q* yIAE,& j" b- n* d! G8 v& s
I90,VED,C,RFA,OFA,
2 ^8 i7 M5 y" w1 UIAD,4 i" B, c  C- |2 T3 I, S- h
IAD,O,' R/ x4 P& A% T" [9 g2 p
IAE,V05,C,RFA,OFA,
( {  k# Z. ?* E2 I& uIAD,
: M* U$ L9 I9 r! J( N4 C2 |IAD,O,
& P4 n: u- p& v- `8 \IAE,O,! {' L$ }. H& H6 h
e90,d2E,o00,1 n. S4 K  p, v
e91,d2F,d00,P3_K#9 U' A9 T, O  A) ], I
P3_K#
4 ~* `( ^: y( O- a

0 u% O3 \- ], i! x: l3 p2 }IAD,VF3,C,RFA,OFA,
( E0 p7 J  }; ?0 I9 YIAD,
, T, n6 _/ u8 K9 NIAD,O,
/ _$ p2 D1 r3 l1 v6 c" GIAE,VF3,C,RFA,OFA,
" J  i: N/ J: m! S1 oIAD,+ A( h1 V% [5 s- b9 Y% [, i1 t0 ^
IAD,O,
* @! k6 E' L4 a6 M3 e% HIAE,V20,C,K10,RFE,OFE,K08,
' |% j) ]. m4 `+ \9 L, a  jIAD,
2 Q3 F: q5 ]. x& yIAD,O,
) |  s2 o/ @. A+ N3 Z' fIAE,V20,C,K10,RFE,OFE,K08,* n# y) p6 e! M7 |/ S6 d
IAD,6 M! {& N+ B9 i( U4 _- D2 K
IAD,O,7 ^2 m' V( S+ U/ \' E; q  n, K
IAE,V20,C,K10,RFE,OFE,K08,5 t3 u$ n8 \& K4 E
IAD,
% U! \- `! ^+ e# uIAD,O,
, M/ l1 \6 m% I) R) _; hIAE,  |: ~: V$ O6 Q+ g! ?/ K8 m* |0 z. l
IAE,VF4,C,RFA,OFA,
2 s$ M. R7 G3 m( gIAD,
; y" A- Q. _) N1 V) jIAD,O,
9 w3 @7 S; W, N8 o" C- R  Z) I/ jIAE,VF4,C,RFA,OFA,; `0 g9 M# N. P! k6 @5 j% @/ |6 n
IAD,) c' ~* T. G9 |' }& ~) Y
IAD,O,) X$ |# d4 r, {7 g' }6 g
IAE,VF2,C,RFA,RAB,R41,OFA,
4 U& ^$ e6 z7 v% pIAD,9 {9 C5 I! c. s2 P. @1 |
IAE,O,OAB,2 e+ z2 K# E: {& R) Y: O) j
IAD,
; s$ V. m1 V7 i4 Q- s, D2 R' eIAE,O,O41,
1 a. Z2 g+ V9 }IAD,
* Y, X* [: n0 q+ F  K3 oIAE,O,VF2,C,RFA,RAB,R41,OFA,$ x' F5 j7 @( R( H+ l( ?% k
IAD,, R9 z1 x/ C: J9 s+ L3 H
IAD,O,OAB,* v8 T+ O! a2 E+ I, d
IAE,O,O41,
, W$ G7 {4 `( ^IAD,
. J) L: o3 }5 b) u5 mIAD,O,' i8 J' N& G& P' X* V  R, H
IAE,VF2,C,RFA,RAB,R41,OFA,( X7 N1 ]: c7 {
IAD,# f: w+ |) }) E1 u6 m' F
IAD,O,OAB,# \2 }& R" H. Z) i, w4 T1 t
IAE,O,O41,
$ m9 _0 Y+ W# T+ ]( `IAD,
/ y' u' l, V- q/ ~/ U, GIAD,O," d, {* G! u+ U% |6 d! @/ H8 z
IAE,
5 ]- W7 n# P8 A8 a1 y% x0 j% gI90,VED,C,RFA,OFA,
- L% @: U1 v4 e5 `IAD,
5 J/ P0 [1 m# A/ K6 P/ V7 t" OIAD,O,
2 t! V, N# o( V: z- ^IAE,V00,C,RFA,OFA,
$ y9 ^. P  M7 q$ _* wIAD,
0 ~* f9 w0 Q, C" y9 O- aIAD,O,* j! x. R3 @& v9 `9 U
IAE,
& u7 p- Q) C( G# {ID1,DDD,1 }1 |/ }5 v5 ~) V; F9 r
ID1,DDF,7 Q0 U/ q, w" @. D# ~4 L$ E+ A# H
ID1,DDF,# {3 T; z0 _0 V) V; m% p- t
e22,oFA,
! ]2 W8 n0 ^4 ^9 T& ^# se83,
  ~; \$ B4 b( v1 y8 z, q, we83,# i; F1 X" f* F/ a7 t6 ^, N! X
e83,$ Q8 `. G; _' W8 k  x; M* h: @/ z
e83,1 r9 \& J/ c3 W, j3 P" I: }, z
e83,7 W7 M; n' Z5 o. }" A
e83,# \+ j! M- {- b  J9 C- A
e83,
6 K4 z& R( h: ge83,  m' T0 @: T  c
e83,
) m# s2 x4 \0 OIAD,& A# L. k! \7 ~+ z+ f4 H3 `
IA7,( E9 z1 |* ]  f/ u5 Z) m- O/ a" m7 H
IAE,O,( ^) L: N: h3 `+ h
IA8,
+ p! G# u' L. r& cI60,D44,
9 b6 C' [* Z( V+ }' Y. x% n2 TIAD,
2 X+ ?! O* R4 b0 h  R, L; oIA7,' T; D! ?$ ]! b# R* L4 N# C
IAE,O,: n" f! n: X  w4 T' o$ k' s3 ^
IA8,VFF,C,RFA,OFA,RAA,OAA,
$ r4 t& Y: ]( k/ {! Y  U, o6 D# @IAD,O,K20,
7 X7 U+ e/ F& G" z+ bIA7,
; V9 Z! p2 P8 d3 DIAE,O,
0 G. ]; r6 ]7 T) v4 h1 QIA8,  r9 c' I. I7 L6 ^) j: _
I60,D04,
4 w4 w, [8 E3 N4 g, z$ `IAD,1 `1 s6 {" k- K4 j6 P7 y* x
IA7,8 n$ S# L- B9 ~, x1 C- U
IAE,O,
9 O5 }- M: O6 I- U8 b) ]# u; UIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,7 m. k/ |+ G1 B: i' n1 A
IAD,O,
( c  I; t: j( x- @4 m1 MIA7,
5 R/ R5 y% Z# n' y( n# o. JIAE,O,
: ~% C( W$ {% X- b7 R% VIA8,
% _& L9 M1 f: }$ C5 II60,D44,
3 z3 \% c7 ^, D& n+ h' g1 R, UIAD,
1 B! K( D6 G8 |+ vIA7,/ g5 W. V$ o1 z) |& f1 `
IAE,O,. ]2 S4 }9 T; n6 \8 Y2 e
IA8,
' ?+ ?2 _5 A: Z. z3 Y9 RID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,! o7 i5 d2 M2 g4 d; @: c
IAE,O,) M$ c& U& `2 h% K  q
IA8,1 T4 T. w3 I; L
IAD,
% `9 u' N* c1 U' b: V1 Y2 _; dIA7,
' `9 _, z* K( ^3 @: G; u! VIAE,O,/ `! Z/ c0 j1 u8 M
IA8,
5 z" s! R1 t+ k8 QI60,D47,
0 n: ]& @8 Z# N3 ]5 DIAD,0 A: G7 Q. ?* y& v% ^
IA7,
2 a4 ^$ P5 t1 Z/ |8 ?# d4 ?IAE,O,
0 l9 q& U) v9 ^3 JIA8,
6 D  p5 z* P! o2 JID4,VFF,2 }& E' X7 H" v# w. D% S0 Y
e83,C,RFA,OFA,0 o( k* `+ F, h: k, u  z/ w
e83,O,RAA,R00,OAA,O,O00,, Q, @6 o2 M8 S% o' s
ID4,VF2,O,C,RFA,R00,OFA,O,O00," |+ f8 s# ?  f' U7 F( a" X! E
ID4,VE8,O,C,RFA,OFA,0 r! X' Q6 w  S$ }- }
ID4,V00,O,C,RFA,OFA,
- T! w. P# v& _6 Y! VID4,VE6,O,C,RFA,OFA,
6 E+ W0 ?+ t. R: s1 t  |0 W/ KID4,VE6,O,C,RFA,OFA,
9 J+ q( t5 Z! BID4,VE6,O,C,RFA,OFA,4 q( q$ v+ ^8 e5 l  @  }
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,; \4 C$ R2 W  B) t: h. p
ID4,VE8,O,C,RFA,OFA,' }3 U: d4 ?( P' P9 H5 h
ID4,V03,O,C,RFA,OFA,
5 R$ L7 a( \' [0 z1 |! xID4,VF3,O,C,RFA,OFA,, |+ E. j% m5 v: t$ O
ID4,VC8,O,C,RFA,OFA,% j+ t4 J% p/ o7 k
ID4,VF3,O,C,RFA,OFA,4 `0 c9 l# K2 Z, ~, H4 o5 b
ID4,V64,O,C,RFA,OFA,0 `. D5 T; T9 ]" E1 x. d
ID4,VF3,O,C,RFA,OFA,5 M; u; Y1 m0 y0 ]9 G4 k
ID4,V50,O,C,RFA,OFA,8 j7 \+ _, M  |
ID4,VF2,O,C,RFA,R03,OFA,O,O03,1 S1 V$ G0 e- k- {1 F
ID4,VF3,O,C,RFA,OFA,
+ o2 }% D( E. v3 a" `% VID4,VC8,O,C,RFA,OFA," W/ {# D5 e- J) S6 M
ID4,VF3,O,C,RFA,OFA,
! K2 r9 ?! [! j0 F: A8 @ID4,VC8,O,C,RFA,OFA,. [9 D5 a" [, T% R0 c
ID4,VF3,O,C,RFA,OFA,( f6 g4 n1 H) X) W, x3 @0 L" [
ID4,V50,O,C,RFA,OFA,
1 j( K* u3 z1 _  U/ j( R+ y, eID4,VF2,O,C,RFA,R03,OFA,O,O03,
0 c3 t: M# x, D4 aID4,VF3,O,C,RFA,OFA,
# A( M1 o5 j( ]ID4,V64,O,C,RFA,OFA,& x2 z3 j! p: j! O" i
ID4,VE8,O,C,RFA,OFA,2 \4 B7 Y# ]' U& p* r
ID4,V03,O,C,RFA,OFA,4 h& j7 g% z2 u* k
ID4,VF4,O,C,RFA,OFA,O,4 ]7 y4 Q/ T' i# ?( D& }
e83," [9 L) C9 r  Q  @- g3 h0 ~
e83,5 w. Z! h4 C/ ]: Z: H; s
e83,' d, }$ ~  o3 ^. M5 P4 V2 C
e83,
- f' T$ J9 p; O; g7 L0 Ge83,
9 p( b4 j( v) @6 ]' Ce83,$ E9 S* B3 ?: M6 O" A2 {% F
e83,
* }% Z7 Y1 F  _e83,
, W3 o+ P' H7 X3 ~- U* ke83,- r( G3 B& Y. i5 a; v( d% C/ b1 x" I& r
e83,00,C8,2E,/ R$ M% |/ W  z% O
e83,00,C8,2E,
4 ^  z& ~& ~' f3 N7 ]* E9 Ne83,00,C8,2E,
) H, Q9 r& |/ G4 k& ?0 se83,00,C8,2E,
9 S5 _' n* S3 U7 q; z/ xe83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,. A% j; V. O, b9 e% n
e83,
( O" G9 I! q  t" f3 a2 }3 b

/ z  Q; h3 F0 V. s6 Y) H4 D" K0 \* B  E$ `. i& |+ h
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
9 S! ]+ L' `' {; }     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。' g; U- [3 ~4 U' z1 K
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
! o! ?. r8 i9 Z  U% Z! L; g+ q      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。& X8 u2 v7 f& a. y( u/ I' @- F9 T
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
6 }% c5 N6 p) V% i; vBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
) o- K- U( w1 E4 ~1 o8 n% F" qDevice(EC0) {
6 I, k+ {- P, k0 VName(_HID, EISAID("PNP0C09"))
: K% |! a/ {- n( Z......
  |  O6 Z* e  [, F3 ]* @}' ?: ]8 O# \/ _. \
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,5 [+ B* T' X0 V5 ?: a! R! i9 k
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等); x( y) V$ @* N9 r3 b" ~) l# S
2、   
5 N& k  u$ X0 P: D" X, h. ^Name(_CRS,ResourceTemplate(){           
- c& y6 c* {9 A        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84  S7 ?# z, Y3 }  a7 L
            IO(Decode16, 0x66, 0x66, 0, 1), A" n" ]3 E' v, @4 W5 ^. L
        })! y& T  c& ?- S" B
3、接着就是
' M. p6 _/ O. D+ U( NName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
1 u9 E! d& u1 w5 ^+ o. V" M3 M0 L通过这个声明,OS知道EC和哪个GPE关联起来4 T6 x7 F; g) j" L8 W$ @: d, R
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
2 [! _: c. r: |2 T$ tEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。$ L: |# t8 Y4 q  Z  b
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。! F  N' n8 z( H* H* u
3、OK,看看linux是如何处理SCI中断的. U6 U0 `' b0 R' b- e" w6 Q. Q
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute1 J2 t! z2 K- r" g4 l, S
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)" q& d4 P2 k  ]' K- w- p
4、EC接到0x84查询命令之后,就把Q事件号传给OS
7 }$ G; a9 f( Y4 f4 `( ?OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
/ z9 g9 t) y8 n/ g/ O1 [$ c你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
) B; ^& W+ L" u有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。0 C, V  a3 i6 c
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm5 s9 {6 ~( ]6 n: k! S& U
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
. D1 l9 g0 Q2 R2 y2 ?版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 04:09 , Processed in 0.063607 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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