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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?: d- G9 w( i7 S3 J0 k
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,9 T; ]4 X6 ?+ s  G4 z' E" t: M
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。# g! A3 a3 m" O. s1 A% 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的命令) H( I4 ?; }. g8 E+ d: T3 T8 w6 H3 U
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
& ?9 U5 Y9 q+ P* r$ z: G这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析8 G! n5 ~2 }$ m: C9 \6 R6 {  i& Q
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
" u0 s, p, X/ `: Z. S1 [) c6 u9 j/ X2 V, b3 ]
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,( G  c* D) _# }! h- L0 U# @- T
e83,4 J% A7 i4 V9 n1 U9 R4 o
IFE,
% p# @( m" M( l9 We23,oFA,# I; z" Q- A9 }! ^4 s/ @$ t
ID1,DDF,LPC RST
9 a' a$ i/ P2 l: d' n. LSwrong LPC RST6 s1 }$ J& Z' \% d+ o& v" L& b
LPC_Reset_Flag=64

+ Z% c3 `3 f( }  k5 S( `8 W0 o2 R5 L' |5 j0 Y) x0 K6 F. Q$ w! G
ID1,DDF,
" ?% D1 R" v4 F2 X0 u4 fIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
  W" H. b6 m  @# M% j$ qID1,DDF,
: ~, H& e0 [( T: Q% I, S0 W9 pI90,VED,C,RFA,OFA,V01,C,RFA,8 p# m1 [% z: v$ m( x# a9 R0 R5 K  z
ID1,DDF,O,OFA,O,
# C0 d  p" W) {% @1 x) T: S7 ze2A,>IDLE$ F, T  `% L( f' P% {1 ^
oFA,<
! U1 m3 @. M! C2 M2 W2 @e00,: G/ ^) D1 k5 B" q: o
IAA,O55,O,4 K2 ~0 Z% {: H# C7 O
IAD,8 E) q- n. v* h, r
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
5 e( _( C! X* w  D0 @! Z6 u" [* {I60,O,D65,
1 P2 J0 j# e2 |$ i! kI60,D6D,VF5,C,RFA,OFA,K20,
" p+ \) L0 H8 u5 G# a& w" v: B: eIAD,# j. M" c2 F: I
IAE,O,VF5,C,RFA,OFA,K20,! q; e, n' v% f
IAD,
" n- Z% X" R' K6 r/ aIAE,O,2 E) g4 \: h$ A; W
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
8 j8 S! x7 {5 X# qI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,6 q1 c8 X3 ^' f2 K0 h
IAE,O,
& ^) s$ g- y, u! r- z; |e91,d2F,d00,
( a' U: S1 u7 K6 Ze10,d83,d2F,P3_K#2 F- v$ ?! r- a6 u4 k5 b
P3_K#
+ R7 o1 b. ^/ v- f3 w7 W$ @
# X: s9 I4 ~! f
e23,oFA,: D- w* g; K3 O  W( [
I90,VED,C,RFA,OFA,4 V9 T" T4 r/ H; g' S( s
IAD,
# ?  s9 r: k/ PIAD,O,
8 r  M/ ]0 S" OIAE,V03,C,RFA,OFA,
4 b5 S* s2 l: j6 @! ]5 r3 [! o; tIAD,( c9 L- {' U6 Q! g0 U  J. @
IAD,O,  {$ v0 c' ]5 G" ?& T
IAE,& ?7 u0 f7 }. ~  f2 E1 ]% ]7 f) d
I90,VED,C,RFA,OFA,# K( v) M3 Q% y. e& z7 I' v' g
IAD,
' m6 ^6 q, x% |' l/ n  L4 e1 l0 iIAD,O,
; \4 V1 ~5 K6 LIAE,V05,C,RFA,OFA,- `" c% w* z) _2 K6 R0 O4 E# p
IAD,
1 x: h; v4 F! N, x& r% xIAD,O,
3 q6 p; [" g2 J" ]IAE,O,4 b2 N/ M8 [4 n9 r$ g% i1 s- j
e90,d2E,o00,
7 m2 r6 g( [- V. Y& ie91,d2F,d00,P3_K#; M; A0 m- `5 R0 T7 o5 G
P3_K#

! @) k% e  v0 h0 B8 [2 {
& h& t, O8 K0 b+ A+ PIAD,VF3,C,RFA,OFA,) b, p+ |; F" x. ]/ F
IAD,
7 H1 Q  o: }4 h) E5 X& C& SIAD,O,
+ C* g7 m; }6 Q; f: ^IAE,VF3,C,RFA,OFA,
* g& v7 E: \; [0 v) h5 _/ lIAD,
4 E% g9 H4 X% d' ~6 b, F$ JIAD,O,
8 _/ ?" ?1 r0 ]" WIAE,V20,C,K10,RFE,OFE,K08,$ Z3 z* a( q: d* q
IAD,
8 Z. x8 \4 H% o, f% l1 D( V- nIAD,O,
" g/ k/ K" b" t6 P6 j. [$ R' TIAE,V20,C,K10,RFE,OFE,K08,
6 J0 b4 {0 \' W. h9 r- z  a2 L4 jIAD,! z% Z) Z+ u! a* j, ]6 ~7 ^" \
IAD,O,; D0 e, C1 m7 P; V0 s/ r
IAE,V20,C,K10,RFE,OFE,K08,
# }& {, p: {5 L3 N5 B( NIAD,
1 h* W1 I3 n! iIAD,O,& W" P# J# ?8 j; |
IAE,( b5 h2 \2 n9 X* _/ ]  E
IAE,VF4,C,RFA,OFA,5 n/ W, h9 r" E) Q5 v2 s9 ?$ U
IAD,( v; i" P: _. ~2 V6 f, Q
IAD,O,6 C  @! }0 q4 h- ^: T: l$ r
IAE,VF4,C,RFA,OFA,
/ P% x: B  X- R& P& u9 \( O4 ]" `IAD,* s% S8 _' e# ]/ X7 ?4 @
IAD,O,' }' p  W5 @- H# L: S
IAE,VF2,C,RFA,RAB,R41,OFA,$ l+ V6 X) @$ W7 G7 e& |  T, m
IAD,
; ?& Y1 h% a! s* CIAE,O,OAB,
  }2 @6 H+ M5 @2 ~* l& bIAD,2 g" [6 Z. f! ^, A
IAE,O,O41,. N' g0 o% S& y  J# s
IAD,7 k6 _5 j( N4 R# ^( O- z- @$ v
IAE,O,VF2,C,RFA,RAB,R41,OFA,7 L% l9 H1 `. O& h2 R
IAD,% W' J6 ?$ J4 b
IAD,O,OAB,
/ t( D5 J  Z0 t0 G/ y# rIAE,O,O41,
3 @3 z7 s, Z+ fIAD,
5 v" v; }' K5 T3 S( _IAD,O,
3 d( t7 ^& V3 [( _1 `( ?IAE,VF2,C,RFA,RAB,R41,OFA,
* V* x/ ~* y/ U+ k2 d) OIAD,
5 c' w9 m$ \! R8 v7 KIAD,O,OAB,
. _. b. y* c' uIAE,O,O41,
# G4 Q5 R. v, Y7 pIAD,/ }' z5 h/ D1 M6 t
IAD,O,- V; E1 M* X8 A" s$ c0 m
IAE,! ?4 t2 W7 ]3 V8 Q3 ]
I90,VED,C,RFA,OFA,
0 @% u: E6 k. j6 g7 b6 Q  e' u/ VIAD,
) i! T8 N- o& zIAD,O,; x% E3 X1 N0 ]
IAE,V00,C,RFA,OFA,
- x6 G, w/ t4 \) w% U7 iIAD,
( L2 ]  ^* @6 ~IAD,O,, R* f0 x, @- @" C" M# O& e
IAE,/ h$ g7 A7 {& a+ a
ID1,DDD,
+ A4 B4 o( c8 [& P! TID1,DDF,' z6 U, ^/ D% p# O1 c9 M( @
ID1,DDF,( C+ W( [  v4 T  H* I' Z& F8 w
e22,oFA,
! A* N8 r% X% y8 l% v) qe83,
/ e2 Z1 M: }: Q, {e83,, ]% _% }: d- T* R( X
e83,. Q$ v. w5 U5 S0 N+ b' B; K! z4 e, b
e83,
, R" X* _, `3 B$ y+ T3 b9 ve83,
# H* G/ }! z6 z* k- Ze83,
+ b+ V1 w  N- x2 pe83,
2 S* |, v3 t2 m9 Q/ d$ W, |: ~e83,! X  s2 s" f( w$ D, O8 q
e83,
. e: p1 e* ~* b, c3 C* nIAD,9 Z+ _* }2 Z1 O
IA7,1 h5 ?/ ?: X* B8 Z  c" C
IAE,O,
2 H$ r" I6 E) g& i; ]/ ZIA8,/ U" z7 Y+ f; @9 A
I60,D44,; i2 N& u& Y- B5 `' X
IAD,
2 j# L8 ^' S; w" ?* l1 v4 @7 T: w5 W1 yIA7,
0 u4 Z& K$ h& F+ n. uIAE,O,
  ]( N& M3 ]# P, `: QIA8,VFF,C,RFA,OFA,RAA,OAA,# Z, N% }# c& C: P% o
IAD,O,K20,3 N; D/ h: C  r9 M
IA7,7 `% ]0 \2 E. g; B5 ^
IAE,O,
6 f8 @' m4 D0 A+ I) B" U$ nIA8,
+ Y7 b+ t5 x: ^) M( }* kI60,D04,0 [5 `. b) K8 R3 r% A- V' L
IAD,
8 B  I. G4 d* [$ i3 @IA7,
9 y0 V4 Y5 N  T2 v1 F2 @IAE,O,9 K& W+ Y' U8 S9 m2 y6 @- c
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
8 f% l8 g; G/ e! A0 R3 x$ j( h* AIAD,O,2 E3 _  F( ?4 Z
IA7,1 x1 u$ d3 D) h1 _6 j
IAE,O,7 W) J% d/ I8 X. Q
IA8,
2 Y+ d* p; E# S0 X3 s& `6 r! }2 dI60,D44,7 l" N' `  D0 I/ L3 ]% O
IAD,
2 n5 N3 V6 C7 u! }2 s5 [* ^) }IA7,
5 L( m* j4 T  h& A9 E. k4 f! {IAE,O,2 V6 r- v* B  |$ P; ~( Y& J
IA8,) C3 P( f& W3 m( j$ F
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,! F$ H$ z6 _( x$ F: _- O
IAE,O,
. H$ O' c& W6 N- I) \/ F" xIA8,
! P& ~9 F& _0 u- n* [IAD,( D) w" ~$ Y! P/ W
IA7,
! O0 R2 E8 }; z# S% `9 HIAE,O,
8 W" E& V! W) y- U& w! `! z" uIA8,' X2 i+ Y7 U8 _  j0 Q# r
I60,D47,) Z8 I) I. \. u% x( x
IAD,
1 \; S  F' [" c+ ^  m! [" HIA7,
, K$ M, }5 @3 K; `& E9 ^5 Q4 WIAE,O,
- c0 T& a) a2 |3 F7 \IA8,; L: d$ J3 |5 `$ f
ID4,VFF,. |& `& r4 B# y* F+ K
e83,C,RFA,OFA,( U) y7 G4 [1 ~1 v
e83,O,RAA,R00,OAA,O,O00,- a# Y2 h( z/ b. @7 k' C
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
2 Y. Y. S/ q- _3 N% P6 AID4,VE8,O,C,RFA,OFA,
+ ~  \- }- s. T: p9 MID4,V00,O,C,RFA,OFA,' w. y$ {: _3 r
ID4,VE6,O,C,RFA,OFA,
3 e0 [. z4 X4 H, AID4,VE6,O,C,RFA,OFA,
' N3 p) i1 T. g- OID4,VE6,O,C,RFA,OFA," v: W7 }. R) H& ]$ K& J6 n
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,( ^( C4 t& R0 t" j
ID4,VE8,O,C,RFA,OFA,
2 l/ q4 [9 w# H" I7 b1 Z# XID4,V03,O,C,RFA,OFA,: z$ @# I1 p; n* q- f. A/ w1 y
ID4,VF3,O,C,RFA,OFA,
; L6 Y  K  F2 w. k' D* @  pID4,VC8,O,C,RFA,OFA,! n. ]2 ]  t* T4 w& m
ID4,VF3,O,C,RFA,OFA,# Z" ]1 a- z7 i2 x
ID4,V64,O,C,RFA,OFA,
: X# R- {4 D" h, w/ c. z$ _6 k  G4 \ID4,VF3,O,C,RFA,OFA,+ H5 Q$ Q% V6 l# n2 D8 O
ID4,V50,O,C,RFA,OFA,
* O; v. w, K( P4 s! ]: e: Z# {ID4,VF2,O,C,RFA,R03,OFA,O,O03,
3 |6 M9 H  O" J# MID4,VF3,O,C,RFA,OFA,
& F% P" a  b! D2 d& a5 ZID4,VC8,O,C,RFA,OFA,5 ?5 W7 {, N! o
ID4,VF3,O,C,RFA,OFA,) v6 p* T/ z8 M" x0 D: P
ID4,VC8,O,C,RFA,OFA,5 g) d$ O2 ~1 J
ID4,VF3,O,C,RFA,OFA,
; G9 k4 X# O8 g$ A  F* ?0 iID4,V50,O,C,RFA,OFA,
6 z5 }! I1 j2 l/ T. X* }ID4,VF2,O,C,RFA,R03,OFA,O,O03,
. t2 _% I2 [8 t" O  t1 ]" ~8 JID4,VF3,O,C,RFA,OFA,% ~, W6 a* u* X. M1 E9 F6 J. A# ]* x
ID4,V64,O,C,RFA,OFA,8 d5 k( G6 Q* j- n1 Z. j
ID4,VE8,O,C,RFA,OFA,6 t1 I' Q" c# A. N$ @" i
ID4,V03,O,C,RFA,OFA,
/ O7 J8 \- N4 o, G8 zID4,VF4,O,C,RFA,OFA,O,
" V4 V9 J% o; q% f, T8 j1 ?e83,
. ~7 a$ R8 N5 K, he83," Y* S6 C# r2 C9 U& R% ?! b
e83,
7 A# b; `+ a( N: C$ `e83,/ J5 h" d9 J: W: J! K$ P
e83,6 N3 ^. u8 \5 S; Y0 N' H( k
e83,
! J& v2 O6 U+ l& ie83,
7 \) I' l  r* ~5 De83,
1 U# w9 H0 X0 {( @e83,
/ B4 V# A. ^) j2 `$ oe83,00,C8,2E,
$ L; r  N/ i7 o* t5 j% ^e83,00,C8,2E,+ {  ?' H) t, G% m% O
e83,00,C8,2E,# Y/ ~# J2 g$ K" S7 `  K# X
e83,00,C8,2E,
. x" E+ m3 i7 k! w2 C) x  ~e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,! h; @* {2 \$ m* Z3 ?' r# k
e83,5 ~8 Y6 p& _/ v$ o% B& i
4 C- E* w. \" z. h# i
  k, i0 w" P8 L/ j
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复: x! o$ I9 q9 I1 ~0 h; K( z
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。9 L! u( q% ?2 D. i: @8 v6 ~
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!. F. w( P7 w' Z
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。5 l& y( u4 f  m9 |
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!- K4 A( @! v: D  c7 G- e
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
- J8 k( \. R# Z" l0 w! j2 j9 eDevice(EC0) {
% V" ]5 n& J. {. JName(_HID, EISAID("PNP0C09"))
/ ]. j6 B  l5 ]) d8 B......% V. s' ]7 P' Q, q% J8 o1 q6 J
}( _2 Q9 N, k' o
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
6 J% q5 G! o4 H- i6 {: L就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等); \0 s# k/ L3 i* m% i9 G' E
2、   
6 `, P; F" U7 N( W3 dName(_CRS,ResourceTemplate(){           2 V- t, X0 O% k2 O1 _
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
5 c+ M. Z5 L6 p1 `! A            IO(Decode16, 0x66, 0x66, 0, 1)
- {9 T5 f( A% t/ t4 @2 E& w        })
8 @- K5 B( [3 h0 [/ ~3、接着就是( p2 {  K# z. i# T0 u
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO79 y5 ]2 ^0 X8 M' \' [9 e2 k) M
通过这个声明,OS知道EC和哪个GPE关联起来
( I$ P$ o9 C/ ~2 z而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来% |: F2 j$ k9 T0 v0 p. _# g6 n
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。0 o3 H9 w6 U7 _
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
* p( X, N. l/ T4 l3、OK,看看linux是如何处理SCI中断的9 S$ N8 a4 T% M% P2 M
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
" c% G( ~' l! q  {2 v. L+ U# j6 q0 V' nacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
; J- g  y: f- l4、EC接到0x84查询命令之后,就把Q事件号传给OS1 I+ m- B; K% \! W2 y/ C( r
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分2 t( U- L) V! s
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了* R+ A6 [% K0 V  a1 @- {
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。* D% g, b& j7 B' _+ z5 T4 A
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
( g4 G. L1 \$ i5 K! y0 hbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。0 c7 Z5 ]) R! z. n1 ~( ^& J
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-19 12:21 , Processed in 0.038165 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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