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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
6 u/ w- h& n  ?: ^8 T2 l看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答," @/ p7 H1 P/ ]
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
3 ]% U+ m  d9 r* N我们在操作系统下用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的命令
. f1 M# I4 Z7 X9 ~) z7 Q! gD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check6 x+ @& S' f# n# i/ c; c* p
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析- U8 X% g! h) @$ @( j, V; g, i
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。# j% X2 d$ Z" l) W6 ^
! i. M* [) o" K3 S! }0 q- o  h7 W; a6 K
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
* [$ Y" I& x% H1 C  p/ ze83,
8 X, J2 z/ g8 B" U; H! ^+ {- }IFE,
: W2 V' b! R7 G2 D; E) Se23,oFA,  q: |" q# E* p" x7 \. G8 S
ID1,DDF,LPC RST+ e7 o  k6 {- y9 B; ^
Swrong LPC RST
2 C" R. I* @# WLPC_Reset_Flag=64

0 {0 h) r) ~6 a& c  q4 z
! c. q" @& C8 x! tID1,DDF,0 Z! k& ?0 E7 t4 Y3 k+ }2 l# I
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
4 K( F# G4 L# K+ y2 aID1,DDF,
% h: g5 s0 t# g5 ?3 R+ P3 vI90,VED,C,RFA,OFA,V01,C,RFA,
$ m5 c0 P) o( A' j3 I1 p. WID1,DDF,O,OFA,O,. g* g* P$ U: U7 S
e2A,>IDLE
, r, l" P& H" |8 t' L# YoFA,<: K0 T  w. u" _; v4 H: e
e00,
: k+ s3 R/ E0 q1 Z  D3 mIAA,O55,O,
: f) H$ |; S* `; A" F6 rIAD,0 ]8 `9 O) b  T& l& S: k/ p. ~
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
0 @3 H3 d! L7 i6 pI60,O,D65,5 X* v, m  ^; w# |
I60,D6D,VF5,C,RFA,OFA,K20,' f2 M4 {( p) [
IAD,4 W4 M! g; V1 h& n
IAE,O,VF5,C,RFA,OFA,K20,3 Q  j1 L! E' \* E# t
IAD,: B/ d1 |% A( J0 t- A
IAE,O,
/ K0 |  R, g, w; g' KIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
" S2 F8 l2 r4 q7 oI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,. r! Z6 q& O1 z3 `- E
IAE,O,# l6 G) u- P- Y  a8 y
e91,d2F,d00,) U: P' z# {- g3 W: ~
e10,d83,d2F,P3_K#
) y2 t6 ?& e& _: ?. x+ a. wP3_K#
3 ~0 G9 n( C# B9 w

1 [* j0 o: d/ m2 m9 Z, Y) Pe23,oFA,
" N% f/ P  h" O' }* QI90,VED,C,RFA,OFA,
# w$ j3 [' D. ~9 PIAD,5 Y1 q! s: ?% n$ |0 U1 w% n$ S9 x
IAD,O,; \1 R" h: `; I* }% f- m+ q2 \3 \! k9 D& G
IAE,V03,C,RFA,OFA,4 _! e' R6 X$ z+ n, q4 j
IAD,  ^$ v( ?% s( h+ {* @
IAD,O,
2 c( |% f! u/ i* N5 x4 pIAE,: A) A# L# x0 j: e- A; y) r
I90,VED,C,RFA,OFA,% e) J% g7 _, f% g, c& b$ ?  C
IAD,
; ?& s; M" U' H$ z1 p' ~IAD,O,+ S5 A* x5 {  Y! q: D6 c+ r
IAE,V05,C,RFA,OFA,
0 C! i" {" Z) m- _IAD,
8 P7 A" p$ s- |2 {3 }; o. |3 O) hIAD,O,
& r$ N8 s! o: o- \, N3 \4 tIAE,O,3 l. ~  d& [$ g
e90,d2E,o00,
! I3 m% Y' C% x+ ^0 ]e91,d2F,d00,P3_K#8 u/ L( w9 H8 }+ X, x7 C# \, a
P3_K#

' R9 x# M8 c  T. O4 c
& x, f4 M# R4 r1 q/ ]0 AIAD,VF3,C,RFA,OFA,
9 I4 D* D  Y& V3 ?" O: PIAD,
$ k0 U7 r6 k8 O! l* u9 {IAD,O,% j  k- _9 [3 F, H: \
IAE,VF3,C,RFA,OFA,0 a  J) N7 F# s# ?
IAD,
6 d% ~9 ^- m8 C, t7 ~5 ?IAD,O,
8 e% J) R/ j2 \; d! K: eIAE,V20,C,K10,RFE,OFE,K08,+ P; U* a% L7 z+ |$ B4 i
IAD,
9 A, |8 H- \3 hIAD,O,
' t. J$ U- [4 q! mIAE,V20,C,K10,RFE,OFE,K08,
+ W7 X( `# @! f0 qIAD,8 }0 k4 l+ v& O6 h
IAD,O,6 i# ~' ^5 [4 c" `
IAE,V20,C,K10,RFE,OFE,K08,
8 Y- o( `! W# s- ~2 EIAD,. z' q; Q9 |- @; H
IAD,O,
4 |8 b- u2 _: d2 G0 W! ^$ K3 oIAE,
: L/ R8 X3 D/ U  x% G3 N, HIAE,VF4,C,RFA,OFA,# T5 L! J+ N: J1 F2 d+ A
IAD,& e0 F" i" ?! d
IAD,O,( d& Q( M4 J6 T% c
IAE,VF4,C,RFA,OFA,. E2 W2 a# Z4 q. l4 E* B
IAD,
5 E, l+ X; n3 d( @1 N) MIAD,O,
. q8 K7 z; h* Q9 v* FIAE,VF2,C,RFA,RAB,R41,OFA,( g6 A) v- L5 n7 W# r- O
IAD,9 _  u9 n) z- L' i
IAE,O,OAB,7 R( J* u+ X3 U2 g% J7 L) p# R
IAD,
6 X0 s" n% d3 Z+ f* W) tIAE,O,O41,
# x; w- p: h3 CIAD,1 W. h2 r8 p3 b* G5 ]; T, w; ~
IAE,O,VF2,C,RFA,RAB,R41,OFA,
( H$ @+ f* d2 }4 }. R4 j% c7 BIAD,: T% l7 h. e+ B: c9 Q- v; ~
IAD,O,OAB,2 J9 w7 M3 T7 G
IAE,O,O41,( ^* ^' t& }, \3 G, ]0 T
IAD,
4 \8 H4 r- h1 s) i" ~3 V: oIAD,O,) N- L8 C7 M. R4 ~$ X* ^* R5 L: B8 M9 N
IAE,VF2,C,RFA,RAB,R41,OFA,/ R4 i& P& U* l+ W2 c& l8 i- M* U
IAD,/ t5 Z5 g5 y; l6 I! A  {* v* ~
IAD,O,OAB,
+ H# U/ i& h1 X. ?IAE,O,O41,8 t8 }. O0 ^/ h5 ]  X! P
IAD,* u. }! @3 \  S' F- V) X
IAD,O,
. x6 z0 H* z8 j$ AIAE,: h' J4 |( M& P" ^; o$ \9 [
I90,VED,C,RFA,OFA,
( t( v; k9 I7 B" y" S2 U5 F4 WIAD,
0 B9 [1 A1 a+ p/ f: JIAD,O,
( z. e4 P7 }1 C, t0 TIAE,V00,C,RFA,OFA,# L  n1 I- {- c% t8 h$ z- Z$ [' A
IAD,  W6 A5 _# `# }% }
IAD,O,
( t8 ^) K+ r' X2 H$ SIAE,
4 E, f8 m) g" z2 ^: J* iID1,DDD,4 u, q" r& G8 G8 y- O1 R8 h
ID1,DDF,; G5 }2 B2 g* o5 u- t6 Y
ID1,DDF,
. X. H% x8 I; A- Y0 |0 d; ie22,oFA,+ H! I. r/ S3 v( R/ K: z
e83,' R8 U3 L1 N4 R
e83,3 Y# P6 D6 d4 I0 u( L
e83,3 ~1 F$ z- b! `0 J! n: k7 }9 h
e83,& `$ _6 w4 L, m  _2 f  A1 f9 G5 r
e83,. B# T3 W  z0 n% }0 }
e83,
: @$ |3 Q( F, `; S7 T+ n9 l+ Je83,9 y; q8 x$ I7 g3 q( Y5 \
e83,+ U; d8 I$ K7 q
e83,3 d& Z2 N, O# J! y; w& x
IAD,
: J6 l6 T$ Z& C* I( hIA7,
* w$ Y& i# w; C8 B* ~5 J, J/ t% kIAE,O,
* S% R/ W5 N& A7 _9 S3 a! rIA8,! H3 w8 \% q( e- T4 n) a# Y( y
I60,D44,5 M1 R; y3 _. v! H7 J6 t# G! U1 |
IAD,
2 b: }* y+ b! u/ ^8 `IA7,
6 C& z; i! T. }6 k5 gIAE,O,
7 E0 @( p" M! v* M" U' k1 P6 FIA8,VFF,C,RFA,OFA,RAA,OAA,
) N: I# s) }3 |IAD,O,K20,
9 }3 I' b, t& ^8 e3 r* n$ LIA7,: U# h5 n2 k2 s! D  G
IAE,O,
; O8 q( j# X1 K! V5 w! f8 hIA8,
( J3 w1 X1 {3 i5 D* |  FI60,D04,6 K5 I. S9 G6 G' i  ~( Q5 x0 r8 A
IAD,2 s- Z4 o0 j. C2 a5 E/ n
IA7,/ ]+ a& N/ k. p' y
IAE,O,4 D4 T' @; }. d2 Z9 [7 u! d
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,$ g+ t5 A1 ^( O7 o$ T
IAD,O,4 }  }+ M* M! t+ K
IA7,
- @" p. z, D" t+ m+ l+ v9 g" eIAE,O,
! T+ l. Q5 `5 q: R# R  {IA8,: k# h0 X; {! {2 r( o2 e
I60,D44,
0 u2 }9 r0 [; x8 Y& Q* t3 d  mIAD,
; i5 B" u, D9 W5 d4 ]IA7,
' b, I/ m1 _$ d( K+ Q: S+ L! tIAE,O,
4 B" o) m- p! X0 r" h8 j* EIA8,1 d+ M" y4 }, K( ?3 N6 }
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,7 a- k/ H  y1 B9 r# x! Z
IAE,O,
( ?  O8 a8 ~. }IA8,! Q; s2 r, A( k
IAD,
0 |5 l& }" o: h; C3 \9 ?3 JIA7,8 w3 j0 f6 M2 W
IAE,O,
+ T; a: ?/ u& i* }5 zIA8,
) N8 B5 t- O$ `0 G' t. {% f, kI60,D47,
# o- w4 j" f; y  DIAD,
9 v$ B+ n4 a3 a$ [. \IA7," ?% c# p4 I" r2 ?' e, ]5 o
IAE,O,
7 d+ m! k/ V# a0 DIA8,
4 N& Q# Z0 F6 }/ s0 z0 aID4,VFF,
3 E( J/ \# A5 we83,C,RFA,OFA,3 e4 D& Q5 I5 I) T* d; S' Z
e83,O,RAA,R00,OAA,O,O00,
5 c! P; f, k4 ^ID4,VF2,O,C,RFA,R00,OFA,O,O00,5 e0 `5 y; g0 D% s: Q( y
ID4,VE8,O,C,RFA,OFA,
/ |& A* f# k# L  K. h; ZID4,V00,O,C,RFA,OFA,. [  z! Z6 \6 W, ~! g: E
ID4,VE6,O,C,RFA,OFA,
: D) m: _$ u% h6 w) CID4,VE6,O,C,RFA,OFA,
9 J  ]8 K) e" M* a* q+ FID4,VE6,O,C,RFA,OFA,
( N- d* s) Q8 g& y2 Z2 vID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
# y, D2 A& |9 s8 X& l6 cID4,VE8,O,C,RFA,OFA,
& R$ ^/ W: Q0 f  ^' m/ a% Y, hID4,V03,O,C,RFA,OFA,9 v# P- t# q0 ]/ k0 o
ID4,VF3,O,C,RFA,OFA,; N) ?6 l+ v+ j
ID4,VC8,O,C,RFA,OFA,
2 ^' d9 o, x( a7 {1 b& f$ P( pID4,VF3,O,C,RFA,OFA,8 C- s  s/ M2 \! Y2 n5 q
ID4,V64,O,C,RFA,OFA,
5 m0 _4 q+ w! Q: N9 K6 ZID4,VF3,O,C,RFA,OFA,3 O8 x/ y7 L' `8 M2 u. s9 W. v
ID4,V50,O,C,RFA,OFA,
2 W% A& Q" V9 ]% A0 s' jID4,VF2,O,C,RFA,R03,OFA,O,O03,& V& Y% p- V, U* P$ L* s4 p
ID4,VF3,O,C,RFA,OFA,1 k# w1 K( U3 R  }/ Q+ K: R
ID4,VC8,O,C,RFA,OFA,
7 o1 R4 I! z9 I4 q- U. d  x, S2 n/ FID4,VF3,O,C,RFA,OFA,
2 z6 h6 z  ]: \/ ^8 |" [ID4,VC8,O,C,RFA,OFA,
1 f5 t! c* p, n4 _# I9 }. L. u& ~ID4,VF3,O,C,RFA,OFA,
. R& f# H, P6 e% \1 ZID4,V50,O,C,RFA,OFA,' b/ }0 E0 y9 D4 l
ID4,VF2,O,C,RFA,R03,OFA,O,O03,' i6 [4 M5 S$ c  F
ID4,VF3,O,C,RFA,OFA,
& ^1 m% o2 z$ m* u+ N- w& k% O" Z8 CID4,V64,O,C,RFA,OFA,' n: f8 c" U$ z1 @8 G. R" K, G
ID4,VE8,O,C,RFA,OFA,8 g( ^$ c1 f; r( F& |" g; l3 a
ID4,V03,O,C,RFA,OFA,' M+ S7 Z* d2 i1 L& {7 P. L" A* s
ID4,VF4,O,C,RFA,OFA,O,( {8 b: B' ^+ n) {
e83,+ H) ~+ |7 \* O" x7 o
e83,
3 }% }+ R+ P, o1 [e83,
) G; J, d& q2 \7 s" N( se83,4 F+ Z, E1 F0 o! e' g! Y
e83," g  ^6 y0 J5 Z2 X1 g
e83,
0 e2 `' g+ r6 ne83,
* B6 Q6 A; U3 Oe83,. r: v8 U( n0 B: q, \: a* _
e83,2 M0 k  b2 R' C* L& h/ ^
e83,00,C8,2E,
+ ]1 N9 i& _% J! Ke83,00,C8,2E,4 o. S  R1 v6 C, C: E8 B' w
e83,00,C8,2E,/ C. \/ X  t" `- t& }
e83,00,C8,2E,
- r% r9 T* S8 m9 He83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,; H) o2 D9 H9 n3 h0 o% c
e83,4 v! I. B2 {9 b3 |! O  ^1 K

- v4 p5 T# U3 b: b8 Z
5 x0 j4 ]& l2 b9 U[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复+ _* v  T8 @5 _% m: F
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。. T$ m7 n/ V$ z. t) V* N, M) B% H
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!' N9 d9 F; l: u+ \5 M; W: Z
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。& `  a8 h" s2 z# x- N+ y7 E
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
' W! D2 \& d: i3 L# CBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。% h. [+ J0 b2 `
Device(EC0) {
( _( s3 ?+ K. \6 g3 wName(_HID, EISAID("PNP0C09")). U) Z0 ]  A* u6 D( b$ C
......; P% l8 ?0 l/ q( Z, H. W" H8 J
}; n' I$ C+ w7 j; [
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
" k0 I2 L* R# D4 k7 P1 A' N  k就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
/ J8 X& T& u" r* W2、   
) h7 g0 i! _$ {4 t. |Name(_CRS,ResourceTemplate(){           ' l& _2 v2 S0 T& Z' t- Y
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84) v( i+ [2 F3 J8 M
            IO(Decode16, 0x66, 0x66, 0, 1)
; i8 @/ L5 E/ X. D) g6 i4 z        })% f4 m& t& ]: Q& U, P. T- u
3、接着就是1 ]! P; q# A' d" {/ c5 S
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7! |5 N4 Y5 j! ~* |8 Z5 q8 c; t/ t1 d
通过这个声明,OS知道EC和哪个GPE关联起来, y& j6 @5 i: ~9 y
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
- Y0 u$ I% u' j& d4 O0 K; eEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
: c. P5 j. e, @而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。3 C$ }6 N  {- X5 C- h8 r$ Q
3、OK,看看linux是如何处理SCI中断的
! a, t2 Y5 l2 l6 H% oacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute5 s6 N9 d9 E  i5 i4 x4 ?& {8 K2 H: h
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
6 J) I' \* L$ Q) k3 c1 o4、EC接到0x84查询命令之后,就把Q事件号传给OS
  R! Z/ F/ z1 k" q/ _2 m3 k' DOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分8 u, c+ b9 g* T8 H% D4 T& Y* b, A
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
  m5 l5 n6 ]& W+ e. P! A有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。  d" \6 `1 C$ T
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
* ?+ }! M/ `3 k% `. _bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
( Z& A3 w0 \  v% o: y  e版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 11:33 , Processed in 0.131180 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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