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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
4 f% G+ P$ E$ H! n看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
! J7 j: K9 D# \今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
. l2 i1 P- }4 p* y我们在操作系统下用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的命令
# @9 ]2 [5 D$ M8 i/ @  N" \D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
1 u/ }% |* _/ c0 q- C4 t8 j这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
4 E. H2 r5 H+ b# L其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。6 V; @4 R$ S1 i  W2 I: K
2 }& X  r5 P* o' N2 j
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
7 J1 e3 q$ a# F& U2 i: Je83,
' V; C, {  j( l8 T  z6 FIFE,2 V7 C2 ]0 d2 d8 e
e23,oFA,9 @$ ]9 y5 U2 I7 z$ a+ O
ID1,DDF,LPC RST& {1 |4 M4 _( \& m
Swrong LPC RST
# Y. l/ v: j) H1 I3 p( ~7 t' jLPC_Reset_Flag=64

/ C) Y' A/ Z  M5 z- M& k; U# \# |+ w3 j! V" Y2 z* a
ID1,DDF,
& i) k$ u$ A9 c8 f+ bIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,6 s4 f% R! K$ T- S. p
ID1,DDF,
. v1 X* d7 K+ yI90,VED,C,RFA,OFA,V01,C,RFA,. w" P' _, \" q1 u; |$ D
ID1,DDF,O,OFA,O,) i' c7 I4 w: F. d8 t6 y
e2A,>IDLE
0 w- y9 w, U" \8 y% EoFA,<
7 k$ ~) ?  s; P/ He00,
2 q2 E9 R+ q/ JIAA,O55,O,
; S8 I4 ^+ a8 V* t) z( B) o1 o( uIAD,
% q+ O: A1 B; h( u7 \ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
7 S- q9 J$ `' }0 {I60,O,D65,
4 P* b9 G' G4 H9 R/ b  A& jI60,D6D,VF5,C,RFA,OFA,K20,; P9 B! U  K! {' [( L, U+ M0 E& ]7 s
IAD,6 \8 T+ _: B  m+ _/ B4 q) I
IAE,O,VF5,C,RFA,OFA,K20,, n( g; O( ?- ?! F% y  C1 a6 F& T* i2 T
IAD,3 m: U5 z% N% G# o' R
IAE,O,9 r( w, m* b! A* g
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,: {0 E9 N; v% i, _8 g1 z/ X
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,4 y6 i, y0 A, ]% x/ A
IAE,O,2 ?  P4 u- O9 a1 ~
e91,d2F,d00,
' G4 \- ^7 X! {e10,d83,d2F,P3_K#% C) ^# I$ u+ Z  ?/ s7 B
P3_K#
. V7 h4 V# u! C# E) K2 o+ p

: K$ S6 \' _) W" ]e23,oFA,
2 _+ x7 x. @8 a+ mI90,VED,C,RFA,OFA,
: ~; }+ T; |; I4 \# c; xIAD,
1 I, x) S9 W6 c7 zIAD,O,
$ V/ [' s7 D: d! s; t6 A$ [IAE,V03,C,RFA,OFA,/ C( O7 y. e: B& s
IAD,
1 |! g- ^" K) U( ~( EIAD,O,) r3 ]7 \0 [( _1 b9 l& W$ ~- z
IAE,
7 e6 b7 G; _4 T' CI90,VED,C,RFA,OFA,$ m& y6 H- }. q4 E0 V- D
IAD,
0 K% T3 |& y1 a+ c' `5 W4 [" s6 jIAD,O,& m% h- \  U, p: `0 }2 x
IAE,V05,C,RFA,OFA,
) g/ [$ N$ e! k1 u9 |2 ]5 uIAD,0 p/ {! F8 F8 V( \/ q8 n+ U
IAD,O,
2 X% @# i8 p6 P  ?4 Z" R3 lIAE,O,- K$ V6 c* Y% L2 K- |! m
e90,d2E,o00,8 Q- b# T% l  O' P8 h. X  T) R
e91,d2F,d00,P3_K#
( L6 ?7 I$ U3 VP3_K#

+ Q5 s8 U4 |5 S/ t4 n( l0 V% z! Q; Z: w$ c, b2 z
IAD,VF3,C,RFA,OFA,! ?; A* Y  Q% b" w, v3 t1 y* s
IAD,
' \$ V1 W- J1 ?# W" g0 j* A& s9 {2 \IAD,O,
4 b, w, q3 a" [: ~9 }' lIAE,VF3,C,RFA,OFA,: l. j/ S" |/ E: n
IAD,3 M8 |2 z0 U, U* h7 z/ G! `
IAD,O,
% P3 E8 K/ H2 CIAE,V20,C,K10,RFE,OFE,K08,
: |; g$ K$ w& t6 D- S, i4 TIAD,8 |$ g! H+ z1 ~
IAD,O," `$ h! Z0 [+ l  {  u
IAE,V20,C,K10,RFE,OFE,K08,
5 q1 ^# Q8 i. u& y2 b+ N1 b1 EIAD,
7 ]3 J, b/ |" O: U( C: w' P; YIAD,O,/ q, q% R4 a5 R
IAE,V20,C,K10,RFE,OFE,K08,
. ]* f7 v7 t- g: VIAD," l) [9 O6 I/ h( ?$ n/ v$ p2 W
IAD,O,
+ i5 A4 M; b3 XIAE,
6 I: `6 L( a: S: sIAE,VF4,C,RFA,OFA,
0 V- u" [. G' }! b4 gIAD,1 w' w8 ^3 K: f5 _$ `' ~' a
IAD,O,) f- F% J4 z+ }' y6 }+ Q
IAE,VF4,C,RFA,OFA,6 l2 n) B6 V- ~" ^6 z" W5 W
IAD,
2 G# ]! i/ d' T# ]7 l, U) sIAD,O,$ P- g- `- P! A  J6 v) [* ]  j, u6 \! e/ s
IAE,VF2,C,RFA,RAB,R41,OFA,
- B3 K: t8 v0 ?0 b  }2 NIAD,
! W! c" d* }. U" }5 r( I6 @/ {IAE,O,OAB,
$ Q$ X0 X$ n( f2 nIAD,
' H$ B1 z0 K% a5 s2 F/ _  M2 tIAE,O,O41,
- ~4 w" M" K0 w! _IAD,9 u/ j! ~2 x4 M) d0 ~
IAE,O,VF2,C,RFA,RAB,R41,OFA,( j4 \' f8 U( ~! R% M8 K/ g; e
IAD,
7 l5 R) `; p  N1 R# g  x# EIAD,O,OAB,, ^3 w  g) D+ d) G7 f' ]( q$ ^. U- o2 b
IAE,O,O41,, f; ~$ `7 O: i3 ]/ q! G
IAD,1 ^- [- N- e" ]: e$ i
IAD,O,
/ r& L/ q9 {! a0 p# z- [( n& dIAE,VF2,C,RFA,RAB,R41,OFA,
& K$ s0 l' j/ i. a$ A! jIAD,9 _) S# Y" E( |
IAD,O,OAB,
4 B& O1 u( b4 G6 N6 n4 ^IAE,O,O41,6 a: z0 J, N, S& e  N
IAD,
- W# B" r2 m  kIAD,O,
' r: B$ p, d! O' _0 q/ lIAE,
( V# C/ ]2 x9 iI90,VED,C,RFA,OFA,; O+ M. Y0 T5 y& r4 p! C
IAD,
. M& z7 A3 c+ qIAD,O,5 t9 T9 T9 R" O
IAE,V00,C,RFA,OFA,
1 E' [) v% a0 C: k3 _1 nIAD,1 l& I# v+ _6 G( s% n/ a
IAD,O,; J+ _9 Y# W* J/ R$ |& @9 t% k
IAE,
: K4 W$ C& G! P' s. jID1,DDD,
5 ~6 y3 b" Q) \( H5 wID1,DDF,
) E3 Y1 c: B/ z0 O% cID1,DDF,  s: I: X0 s& ]9 k  \
e22,oFA,
) U( c: \3 A4 ?$ We83,
: v( s# u0 j' ]3 Q& Se83,. Q4 `* Y& \: L) X& \6 ~" C
e83,- s) [- D6 o% C2 Q  a- u! Q+ E
e83,; j: |2 [* p* o$ ?
e83,& [2 v' @+ D$ N) M2 v$ z+ k" h
e83,
9 ]4 k0 c: c7 e) n- Z+ T; M6 ue83,
9 U# a7 U( K. le83,
/ i9 v5 }. k# h4 Se83,! b! A- t0 Y) b1 r% h& p
IAD,
! D* f/ z  H0 a0 q/ |) x: m3 iIA7,3 ^. t9 O; u1 }2 t" o3 a6 o
IAE,O,9 i' d3 ^2 l+ [! T6 Y0 h5 F
IA8,
. ^; Q# m) n( L" l% RI60,D44,
1 f1 U" ~& A' H7 ^3 E5 {$ _6 M: y0 UIAD,* b! K$ C- {+ M) F0 B# C$ f0 x
IA7,
- @& f2 r. ?9 P+ ZIAE,O,  h3 N' w( h1 ]* ^: q3 K0 y
IA8,VFF,C,RFA,OFA,RAA,OAA,
9 J4 U, @% g) j( f+ I) `  wIAD,O,K20,+ @( v: U6 _) L7 m5 S! O
IA7,
0 `) |. W5 O! b2 s- k* {1 L! LIAE,O,9 U4 E# K! ?1 Q6 `+ P7 j
IA8,5 N: s- [4 f$ L
I60,D04,5 E# y. I& I0 V* h- g  Z. P* j- J
IAD,4 z/ i4 I. b1 T
IA7,
- @( L, E! Z/ PIAE,O,
8 v0 c  e9 ~. xIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
, {( e' a. U7 GIAD,O,% ]9 ^+ f' Y  Y& i
IA7,
7 d/ K) p6 q; @! z$ R1 S0 HIAE,O,/ z8 l) o( ~# S) o3 P& E
IA8,+ E7 j; v' z2 H% s$ [  U5 D# W3 r; ?
I60,D44,
$ x5 v+ S$ F* L; |. uIAD,
2 t5 J5 S# `& l) AIA7,7 J" X5 L! v+ F2 O. _$ Y
IAE,O,
; D9 @6 p; M2 O5 G5 v% ~" m% s% KIA8,
6 N  h9 b# l8 k6 R9 T0 u0 W$ FID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,4 i3 _& Q. z% e5 ^) o2 i
IAE,O,; \4 p% E1 q3 e9 J& a
IA8,
& h0 ~) o( o- |6 f0 H- x: CIAD,6 _; H% U) ]  W1 }; ^: A8 W
IA7,
8 K3 Z' C, G# S! f+ v; SIAE,O,1 @$ {1 Q  g( q# v, k
IA8,
$ h% O( {* ^3 P8 X8 I" mI60,D47,
- W) Q& W$ x- i1 x) [/ q5 RIAD,3 P. y$ \0 P6 c) Q( U( `5 x
IA7,
& }3 e4 `  k5 `8 J6 fIAE,O,
. O$ E+ A# v. r- y% _IA8,
2 q0 Y- ^7 S$ m- b3 BID4,VFF,$ Z: ]5 k* k1 m+ `
e83,C,RFA,OFA,
4 R2 d2 B# R3 \& c% Z* ee83,O,RAA,R00,OAA,O,O00,
, O' N3 a: k! k  _' YID4,VF2,O,C,RFA,R00,OFA,O,O00,
6 O! Z# m% c6 Z$ ^! g1 ?2 ~ID4,VE8,O,C,RFA,OFA,
. k+ p! Q8 Y1 G) B7 h5 G3 ?4 ~0 E6 {ID4,V00,O,C,RFA,OFA,/ W; y6 I0 r5 S# r: G5 [1 \7 w
ID4,VE6,O,C,RFA,OFA,% u+ y+ l  K% I. T% A1 x
ID4,VE6,O,C,RFA,OFA,. s- [! z3 C- @3 Q; n( B6 H2 [
ID4,VE6,O,C,RFA,OFA,
, w+ @# q0 W" O, ?7 EID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,) W( c$ V/ M# e2 ]4 Y3 B+ o
ID4,VE8,O,C,RFA,OFA,
9 K( g4 U# w: x  w2 U; SID4,V03,O,C,RFA,OFA,9 W' Y$ p) h3 d  c& ?
ID4,VF3,O,C,RFA,OFA,
5 o! I& J3 @& a' x, N, W  \: l9 \1 UID4,VC8,O,C,RFA,OFA,
( x# P& h! ?7 x7 ^/ ?ID4,VF3,O,C,RFA,OFA,
$ F; ?4 Y8 y" `ID4,V64,O,C,RFA,OFA,
1 x: u! k' X3 H# g' L% g/ Z$ `4 ^ID4,VF3,O,C,RFA,OFA,
& s$ a) p1 s5 Q+ O# S6 X- RID4,V50,O,C,RFA,OFA,
  i. D$ r. v) e' M4 e3 }/ P1 DID4,VF2,O,C,RFA,R03,OFA,O,O03,
" y1 a" }' |5 h; S2 `ID4,VF3,O,C,RFA,OFA,
) a5 \' g0 T+ VID4,VC8,O,C,RFA,OFA,+ X( L' j& r+ s/ T6 C* m$ `5 f( w
ID4,VF3,O,C,RFA,OFA,0 I3 u, s+ r5 i  E$ E6 A
ID4,VC8,O,C,RFA,OFA,
3 D3 y7 b7 U9 ~8 k- T8 Y% eID4,VF3,O,C,RFA,OFA,' K- w: b" P1 L$ Y% @! Y
ID4,V50,O,C,RFA,OFA,7 e5 \+ _2 ?# u1 c* |7 N& r6 n
ID4,VF2,O,C,RFA,R03,OFA,O,O03,: q" `0 Z# U* a' N  g4 `9 S: C
ID4,VF3,O,C,RFA,OFA,
, J; ]& s: T. i/ K1 ZID4,V64,O,C,RFA,OFA,
* ?: H& v( n! U3 m0 X/ Z3 BID4,VE8,O,C,RFA,OFA,
# s$ P5 |6 |& {' D; S$ S7 K* fID4,V03,O,C,RFA,OFA,
( C6 S. v. }8 C4 O+ t: M+ N- pID4,VF4,O,C,RFA,OFA,O,
$ v- h( t5 x9 d5 z2 X& K9 le83,' x! d) b4 f; C$ w; T6 ?4 L0 l
e83,
7 B1 q% l5 \( ~0 `e83,
, a  w& p+ F& D$ p  j% Ve83,# R" v8 o. @+ _
e83,+ J- a1 Z1 w8 E  d1 i, @
e83,/ k5 m: V* |: F/ P! c7 C
e83,
* p/ G; ~( R! H( x0 U5 _5 @1 l! ye83," V  o0 f/ I9 E
e83,: F& r: h$ e8 |! D% D- N4 h: B5 C
e83,00,C8,2E,
- o$ Q4 X; v1 V- a$ s( ie83,00,C8,2E,  `- `+ }1 Y* T
e83,00,C8,2E,
3 v3 u6 s8 O, ?( Me83,00,C8,2E,
2 ^1 _! m) `4 {8 p5 Z( se83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,/ {7 ~* J1 N: b2 S. j
e83,
( X, u. L  r1 Y1 u# l. S2 l/ @+ m' E: X
' M0 ^9 I/ t1 w( J* z1 P4 I2 [7 b

: g0 G4 z" s" P# X5 C[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复5 R2 U1 w" v# W+ K/ w( s0 T% O: L' u
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
9 G1 a2 y& g6 T4 w      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
1 S+ J/ y, W: n) z' R      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
3 q1 [! _; ?9 J6 J5 i8 z      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!- r/ z/ O8 ]7 C! t# o+ e
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
6 D2 ]- o# V* Q# w9 `0 \Device(EC0) {
6 t, c# p( z% ~8 p4 k8 BName(_HID, EISAID("PNP0C09"))
: O) Z4 i* ^/ i......& }# O" J% k9 _& x6 k* x
}  l) `% d8 ?! [* N9 x, F$ B" p
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,  z& c6 V3 }* ~
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)# d# \# W5 C% V2 V5 P
2、   
8 a, v+ W* i: W6 h: tName(_CRS,ResourceTemplate(){           6 V, `/ t1 `( z) R
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84% G! P- ^  s( D; l, J  _
            IO(Decode16, 0x66, 0x66, 0, 1)/ H. Q% j% P+ [! q5 n: N
        }). y  ?  @6 E. ^" j* B
3、接着就是
3 q6 h2 N7 w4 b2 J! d! G  ZName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
6 _5 l3 q3 d5 S- e, i: {+ i# x$ {通过这个声明,OS知道EC和哪个GPE关联起来" F" n4 a# J% P* D- P. ^: i
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来: D( v* ?# m' Q  l4 W7 c4 n
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。9 v" V7 k) B1 `: P5 A* g
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
4 t1 ~% M6 l; b# w' j; Z' u3、OK,看看linux是如何处理SCI中断的
+ T# ^  G9 ?! Y' L5 Hacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute: t5 |- w' n5 W
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
( o- H& t! v6 O! x+ R4、EC接到0x84查询命令之后,就把Q事件号传给OS0 m1 k+ L0 ]( t! i/ }
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
0 G! V5 `/ y/ }' z! j: e你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
( p* N1 h. s+ b1 `: A有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
2 F; q1 _( J( @8 o8 v) o9 kqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm& h4 v( t0 x! h( x/ K8 ~8 D
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。$ A* G* d3 d2 M# z" z; z
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-24 22:35 , Processed in 0.042139 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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