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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?- W3 W. K$ j: x; ^0 _3 @$ f
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,1 v: [! h& i/ D
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。& ^' M# @9 X2 y; G9 v9 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的命令
' n: `* _  U  g# h! vD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check& e& w) U& L" R4 `3 \' T. j, q. _6 A
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析6 Y5 j- O( Q; J/ O. s8 s
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。1 H6 |5 }" H/ M" z( w$ ^

- [& l( |( \- ?- M* L6 k7 R+ NVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,% `4 \' Q1 V% C
e83,
6 h# _  a# N8 B2 I0 P! n: YIFE," m* D7 ]" `! c7 N
e23,oFA,( X! H% Z: ]5 ?
ID1,DDF,LPC RST0 p, S9 |) {8 I/ B
Swrong LPC RST/ ?& R: l+ {! k4 W9 a" M6 j
LPC_Reset_Flag=64
! q& t1 v2 d. G6 X, w
4 F7 P7 r+ `8 I) U
ID1,DDF,
4 ^0 d. ~, F- U* K" c- zIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,5 O; Y  o# K9 F
ID1,DDF,& B) s: R. V% f1 p2 z1 C
I90,VED,C,RFA,OFA,V01,C,RFA,! I) d& ~, ^: s' u
ID1,DDF,O,OFA,O,
1 ~$ |9 c, Y6 `2 p3 Xe2A,>IDLE+ E, n* E, b( |) |: h& n* M
oFA,<
; s4 x6 j2 {( t  Z7 W8 B0 _, ie00,0 X  p9 T$ X' `/ P, f8 C/ A$ w
IAA,O55,O,
6 A9 k; v+ a) y. l7 Q# X2 ^IAD,7 z5 u  x" l: k& H! o3 p( N
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,0 c) u2 h' E3 {% R- l
I60,O,D65,
8 {7 N! Y0 |# K: yI60,D6D,VF5,C,RFA,OFA,K20,3 p4 L/ f5 R( O/ U2 b0 u8 F  G
IAD,8 i- r* T' G: I1 @9 X- ?5 w
IAE,O,VF5,C,RFA,OFA,K20,
. e" ]- ^2 O  X4 X' zIAD,: ~9 n) V. e8 X# t4 R$ g1 _
IAE,O,
5 l  Y; N5 I% F1 SIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,6 h# g. |% H4 R% L
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,- d3 Q9 C7 j0 {* k( q4 y9 X: I
IAE,O,8 i8 D1 r! Y2 W; o. y  V9 r
e91,d2F,d00,$ j! w; ~  x" M" c0 T
e10,d83,d2F,P3_K#
( m* d: _& |6 s$ {+ l0 x3 PP3_K#

' {; _' Q3 T8 V! u' N/ D. R4 Y& A4 X/ ^5 m: N; A0 r
e23,oFA,
/ G' D9 l8 Y+ y+ [0 @* Y; d- }0 HI90,VED,C,RFA,OFA,- T5 A1 U: X' {6 Z* @
IAD,
$ I  |! _9 ^6 r  i8 o% CIAD,O,9 A7 Z# V- A. ?* Z7 C+ n* J
IAE,V03,C,RFA,OFA,
6 M$ y3 t( p6 n& J3 rIAD,
+ l9 Q) M6 D# N, aIAD,O,
* X  D' \- N( t) v3 g! x# zIAE,3 F; v2 N" A0 [' Z9 V) ^
I90,VED,C,RFA,OFA,4 j$ \( _9 _8 C* B* ?
IAD,. e- m7 Z# S. {6 u
IAD,O,% Q! D' u, f! r9 j0 a3 q  a. Z% u
IAE,V05,C,RFA,OFA,
8 F; F& ]. m% pIAD,8 p8 i: z; D# E$ M2 m
IAD,O,
, R6 j: p( B8 F1 JIAE,O,
+ g3 u5 I! z9 v, e* ?2 O/ Pe90,d2E,o00,! O6 f' ?7 E% M8 I# ~+ _( H2 H
e91,d2F,d00,P3_K#) X  K' u8 X- x& ?* o+ B
P3_K#

4 r; j& q/ N+ j2 v0 c& e8 W
3 w7 f: m3 K9 i. M/ I) o* \IAD,VF3,C,RFA,OFA,
7 c' o4 R* h! v1 z5 R  B0 jIAD,; M2 i0 i0 a1 S8 Q6 N- \
IAD,O,1 {2 _7 u+ ]9 h, P
IAE,VF3,C,RFA,OFA,
. t* F# y- ~. t  n( q4 N- y& ^* KIAD,
7 H0 u% |/ o) d+ kIAD,O,0 M; P8 ~) o( r- _
IAE,V20,C,K10,RFE,OFE,K08,
# J- {3 k2 }! o% R! m- W4 LIAD,
/ J- S1 S9 H" `# dIAD,O,
2 c. Q7 _  z. ?# G% o- ]. vIAE,V20,C,K10,RFE,OFE,K08,- j8 Q' \" I' K- w# V
IAD,( ^& j' s9 v6 ^( s0 Z
IAD,O,3 Y: S& H. I+ c2 `& h
IAE,V20,C,K10,RFE,OFE,K08,
9 J5 ~: |2 J( R: `5 P! S* |8 ?1 d) tIAD,4 P4 D) A$ v* e  o5 o& y
IAD,O,
* i! }  X; o; m9 Q+ }* lIAE,! U1 c0 B( T( Y
IAE,VF4,C,RFA,OFA,7 y+ f9 J2 c; D2 Q) X( d1 P0 g/ i
IAD," A' a6 i7 Y% @9 _+ n
IAD,O,  e( y6 J$ T9 s% [- A% X
IAE,VF4,C,RFA,OFA,' R- O7 l" W# A8 k! o' X3 I( ?& d
IAD,5 r/ G3 j, t3 a+ K
IAD,O,* I! c1 b4 x4 Y" n* [* h
IAE,VF2,C,RFA,RAB,R41,OFA,7 E- W. N' P/ L9 f
IAD,
/ [) c9 p4 T5 J" T- L& o+ K8 iIAE,O,OAB,
4 C" m  j! ~% r" aIAD,7 g- p7 D( h4 D7 a/ D2 y
IAE,O,O41,
7 @# _; X: F9 {  n- S/ T  }- z  TIAD,) G' y" l# s8 T( m6 f; D5 D; w; ]( Z
IAE,O,VF2,C,RFA,RAB,R41,OFA,, H! `1 c; Y- @" t) A3 R' i
IAD,- Q0 p6 _3 z6 \; y# b; c7 ~
IAD,O,OAB,
% ]; x4 l7 [9 m( z8 w5 \! RIAE,O,O41,+ S- U* I/ L3 ^6 C- w5 @  Z7 H
IAD,) X. z0 n$ X; W
IAD,O,6 `4 B" N- g' P, m
IAE,VF2,C,RFA,RAB,R41,OFA,
" U2 `. ^$ I1 A# C2 xIAD,
0 H3 B, I7 C. d1 bIAD,O,OAB,
$ i& v$ [* G" m  ^; P7 N- U3 dIAE,O,O41,# A& Y0 g/ S' r' ~( \* V
IAD,& D4 {5 S5 X* f8 \8 a- N
IAD,O,. E! K8 F0 }7 r6 z# i0 W
IAE,+ j6 E: B! K+ J( D0 g: g
I90,VED,C,RFA,OFA,4 ^; ~. b( S: R1 {4 r2 r$ J4 O6 y; z
IAD,; X; k  N0 `' n6 ^7 t
IAD,O,# F# R! k/ o% C5 Z
IAE,V00,C,RFA,OFA,8 z5 ?0 M6 o0 D* A, a2 g
IAD,, Y/ Q! e5 w7 @4 ^  J# U& v# C
IAD,O,
$ ?2 c( V2 B/ S" QIAE,% u5 R4 d( J8 h) @# A: `  X) C
ID1,DDD,
: I7 J  p4 V+ Y# T% i: ]. tID1,DDF," V4 ^7 M1 m- p6 f7 _+ |
ID1,DDF,
) Z8 Q/ `" o$ ~: F8 De22,oFA,# t  p, X0 c% S; U$ y
e83,
7 i" h3 ?8 D. t1 O. Ke83,  L5 A7 O: n! P9 n( O* [" L
e83,
% _% R& q6 r+ T* a2 W* S# }: Q% Ge83," D1 W* o3 [) k4 _6 V4 i' J! D
e83,) y* g0 q$ S/ R
e83,! v5 Z7 Y: H% D
e83,$ D, G( h: v/ G7 U4 b4 Y
e83,6 R/ L+ x' c# ^+ i  M
e83,
, `1 w4 L7 @1 T3 zIAD,5 H0 h. q5 a  L
IA7,
& ]1 K" T/ M  f# U) B& }, ZIAE,O,
4 \9 b, c5 s. @' W7 mIA8,0 Z/ m% o3 d% M$ d) U4 u
I60,D44,
+ Y9 ^  r; D; o2 a5 ]IAD,8 B. a3 M* C7 G& C( ~" W0 y
IA7,3 a) ?- J8 l# w8 Q) U" H- g
IAE,O,% e% y' J1 T! {9 g1 V9 U
IA8,VFF,C,RFA,OFA,RAA,OAA,* X" R, J( l+ h! j* @. L: Z
IAD,O,K20,
% _. e2 l( s1 O" V* JIA7,. m( C0 V( C7 i  H/ f  w
IAE,O,) l* ^$ {% g( @7 t
IA8,
+ J/ n- |, X* E' wI60,D04,
; X7 q" X# h1 jIAD,
7 q& k3 g# q2 r" t& x2 SIA7,
; s/ ?* f9 T# R- pIAE,O,
4 i/ z1 G5 U6 YIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,6 |, I7 q$ p/ @0 u) o  O0 Y8 _
IAD,O,+ W" u6 l+ E6 W/ `' f  l
IA7,
; q. s) K4 b3 f, x5 `/ W6 wIAE,O,
% E: P. |$ T# a0 M6 ZIA8,
: V/ m1 o, E7 S* NI60,D44,: E( w% w2 K* K( v; B) `
IAD,
, x9 }; r( k, Q* [: lIA7,
" u0 r. N, [# fIAE,O,% E) f2 z) J$ h# [
IA8,% S  x" O/ x. z; N
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
5 s2 C  N& {; ^; PIAE,O,
3 h6 I+ {( h! F2 sIA8,8 W* i9 Z5 W2 s- `8 z6 Q
IAD,) ?, u3 p6 n3 `' Y) l  M2 T
IA7,
/ l# F8 L, C+ m2 K7 w- j6 ^IAE,O,
- }: L$ b3 D* gIA8,. J" Z8 D0 h0 y, q' W/ I
I60,D47,# K/ Q, B: R: |& s
IAD,# u8 g# U  g9 I$ P  R
IA7,
! L0 B* @7 R: W5 rIAE,O,
* r0 o4 C6 l8 U, X0 d# t: R; SIA8,- E0 N" S8 G3 H+ k
ID4,VFF,
( n% P0 N. K1 j- d% q% l7 f* \e83,C,RFA,OFA,. ~6 L! p7 L# g- L: ~
e83,O,RAA,R00,OAA,O,O00,
1 B0 @6 h" M0 E# _) ?6 e( O; _' @ID4,VF2,O,C,RFA,R00,OFA,O,O00,2 u5 L! J6 {) n  ]
ID4,VE8,O,C,RFA,OFA,+ K( g8 D: J! j3 y
ID4,V00,O,C,RFA,OFA,
9 o+ F' e# B( c" i) d5 ~ID4,VE6,O,C,RFA,OFA,
0 w" C3 u# g. l( B& O# v9 E, L( B2 iID4,VE6,O,C,RFA,OFA,
4 d+ s& K) e* p2 d* n- sID4,VE6,O,C,RFA,OFA,
7 t* l- I) V  C' C+ J; i# h# O1 B' RID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,0 K" G$ @! T) ~7 X3 C" A
ID4,VE8,O,C,RFA,OFA,
  A: W, U1 [$ h) g1 J; uID4,V03,O,C,RFA,OFA,, u5 Y+ A! `  k4 j
ID4,VF3,O,C,RFA,OFA,
/ V/ G# b6 Q3 u1 ]3 E/ a# M8 |ID4,VC8,O,C,RFA,OFA,) p% W- q/ I7 \$ J* Q( e
ID4,VF3,O,C,RFA,OFA,
8 R. k& M! _% {2 ~4 G  aID4,V64,O,C,RFA,OFA,
. E* i9 d0 E) l+ M; R3 SID4,VF3,O,C,RFA,OFA,
* g  e' z  T/ }1 hID4,V50,O,C,RFA,OFA,
. E6 Z7 [( j9 |2 y' P& k. WID4,VF2,O,C,RFA,R03,OFA,O,O03,. ~9 D0 @4 \; i0 E2 u/ Y6 @
ID4,VF3,O,C,RFA,OFA,
) x. E. M! o- {$ w4 w- w2 ]ID4,VC8,O,C,RFA,OFA,
9 w0 ]2 l9 Q  v: \  ~9 a+ zID4,VF3,O,C,RFA,OFA,
+ g; R6 o1 c9 i7 u' K+ X/ @7 C& X' Q# C) OID4,VC8,O,C,RFA,OFA,
* c3 m, q. d. G% T# Y7 g" r! gID4,VF3,O,C,RFA,OFA,
' U# F5 @  C) j$ _ID4,V50,O,C,RFA,OFA,
  a, n5 j' n" @$ rID4,VF2,O,C,RFA,R03,OFA,O,O03,* e$ U. |+ H( e+ F
ID4,VF3,O,C,RFA,OFA,) V  r2 e7 g- ~# q& m; Z( ^! e
ID4,V64,O,C,RFA,OFA,
3 M! t4 W( L. h* g) G! m$ ^% xID4,VE8,O,C,RFA,OFA,
7 c+ l/ T, M9 R) X/ ^ID4,V03,O,C,RFA,OFA,. ]) I( c) f6 v4 i! f* I- G
ID4,VF4,O,C,RFA,OFA,O,  f: v9 X; R* d% |
e83,) N+ F  H' J2 v# P7 X: ~- h
e83,
) g+ o7 `. P: B: H4 f2 `" Z' m; y' Q; ve83,5 z; {+ R, F# ]' f4 L) o
e83,
5 l' O7 y1 d+ Z1 |- De83,8 t7 n0 j+ q/ Q. e) h! s! Q$ g
e83,
' J! l. f8 y9 ?& }: s( ve83,4 x' c3 Y- ^- H9 w- u
e83,
6 L6 `' p" r' _% N7 ?0 Qe83,3 H' b& r1 m) {, v' ^1 q5 e1 S4 b
e83,00,C8,2E,
8 }- S  r3 m3 C' U( qe83,00,C8,2E,
$ y4 x6 L5 B! o/ ^e83,00,C8,2E,1 s2 m4 q- ~( q! w. W' |# @
e83,00,C8,2E,
: N  l: A) T3 a7 p. D, Ue83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
* l7 t# S2 c0 C" ?  V! z+ ve83,
5 U$ \- d' n# j. v5 Q  }0 r9 a

! c! m- V5 Q* Y# ~% i2 Z3 C$ v+ }9 O' o# R$ ]: C
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
8 L( N  o' r: H( {* A+ m' c     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
- g/ V7 G& u+ z) D# \5 j0 A# F      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
# V' O) O. \1 Y4 O, i      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
& r/ I' U" k* J5 q5 k( m" a      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
! x) U9 i6 W1 ~0 E: KBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。) p4 f# a$ \7 t1 F1 V: \' m
Device(EC0) {; s+ Y. E7 K! K% o1 g3 y
Name(_HID, EISAID("PNP0C09"))# U& x! K) H6 N5 x1 a7 m& k
......" y  ~5 j" I/ N: g8 x4 M
}" A7 ?6 I( P# U3 X* C7 w
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,/ ^! d3 K) c6 a, Q9 A
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)$ J4 I* Y2 _  b% V, E
2、    " I# ^7 }. ]7 @) f4 d! A
Name(_CRS,ResourceTemplate(){           
3 ^! r4 x( j! H        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84, s. b% n" T7 A& ]
            IO(Decode16, 0x66, 0x66, 0, 1)
* K) B& v& C- Q/ Y1 P3 {6 @% q: n        })
) M( w& a. e8 E. K+ P4 z+ ^, O3、接着就是
% u1 w$ A, m$ `5 ZName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
0 t6 m8 M0 x1 o7 G( T通过这个声明,OS知道EC和哪个GPE关联起来5 F  C: ^- B4 ^' N. m7 i
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来  l0 K! t1 D0 ], K# o
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
) U- l. v& t) x1 F$ K而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
( K1 b& R/ H+ x6 r4 u) e$ f3、OK,看看linux是如何处理SCI中断的
6 h+ h# B  M; macpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
& \4 ]6 ~+ p0 b/ qacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
/ x) P0 G$ _: V7 G6 i5 ?( ~, a# ~4、EC接到0x84查询命令之后,就把Q事件号传给OS; B1 l( @' a; F' i+ k- Q
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分+ z" t  R+ ]/ W; I0 Y6 |0 Y
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了  w; R/ h1 h1 t; q' G- p* r5 g
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
6 B4 z4 s$ O! \" Y/ R+ c: N& J4 m  _qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
/ }  n) i9 s# \: H; Sbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
0 e* v* I3 _) b6 F5 |# T5 M- H2 w8 Z3 Y版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 15:29 , Processed in 0.057458 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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