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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?/ e# B7 H, F6 E* C' A$ w/ i2 e
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
+ o6 ^7 g' l* K" c3 y) ], o" Y- N5 j今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。, O; N( `- n6 s$ F% Y( D) q* e
我们在操作系统下用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的命令
! N1 @8 h0 L+ ?( R5 }D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check; u! W) E% E- l; T
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析2 T* S  u; e2 J$ h+ }& l" l
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
2 G0 g' l. X. j# {6 Q4 m$ l
1 a+ J. x% _- G4 y4 i0 K. aVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,4 {7 D7 a3 p/ y6 u! W8 w4 a7 O
e83,; O+ y9 z: m* o$ H! ?' ~, `+ T
IFE,
9 {- o% e. w+ u0 Q7 X$ H6 ye23,oFA,8 I6 W" I( b, {* j. g0 r8 {
ID1,DDF,LPC RST
. ?: m. ?$ E+ ~3 N9 g- nSwrong LPC RST0 {# N5 Q" Y0 K5 l. }
LPC_Reset_Flag=64
$ |( [- I' W7 R5 I3 `( \- h9 W6 n

7 P, @  q1 E( ]' `) p7 YID1,DDF,* r: M+ y1 p0 |" k. W/ o: W
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,2 @& e; }+ S0 L
ID1,DDF,4 @1 [% b( M5 o: |8 O
I90,VED,C,RFA,OFA,V01,C,RFA,
6 b2 g/ t1 ?. R0 r, n8 R. X8 JID1,DDF,O,OFA,O,
1 {5 @. a* n; _" V* X8 M/ m5 k$ he2A,>IDLE
( P) O- _* `, L/ {) A3 hoFA,<+ j3 N, g  J& n9 }; G
e00,
: v7 _' @# l9 B/ W* j% i9 _; eIAA,O55,O,
( n. G- {' P+ T# i3 X5 }; OIAD,
9 N. E+ A9 H* w. W* oID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,8 c/ y2 |9 v- O5 U$ m
I60,O,D65,) N& ]; ~9 S* `
I60,D6D,VF5,C,RFA,OFA,K20,' P( y  f2 ~( e
IAD,
3 b( ^0 |: D) ^4 t- X8 nIAE,O,VF5,C,RFA,OFA,K20,
% }+ D- R' J! _/ `4 XIAD,% @* T( \+ T  T, D9 ], R* A
IAE,O,% c1 j- h9 b2 |9 B$ S
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
" W: h3 D2 x2 h0 a! I9 Z5 GI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,2 e& S- r3 V: S! t6 i, E* X9 [9 L
IAE,O,
* Q! [$ T' Q/ w. ~) Ae91,d2F,d00,0 c3 j0 {( _. E" u
e10,d83,d2F,P3_K#5 C! [/ J- c' l& w
P3_K#

9 b/ R4 x- C6 A
6 s1 L  a, t! z* S) a/ J8 k% @e23,oFA,
) Y1 W$ d$ j8 R+ W7 n6 `I90,VED,C,RFA,OFA,
& h' ^/ x+ i- }IAD,
% h& j* f# n0 r- s9 |9 K& aIAD,O,4 s) T! p( y% {& w* T" D9 Z
IAE,V03,C,RFA,OFA,* r# {; r2 I  J. S
IAD,* ^# U- J2 P0 D: @* [* l  o: M' m8 k
IAD,O,0 u( l8 H+ Y0 a' O# {, S
IAE,
" O/ j8 j6 l$ c+ @$ h: OI90,VED,C,RFA,OFA,1 B9 ^+ ]$ K4 A( t
IAD,$ J: z' X+ }& g8 g* `& M
IAD,O,
2 l" |' k4 m9 lIAE,V05,C,RFA,OFA,& Y8 G. z* k# z7 U7 A
IAD,
. S3 q* G, l# gIAD,O,
. C" U9 \" m- }/ b' bIAE,O,2 F! U4 m0 W) C7 n, E/ x: _4 b" B
e90,d2E,o00,
- W$ j" n, A7 x9 n* a' ^e91,d2F,d00,P3_K#! R0 K* w  {" G2 B( ]& @3 A
P3_K#
3 X. A0 r# ~3 Y) ~1 {: f0 w
  A+ g5 r: I$ T  B+ ^
IAD,VF3,C,RFA,OFA," X! E. _0 r. b" f& ~6 P6 l
IAD,
/ k9 \+ L- v" FIAD,O,
2 m$ z* R: [% a3 ?4 x. Z1 }IAE,VF3,C,RFA,OFA,/ G  c  D0 A, e# h
IAD,
( ~3 {- @6 |' M1 T* H/ ?, wIAD,O,
" I8 G! `( m* ?/ Y9 fIAE,V20,C,K10,RFE,OFE,K08,
: t7 r5 [) S' X) ~: ?$ RIAD,: o& G( S4 d9 |* w
IAD,O,
/ u" i  Y  l! y% O# @; pIAE,V20,C,K10,RFE,OFE,K08,* Q, p6 n, [0 W, F  r% ^. @( K1 |8 j
IAD,
9 G5 f4 U6 `2 X3 ?1 j! x# ]. D+ @* mIAD,O,( ^3 p. |  c) p8 q: {
IAE,V20,C,K10,RFE,OFE,K08,6 Q& ?+ G# D7 Y/ O1 C% @
IAD,. @/ w; p% N2 T" u8 ^3 M+ t" p; i
IAD,O,, P& _3 T: S7 \  Y- ?: f
IAE,- ^) g- T5 b0 c2 o
IAE,VF4,C,RFA,OFA,
- p# P) L3 |" [$ B, b$ N/ ZIAD,
0 d# K1 R' j9 C, cIAD,O,
, A! I0 t+ m+ G0 W( u2 XIAE,VF4,C,RFA,OFA,
" i! ?- v  U" X* H6 B/ j' ?0 X4 gIAD,
. j, E0 i6 K% l, J4 nIAD,O,$ S5 D. d5 `9 Y* u$ j8 N4 |
IAE,VF2,C,RFA,RAB,R41,OFA,  A8 N5 O; y3 C0 Q6 s
IAD,
4 d7 l6 |7 ]$ }: [IAE,O,OAB,8 h: _0 E7 ]7 B8 u3 e3 _; I
IAD,+ X& b, N  z4 X2 g
IAE,O,O41,& \" {7 i1 e% j) C1 g- M6 r: ~
IAD,( H7 K( {: b8 Q
IAE,O,VF2,C,RFA,RAB,R41,OFA,
+ I; Y6 ]6 ?! l  FIAD,* i& w7 z! x2 R8 F9 H
IAD,O,OAB,$ D2 B4 p9 d( h% {' P; o
IAE,O,O41,
( {1 Q# _% w  @! c8 U6 IIAD,
/ r0 f0 @* P7 i( N. v, A8 UIAD,O,
% |% m" R+ g( g7 K' _8 y8 Z& j& VIAE,VF2,C,RFA,RAB,R41,OFA,; {0 j# h: C* N2 N4 g, ?. U6 M
IAD,
- K. f; k1 X. W! T; H( p7 FIAD,O,OAB,
) {' Y6 ]4 x) R5 o2 H' g7 T) LIAE,O,O41,
- |) M& D  }* qIAD,
* u, J; g' O, sIAD,O,
1 v1 v5 D3 W" E5 R9 V+ OIAE,
8 D& Y. Z, G1 {0 D8 A6 jI90,VED,C,RFA,OFA,  }2 B& J! g2 _) r& w8 q0 l5 ]
IAD,: S4 P0 _7 ^* P& F* v6 m( X4 m
IAD,O,5 m7 U. ~1 _2 p% t! J8 Z
IAE,V00,C,RFA,OFA,; @8 E! v: U3 C" Y/ l1 I
IAD,0 d& `( x! f; i
IAD,O,$ B( Z1 ]0 w) r) @' I3 [% d; W# V
IAE,
3 T! p, V* \- I7 b' p2 X* SID1,DDD,6 y2 I' m: W" V4 \1 c
ID1,DDF,5 J" \7 d* o: Q% ~- @/ ]% `
ID1,DDF,  z+ O; W; t% n  H! m1 l( H
e22,oFA,$ M, _* ]7 P3 V
e83,
. c4 N( C& b9 k  E7 ]1 `& H7 Y# te83,1 H+ ^* n  Y7 u" @$ U& j+ |
e83,
  Z8 a8 ~( L; ue83,
7 R6 V9 Q% r$ g1 G, S- m, |e83,
/ G/ t+ C% Q  N7 D3 Y8 |e83,
0 E" p8 p5 t2 Y# [4 ^+ xe83,
/ \7 n$ t  E5 \' X1 X! A) [8 y! @e83,- }' A+ n, e; a/ D/ h
e83,
- I* a+ Q* q" k$ a' ZIAD,  U0 n+ Q. c- S; C$ f
IA7,
2 Z. t7 _5 Q. F# b0 k1 R4 y0 eIAE,O,
$ B9 r4 s' R$ L! r4 vIA8,# j2 d; L" `/ @" f1 J
I60,D44,
" I- j' _, i( w4 B/ C3 u& ~IAD,
* }7 P' s0 n3 N4 j4 @1 ]( R+ }( \IA7,! }9 H  G0 I$ ~* v
IAE,O,: Q/ o- N6 t0 W
IA8,VFF,C,RFA,OFA,RAA,OAA,
) x' M6 U- W7 Q! r1 gIAD,O,K20,1 `+ ?: Q3 M# `) v0 z% Q: f% D
IA7,  h9 @6 H5 _) G5 f
IAE,O,
) _0 ]' Q3 y" Y. ~' S' w6 XIA8,3 y3 r/ Q9 B! j
I60,D04,) m% w, Z( A% e- G
IAD,
, |6 r& F6 c8 L- w6 `" {$ c8 \IA7,6 j$ h3 r$ N. R  Y( Y6 p& v
IAE,O,
) N  `  ~  P  |& pIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,) `/ V- Y- U" B2 @
IAD,O,4 p/ N5 X3 Q- h7 P
IA7,' M( k+ t/ r; e6 X, B! p# G
IAE,O,! D8 v/ @1 v& Z5 `4 U' X; W' M3 P
IA8,8 \' r1 }% p1 p
I60,D44,6 T$ Z# z/ g" b) ?
IAD,
$ |; ?. C  r" bIA7,
. [, {! V9 q7 Y* h+ BIAE,O,
2 }- v3 C$ ?4 H2 R4 V% eIA8,
9 E+ C3 w$ A( _2 tID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
( h$ }/ u" J0 V" Z' gIAE,O,
5 F5 F( g/ u! X5 b! CIA8,- J- f  w: ?, F+ B" D
IAD,
9 C0 Y! ]# w, L# t% K! LIA7,
$ ?$ \  p( k9 \4 S1 V* }IAE,O,+ v, g" h+ Z1 l7 l$ S
IA8,
6 ?# J5 R( ]- O& W, oI60,D47,) s1 X( F5 |" a
IAD,
5 Y! V$ s; s) L: \0 W. P4 o, sIA7,
4 y$ e+ T: \/ g+ P! z, J! y" L) }IAE,O,7 D5 `% Z) D3 K
IA8,
3 F  X. V" T+ u& G2 G: @! P0 `ID4,VFF,
3 c  ^4 H, t- v, z4 Le83,C,RFA,OFA,
1 v, u6 C; _4 he83,O,RAA,R00,OAA,O,O00,
, o6 A3 p+ _: e6 N. f) PID4,VF2,O,C,RFA,R00,OFA,O,O00,
7 W2 h- ~3 X9 a3 xID4,VE8,O,C,RFA,OFA,' k4 }5 L0 a+ G  H: V3 L8 h
ID4,V00,O,C,RFA,OFA,; O* k! o8 Y* t# L) t0 b
ID4,VE6,O,C,RFA,OFA,
( x3 {0 L& j' y, hID4,VE6,O,C,RFA,OFA,
& O5 K4 r/ O  IID4,VE6,O,C,RFA,OFA,
4 R( a! t, _3 ]: a3 R8 B- iID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,8 M' o* x4 G$ j2 y: J* W; N
ID4,VE8,O,C,RFA,OFA,& M) i5 K4 b5 L; s3 @2 y, i# `
ID4,V03,O,C,RFA,OFA,
% G% E& \) U- t. z$ t: H1 L' BID4,VF3,O,C,RFA,OFA,. s; g9 _  W" S, ^; h2 \
ID4,VC8,O,C,RFA,OFA,( ]5 q) k" R( A5 B# _9 t
ID4,VF3,O,C,RFA,OFA,& d* c& [7 j" v7 b8 v4 a
ID4,V64,O,C,RFA,OFA,$ X  V  c4 e* K# _$ I
ID4,VF3,O,C,RFA,OFA,6 c. X/ Q( A9 `+ F* l
ID4,V50,O,C,RFA,OFA,+ M$ ?6 u+ G& b. L
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
* J/ ^& o& u' }4 w  xID4,VF3,O,C,RFA,OFA,- M0 \' y0 I4 j  ?% X/ @& o: v
ID4,VC8,O,C,RFA,OFA,: w; {$ V! }* d5 l8 [( |8 V
ID4,VF3,O,C,RFA,OFA,
5 b7 k: h: n( o; SID4,VC8,O,C,RFA,OFA,
- d7 p6 i/ y- a8 KID4,VF3,O,C,RFA,OFA,; B9 Q, A- ^  V/ _7 X
ID4,V50,O,C,RFA,OFA,
% X. R! T! X- T# GID4,VF2,O,C,RFA,R03,OFA,O,O03,
5 T* q/ n/ B! \ID4,VF3,O,C,RFA,OFA,3 f. J. Q( E* f* h8 C0 G* }
ID4,V64,O,C,RFA,OFA,
) d# l2 z2 Q- I* wID4,VE8,O,C,RFA,OFA,, x! V! f0 {* J) A6 m' r
ID4,V03,O,C,RFA,OFA,
+ N' a* r# e( F! |* ~ID4,VF4,O,C,RFA,OFA,O,0 ]) u6 J7 G& w, ?  P4 W2 K( D
e83,% f( Y' ]0 Q4 a7 _& _! q: o
e83,! X2 N' l# l$ [: u/ l5 O
e83,, F, }2 k1 p3 D' A, f( j' n+ K
e83,
& }7 e. J2 N3 re83,& Z8 R7 w( L: a
e83,
# j1 N# K, ^4 k* ee83,; [0 K3 t. D0 D1 l! {: d
e83,
8 Q0 ]5 R9 o# I0 He83,
3 c' p$ W7 m; O: a4 Ze83,00,C8,2E,
4 C: N) C9 ^* o; k6 Ze83,00,C8,2E,
# O. R, i3 x3 O3 U3 o; y) G$ x, ]e83,00,C8,2E,7 q% b7 v/ p" T* t4 Q2 I+ j
e83,00,C8,2E,
' O& t4 Y% q3 i4 ~3 z+ ^4 Ee83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
; @7 l4 K" x9 te83,
3 B& a6 B6 N0 `( ~, u

5 N% E. _) _9 i) d* c9 O5 t  v! ~- y& b  @2 c' {. y, s; Q
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复! }: N9 l( M% }! y, D
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。; _1 d7 t0 A% Z8 a# o
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
4 D; Y2 g% D) ^      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。: k* C- J7 |/ f# W2 ?; T( o
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
- ]0 y3 w/ p1 J+ [  C/ d, KBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。9 v4 n, ^# z- g. q1 `" A7 C
Device(EC0) {3 ?1 w6 l7 D. a) F
Name(_HID, EISAID("PNP0C09"))
/ i' u7 E! C# }: q+ j......
9 |8 {0 t2 \  H}
: T7 t) w# L8 e4 d+ ?; I& JPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
/ e# U. A1 [, ?- g. ^6 ~就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等). w) w4 j) y9 a1 T, J& Y4 e
2、   
2 E7 y' Q0 d' v; C; tName(_CRS,ResourceTemplate(){           
3 u7 b6 K2 h" Q8 k+ C        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
7 |* m: g; u: l4 }$ R+ g            IO(Decode16, 0x66, 0x66, 0, 1)- g8 V6 S) W  N4 r" I' `+ p5 |
        })  T$ O* C- l0 D
3、接着就是: n4 U& p# {6 e; g" r
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO76 R7 ^2 E) \2 b* M
通过这个声明,OS知道EC和哪个GPE关联起来- r  x8 ?" [$ g( U) j0 \# x4 ]+ \
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来5 M9 a0 t7 K; [* O: p: N. `
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。( @+ u' }) [: C0 B
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
0 Z( m& g2 L* o) }# }& K/ O" s3、OK,看看linux是如何处理SCI中断的4 x' I* A, w. u2 `# ?) a
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
, G' m  a: P7 B. J2 E1 h4 Xacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
5 ^) M0 Y, g1 ?7 {4 Y, W4、EC接到0x84查询命令之后,就把Q事件号传给OS# M6 t2 m3 V: r: W4 `6 @, L, p4 Z
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分; V' n0 b* p# g& D2 m( r
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
* z; m- `) |/ `9 w. t9 v" H% i有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。. t- t4 d8 k5 x+ [4 N; l
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
: y' g- u0 k# b: w& v' Hbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
  \8 x/ P, b$ D版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-25 14:08 , Processed in 0.411194 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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