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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
8 B; |7 d, L1 {: _. \% Q0 t. }看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,) |2 r# Z) a2 N& C6 B% C
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
3 B5 ^! W5 M+ Y2 s) H我们在操作系统下用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的命令4 Z2 t! T7 V  t: Q
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
9 t4 x9 K% F9 Q4 Z5 E6 K) T这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析! b8 N8 f9 k' H, d
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。; X  V7 n$ ]; e6 Q" Y' l5 N* B
/ _+ P; f8 |3 [. f# g
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,; a$ q: a' W1 R3 W  k5 U& q3 i
e83,
$ Q6 }* ?6 N3 X+ oIFE,
$ S# k$ b8 T' [  S6 @, e0 k! xe23,oFA,
" U! i* G9 z, M) q0 \ID1,DDF,LPC RST: R  i9 m* E3 F+ G6 |1 S+ c
Swrong LPC RST
& S" C/ ^1 u8 {5 ILPC_Reset_Flag=64

% w  H- U- O$ A
, _; s- C& z. u2 W* _ID1,DDF,
& U4 Y3 a) |0 A7 JIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
* O7 j9 M2 A: ~) cID1,DDF,
! g2 r; z- I/ W6 |% t3 }  c- \+ \9 mI90,VED,C,RFA,OFA,V01,C,RFA,& \; l1 G2 m) f: }6 i$ b! ?
ID1,DDF,O,OFA,O,, u* t+ ?1 C' U7 z; C8 ^
e2A,>IDLE5 ?/ S7 o: L/ r- Q. Q8 v
oFA,<; }* W+ m! G! y8 }) {  `6 k. n
e00,
: a$ m' w$ q( Q  `$ \IAA,O55,O,9 y8 W) m+ R  m& y
IAD,  o$ }1 Q8 v( Z$ i
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
& d* {1 `$ P; F4 b! Q7 L- |. u/ KI60,O,D65,; j. t: q! N  Y* S% V
I60,D6D,VF5,C,RFA,OFA,K20,% @4 W& b6 ^9 Z
IAD,. S" w  [  V, V# B2 I
IAE,O,VF5,C,RFA,OFA,K20,( x& f% w" c. f; I( e8 ]- y
IAD,  H1 H! q0 N4 i6 V
IAE,O,1 W8 Z: Q1 I( d. b1 U$ M' I$ ^
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,% C$ E/ c( M' a7 l% l( {3 E
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
* P0 T% G, P8 {IAE,O,
& Z/ _' s3 s  De91,d2F,d00,. y# y! P/ Z4 d6 r5 y7 `( V
e10,d83,d2F,P3_K#/ k# [7 ^* Y1 \; l, a# O) [
P3_K#

' g& C: s/ y  w/ S2 k
! Y3 j* @3 p/ k# r4 E; _8 q+ Ie23,oFA,; S2 d4 O9 H/ J2 k$ N
I90,VED,C,RFA,OFA,
9 P/ b; d# z+ D6 o  B8 K6 xIAD,
; m% p! f/ N, w# L! A+ a5 wIAD,O,
2 A) ]! l) T" d( U6 b3 o- E0 dIAE,V03,C,RFA,OFA,0 ]. M+ R9 L9 P% [
IAD,/ p5 K" d# J; b- Y$ Q1 K
IAD,O,
7 n8 s, m0 A: n0 d2 OIAE,& L, E& h- c9 `. u
I90,VED,C,RFA,OFA,$ f1 |! U0 a1 A2 ^9 q! e* ]8 ^( P
IAD,
. P# U8 p! k& @' I2 c0 l/ R* RIAD,O,
; |9 _; G/ {7 O+ r. u% [5 uIAE,V05,C,RFA,OFA,1 Q" |/ [+ ^4 [! W) x# z" N
IAD,7 h  u3 }, K) L1 y, I) ]
IAD,O,
, F, F4 h$ k/ q1 x$ X. x9 c" iIAE,O,
8 A% r& `3 Y7 Te90,d2E,o00,4 K2 `' L2 U0 q3 ?5 u. q' `1 z
e91,d2F,d00,P3_K#
% Y2 A  g+ e! YP3_K#
. x) @& a/ K4 |  h) x# |
7 O7 e) `' S0 }0 x1 Y" _- Z8 I
IAD,VF3,C,RFA,OFA,# m" D+ `' U8 q  @, f7 J
IAD,
$ z3 R3 _9 g) e" _6 o9 O- m) tIAD,O,& B$ }; n% ]( u, g2 ?5 L
IAE,VF3,C,RFA,OFA,$ K3 h0 p7 r/ l' H0 {' G
IAD,
! s$ u1 t2 M! _: rIAD,O,' d" i( w* w7 A# R% g. W9 D  j
IAE,V20,C,K10,RFE,OFE,K08,
  M( y6 {; n, n. A3 JIAD,
  g3 J6 {' g5 YIAD,O,
* Q2 |) K  y! H8 zIAE,V20,C,K10,RFE,OFE,K08,1 i7 c" K, F/ u* O( G7 }
IAD,
$ k& Y# U9 f5 \* U* ]& rIAD,O,& W! h0 T7 Q3 F3 x  v
IAE,V20,C,K10,RFE,OFE,K08,. \7 c9 G  \4 U' k. C
IAD,
% J' q0 r* }2 m+ l6 a; RIAD,O,5 M, N% s! P, R
IAE,% |7 _2 L0 k) U  t, W1 ~8 c2 I: t
IAE,VF4,C,RFA,OFA,
: P: G  c2 g& OIAD,
6 `' B8 G4 k" _% R: i% YIAD,O,
% U7 w. R: n  X- T* k* lIAE,VF4,C,RFA,OFA,6 @! C  k& X8 R8 D- R
IAD,
4 L' Q5 l2 z, _/ j& C1 A( s0 {IAD,O,% |4 j/ B1 q! s* u
IAE,VF2,C,RFA,RAB,R41,OFA,
- ]' s" [& y. L4 {9 O( \* b- CIAD,
* p! \. H0 f7 TIAE,O,OAB,
1 P4 I0 Q9 {% A3 }$ v. w' \& fIAD,% m) ]2 e5 _4 k- |
IAE,O,O41,9 w" U6 L) _3 c! k0 F
IAD,9 w% i8 u2 i3 v  |1 n) W) R
IAE,O,VF2,C,RFA,RAB,R41,OFA,+ {2 |6 d  Q2 h) r0 a# Q! A. c
IAD,* h- o1 q4 p7 z9 _7 l& u$ a! i: [
IAD,O,OAB,
6 Q/ V" A- a9 _- m3 l! I8 OIAE,O,O41,1 V8 T, e" I# B! P3 E0 R2 Z1 h
IAD,
  \) a1 t9 g. D% l- B5 w$ N4 oIAD,O,
3 }/ B7 u/ h/ ]! ^( F0 L! dIAE,VF2,C,RFA,RAB,R41,OFA,- U1 u( B" H$ R
IAD,
1 h  d! _( `8 E; BIAD,O,OAB,
& g; o7 I* _# [$ h4 oIAE,O,O41,
. T' R) a8 D- u6 Z3 |( Z( r- eIAD,6 v/ f/ r2 Q* ^  q6 l* v0 D( v% t
IAD,O,  Z( \, K& `8 H. w
IAE,  G& j+ y; `+ G
I90,VED,C,RFA,OFA,6 k& [# h6 q# T; |* q3 ?- M
IAD,
5 ^9 Z' F& Y1 V( n8 c1 `IAD,O,
- `) _2 ~/ D) ^/ B# p& SIAE,V00,C,RFA,OFA,2 `7 G+ ]! O2 S" m
IAD,
; A) q& ]5 y& A, ]5 `IAD,O,6 @# v; K) A* B
IAE,
  j# D4 h2 C/ G+ g! tID1,DDD,& L: a  H* q* f
ID1,DDF,
; {( j$ c8 k3 ]0 {7 KID1,DDF,) Y& `5 @6 u: Z+ G+ s" @1 Y
e22,oFA,  J2 r- ?% x8 r& o8 y! V' ]
e83,1 {/ T2 j  Y, ]. N& v0 F+ ~
e83,
3 \( L* s3 u( ?. ]$ Fe83,- b& U- @. a" @" `6 G' l# k0 a
e83,
1 y# m& R& J8 G1 Me83,/ f3 K% Z; F  {6 r3 s# K5 y
e83,
* S( o: c/ R1 h7 C2 ge83,: I- a8 \* G% y1 [0 B
e83,, {; n- X! {9 N& B4 `' r* a
e83,4 n+ Z2 s! O3 s: s! k2 K  a+ b
IAD,8 V2 f& I5 \3 D5 ^" q/ J
IA7,
3 }5 V/ ]0 z8 @- a& e$ b* `* NIAE,O,1 W  F' I7 a1 ?  x0 U7 c/ h/ ^
IA8,
7 d4 q" G! B3 d) U- y/ mI60,D44,
4 t( B/ K! \9 C: L4 PIAD,7 ^0 o7 j/ c7 j
IA7,: S( I! E% |7 }3 W
IAE,O,
6 j4 _$ `/ C3 u+ R2 OIA8,VFF,C,RFA,OFA,RAA,OAA,: f- \4 O: I0 E4 `8 M8 w& t
IAD,O,K20,
' |( e  g8 Y4 }% Z- }IA7,* b% l+ \# ^% x2 G+ f
IAE,O,
, z+ \4 j. x, X" u$ D3 G4 vIA8,
( ^8 ~, D. j& h# ?I60,D04,4 }& {5 @5 v' t  |- K. w
IAD,
/ u& W+ F6 u3 mIA7,! T) D1 D' P  U5 {! @
IAE,O,5 w; f" I- c0 u7 Q0 l5 Y0 V: e
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,- v- S+ m; b3 R3 P
IAD,O,, ?0 m- g9 @& \2 B5 S9 l: m7 }
IA7,8 x/ @5 P, ~; R; [7 S# }
IAE,O,
1 O0 X7 }8 T% u/ e! `& X7 i, CIA8,. Z0 q/ f. a8 l/ q2 Q- K) N
I60,D44,+ F6 j" r( i9 V% d/ o
IAD,. ]3 u7 g. M5 b3 o; q  [9 K
IA7,+ G* T  k2 X* K
IAE,O,1 t! l. S8 o: |4 k9 a# {) F9 V
IA8,
- O1 S- {0 m0 E' N% x, d: o; u# V+ i( mID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
: n: [9 M) ?8 d9 |$ D9 r$ u7 K. qIAE,O,
( V& z6 j. d0 ]# E  N4 Q: R% k; }( {IA8,
5 |: x+ A' f. f  |! j" o" SIAD,; S& x) l% _0 F: V" E# r7 T) u
IA7,, q( O' Z6 _+ G) m& S, R. J
IAE,O,0 q+ d$ P; {  F0 s) i4 N
IA8,
! \0 j8 }6 g7 a- `( Y7 EI60,D47,8 ~. M9 Q+ q2 F) {0 a) Q) j
IAD,
8 V8 H8 C0 o2 |  P+ l2 Z' mIA7,
( p6 Y& b$ w' J1 [IAE,O,
* w: s0 y, g; r: W, {9 f$ y5 tIA8,  y5 F( V+ U: a
ID4,VFF,
9 Y: C  ^6 M) V$ g( V- P$ u3 v5 Qe83,C,RFA,OFA,
: C, h. b9 x" M, q- we83,O,RAA,R00,OAA,O,O00,) |% f+ E9 n# L5 ^# s( m
ID4,VF2,O,C,RFA,R00,OFA,O,O00,9 A1 w. d# p) I- z2 f- f2 S( p) X
ID4,VE8,O,C,RFA,OFA,
" u: {( F$ E0 T5 ~. U3 C  _ID4,V00,O,C,RFA,OFA,
% n3 `5 v3 W" j' ]8 _ID4,VE6,O,C,RFA,OFA,+ \5 M- v; m" y! J1 A
ID4,VE6,O,C,RFA,OFA,& F. v: F+ Z+ }$ h) f% p* R
ID4,VE6,O,C,RFA,OFA,  N& ]" H0 z# Q7 W: _& I# t
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
$ q# ~- W, K' {! x2 mID4,VE8,O,C,RFA,OFA,$ }4 E2 M! S% J9 R
ID4,V03,O,C,RFA,OFA,# R; z' L7 b0 v2 O$ ]5 k
ID4,VF3,O,C,RFA,OFA,& M4 \6 Z4 u0 _: q+ L
ID4,VC8,O,C,RFA,OFA,
9 R8 O- d( x  U; V) ]ID4,VF3,O,C,RFA,OFA,
) U4 f( \) I& mID4,V64,O,C,RFA,OFA,$ s- i; |) Y3 T. M# k1 z: B
ID4,VF3,O,C,RFA,OFA,) p) m0 P, s" y: ?- _* {: C
ID4,V50,O,C,RFA,OFA,* U/ U0 B) M# \' T5 T. y
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
5 q1 I4 s% k: F( l. f2 QID4,VF3,O,C,RFA,OFA,
9 x2 W1 \6 u2 ^  F4 G/ M. UID4,VC8,O,C,RFA,OFA,' @8 \0 H3 @: A6 w' ^5 [
ID4,VF3,O,C,RFA,OFA,( E+ u6 I6 \6 T9 y( U. ]
ID4,VC8,O,C,RFA,OFA,
+ u3 G- w0 Z% n1 t4 V; |- hID4,VF3,O,C,RFA,OFA,
: E( H' W% u) ^6 ?2 DID4,V50,O,C,RFA,OFA,& ~! p2 E) P4 F
ID4,VF2,O,C,RFA,R03,OFA,O,O03,2 `. \! [, Y/ }; k. }4 R
ID4,VF3,O,C,RFA,OFA,# f' V5 W+ U5 Y& Z' P( J6 S
ID4,V64,O,C,RFA,OFA,
$ W  C, b4 d# }8 eID4,VE8,O,C,RFA,OFA,
1 |) d2 l4 O& i" S, |ID4,V03,O,C,RFA,OFA,
4 l8 K7 [# i3 H" {3 ^2 s  t0 xID4,VF4,O,C,RFA,OFA,O,( M$ s+ M2 Q/ M7 \/ P
e83,
( \+ O/ J" r* C* \8 K1 ie83,
! g7 J/ P0 M# R. Be83,
$ |8 O- ?$ v! s# W* W  k: se83,
4 ^. I. c, v. \; c2 [e83,
4 D+ i9 T4 H3 z" V+ te83,
& J- u8 f1 T7 O; N/ {e83,; M* O0 ~* r3 o. W- _
e83,
0 U; o8 a6 a, }) C5 U/ S% l! qe83,
; z4 G. _! o" M/ G% u4 c0 ~8 ^e83,00,C8,2E,* d7 z& D: E4 l5 F- V; J
e83,00,C8,2E,
* z3 c( i3 p- l( oe83,00,C8,2E,
, C2 V+ b7 @- z& V2 ^1 l, T1 oe83,00,C8,2E,
( C+ E5 w. X; Le83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
% }  [8 r) w6 ^' Ne83,
& t: j8 G, l8 u) c) S
4 U  F, }( x* H9 u& }

) u/ x1 }8 d8 B* @! }4 [[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
) I. F2 |7 Y% r- T1 F- h: \" R! hDevice(EC0) {
% b7 {$ H( G' b: t5 g- E8 vName(_HID, EISAID("PNP0C09"))" s3 X5 s5 @$ }: i$ @0 N
......
6 A$ a7 b, l/ u}  H" F# Q; i( {5 n4 x2 y
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
, I4 {' @  s& ]3 t; u% _8 X就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
: u! j, ]1 J( _8 q2、      G% V; G" I8 _; ]0 r
Name(_CRS,ResourceTemplate(){           
% |# |; q5 q( }        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x841 u5 M( v$ A3 t5 }) Z
            IO(Decode16, 0x66, 0x66, 0, 1)
& I" E0 ^! v+ o# d        })+ w* z5 _3 h, b! }/ x$ V  b2 t' L
3、接着就是/ H! u1 J8 z( N' ^  g
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
  v4 r! B$ N6 X通过这个声明,OS知道EC和哪个GPE关联起来4 g* ?) E  N3 S' e5 n0 v; z; @8 b
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
; A/ w1 D4 X  g7 uEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
0 r; A( a% |7 K而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
1 G0 B  @7 g1 ~1 l8 h/ Q, r3、OK,看看linux是如何处理SCI中断的6 m2 [8 u9 u; U  c8 M
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
$ h/ v$ c$ @$ T: n) A7 F, b6 bacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)7 b% |) V2 c4 I6 U* D
4、EC接到0x84查询命令之后,就把Q事件号传给OS
6 d, j6 y4 C7 {& W/ e/ [/ I3 hOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
" Y$ f4 U* w  E8 G你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
- F  d  q6 H' b$ P! R有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
9 j; s7 H6 b, C% Tqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
  X, G' J* Z, E/ d4 qbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
% o& I1 q8 E; H6 W! {2 M版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 14:29 , Processed in 0.096619 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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