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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,2 @2 B2 D5 S( b  `0 \+ J
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。: O2 T& g+ H! ]9 Z+ H. L" V
我们在操作系统下用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的命令
% E  C7 i6 s# gD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check. _- a3 r! J0 |1 ~3 r
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析2 b' l9 N5 v, l5 L
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。" _& \8 _% W! U

/ Z2 K# W* A! K- P+ O/ M5 qVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
; g8 i! b0 R. E4 G& J3 O% He83,
" }- y2 a& x9 o! }, GIFE,
* z8 u* m) B3 x# y& b5 S& o% s3 Re23,oFA,) F1 Y# y$ n  V& J$ t" B6 g
ID1,DDF,LPC RST
& f: P- E! M. ?( TSwrong LPC RST
, X1 X( K6 B, B* ~0 JLPC_Reset_Flag=64

. b" @$ t% m) ?# {0 e& M' k
  v+ @& A( L1 t5 N6 _1 xID1,DDF,
2 u! T! ~$ i. [' y. Q  \IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
( W+ x2 z+ `9 H5 i% P4 t5 hID1,DDF,8 q+ d. ~; {. Y2 y+ p, h
I90,VED,C,RFA,OFA,V01,C,RFA,
8 y, s$ C: q1 T$ r0 J/ c; C- |ID1,DDF,O,OFA,O,6 {; Y4 |* D' W6 J+ f! l4 K
e2A,>IDLE
7 H( e* I! ]8 P$ n4 m- JoFA,<( {# u  [2 G2 x  I
e00,7 d, [- f% i! H9 k  b) ~6 P
IAA,O55,O,& k: Y% J9 z) q1 `2 e4 f4 [8 F
IAD,
% C9 r1 b/ o3 C0 k- _ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,) e  E3 D7 @. T# b
I60,O,D65,9 \, r$ ^4 [% F' D! j
I60,D6D,VF5,C,RFA,OFA,K20,4 e2 y! R; S- Y4 v! ]3 \* }, z7 e
IAD,1 N2 s/ I0 h% d* `/ c9 Y. u
IAE,O,VF5,C,RFA,OFA,K20,
2 b4 J: K& {# _4 v, zIAD,7 n' h4 y! C" u6 ?; ], a. ?
IAE,O,4 I- d" U( [- A6 g
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,0 w8 L0 Y1 ~; ^8 k- n1 m
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
" O8 G% L) y6 ^& q% rIAE,O,& m; d, \2 y  q( E2 J. R
e91,d2F,d00,
4 h, M2 F/ w5 He10,d83,d2F,P3_K#1 Y% @3 B2 S! k1 V5 Q
P3_K#
4 t# Q! L0 c! l% q/ P
6 Y  F; z* i$ g, f4 o
e23,oFA,
2 S$ @0 y8 p7 O* s& R. xI90,VED,C,RFA,OFA,, H( X  L- {/ t9 Y" f
IAD,$ [( S& t( U4 v5 l' s
IAD,O,
+ L! H9 Y2 a" E' }* Q: v- UIAE,V03,C,RFA,OFA,
8 z4 I& E( _: e2 Z, B( \2 P0 OIAD,
# V1 _4 |) O0 y+ i. W7 V9 u( VIAD,O,
; ^# s" C. e. A0 i0 {& W5 M) D2 ?IAE,/ j5 H) E; \7 E
I90,VED,C,RFA,OFA,0 B$ Y* {9 L3 [2 y. O0 X
IAD,
8 n2 u, j! V: EIAD,O,; o9 S* _9 n# l9 @, H( f
IAE,V05,C,RFA,OFA,' f, k: y. {6 y: S2 @) I. N" I
IAD,
2 L& I4 J2 @. n" g4 h, n# GIAD,O,; c7 }9 x6 \% _( q
IAE,O,3 K2 ], ^: M$ d1 y
e90,d2E,o00,3 }3 M5 [+ l8 `1 F* f# v# D& I. N
e91,d2F,d00,P3_K#
% {+ m  w& o" h) g& R& u" E: O' @P3_K#

' ?" t3 ]6 D$ {, X
! R' l7 K" g* ~IAD,VF3,C,RFA,OFA,
/ W3 N$ Y- Q' l+ \IAD,
  a( @' d0 E! F4 ?9 L2 H, S9 xIAD,O,& e3 u; t2 F3 H0 g2 {1 `7 V
IAE,VF3,C,RFA,OFA,
' Q& X7 i. M" H/ P  ^  a! f4 g7 nIAD,1 k$ M! g% C3 f% a9 Y6 U
IAD,O,
  n( i, y& w+ o6 y0 \' r! l; jIAE,V20,C,K10,RFE,OFE,K08,
0 }  l) B, P  a$ eIAD,
0 r: F8 j! r( S  E: n) _IAD,O,! @% V8 c; \9 x) {, N
IAE,V20,C,K10,RFE,OFE,K08,
6 G# \# L5 M! q& hIAD,
. U; ~6 s# {& FIAD,O,9 o% q$ U# i! y- Y  J( B" n
IAE,V20,C,K10,RFE,OFE,K08,7 S+ O) C% A0 u; o4 d$ E$ ^
IAD,
+ G$ f6 Z, |0 k& C# L5 jIAD,O,
$ g% a, n1 O/ uIAE,( j7 U) ]3 u* G' r- r1 s: f) \
IAE,VF4,C,RFA,OFA," t8 S  {# A# f/ ~. l
IAD,
; O  ~9 H% k& o1 ]3 F) q7 p; ?% A3 xIAD,O,
( [4 A% v/ I2 J5 Q2 c6 R+ W" `# DIAE,VF4,C,RFA,OFA,/ F/ l0 P6 z( E
IAD,; K  _: k. v/ ?3 d' h  ~5 {
IAD,O,1 y6 i+ g, w) X
IAE,VF2,C,RFA,RAB,R41,OFA,0 q4 d' ~. J2 g) N( C( P
IAD,
  U8 |8 k' J/ \5 H- UIAE,O,OAB,
& ]" @5 O2 a' l( V$ \: hIAD,. ~0 B& e0 o7 _: e( d/ \# M' F" L
IAE,O,O41,
  t, H0 f$ Y7 E% X. W4 z; C3 YIAD,# \/ s% ~/ x' x! i  O# W
IAE,O,VF2,C,RFA,RAB,R41,OFA,
" T1 \+ i1 Y/ d5 WIAD,
8 N, D, a& z# e: F3 ~. pIAD,O,OAB,& J# W+ u' F( s7 r7 }; B
IAE,O,O41,
6 l& a" Z: q5 nIAD,' M: j7 s  R7 M: W7 W
IAD,O,8 A: L8 D5 l3 K9 H1 L) S
IAE,VF2,C,RFA,RAB,R41,OFA,
. G" E3 Y5 V, n4 HIAD,
5 p, B$ r( ?2 v6 dIAD,O,OAB,
+ x& x2 T7 Q/ sIAE,O,O41,: p) @2 R! `4 c1 p/ m6 ]
IAD,# Y( Z, v! K1 P6 }
IAD,O,
4 T6 X0 q- }4 @% tIAE,
1 T5 D/ `* ~9 i/ P# t: o' Y# K# H2 bI90,VED,C,RFA,OFA,8 u/ E. k+ V3 Q* r
IAD,
* H  g/ [+ R* m* l; a4 \1 MIAD,O,
: K$ k) r! ~3 `  B; l# o; ^IAE,V00,C,RFA,OFA,; l, W+ @; Y& c: M
IAD,
' x; J7 v& a# r6 Z& FIAD,O,
3 D; b2 w0 U) n$ b) QIAE,4 g8 o3 D5 M: o7 Z) T
ID1,DDD,
; t) a+ L- W5 N- `. s6 y% v: nID1,DDF,
. N" R/ c" J9 P! H0 H9 \* zID1,DDF,# e7 J* S) P/ A; f. g$ c4 C
e22,oFA," ]2 Y+ _% d" }2 K
e83,2 h, G$ D' s% u( V# _0 O$ k/ l$ Y1 W
e83,& E, x* S) i7 H6 I
e83,
: r/ d7 ?5 L9 f$ Xe83,9 [4 V3 m0 a4 A- H
e83,4 Q0 P" F, M5 {
e83,6 k. G; K& J# f
e83,9 O- m: N0 @- P6 E6 {3 ?6 k
e83,
/ f4 O% Y! N; I& P' x" z3 B, `; Pe83,
: S. k: \. O- H8 M+ t! T7 dIAD,
+ y7 U) l  t6 ?6 Y, tIA7,, y8 [5 U& M' T/ H
IAE,O,5 I  @. w( v; [% g3 w6 y
IA8,% o" Q. `1 @0 L* N% V6 N7 L
I60,D44,
5 z7 D% H4 g. QIAD,
1 W: N& l' Y# |6 R, v+ cIA7,
. T9 C, I# p8 _6 v3 |# c/ |, d5 ^% fIAE,O,
, B" W- x0 v* j- W! c* d! f; u' ~IA8,VFF,C,RFA,OFA,RAA,OAA,
( ~. f  \6 P5 E; v8 LIAD,O,K20,- ^" i# i# k/ `
IA7,' E1 k- F% J# Z
IAE,O,
9 q" k* Y) {) [, Z7 [; S, [& RIA8,# h- H8 s( X$ U/ n! ~& ~9 X3 _/ @! f
I60,D04,
! g# I/ h$ u7 d* \4 ~' h4 yIAD,- x% a0 t  U/ }) P
IA7,
) Y) @1 n' n! h; I1 U. S; F" U$ |IAE,O,* g' d4 l( a' E# X7 {
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
0 |$ b, U: f' Q8 A, n6 fIAD,O,
9 Y, h- |2 e8 F0 d2 i4 x" X7 kIA7,
* \/ o. P; J- G4 ?IAE,O,! r+ w% S: x; N# B
IA8,. u4 ?4 O* |, W
I60,D44,& H. N, Y3 G# L' }6 m; z
IAD,
" B+ v+ l! N9 p/ @) x1 J5 _IA7,+ Y/ y, C3 Q- {& |$ V& T
IAE,O,# c4 K3 J9 P! X9 D
IA8,
" M9 `- ]* E6 b: ]9 {  l0 A* u: q& gID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,! `/ N5 \( n9 X% V* F
IAE,O,9 ^: D' w7 }1 D
IA8,
/ l9 f; W9 P( a5 m6 s6 YIAD,
1 D# T9 C+ W' w+ EIA7,2 g8 M# t$ T4 }9 J. t
IAE,O,( |2 p7 ?! C7 x
IA8,, d; U( M7 ]3 P* f: p9 S8 N
I60,D47,) \3 D+ c# n2 I$ x* h1 t7 x- i* N
IAD,
. y, h/ Z; A: K; c) J/ Z! aIA7,
4 _. D( j+ ~, h. v/ Y5 A# t% @IAE,O,( y' }( ^4 s. B8 o
IA8," [) @0 S: ]+ e6 }3 @
ID4,VFF,
0 _' ^2 _) Z1 n- b4 d9 v* Y. _% De83,C,RFA,OFA,
( x, G8 K/ {  u2 f! j8 I" fe83,O,RAA,R00,OAA,O,O00,
- Z/ d0 b% m& V0 EID4,VF2,O,C,RFA,R00,OFA,O,O00,
) r, _9 A3 Q. K* K% I1 |  l6 BID4,VE8,O,C,RFA,OFA,; m9 C' X* t" {2 t
ID4,V00,O,C,RFA,OFA,
+ e9 z, `: [5 S; ]' F8 t, NID4,VE6,O,C,RFA,OFA,, V" H' I" o; o6 ]
ID4,VE6,O,C,RFA,OFA,
9 R$ t! R2 a9 g+ o% zID4,VE6,O,C,RFA,OFA,7 ?3 T% T* N- b
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,3 r/ @6 m  Y8 X! l
ID4,VE8,O,C,RFA,OFA,
2 {+ Y+ t+ c9 Y* XID4,V03,O,C,RFA,OFA,
  E( Q  d' E" B/ E: pID4,VF3,O,C,RFA,OFA,
, u6 i: V# u  M7 x. W$ u- B- `ID4,VC8,O,C,RFA,OFA," f3 S' g0 V# X  X( d. |- q1 U- k
ID4,VF3,O,C,RFA,OFA,
5 l$ M8 }  M6 y, ]ID4,V64,O,C,RFA,OFA,& f+ p! O5 [! a' i5 `
ID4,VF3,O,C,RFA,OFA,
+ [8 h# Y2 U6 c* I1 P& s+ yID4,V50,O,C,RFA,OFA,% O- D- z, I2 c3 G8 r
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
. C# b) r) R8 w0 Q# HID4,VF3,O,C,RFA,OFA,  @/ w, h3 v* A% T, X# B
ID4,VC8,O,C,RFA,OFA,; b" i$ u1 B+ `$ d2 a& i
ID4,VF3,O,C,RFA,OFA,
. M/ o. u) V; t8 z! y* {ID4,VC8,O,C,RFA,OFA,; R( z' z3 t" u: X, K) j# E+ G
ID4,VF3,O,C,RFA,OFA,4 X9 P# M* f1 g. ]5 |
ID4,V50,O,C,RFA,OFA,1 a/ B, W& L0 g# ^0 Q
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
  f. i" H# B) m# @8 \6 ]ID4,VF3,O,C,RFA,OFA,
2 T: v' A; v: B+ }/ oID4,V64,O,C,RFA,OFA,
) u! `  T6 y  g' @: Q" AID4,VE8,O,C,RFA,OFA,+ X5 H1 |1 _* t" t9 o$ l
ID4,V03,O,C,RFA,OFA,
# X* G* _/ t# R; O4 KID4,VF4,O,C,RFA,OFA,O,& o, u/ s& N6 t4 ]2 ^" C. Y
e83,+ T  W) n3 M, E0 q7 O, K
e83,
4 F/ `9 m- o& h$ Qe83,' S1 t0 f8 X/ s
e83,
6 T5 b$ n( p' T; ~2 ee83,
; X5 S, k8 q2 M# `0 U4 Ne83,
+ Q- c" ~) K2 Y6 {2 xe83,
) i6 D& Z) C5 de83,$ b" S9 `- ?8 g& d, j" `
e83,9 v% @: u0 j0 p4 r
e83,00,C8,2E,( f  o% C% V* y+ r: d
e83,00,C8,2E,3 k( _0 d  `1 b0 \2 z
e83,00,C8,2E,
4 j( |8 ]  s6 E- M- A( Ze83,00,C8,2E,
* k, j, D0 e& t, ]6 L0 U/ `2 Ue83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,' l6 I1 Y1 `% H; k
e83,
, L$ G& @4 H: {" b6 U

8 x; F" [: g* \
5 z. s2 J7 H  H  `2 C2 B- K[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。# n) ]3 c% g6 L; u
Device(EC0) {+ ?1 @1 C5 n/ N1 @% k9 q
Name(_HID, EISAID("PNP0C09"))
- {: r' \. d/ W. i. P8 N......# r5 z. R! w% o% y
}
3 t- w5 ]1 h- e9 J$ X2 r) S( Q$ oPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
# F$ i; @4 ^% L2 B6 `就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)0 f$ e5 r7 k+ u; S: \$ n2 k
2、    5 g8 ]6 m* |' C* o, _2 N$ G2 R8 G
Name(_CRS,ResourceTemplate(){           ' N6 ~. J5 J& x7 c4 K+ F
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
4 E, P9 `+ [/ o' Y            IO(Decode16, 0x66, 0x66, 0, 1)% N; l2 x% H2 @6 ~# T) t5 r$ }
        })
9 U- A) R+ s$ \/ \8 ]7 j+ }3、接着就是3 R8 _# O, C/ s' |3 l5 ^( h+ e: Y
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
+ }$ l% V3 w/ \4 Y' n7 R+ \通过这个声明,OS知道EC和哪个GPE关联起来. p* X. Y; P, k
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来, i- l# X; ~1 ?) i
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。# \- s0 U4 z2 s% P5 n6 \7 ]8 Z
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。3 o( F3 K2 X- v$ T
3、OK,看看linux是如何处理SCI中断的( u9 v, I: {" t$ a7 P/ `
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
( R' M* v6 K0 q, L$ |0 x5 L$ oacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)4 _: a  {; i& z2 Z" ?. C9 ~0 ^
4、EC接到0x84查询命令之后,就把Q事件号传给OS9 I) Y" R9 j" }7 u8 m
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分1 L/ j3 ?& g! I1 t7 g' Q7 h
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
/ g7 a6 V  ]  B. ^! r; r有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
, Q! b# W5 I8 x/ Jqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm. y+ w  t6 [; q6 }8 T# @$ s4 ?
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
, n9 D6 Q2 c- E( H( C) w6 N版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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