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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?0 W( J' p8 y/ M& m5 r
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
! ^( r& d: W: P今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
/ H/ `: c! [& }  G  b我们在操作系统下用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的命令1 R- c4 t; H9 ]6 H' Q
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
& p5 y. X; X8 X& M) C这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析7 j) A* S1 }) Z5 K$ P7 V, i
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。  F* ^& E1 H: m; i
" p0 G& |! _3 K
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,3 X* |  l  I4 ~+ s
e83,
! r2 p5 C' L" y0 ^4 dIFE,
( x9 P( ~2 E6 j. e9 Me23,oFA,
+ B  C1 {6 V; v: _. h" ~) f6 S8 JID1,DDF,LPC RST! Q, g4 v; h, F  d; L
Swrong LPC RST
3 w) ^- [  K1 X, U" R) m  ^- XLPC_Reset_Flag=64

, m  G( R' O) `+ O# K
% x, w) p% {& _$ |! J. uID1,DDF,2 D: d' _! a) U5 K& A6 s
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
& e5 M& G: E2 @) l+ E2 NID1,DDF,
, u0 r/ h& `" i+ sI90,VED,C,RFA,OFA,V01,C,RFA,6 R% }3 `5 D# Z3 a9 A' E1 d
ID1,DDF,O,OFA,O,
$ x. F8 }1 L7 `! L$ Z' D4 }+ V4 Ie2A,>IDLE
! Y4 k# B- E; |; XoFA,<
! _+ e+ y! E: `) N1 I( a: J' D, h, {e00,) X  U, V  |& i- x1 I
IAA,O55,O,
$ ^3 @0 t6 g+ i+ ^' c9 cIAD,
+ i- W- ]: s2 k5 w# ^ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,1 j- v7 a5 V$ _$ s. J
I60,O,D65,
7 [  |& I0 u1 ~7 A: KI60,D6D,VF5,C,RFA,OFA,K20,
9 K: V& Y  v& {" w" H8 u" `IAD,
9 Q( d' p, k3 z( n: \( _IAE,O,VF5,C,RFA,OFA,K20,8 ~" A( h4 O% [# A8 o" O! k6 e
IAD,
) e  D+ N+ J/ [IAE,O,
  A1 C* Z' T* e' Y6 ?( I" MIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
. b9 c/ c; ~' b9 K# [& b3 C. gI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
! k4 I7 Y/ b, C) n0 t$ ZIAE,O,' d" ~+ r# ~. O) C+ K' e7 d! q$ `
e91,d2F,d00,4 `8 ~2 `' I5 m! [
e10,d83,d2F,P3_K#! v, c9 u2 N2 [: G! ~/ E
P3_K#
" [9 `7 p+ ~. V* {* Y4 d

' T" @; [& q" d: @4 F  m7 z. _1 ke23,oFA,/ v' t6 F: U4 h* {: k
I90,VED,C,RFA,OFA,, \: j9 ]! d/ H# H+ E
IAD,
' S, f/ }  y& o* W5 vIAD,O,
# i9 K6 s& X/ [/ G% f; u0 v" d3 wIAE,V03,C,RFA,OFA,/ A- y# r) U6 O
IAD,4 V8 h% `1 o& n( B; `9 Y
IAD,O,: O& \) V8 j  C5 h9 W& p/ U, T
IAE,
1 p% z" X2 c9 z; Z# G8 vI90,VED,C,RFA,OFA,- Q3 L) t) Z; b4 V
IAD,1 D# v/ \7 K' v+ \( h8 O
IAD,O,0 Z. L2 k7 j4 [
IAE,V05,C,RFA,OFA,- o  u2 I6 n) R4 J# k- \
IAD,0 i# r3 ^, Y- n
IAD,O,+ m) T. |$ _6 M3 A% v9 S0 y
IAE,O,9 t) b- s: b1 Y5 H4 F
e90,d2E,o00,: t  I0 I5 X; ~. b: }1 o1 L
e91,d2F,d00,P3_K#
# a0 ?, Y  ?0 [5 H* l1 FP3_K#
+ q& ]* n- U9 f

/ ^9 `! p7 z" ?IAD,VF3,C,RFA,OFA,
6 R- B0 \4 y/ x) k  hIAD,9 M5 s0 i6 @7 e8 r% N' m
IAD,O,, p7 m4 `* L1 P# H
IAE,VF3,C,RFA,OFA,- i# k& r+ q- [
IAD,- [: C8 w  @5 P: q4 y  W
IAD,O,' \/ ^) {5 }8 Q9 D  _  {) @
IAE,V20,C,K10,RFE,OFE,K08,
6 m2 ]% A/ L. R$ o5 H. b9 v- gIAD,
8 z5 |- u2 z$ c2 r1 M* AIAD,O,. p9 C2 _, t: x9 X
IAE,V20,C,K10,RFE,OFE,K08,
' m1 _. p4 h4 e9 g& O7 {IAD,
* ]* R# W' [% R( y" A( tIAD,O,: E$ V" [- w* N! `7 R4 r$ b. Q
IAE,V20,C,K10,RFE,OFE,K08,! l9 l. C  l6 j3 i# L
IAD,
. ]! s/ f4 X! M5 {, OIAD,O,
  K. S: k( S6 QIAE,
$ r3 R, ?& c+ V& r0 b/ n9 U6 ZIAE,VF4,C,RFA,OFA,8 H9 ~" k; L% {; V! M/ P4 j
IAD,' }" g  N4 J3 c& h7 s6 h
IAD,O,
$ s' J4 N5 ]! n/ D; f2 K4 ~6 JIAE,VF4,C,RFA,OFA,
4 X+ |6 G: V6 _+ Z' Z; KIAD,
( p" r* T# D0 k; Z; _) jIAD,O,1 p$ L. O, s. V0 \3 V& y) e
IAE,VF2,C,RFA,RAB,R41,OFA," [$ W! s+ F# |& G; k
IAD,
  m' r$ G5 d/ b& ~IAE,O,OAB,# E3 ?1 C8 Y1 o( e  d5 V
IAD,
9 c  ~0 `. A: V8 fIAE,O,O41,/ e5 d3 X1 E; b5 d5 z6 |
IAD,! a1 K  X  f! D0 r. u) o
IAE,O,VF2,C,RFA,RAB,R41,OFA,
% L4 t2 j4 N# ^  y* O% f+ H% xIAD,. }2 r6 K+ [; T; O- G
IAD,O,OAB,
8 k$ i/ {3 z" G. W% fIAE,O,O41,1 N" J9 m) _+ z/ o- k0 t* J4 Z
IAD,9 R. @) Z9 N4 O, a: M8 i7 R
IAD,O,! y/ G& k) J) e' U  W, _0 Z# E7 I; n! X- |6 H
IAE,VF2,C,RFA,RAB,R41,OFA,  X' y+ f% n# M( j
IAD,, E5 W. s1 o6 a$ {# u3 P
IAD,O,OAB,
" r/ l: O: f0 _IAE,O,O41,
4 l" j. `6 N3 m; [6 \0 Q  S6 LIAD,( A5 x% h$ u, [
IAD,O," J% W) L; X' J7 F" |
IAE,
- @/ U: X/ U# u, k0 k" k, BI90,VED,C,RFA,OFA,
+ n$ d8 T0 @$ W3 e. F. VIAD,4 |$ s0 o; q7 C) P5 r& f
IAD,O,
/ ?# A& _+ ~% i5 Z! d, P9 PIAE,V00,C,RFA,OFA,
8 D* ]  I, `+ r1 a. j0 w" D2 dIAD,
( j  I. k* b2 H0 `IAD,O,. K0 q: V4 i* d  R4 C, ~
IAE,0 @( `5 n* g% A4 U3 F4 J
ID1,DDD,# C6 I* a  ]2 L9 v0 l) p2 O9 Q4 Y
ID1,DDF,
% i- m9 `" L! _' _  ?ID1,DDF,
5 m9 B/ B( F( A7 A$ ?! y3 {3 X, t" @e22,oFA,! a. }# y+ i3 x
e83,
8 d/ |3 j/ P1 oe83,& @! M" O, A8 T5 _
e83,0 l$ r0 ]& O" U& w* `
e83,$ j$ `, w9 K3 p6 L
e83,
9 x2 y/ S% s& Q7 Z% Fe83,. o5 l/ c0 k# D+ I
e83,9 U5 O: c1 n, y* Q1 |% h- z( g
e83,( U: ^( r. `/ p
e83,
1 B: Q, J% Z9 O6 mIAD,  m- O& |7 ]; ?& Y/ M6 }
IA7,- L- o. `: q/ ~
IAE,O,1 R- b0 Z4 W* E0 M5 I$ m' X# \
IA8,
: P* g) o3 z% a: o7 SI60,D44,
) z1 n$ a, p( h6 C4 RIAD,7 W" e% b: L4 A0 d6 }; Y5 C% J
IA7,1 F3 b$ Z" Q3 l' H
IAE,O,
  U0 s" K4 z0 T' B: e1 H7 h  _# Q" yIA8,VFF,C,RFA,OFA,RAA,OAA,
( W; v8 l5 y! d* i/ A& M: e8 MIAD,O,K20,2 Z/ ~8 ^* s( e1 J, ]4 O! h; x: _
IA7,; E' b9 k$ o' |" H
IAE,O,
/ J1 k1 D3 s2 u. B  RIA8,# {3 K. H* M0 ]0 @* b. C2 e  U/ |
I60,D04,5 U" c! q5 ?1 a: w$ P5 ?* w
IAD,
' D& k* H! m* {3 ]) z1 i2 MIA7,* q# U4 w4 Z3 I& |- H
IAE,O,
3 X/ @* z8 O# XIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,' o" ?, K" N* F, f; H+ x2 \  N
IAD,O,
8 z2 x- A4 @! }IA7,
5 n0 G. j( h5 o6 l) NIAE,O,  C9 _" Q. O0 m0 {8 A$ Y
IA8,4 t7 G( q( A) a: \$ f; [8 r
I60,D44,9 c: N+ x8 ?1 {" d4 i
IAD,
% U/ x( m8 d7 o) q* I5 s/ u6 hIA7,( @! |9 l" P% m( L0 C8 E& ]7 O
IAE,O,  Z& C: R% I1 `. |
IA8,- ~7 M5 \9 ~! Z
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA," }8 U0 ?1 P- c; A& C2 }
IAE,O,( `/ Z& J& |% M% x, E4 w3 ?
IA8,( L& |1 u$ y& i  v' ~, T  l# d
IAD,5 x" e; ^! Q6 [
IA7,0 L* r. V2 Z+ V# `
IAE,O,$ J6 V& }  h  K7 [
IA8,
( ]. @" }! S* J9 r& }I60,D47,* D$ X2 q/ N1 }; \
IAD,
& o  f. p: ^3 a" F, v& ~' w) {IA7,% U! C+ N4 t" q- l% y/ \  Q
IAE,O,/ q/ |+ j$ b" F
IA8,
$ T& {# Q/ l: K( X( q8 eID4,VFF,
; `$ n: j3 {9 ie83,C,RFA,OFA,
- {- c# S- o: n5 T- h* C7 Ve83,O,RAA,R00,OAA,O,O00,5 }& t3 i: h; J! q- L' T( x6 Z
ID4,VF2,O,C,RFA,R00,OFA,O,O00,  B! s' w( C' x6 m( p" D
ID4,VE8,O,C,RFA,OFA,
" R% S. h* L/ A- [: A: ^ID4,V00,O,C,RFA,OFA,
8 Y8 r+ T: V# a8 w* A, {ID4,VE6,O,C,RFA,OFA,0 ~% u  V' m7 y
ID4,VE6,O,C,RFA,OFA,
! N6 r2 a1 z% {ID4,VE6,O,C,RFA,OFA,  f/ u, Y2 f0 \  H- B5 n* G1 i( y9 }8 _
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,3 `( m/ R# E. J0 M; B8 y
ID4,VE8,O,C,RFA,OFA,/ [+ w( c4 C. y. n' p: q4 Y
ID4,V03,O,C,RFA,OFA,8 R2 k+ p$ E# T
ID4,VF3,O,C,RFA,OFA,$ Q$ z7 w8 j6 v5 \
ID4,VC8,O,C,RFA,OFA,
5 U9 l" N, O# {* CID4,VF3,O,C,RFA,OFA,
9 ]/ C) j/ ~; R) l( V( K; r' |ID4,V64,O,C,RFA,OFA,
9 h# J! S% `0 h6 }: K! O8 SID4,VF3,O,C,RFA,OFA," J9 [( `! \" j  x7 p
ID4,V50,O,C,RFA,OFA,$ x+ d- ]# K4 u0 r
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
6 d# w1 V$ Y4 w! oID4,VF3,O,C,RFA,OFA,3 e6 m* n7 _' e/ W. n8 e7 O
ID4,VC8,O,C,RFA,OFA,
- m& Y& `, o4 T2 o! t& y2 V) q7 mID4,VF3,O,C,RFA,OFA,
2 d, G7 o+ y, J- p; g6 VID4,VC8,O,C,RFA,OFA,
" L) Q% x: l1 wID4,VF3,O,C,RFA,OFA,
$ H4 F3 S! Z, O3 O/ H$ W$ OID4,V50,O,C,RFA,OFA,
7 u- y' A6 F9 R7 I. b. BID4,VF2,O,C,RFA,R03,OFA,O,O03,
: K6 j  T3 F7 B8 A7 [% A; qID4,VF3,O,C,RFA,OFA,
. L/ d( r. o- a) YID4,V64,O,C,RFA,OFA,! f5 }; \6 {0 ?; {
ID4,VE8,O,C,RFA,OFA,, j( P9 _, }; n7 M+ L# [: @
ID4,V03,O,C,RFA,OFA,$ W' ?8 X0 k# E2 X* w$ L' ^
ID4,VF4,O,C,RFA,OFA,O,0 W# W" E) W0 _5 U' k: \
e83,
. ^9 S$ U0 s1 K; L" Te83,
, K7 P4 ^7 Q, q& B  oe83,
/ h1 r3 B# E5 N6 c, d/ g* Le83,4 [7 M' i3 Y& n! [  N3 m
e83,
( h5 L8 |0 [! Z2 Q* a" be83,
/ k# n4 }$ y3 n* xe83,  G3 @- w, l8 ~1 f
e83,
* n. S9 h( l) c5 w( k; ~6 s( ye83,2 _# |" [- H5 ~. O6 F1 P
e83,00,C8,2E,+ V' B0 ^% _+ r
e83,00,C8,2E,
! ]5 D9 c! n: w2 be83,00,C8,2E,
* K$ {( k: X! t# ie83,00,C8,2E,
$ \1 T, ^9 D0 H9 e5 B. y$ }! me83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,' u- ~; q5 g2 M9 C3 h6 M6 W$ |
e83,; y  q3 S- o/ X3 @8 a: [

, T+ h0 I4 {. K4 C2 b$ f3 P2 `3 T7 V: F
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复' e  `) K9 j6 ~1 g! u+ K( R
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。& ?! c$ Z% v7 t- D+ V" }( V& ]
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!, B7 v3 E, c. A" N/ ?/ x
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。1 `7 F: o3 a1 \
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
& s9 H3 y8 q% ^9 c- }1 A* c$ l. a9 pBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。# |2 \+ d5 y9 L# @  I& M* B
Device(EC0) {7 M' K6 M# J5 r7 a* c
Name(_HID, EISAID("PNP0C09"))" |* ?5 X6 ?# _$ K$ o  |
......
  _/ b. K9 R+ P6 u9 u: Q, q4 ~+ v}
) k8 i/ h1 E/ V4 Q  A/ l  z5 q7 tPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,- J0 i4 I5 D8 G# i
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等); t$ n/ \. d' ?  f" T( E- a' R
2、   
+ T! l/ p, |3 o7 ?7 l/ LName(_CRS,ResourceTemplate(){           - H4 p& S( V( W- o8 |9 O
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
, G6 Z$ [& R$ E9 G" h' c4 Z1 x- n            IO(Decode16, 0x66, 0x66, 0, 1)
$ M0 ^4 }% O* _+ E( ~& \        })
% {6 n6 {7 c8 w- d1 z' U3、接着就是
+ [0 R& S2 w+ \- ~% k) FName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
5 T  m. s5 b  f0 g, e6 c3 K5 @通过这个声明,OS知道EC和哪个GPE关联起来+ e1 m; ~* S! z) u7 s5 m
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
! e2 [: K0 i, c! L8 |EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。  y! h  G) G% g' Z8 |! m
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。: ?. ~; X# j: d# {+ o! d5 Z7 b
3、OK,看看linux是如何处理SCI中断的2 y% E# g7 k5 y) q0 `( t  q
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute! \9 D. l  P) P  k3 W4 S7 e( Y
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
0 D, \$ u& N* ]4、EC接到0x84查询命令之后,就把Q事件号传给OS
, p4 g! p7 ]% D$ gOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
# ^0 K5 e0 }; w- U5 n" z你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了  ~+ o2 r/ M. ?1 l# v* [
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。* W7 f/ n/ J2 a" {
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
4 Q( U$ ~4 w# A7 l  w9 N% J$ w: Vbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
1 i7 F3 u7 l0 W7 V& [版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 07:15 , Processed in 0.073818 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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