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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
: S3 F9 a) f4 _! _; j* l看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,4 d' ?6 }$ C% x& |; a" N8 X
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
3 i) B0 B' z5 w: R( w) ]1 |1 [我们在操作系统下用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的命令
* B$ Q9 R+ ^# h. q  W/ x4 ^3 tD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check' [' U4 @8 c# e2 p
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
& k5 a+ M/ r9 ^3 w7 ^  q& _5 m, N( |其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
+ K! U8 s  F* N! j
$ S3 j" b" b; J% y# |) RVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,! J  x4 l6 F  C7 I+ Y# c( C3 N
e83,# [& S' h. e1 k$ ^1 w7 R
IFE,, S$ p& @- d5 E/ u2 \& |7 A
e23,oFA,
0 E  h! ^2 [$ e' b+ K, d- mID1,DDF,LPC RST; k0 F# ]2 P% b% J: L1 j+ p  B
Swrong LPC RST& w# ^/ }5 s2 J
LPC_Reset_Flag=64

0 ^. V- T; a! {' B) e+ |% J$ A6 ]" m: Y' m6 e
ID1,DDF,2 B6 m) l% r" K
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
' a% x- d6 e. W9 r; J  P: bID1,DDF,+ x3 J* w6 x0 |5 D( g
I90,VED,C,RFA,OFA,V01,C,RFA,# e" A1 K1 I7 S
ID1,DDF,O,OFA,O,$ s. h3 |: [; ?9 G; }5 q
e2A,>IDLE
' V! L' ^9 a$ w# u6 OoFA,<
0 H0 N7 v, P+ I( Ze00,
$ ^# R4 m& p+ A. l- nIAA,O55,O,
8 m* J' p: a0 }3 sIAD,) B( V  w* W2 Z* m6 W1 g: h
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,, U0 `/ s$ R# L2 A5 y
I60,O,D65,
0 _+ R3 ~9 o% E. E, L7 f& m4 II60,D6D,VF5,C,RFA,OFA,K20,4 \7 X3 S" v) p+ x
IAD,
7 j1 V" E* M1 N$ y; e* M2 AIAE,O,VF5,C,RFA,OFA,K20,) k4 w5 P$ ]& o4 T* ~( |) b
IAD,
' i3 E" n- j2 d  BIAE,O,
3 J1 [/ ?, }, U) [, J1 {IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,% r/ C/ ^% S4 ~2 {  W. n/ ^4 X5 c
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
0 O' F8 |( `9 s* LIAE,O,  R+ K' L) o1 A4 K* t& l
e91,d2F,d00,
9 q- |% m3 Z' ~4 K& }e10,d83,d2F,P3_K#
/ E5 q! A$ Q8 b1 y6 D7 @P3_K#

+ T* D. H4 [# M
( r. U' K% p0 ]3 v+ D& t' \e23,oFA,
+ D7 t% i3 E4 T( G/ xI90,VED,C,RFA,OFA,; n0 Z9 Z) L/ }+ B4 d* ~
IAD,7 Y# E3 D( j6 G% C! ^# D) ^, o
IAD,O,
2 W+ Q" j% B1 Y( H/ y1 B2 B% uIAE,V03,C,RFA,OFA,
1 ~7 {0 Q4 E) lIAD,/ w7 J2 i9 U8 I, C
IAD,O,
5 X+ V1 _4 M; g6 x6 yIAE,
/ j& B$ E  K: Q, l+ ~0 @+ @1 F: BI90,VED,C,RFA,OFA,
# F, Q- P7 I; t# x- aIAD,
. n, R& ]1 y9 }( mIAD,O,
+ d# e- v5 G# eIAE,V05,C,RFA,OFA,
0 V" O3 {$ I# |/ MIAD,
) J0 E3 j1 @% l. ]+ aIAD,O,
9 ?& ]. g" m4 W! X# o1 X  R( w; IIAE,O,- L' x- A$ }& G7 ], J& o
e90,d2E,o00,
  ?" [9 j0 R5 Y0 \  X' ve91,d2F,d00,P3_K#
4 Y. V8 w- n& Q: ?P3_K#

0 Q$ O/ M+ j: x1 b" f$ i/ M2 t" p" m, t" s+ U1 u
IAD,VF3,C,RFA,OFA,. ]% F  g  t  @( O# K0 c
IAD,
' s4 v$ m; L4 }; k  n& b8 rIAD,O,
( e& l* {6 `. z; `IAE,VF3,C,RFA,OFA,8 F, G/ @, l% R
IAD,
3 s8 y( h3 m; T, Z1 QIAD,O,, `4 N8 @9 X. r& G5 @& n
IAE,V20,C,K10,RFE,OFE,K08,2 Y  i! @8 G$ |! Q' F9 s
IAD,
2 _  m4 ^9 F( ?4 ]IAD,O,
5 ?# c0 j8 |+ R- `! s9 VIAE,V20,C,K10,RFE,OFE,K08,6 _, S8 |" T. ]& u7 x/ E' E
IAD,$ Z' {3 ]1 I, h* n
IAD,O,7 ^1 D$ K% f: i
IAE,V20,C,K10,RFE,OFE,K08,* z! y% d: `- q: `* I
IAD,
" d8 g  j# b! uIAD,O,
) l9 O7 j/ l% _5 A. CIAE,
; ?. w" t; l  L; V% k* p) fIAE,VF4,C,RFA,OFA,
$ x6 n% M0 l  C1 y4 lIAD,
7 Q) m9 Y7 _1 G; uIAD,O,
; c; D8 Q7 H1 T8 m9 VIAE,VF4,C,RFA,OFA,( N, Y: |0 w: L) P  h+ m
IAD,
* y/ d& s" ?1 ]- }  ]7 FIAD,O,% Z3 h" R" r) h, E6 n9 M9 N# G) ~8 n
IAE,VF2,C,RFA,RAB,R41,OFA,
3 \) F6 {1 K: Y5 o, N9 p# sIAD,
2 I1 E7 C8 z% C) h5 _  g4 gIAE,O,OAB,
1 ?: \7 e, {- V7 g  NIAD,0 \) t! g+ a- e
IAE,O,O41,7 N5 o: @9 G" M) D0 D' ^
IAD,/ P  \) E( U. c2 s; H/ i
IAE,O,VF2,C,RFA,RAB,R41,OFA,
3 X( ^9 V: s9 y5 O' K& TIAD,
! a: h- X9 n5 z, Z: ~IAD,O,OAB,- K7 z+ F$ Z+ R& G
IAE,O,O41,
0 E% r: H( H  h0 b5 FIAD,
: Q& I7 t% Q. X! {! HIAD,O,
; o6 N: p- L! U- WIAE,VF2,C,RFA,RAB,R41,OFA,
% @; h- G5 K  F' D' sIAD,3 o, V( v3 H( L
IAD,O,OAB,6 P! K3 n9 h) N0 Y: `- K1 E
IAE,O,O41,
4 e+ E: h6 P9 G! q- r: u$ c' X$ RIAD,
* q, r4 g  L5 k3 L) x0 B2 pIAD,O,
# h6 E; ~0 U, s4 [; OIAE,
  O3 o% \' a0 I+ |5 XI90,VED,C,RFA,OFA,
! q. w! e: k7 A7 X7 t' [IAD,
/ t. F4 P! f8 v+ M4 ^1 FIAD,O,
4 s6 b, O0 `5 P" C  i4 V5 D- kIAE,V00,C,RFA,OFA,
! `2 D  G" V- A; `& ^IAD,
" g0 f% G7 J7 q3 dIAD,O,' N+ E& L- K) r2 u: f: I- A* y
IAE,5 n# X* k0 ?* `7 B  }# p
ID1,DDD,
0 l! w' r2 Q8 b+ T# G5 |9 ?ID1,DDF,
$ a& E& \- w0 X# r) z7 l( aID1,DDF,
' I! r" W# o2 je22,oFA,
) u. {! `" b5 a" X" @e83,7 \3 Z5 N4 m- c) W+ A: q& g$ |
e83,
9 K5 V6 \1 K% [* ?$ H! qe83,
4 q/ S: l+ `2 h- h) y4 x, E1 @, \e83,# V. |3 r4 v$ h5 D. V& v& Z% _; N: x
e83,. U5 h, O- k5 Y% g$ }
e83,% u9 \7 f! a$ _' L
e83,
1 ?' \" k0 z9 \" _e83,$ M# w! \& W) X/ f
e83,
& a7 R6 u$ d2 v, S1 ?' ~* E$ }IAD,/ o8 q+ _' C$ i; L' g8 x! |
IA7,) H4 ?& v1 g2 p  e1 y0 H
IAE,O,
0 Y, a( S- q) j4 l: u! ?+ E5 CIA8,2 o! N( e% W; }1 q8 C
I60,D44,
' c% @6 x* ^& k* _. y: j, ~+ F1 nIAD,
/ v" `0 ^* U2 c3 vIA7,4 i) R- u5 I' J. z
IAE,O,: y4 u  D# H6 J5 K: u" P( B+ R5 V
IA8,VFF,C,RFA,OFA,RAA,OAA,
/ U0 `( J6 N, t# l3 zIAD,O,K20,7 Y: E7 f" E  q3 m% A3 ]
IA7,/ E) a. x1 g0 Y! R
IAE,O,
+ b& j2 W" K4 v! J- w; |IA8,
5 G$ G1 t9 B( C/ V1 x7 r$ c5 u( \I60,D04,: W7 X, U" i& V" A. Z* T
IAD,$ y( Z6 A1 Q* I$ }0 i) Q$ a) Y$ s
IA7,
: x+ K7 }. a3 k( N0 R1 K4 \IAE,O,
0 k1 v$ b, [2 PIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,2 x4 \+ [$ m) r/ m0 H, ~% J- U8 v( q
IAD,O,; f$ c$ r7 H# s4 j7 i
IA7,
* u5 Q' x7 y. e* e) _& v) JIAE,O,  ?4 {" Y& Q% i
IA8,9 l4 d6 K  }9 r, y
I60,D44,1 |% o9 o8 z: c1 b& ]
IAD,
5 g5 y0 p. r& WIA7,; l/ Q' M0 J. m2 w$ K, n! b
IAE,O,1 s: |$ c/ Y. x- j4 l! c
IA8,  S0 M/ s- ~9 W6 _4 M7 G) j
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,9 f" t- b8 U0 s- L* Y7 \  ]: T: _
IAE,O,* @3 C% X- I% ?& [
IA8,
. q; `' o' X( g/ rIAD,
8 j4 Y8 O: V! U% L5 ^& ~; z  iIA7,# Y$ j# B; q, i7 ?3 X7 {: e
IAE,O,# g0 l" |) y$ x+ B: X/ {
IA8,8 O5 I! }3 ^9 W9 `
I60,D47,
( m3 \1 ^/ K0 i  }IAD,+ f8 x5 L$ x3 I- g6 \7 p
IA7,8 M# B* K* u0 H) r7 ~- |( o
IAE,O,
% q2 m8 d: W2 ?+ ]0 q6 _IA8,4 ~) Y* l$ T# L& Y  D
ID4,VFF,
/ R! Z! ?1 R" P1 `9 L1 @% S6 we83,C,RFA,OFA,
) F, I8 f! u5 P1 `e83,O,RAA,R00,OAA,O,O00,2 \4 ~$ a8 p1 e2 [& m6 V; z) ]; `5 H
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
# E1 T. G% g+ p# I- C- k9 nID4,VE8,O,C,RFA,OFA,3 p7 W$ b7 `2 f' n' y+ u# T
ID4,V00,O,C,RFA,OFA,
- ?$ S; A* K3 Y/ G" |ID4,VE6,O,C,RFA,OFA,: m& ^/ j; x& p+ L: V, c8 v
ID4,VE6,O,C,RFA,OFA,
+ v( C0 t! @( @( {* r2 zID4,VE6,O,C,RFA,OFA,8 ]" u; T" K: [) I" z, N) T: s
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,, ~/ [8 {+ {9 r5 B! F) e$ }0 ]
ID4,VE8,O,C,RFA,OFA,
; _& \" b" J4 X3 P9 IID4,V03,O,C,RFA,OFA,
2 J/ E7 t  |3 p7 v5 N3 @. B# PID4,VF3,O,C,RFA,OFA," J# W+ ~# U7 D. L+ T
ID4,VC8,O,C,RFA,OFA,
& }/ v+ w0 e+ l, Z$ E4 z$ SID4,VF3,O,C,RFA,OFA,
: }3 i6 Y1 R1 B5 B7 ]ID4,V64,O,C,RFA,OFA,. l' x' K6 y. ?! C6 Y
ID4,VF3,O,C,RFA,OFA,+ h' U( T7 Q8 ^( c5 {
ID4,V50,O,C,RFA,OFA,8 X. p2 g5 C/ z9 X7 b, x1 N- S
ID4,VF2,O,C,RFA,R03,OFA,O,O03,' n" {6 L' o% Q, G& C; K: Y) C# r0 y
ID4,VF3,O,C,RFA,OFA,! z0 y6 H' q: @% ?* m) M9 k( w
ID4,VC8,O,C,RFA,OFA,
7 G* w3 L, `0 ^: WID4,VF3,O,C,RFA,OFA,- U1 P9 T! G4 ]. x7 Y
ID4,VC8,O,C,RFA,OFA,
  E% p4 L: ~8 [) zID4,VF3,O,C,RFA,OFA,+ L0 X" k. X/ T# A, a
ID4,V50,O,C,RFA,OFA,, E1 @& [, r! h2 q* n1 W/ n4 L1 ~% W
ID4,VF2,O,C,RFA,R03,OFA,O,O03,. `3 G, p) h7 |+ \9 E1 Q8 W
ID4,VF3,O,C,RFA,OFA,
. a  P6 g) b0 Y0 S: H5 ~ID4,V64,O,C,RFA,OFA,
6 A& W# `9 Z( Q! V, ^6 K4 mID4,VE8,O,C,RFA,OFA,7 `0 [) t. i) @& o0 I$ j# K
ID4,V03,O,C,RFA,OFA,$ q1 H$ F  E! i0 H
ID4,VF4,O,C,RFA,OFA,O,
3 X+ a1 C0 g5 [5 `$ o5 |7 c8 |5 We83,
5 G5 U& l' F9 z7 fe83,3 h. N7 d4 r2 Y: D& e
e83,
* L" \4 h- p+ v  v- b* q- Be83,
% N0 L% {: z8 u$ e1 ue83,
8 c' U! k) `: f" e0 l  F! Q  [4 Be83,/ C+ a# _  _* R+ q  @6 z
e83,/ o. j9 W  D, X' x+ u* }; f% H9 G
e83,
  v; e# D; N- U0 O7 de83,- I% f4 A8 N  o# k* X$ L2 d
e83,00,C8,2E,
% N9 ~+ q/ c. O# Le83,00,C8,2E,* s, P* o& {" v; K8 k0 q
e83,00,C8,2E,
" i  L/ A! O; A/ ie83,00,C8,2E,
' O5 j* p7 Z3 V' U' K0 @/ V& a7 oe83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
  ]: f  ?' ?, `8 A  He83,8 z5 ]0 u; m, y
0 [/ H0 ^! T1 n6 F4 G2 N' ?) E

& E! N$ ~/ r( S+ F, R9 T" {. {[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
  a% @/ r0 u- R) n1 {" {. K* ADevice(EC0) {
7 ?8 _5 h/ m# rName(_HID, EISAID("PNP0C09"))
4 f1 L4 w8 \) a0 Y2 A......
+ g& p  G7 {4 Q$ q8 f8 r}8 j0 [" t( v( f
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
9 e, u: ?  s2 |9 N2 E) C就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)' g, [1 G8 a7 \$ d/ v+ v
2、   
/ b1 X$ T( u0 _& S! v- g: |/ `Name(_CRS,ResourceTemplate(){           
& M3 t! R+ T  Z+ X- Y2 {. l, C        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
( y5 ~( S2 B* y( P2 [% a            IO(Decode16, 0x66, 0x66, 0, 1)1 U7 D( _* ~; d1 o, h) U7 @
        })
+ d; D: Q  b7 O- O3、接着就是
( i5 z9 k" U1 k+ RName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7' }: G4 [5 ~) o# _* x5 Z
通过这个声明,OS知道EC和哪个GPE关联起来
, d. q, |# T/ ?$ g* W$ ?, G而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
- q0 H8 m' Z9 R& G; }' ?- GEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
7 c& ?9 d$ }4 l" c0 N$ v而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
5 G; J5 j! V. C+ ]# @' P! i* w! J2 _! Y3、OK,看看linux是如何处理SCI中断的
. n& s2 L  O) I9 \3 l* jacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
' |) I7 z) q- j5 \acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令). \$ p0 j6 G; Q4 {+ }7 M% |# M
4、EC接到0x84查询命令之后,就把Q事件号传给OS
1 E  B! k( c2 X# O3 z' yOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
, e: V7 x: y5 Y3 U1 S你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了' ?! i# y- i% G  A& x8 T
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
( }' @$ W8 p, I  T& y7 bqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
4 W# f$ ?8 x6 h' j4 |bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。8 w; f7 {* E1 L5 K6 r& B
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 14:40 , Processed in 0.097468 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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