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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,, D! j8 H* ^: S) }
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
9 H' m0 z' {$ S; q% x6 W4 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的命令5 ]; x( q+ v5 z: l
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check( x; T4 U/ o3 ^% U$ J, L& x( e1 b
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析" ?2 w- m) R! Q( X  n7 d' u
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
" F  Y" b9 p: j4 o' p: k
# O) S, c0 Y, h' J1 p" ~VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
! f8 X/ x( S$ f- N6 P( Je83," `; R! b$ X6 F  M5 q
IFE,6 d9 y) B, X, Y. |; @! U5 k
e23,oFA,
1 X  ^( |# Q; F$ u$ o! UID1,DDF,LPC RST$ o: J  g. j# q1 S5 I; l
Swrong LPC RST
8 H1 F! L  F2 ?+ w9 Y) \LPC_Reset_Flag=64
5 Q  J7 t9 s9 e" }; b3 R- R! D# Y* u

4 l! ~. ^9 d/ `* T4 ]ID1,DDF,- I6 t; O3 m- X6 w2 k
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
, ?  ~9 W/ [4 w  t. aID1,DDF,: f- E- @1 ~0 H& z- I4 ^6 t# [* G5 S
I90,VED,C,RFA,OFA,V01,C,RFA,
! q$ p; d* U" u0 v; ~& H) ?% X1 n$ IID1,DDF,O,OFA,O,
, M. H6 K3 {, r% _* H% ^e2A,>IDLE- A" s1 p5 A% f1 o7 C( w% }
oFA,<
2 [3 V. o( N! X$ X, le00,. Y1 O3 v# g1 |* n8 A; s' [
IAA,O55,O,
) E! H) v2 `6 _IAD,
5 j* m5 z! \( y) eID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
5 C9 o( n0 `+ mI60,O,D65,
/ }: [6 r- o; i7 X/ uI60,D6D,VF5,C,RFA,OFA,K20,. @: _& w* L8 F& n+ c  \9 `8 p2 L
IAD,5 V3 c( @0 v3 C. j/ W: y
IAE,O,VF5,C,RFA,OFA,K20,1 ?! T( k6 E# y0 z8 [8 k( }
IAD,4 w. ]4 F* ]2 R. G6 ^
IAE,O,6 H( r, V$ b+ {, H9 f) A
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
8 b$ r% _* Y. o, TI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,# y5 r3 I1 m# W0 |6 ?& f0 A  ~( u0 e. d
IAE,O," h" Z1 h7 f1 X+ A
e91,d2F,d00,; h3 ^5 Q) n! i" e
e10,d83,d2F,P3_K#8 ]% W" Y! a) m0 i) v( ^3 m
P3_K#
+ K7 I5 M# \7 D; F0 n% q# h
6 {# T1 S, T2 E, o$ L
e23,oFA,9 |# I. t* D( U% t! V! W7 f
I90,VED,C,RFA,OFA,: v" {1 w5 m3 u: K" |
IAD,' V* S; O! u9 w* o0 [- y2 C
IAD,O,, o; Z4 y9 ], G0 {3 a# i6 C
IAE,V03,C,RFA,OFA,
+ Y. Q7 @' g  S2 |5 R4 zIAD,
; |' e5 R% g3 d; N# v& p8 KIAD,O,) K1 c: s' H3 j' u& G* P
IAE,
2 U( t* a/ Z  K% g& f8 C) vI90,VED,C,RFA,OFA,
. f) G4 ]& y% [: f3 R0 x" lIAD,
7 D7 G( U$ }: B, V4 wIAD,O,
$ Z& A' ~# S2 h  x+ s) m* V4 \, ?IAE,V05,C,RFA,OFA,' T2 X( Q7 ?0 S% {
IAD,
3 G9 T9 m$ r1 @1 j. ~! V$ G- \IAD,O,) |# d4 X9 `3 t! A- X3 Q
IAE,O,, h: `5 Q$ Q& [0 i% e' d
e90,d2E,o00,
" H2 @6 A, v2 H9 [/ C0 qe91,d2F,d00,P3_K#0 U3 F# H! Z: [8 L1 L
P3_K#

5 a6 F4 [$ ], E+ s9 F
# a- ]' Y* ~' O6 `0 eIAD,VF3,C,RFA,OFA,* D' N% w, r5 R& `5 x
IAD,
' i' C( a3 D; y3 e5 eIAD,O,
% s9 b2 p2 ?% v; t, FIAE,VF3,C,RFA,OFA,
7 |* V" Y1 K7 U3 kIAD,+ W* Q) L; C! p1 ?
IAD,O,
' P0 V" w; b) P' u1 l( oIAE,V20,C,K10,RFE,OFE,K08,
3 e( C, p# x( o. r; nIAD,
) q- u6 Q# Q& ?1 |IAD,O,$ Z# A% q, I6 P/ T5 L
IAE,V20,C,K10,RFE,OFE,K08,' a0 [; Y; }+ ~6 Q& q
IAD,
( z0 g, _# Y5 u( A% M2 \! AIAD,O,7 R' |0 Y4 z) i+ x1 `
IAE,V20,C,K10,RFE,OFE,K08,2 \# S# _+ ~. }; ?% C4 `
IAD,
( Z" `4 C2 d5 [IAD,O,7 M9 y6 r! A5 E: ^# N# @) O, ^
IAE,
# Z- Y2 ~9 l/ s6 Q' j4 ?( z6 }1 _: r1 rIAE,VF4,C,RFA,OFA,. y4 `7 J% N# m
IAD,
! R6 `, I% @+ o8 @9 s7 cIAD,O,' z! O1 j: U. {; L. i+ {
IAE,VF4,C,RFA,OFA,
% L! n6 M$ D. _; ]! vIAD,
6 R0 C; a! [: S1 N3 P9 xIAD,O,6 O7 u% M+ C: I$ e0 B" t
IAE,VF2,C,RFA,RAB,R41,OFA,
8 j" H9 F6 u0 [+ k. W4 ~; fIAD,& ?8 ?! s* v; t2 x$ `& z$ ?1 ~7 _
IAE,O,OAB,2 [; R' {$ _( a4 d: d& Y
IAD,% \4 H, a2 R% n% [
IAE,O,O41,
' Q: A: r$ z7 i1 VIAD,
& ]) j% {+ O* U1 `  v3 ~& c1 PIAE,O,VF2,C,RFA,RAB,R41,OFA,
2 }) `. l* T8 [' G- ~IAD,
7 o7 X9 K* S2 L3 Z2 U+ mIAD,O,OAB,5 _; M9 b4 k# b7 X
IAE,O,O41,
* ^  r! c# J5 O/ J" |! e, jIAD,) ^  P1 {- H$ j9 r$ m
IAD,O,5 E* G9 P! A& z4 u3 k2 _0 Y
IAE,VF2,C,RFA,RAB,R41,OFA,
! l) j% `+ E/ c3 QIAD,( a% S% \2 R! T, F" w. g1 U4 q; F
IAD,O,OAB,
4 m! W* F. ~0 k/ kIAE,O,O41,
* o1 `& k, R6 p( iIAD,
8 ?& i" D6 ~/ Q) N& q' L$ a# KIAD,O,
4 p5 e! z3 P) I2 k# D: a; _IAE,6 n& F3 i2 N' a) f" |
I90,VED,C,RFA,OFA,
$ w# u; h2 j3 o& ~/ f; R5 R' k- I! VIAD,+ R) E$ s: f: G8 ?, c. L3 R* C2 R
IAD,O,
6 _0 ~- u$ A# @, A. `IAE,V00,C,RFA,OFA,: d: r/ f$ j- U) ^$ X
IAD,
* g; p- a& u* s2 i/ b8 l  c3 f3 gIAD,O,$ ^6 P; Z/ Q) t( c
IAE,
% ~$ }* a. Z6 T+ M6 R0 CID1,DDD,1 F. V" X* @4 ?( J  `
ID1,DDF,
- X" v* D- n- d. ?8 l, ^8 `ID1,DDF,
: h. h8 ?( O) y" he22,oFA,! \0 K% ]# G( b2 I3 e. M
e83,0 O/ R% ~7 _' x2 P# S0 K
e83,% x: l) ^  H) d. t% F
e83,
3 N) L3 _8 p9 f2 pe83,1 N8 B; S5 Z9 D8 {
e83,! J5 a2 ^& S$ A; d) x! e
e83,
% ^  V: X# Z0 d  V0 ?" \e83,
1 }6 F2 r4 x) `( `4 J/ e' He83,5 R; [# X# x  x. b, D
e83,
0 }% L8 G+ G1 TIAD,' b, b, v+ L7 v7 `$ Z. z7 `
IA7,$ j0 W' X% m* [
IAE,O,
. W4 A. P* k, g" X5 dIA8,4 I/ H) Q4 ~* p2 @9 z4 j
I60,D44,
5 e: [3 O0 ?, ~: Y( ?IAD,
) T3 ~/ q2 E' B- U! y# uIA7,
9 Y2 v/ [4 x! HIAE,O,
" p. v0 {% ~8 U7 dIA8,VFF,C,RFA,OFA,RAA,OAA,
- I& _/ S  [  `% ^- i5 |IAD,O,K20,+ Q, p# R$ q6 j# p$ k5 h! f  ^7 Q
IA7,
0 V* }4 ]2 M# s5 p! KIAE,O,' Y6 M* u+ t& o! V: n
IA8,2 c& }1 p" B& s3 ~3 d
I60,D04,* Z* j, x1 z1 B4 z1 K' J
IAD,
; Y/ ~; f+ {7 C( H+ |; VIA7,, \3 j$ v' o* ~- o) T
IAE,O,' ?2 W+ J* V( K
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
  m! F0 H! ]$ s7 yIAD,O,! a, k: `* H; q6 H, `2 G! R- G
IA7,
" P0 y& q" O& b4 y! `IAE,O,
% G" f3 \" ^- U# G- w" C: x$ Y8 a# LIA8,. D+ }1 e6 {2 N  ^
I60,D44,
' L+ y7 z0 X3 ^$ P& QIAD,# b5 S8 }+ F( O  r
IA7,
" Z0 K0 R3 o4 x% n% tIAE,O,
) w) ~( h% ^8 M9 HIA8,
+ q3 \' Z/ V5 o- r4 n4 @ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
+ O" C3 w  U+ u+ N3 h, J$ g- a; rIAE,O,' b* y8 D; n, D* x  b+ K
IA8,6 O2 _! b* Y" H% U
IAD," G, F) G! i% }7 h+ E
IA7,
8 H$ O/ {/ G/ Q5 h1 v6 [& N$ gIAE,O,
. E4 c  M- l3 A; y; |9 Z0 Q0 M; xIA8,  m7 N" l9 t* {+ |/ K9 |
I60,D47,
  I" i3 d8 D: E" t7 O) k/ IIAD,
0 z4 r' z( A& B- A+ g' S0 [4 ?IA7,- e8 w/ \6 L$ K% z! V
IAE,O,5 d+ j( X' O1 Z2 \& \* ]
IA8,! x/ S' d8 N) G/ [. C* M& e
ID4,VFF,
& v8 B* [4 f% s  P5 A/ d6 ]e83,C,RFA,OFA,
' D# i$ P7 P  V7 Q/ l! ge83,O,RAA,R00,OAA,O,O00,
) u( \, l$ R7 VID4,VF2,O,C,RFA,R00,OFA,O,O00,* }5 N' t- Y1 T7 }
ID4,VE8,O,C,RFA,OFA,( `4 r6 C0 A5 h$ K# u. @/ O
ID4,V00,O,C,RFA,OFA,9 E8 c! t" J" M+ ?
ID4,VE6,O,C,RFA,OFA,  T+ B; ~9 c, R4 w+ P
ID4,VE6,O,C,RFA,OFA,7 g: R  ]; d0 J7 r
ID4,VE6,O,C,RFA,OFA,5 y; ^% y# b/ j# ?
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
6 R- a1 \7 V; y9 w) N" j! R- RID4,VE8,O,C,RFA,OFA,1 }9 s: p: Y( D! v
ID4,V03,O,C,RFA,OFA,
4 h3 r; b; d) {6 w5 E0 \9 ?/ K/ fID4,VF3,O,C,RFA,OFA,
3 m" i; h. Z6 B2 hID4,VC8,O,C,RFA,OFA,: ?6 E% M. V& l- }' j
ID4,VF3,O,C,RFA,OFA,$ e, w. N  ]  Y2 B! e
ID4,V64,O,C,RFA,OFA,
( B" e6 c6 t  ?5 |$ g& SID4,VF3,O,C,RFA,OFA,
& }4 B" }: u  ]+ ?& [& f6 l0 dID4,V50,O,C,RFA,OFA,- H  v: }! S8 o8 T/ ^" M
ID4,VF2,O,C,RFA,R03,OFA,O,O03,; \  ~9 v9 Q4 x6 ]; R
ID4,VF3,O,C,RFA,OFA,
/ s! ]* C- t. n) m: lID4,VC8,O,C,RFA,OFA,; x4 s6 g9 K/ Y, y" D7 I
ID4,VF3,O,C,RFA,OFA,/ K& @  Z/ a% Y7 ]+ r) k1 y& @
ID4,VC8,O,C,RFA,OFA,
6 J$ p" L9 J  OID4,VF3,O,C,RFA,OFA,9 u5 v) n% c6 u- x
ID4,V50,O,C,RFA,OFA,
! q, R" j2 |7 W2 KID4,VF2,O,C,RFA,R03,OFA,O,O03,0 ]0 ?  M' @& t* D# D! L- a0 f
ID4,VF3,O,C,RFA,OFA,
5 s) N3 i3 |8 U2 [7 f' J- N. m' i# RID4,V64,O,C,RFA,OFA,
! w; f' E5 W6 T; M% xID4,VE8,O,C,RFA,OFA,
3 `3 B! e) d. `ID4,V03,O,C,RFA,OFA,5 g( R& [" g. h3 h# F4 I* D
ID4,VF4,O,C,RFA,OFA,O,
+ X$ X- t9 n1 @! {8 B0 ]8 Ie83,
; E* i- U: K( h; p& \% We83,& z# Y9 ^& A# j' y5 f. j
e83,
- s7 D! V7 n& I; T! Ie83,) r& ]9 ]* i; }, K: l6 z
e83,7 U$ t- }6 @* Z* Q1 ^3 ^  c: }
e83,
# W1 z: y2 C7 p. Ae83,
9 ~- v9 I1 G8 @) ue83,8 d  Q) T9 h, x* d
e83,) D- }6 G( h% T! O
e83,00,C8,2E,
9 d: k$ j% }+ d3 je83,00,C8,2E,
" i, y- ?8 g4 C' b- ce83,00,C8,2E,9 j3 E2 |, z/ Z4 j3 r
e83,00,C8,2E,2 N, e- p8 ~* }: m* W/ k$ C
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
' I& j: g# G: ]' Q$ e# ge83,9 M, H$ g- k- ]

/ v' t# O& k( p- f, p$ {) p/ `' R# y1 e" q
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。2 C% A" z% _. H5 V# \2 b
Device(EC0) {
- W' K) U0 O4 _6 m% K$ dName(_HID, EISAID("PNP0C09"))
) o5 L. v  T) q. r5 e4 a9 |......$ r) K. S6 f: V' z
}! G- M* ^( O5 y) F9 p+ y9 ^0 C
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09," P) A4 Z2 s, k1 Y0 e! V
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
  ]. Y; U8 P, a2、   
% U: T' Q! P% B4 PName(_CRS,ResourceTemplate(){           
# m4 x0 `9 w+ S1 @- j        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84( y  A, l' ~$ L
            IO(Decode16, 0x66, 0x66, 0, 1)- ?; Z8 o% z9 X) u8 `
        })
% h  m( e6 S" ^* h- o3、接着就是
* M( m+ g! S# |, h/ g' K5 W- bName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
2 I  G/ `6 M: n6 J: |6 _- `& A通过这个声明,OS知道EC和哪个GPE关联起来$ y9 {6 D' x! z& t6 f* i3 d
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来" }  X; q; O& Q
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。- ?1 e' w1 \& i. @) z: C/ W6 ?, |
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。! ^% P6 g5 L  P# F. N6 W+ J& l* X
3、OK,看看linux是如何处理SCI中断的# t+ K9 l) X4 Z- h: v) X
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute7 K% P6 f& S8 |; n- V- `  ^
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令); n6 z$ h: M  O7 q3 u' S/ f& e
4、EC接到0x84查询命令之后,就把Q事件号传给OS! H  `: O3 \% }+ U' R; u: O. D
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分. J. ~5 k1 y; G) ]9 h7 t- E
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了, l; y4 I0 M; G. ], x. v; e
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
8 a1 I+ I- Q  ~; B$ T. y% {qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm% U7 p& Q6 I: F& H+ f6 |2 V# S
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
' g! o+ L# h* }9 _; E版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 17:36 , Processed in 0.065330 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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