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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
8 ^* C# E8 _. ~7 D  E今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。! z8 k+ {; H( I1 A& Q
我们在操作系统下用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的命令
6 v$ p  C( h3 @2 D5 Z' \- wD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check! j7 ^6 H9 X; y9 E& C1 k9 g, o
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
' |: ?/ I0 t; U+ W0 ]: R3 t- {其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。/ E6 u! I( s8 y0 s8 t
! F, o0 P1 e0 ^$ x
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,! v! T4 R2 b9 d4 o
e83,9 H# a5 W0 g/ Y7 @# M
IFE,
, Y4 ?9 j% C2 j+ q! L/ ?e23,oFA,
' f0 k  e" V: Q$ \. s6 i' B  N# O( EID1,DDF,LPC RST( s, l3 \1 M9 L% N& ?& o& {) P
Swrong LPC RST
; b6 R6 s+ W7 |: `LPC_Reset_Flag=64

3 ]& Z# v. J; f  V& J
. c7 h7 t5 A/ Q/ WID1,DDF,
+ g( f6 x3 z& l6 yIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
' Q9 O$ D" o  w9 TID1,DDF,
. L  j2 ~# F  M$ K6 B* u2 ~6 ^2 YI90,VED,C,RFA,OFA,V01,C,RFA,$ y! C" s6 ~) W: E, C, Y
ID1,DDF,O,OFA,O,
. W5 ^1 p9 }% Pe2A,>IDLE" V# q8 y! {* n9 n; c8 V2 G, B7 n) r
oFA,<
* k# |" H* g4 xe00,
8 @6 b% K4 K1 eIAA,O55,O,' v# m% ^9 `) o' j0 t
IAD,
7 ?) @/ G" w9 V3 BID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
. w& E8 [% o4 t1 m+ o# AI60,O,D65,% J  |: j+ a" \
I60,D6D,VF5,C,RFA,OFA,K20,. O( i1 }0 @. i- W& @; k7 B
IAD,
) Y1 F& A( v5 kIAE,O,VF5,C,RFA,OFA,K20,
) o$ f$ M# F1 R, PIAD,
* r5 ^4 p  [. D5 g3 [% F% v' bIAE,O," r4 u* d" @# G( U9 ^
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
% t" p# k$ |2 @4 z% W" z7 ]! {I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,7 g( ?) I+ x5 {  y2 x/ J2 I: R' P& ^
IAE,O,
1 u- s. {  \* }3 r! p  p" ~  Z" Te91,d2F,d00,
& L) q4 b' I7 l7 z" s. Ae10,d83,d2F,P3_K#3 O  V0 A0 L, \  ^3 W1 `4 z7 X
P3_K#
! S8 N# r: O" ?
3 }% D1 x9 [- {/ U2 Z8 a; T
e23,oFA,
" V8 q- X, S, [# I5 L2 Z$ B# \I90,VED,C,RFA,OFA,
, t9 J: I3 i3 [  v: k8 c! n9 F- gIAD,. s( n5 \, [, H+ N" \
IAD,O,4 l% z  ^  l9 x  b+ K1 j
IAE,V03,C,RFA,OFA,! g/ v3 T. Z% p  l/ {8 Y3 I
IAD,
. _" k$ e8 _, _% }  j. _IAD,O,
" w2 D0 c+ b* j; W# C) {; OIAE,
# w  q- |( q9 [I90,VED,C,RFA,OFA,
8 p7 ]9 R+ Y, yIAD,1 w% @! I8 }5 e+ |
IAD,O,
6 z% m" Y6 _, s  |IAE,V05,C,RFA,OFA,4 ~6 j, Y/ [* Z8 }5 k
IAD,! o% `' E. w8 R7 m$ J
IAD,O,
0 l9 G0 _+ U6 i6 X* sIAE,O,  M; A2 b( ~' n. b9 |' y2 }4 X
e90,d2E,o00,! c  K0 d& ~+ c  E  ?
e91,d2F,d00,P3_K#6 o+ E6 U1 `1 n/ c' l/ z  L
P3_K#
$ [+ h1 s, D# k: V6 O# x$ P

: u1 x/ @* w" a- N/ d+ IIAD,VF3,C,RFA,OFA,
7 `, c1 S6 q$ l  i2 x% ~IAD,
7 U' N" K; w# O6 |* _2 [IAD,O,5 P! E& e# }$ q( s0 \
IAE,VF3,C,RFA,OFA,5 i! S/ u) i4 i1 H. s; Q* M  G- r; g
IAD,
2 T$ m: q8 E) x/ r8 V$ d5 @+ lIAD,O,
0 M' q/ A( z2 c. }: UIAE,V20,C,K10,RFE,OFE,K08,, h( \3 |' S8 y( [: R) A
IAD,9 f" r3 _/ p3 v7 q+ t, B% z2 t6 k
IAD,O,7 X7 k4 _& [( A$ z) q
IAE,V20,C,K10,RFE,OFE,K08,
- o3 T8 g, K- ~9 w8 XIAD,; [" b8 P+ |; e1 P
IAD,O,( x1 e0 `9 [) z7 C; O; j4 @) p1 D5 L& k
IAE,V20,C,K10,RFE,OFE,K08,* n0 a4 }7 K3 q$ m+ ]
IAD,
) S6 W( \  o) v  V  QIAD,O,
0 ?) P! ?" G6 u4 t4 `IAE,
+ D' d% T! k* C. f/ aIAE,VF4,C,RFA,OFA,0 d( N1 \( L, E8 x, K
IAD,: Q  E1 F+ T! }8 d
IAD,O,
) T* i+ g2 ~& ?. @IAE,VF4,C,RFA,OFA,
0 k' p6 N+ X$ t( }- H6 TIAD,
% ]7 A2 U0 }( n" Z4 \IAD,O,3 A5 X& K  [: q: e0 T: i$ _9 p
IAE,VF2,C,RFA,RAB,R41,OFA,7 r- s5 T# e# M5 b$ w! a( B+ e. J
IAD,
2 u6 B1 s- ?5 `/ U& z8 M1 }IAE,O,OAB,
/ z( t; `6 M& Y% R! x& ?+ `; uIAD,
! Z6 K7 w/ n  x* S/ XIAE,O,O41,
' n- Q) Y. k! I: @+ H2 x4 T+ gIAD,
9 S$ `8 h3 E( q  L  s4 Y0 XIAE,O,VF2,C,RFA,RAB,R41,OFA,
+ g# X/ J2 F- p" v* v8 KIAD,
1 p! @3 u4 [$ T4 ?. @. V/ |2 ]# ZIAD,O,OAB,
8 j7 {* p+ N3 B. TIAE,O,O41,/ c* g& j8 |. l; `( K. q! Z) o& V* }
IAD,9 v8 }* ^  ~6 B, g( V' G
IAD,O," x2 Y+ R& `5 j" r0 t7 @
IAE,VF2,C,RFA,RAB,R41,OFA,
: @  |% M& |: A! _IAD,
* M, i# S0 h& j; }8 f3 BIAD,O,OAB,
7 Q# b8 `3 h/ A& l% b$ y# o+ ^# oIAE,O,O41,; m, T6 l  ?- O. a
IAD,
( B" {( v, k0 n# ?* G6 K- H5 kIAD,O,7 M6 }! q& `- A& Y- I' g
IAE,
  a2 ?9 Y( }- o9 mI90,VED,C,RFA,OFA,
" _, w; j2 `0 J/ t: x" c/ nIAD,
0 b# l  V" J+ L6 K# H, i5 kIAD,O,
7 m# T  G5 U6 D: E5 MIAE,V00,C,RFA,OFA,$ I9 j0 N' B4 T* W/ @" X
IAD,
3 J  ?! K- S$ y: X. v" p& [IAD,O,
4 e& c; T$ Q& g7 `" T5 XIAE,4 M9 x8 [1 ], q
ID1,DDD,5 ]* H9 ?7 T& {% G% g1 O( }7 C: F2 ?- p
ID1,DDF,* I1 a: J* {# L; Z1 G5 z
ID1,DDF,7 X8 y, q3 S" \
e22,oFA,
1 d' V; e; O# Y6 d+ L4 l. le83,
% C! ^) ]$ ~' p% l- r5 F8 Je83,
! Z5 L; |, Z0 N( h0 g8 K# x3 n. ce83,
) h) _' C2 B2 q( G9 C  r7 de83,4 V: d" a* Z7 c
e83,+ n/ Y# N* e. R" w
e83,4 p! L7 Q/ Q: H& I; `( s
e83,( P+ w  l( }* R$ d9 i% p
e83,2 _* t% H% d6 Q4 U) s! o, ~, U
e83,7 N) k: E- Y2 G8 K$ c
IAD,) ], h  d# G& @) G( @
IA7,
2 C& j( y3 L2 d- Z* uIAE,O,  f0 t% w# r4 I
IA8,/ I8 n6 k6 k+ y( ^# h8 l: o$ D2 f  ^
I60,D44,
  A! Q! F" |% _5 gIAD,- n& T- S- l7 o/ Q3 u& i
IA7,5 b) g' g) }5 j
IAE,O," h# A5 _6 `( c
IA8,VFF,C,RFA,OFA,RAA,OAA,
0 |. o( d6 w% p# x# U9 VIAD,O,K20,
1 ^8 \3 m7 ~; M$ ?$ Y4 PIA7,- R& }" q! ~* E  M
IAE,O,
0 h! w' k% I) e( {; K4 KIA8,( s" Q( L* @9 q
I60,D04,
. O' @6 ?* u& Y' d) ^; e  K; }1 eIAD,
8 F  _: X& `- PIA7,
$ q- y' |" d, R0 b! q% E8 }IAE,O,
: L2 L2 k4 T8 H: ^IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
& B+ U  K5 ?0 pIAD,O,/ q, z  ~9 f/ y( Z3 P# f
IA7,
# Y$ d( v- L) q7 }5 u$ HIAE,O,  }$ D* p1 o- A) B
IA8,
  p  q: Z* ?8 u2 @8 d" gI60,D44,( S+ [% h  q  C2 e  a$ F
IAD,3 `9 T6 i4 S9 L; A) M& y, u  \/ p
IA7,! m8 `$ R, [+ d1 v  ?5 _2 l( U
IAE,O,8 x% F: A) j- O! I/ r+ _  |
IA8,
/ k$ m+ G. W4 p7 F5 hID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
6 G7 I- V6 z2 ^2 h! qIAE,O,5 i' q) J8 Q5 L  M7 L( P
IA8,
+ D+ L7 h2 c7 xIAD,
: {* |2 @5 i# s* e. |' ^IA7,( A, d5 q, M9 P/ K( q
IAE,O,
- ?  _1 C6 T4 e: G0 `IA8,0 Y' k& z0 ]6 u1 i
I60,D47,
0 G# U( i& t# O) m; K) [IAD,/ |3 ]* n3 R2 L5 Q# i; o: ~8 x
IA7,8 q7 q& a& A, ~1 U. R! S' O# ]
IAE,O,
, B* s: n! c; S: FIA8,
9 z; U; F* X5 H4 l: u1 `- P6 c! TID4,VFF,  `5 E6 T+ t  W3 s) D
e83,C,RFA,OFA,
: G7 e. E- {1 ?2 ?3 me83,O,RAA,R00,OAA,O,O00,
; h8 y0 V" `1 ?/ W4 y: `ID4,VF2,O,C,RFA,R00,OFA,O,O00,/ e3 T& k8 l+ y  M
ID4,VE8,O,C,RFA,OFA,
) b8 c) b& d+ l3 m: C( jID4,V00,O,C,RFA,OFA,
0 M# j: \. t: jID4,VE6,O,C,RFA,OFA,
' w% q  r9 Y; m, ~- ZID4,VE6,O,C,RFA,OFA,) h% X- l6 f. ?, k
ID4,VE6,O,C,RFA,OFA,
8 j$ ?! a1 N$ c2 T( u6 z0 C7 NID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,/ Y+ l4 n( q. v5 ~& a6 r2 Z  H8 D
ID4,VE8,O,C,RFA,OFA,% }. H- ^. x* M* C5 d
ID4,V03,O,C,RFA,OFA,
4 ], g( f7 f$ l* q+ M& `; vID4,VF3,O,C,RFA,OFA,
2 H7 y3 q) c3 I% C9 VID4,VC8,O,C,RFA,OFA,
' q$ d& R( o: T" {5 [% S7 \ID4,VF3,O,C,RFA,OFA,
  L$ P+ O1 R& ?: gID4,V64,O,C,RFA,OFA,0 l: }) K2 Y( T$ i, S
ID4,VF3,O,C,RFA,OFA,4 n# e8 \$ y+ l+ Q1 d1 y
ID4,V50,O,C,RFA,OFA,4 Z6 Z1 U) F0 C( M. _. K6 v9 e
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
& A& q; `/ ]8 ]2 n5 LID4,VF3,O,C,RFA,OFA,
7 I' Q) |% \4 {3 i9 R3 ^ID4,VC8,O,C,RFA,OFA,
2 x! b5 I( p" g5 g3 Q" jID4,VF3,O,C,RFA,OFA,
' [5 B* ~8 y: w* K) I2 a8 jID4,VC8,O,C,RFA,OFA,
9 G1 e3 g; w( o1 ?- AID4,VF3,O,C,RFA,OFA,7 r" }4 q1 X8 [( M' w/ o0 Z, h
ID4,V50,O,C,RFA,OFA,  o! q+ l6 S& k
ID4,VF2,O,C,RFA,R03,OFA,O,O03,6 _0 A  j8 |' E4 h6 W
ID4,VF3,O,C,RFA,OFA,
& f- j1 U) ]) p2 kID4,V64,O,C,RFA,OFA,/ x+ N8 H. g# B7 `* L
ID4,VE8,O,C,RFA,OFA,  b; m) m+ ~8 N1 Y  @; y
ID4,V03,O,C,RFA,OFA,
1 ]) L1 U3 u: \) L* h, MID4,VF4,O,C,RFA,OFA,O,4 z! n, S& @$ y4 M5 Z) \
e83,
& V" R; Q: X4 D/ l2 H/ ^" m4 @e83,
- ]2 A% K# a/ D) J  fe83,
6 C! n, j$ p& ?6 j! ve83,
" }& w$ E. Q+ u0 `1 e: @' B2 Se83,
- [# o& `. Y* `) \' g3 s" ie83,
; N5 b+ ~! y, G# z4 ]e83,
  U# |5 U4 D4 o' N" {1 ~, J4 oe83,
/ H4 d5 b! d- q" y( _, ^% E' C2 ^e83,
, Z: k% j  J* G3 ?/ Q8 d! Te83,00,C8,2E,# ~3 C7 j2 h6 r* g- u4 N9 L
e83,00,C8,2E,
- {& c, S, }* e3 f' p/ o3 u* re83,00,C8,2E,
0 F6 j  `& q' r' i$ J8 ae83,00,C8,2E,2 c- m& r& {1 [1 e0 a6 y
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
9 E3 s2 w) [7 ^e83,
0 I+ ]5 Z6 x* p4 w3 c6 ?5 D1 Y0 d
% i! F- m) G# A1 F; f4 r
0 e6 f5 F( j" c/ R( e7 q/ X# @0 h
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复% ]: [3 c6 K# @% S
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
2 S3 _$ E, e$ I3 P9 b. ]      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
3 o: L* @  d6 R# v/ n2 c      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。2 E5 Q7 {5 Z' U, u7 I
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!, N1 E* V) L/ B; ~4 R
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
& \- [8 N  ]7 O4 sDevice(EC0) {! u! Y/ J. b! S. p9 L
Name(_HID, EISAID("PNP0C09"))
) i) f8 p% E0 H7 x/ y......$ n6 w0 w, k3 Q: I3 W% v
}1 k( K: N" A7 Q( h3 l8 ~
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
# ~; N) H; k: `' O- Z# c  z( V就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)2 D6 {/ C4 Z% a1 T7 U* t
2、    ! g9 B6 Q. y& M( a9 i1 n) H
Name(_CRS,ResourceTemplate(){           
. `) W9 h/ U( r8 k9 a! i        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84) n2 ]) ~3 _. j* S$ o) o, W. M+ s( a
            IO(Decode16, 0x66, 0x66, 0, 1)6 p' m/ F" h8 }3 p1 A7 o& m
        })" }: P" d/ u+ q3 g1 N% }6 u8 f* A2 W2 p
3、接着就是
4 q% b) R! g! Y. l/ J9 |Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
, u  ~1 f# q- U2 o+ z' u+ M# S8 z通过这个声明,OS知道EC和哪个GPE关联起来
! W- Y$ B1 O/ ?( C- S而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
' S, T2 y- `& z. j# G- p& a8 g- r: REC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。' P2 l( Z; f2 B, _7 D4 @1 `
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。* I7 J# Z) y$ D2 q* n
3、OK,看看linux是如何处理SCI中断的
# l; d" Q2 D" ^acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
8 f  J/ i9 _& Q4 R7 _acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
% q! u: l/ D2 [9 X0 G1 |" s4、EC接到0x84查询命令之后,就把Q事件号传给OS
9 |  _5 l2 ^' _OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
! ?' U  a) K) x! j+ W% p, [/ ~你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
9 s3 }' V- J- }, `6 d( E. Q有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
0 n8 L9 d. n( A3 ^* Qqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
# ?; L4 K1 @5 M0 vbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
6 a$ W1 {) A6 V' [版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-20 09:29 , Processed in 0.079971 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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