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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?/ Q2 v5 ^+ c8 {. {; Q; P
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答," X+ w- ]* Q- C( }4 L
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。! ^; z. ]9 d# P9 Y  f- H
我们在操作系统下用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的命令
4 U  c. f1 D* u) x1 h& u  c" V' ^D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check5 E8 k: n, p; ^; j0 y
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
3 a4 r& i7 F+ u其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。. N( {$ R8 f8 W/ s0 m

& R/ V' P$ D# E1 UVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,/ \$ D3 A" e" ]4 O; A9 ]6 G
e83,
+ Y7 N5 E- l- J  gIFE,
$ M0 Q* j+ Q; T. De23,oFA,
8 `2 |5 y+ E; v5 s2 C9 k; b/ |ID1,DDF,LPC RST- x# |7 C8 M- K
Swrong LPC RST
( \& I" c- Y+ N! O: l- zLPC_Reset_Flag=64

; U, `' X% g2 i2 s: B- G: T/ k8 M. r* Y. ?5 u
ID1,DDF,
6 x6 ^7 D# m! _8 IIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,1 s  ~! [5 H  C) s" G/ v
ID1,DDF,' k  B# C: @' X2 X+ W1 e/ x
I90,VED,C,RFA,OFA,V01,C,RFA,
" m2 Q+ O6 J# r$ oID1,DDF,O,OFA,O,
3 V& I7 h/ |3 Y- w+ Z, ee2A,>IDLE- ?- n8 C. T6 t' W) m
oFA,<+ `% W% a& X+ h+ e
e00,
7 V1 p' H/ [+ y/ |5 I; G5 fIAA,O55,O,+ K" h& S, X6 I# _. t+ e
IAD,5 n6 a3 ~% s& t2 \9 I7 y8 B
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
) x" U" c" g3 J" ZI60,O,D65,8 m2 ~9 g) h* i
I60,D6D,VF5,C,RFA,OFA,K20,% n2 e$ [# }8 g' ?
IAD,$ q# g/ J9 `3 Z& A" ?' N0 [* k
IAE,O,VF5,C,RFA,OFA,K20,
! O6 E1 ~% E6 j" c0 m8 \) K- eIAD,+ }7 {5 S. M/ w% Y
IAE,O,# U5 Z7 `& {" q+ D9 i9 e
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,0 i0 q" U! A) d
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
3 v: S+ g8 C* MIAE,O,4 e7 ?& S) k% K! D
e91,d2F,d00,
: x" c0 R1 Z8 u8 o( r: Fe10,d83,d2F,P3_K#' u" f2 n6 w3 ^6 i+ o7 e
P3_K#
; |* K7 K3 x5 R  @0 H

7 h' C4 H# A% C6 j  p4 D$ re23,oFA,3 F& E! q6 _! Y" ?' _2 P
I90,VED,C,RFA,OFA,- P5 e% w/ v; h2 X
IAD,
  m% x6 u3 l+ p& E; Z: q  wIAD,O,( X/ x+ i8 G3 z
IAE,V03,C,RFA,OFA,% f% W" q# U) A; }+ w8 q, B
IAD,( a& J& P7 j) R
IAD,O,
) x: ^8 r! t; P4 m0 nIAE,
% ]2 M* R% l9 |I90,VED,C,RFA,OFA,
/ `7 i4 Z, E6 g3 M7 W. g- |IAD,7 w% P0 x1 i; B8 C
IAD,O,
1 l2 e; j% K8 d4 b  YIAE,V05,C,RFA,OFA,$ ]5 c% P6 L5 `
IAD,  G- e+ ?. u4 W1 j( \" F; V- h9 i. s/ F
IAD,O,( N1 C# H5 R1 [* h' ^3 l4 \% l: h1 \
IAE,O,( M# }  W6 u: `' y( o- Z* `
e90,d2E,o00," j, t) G- p1 X3 Q2 l; C
e91,d2F,d00,P3_K#: H; [+ c" r; [9 e0 ?/ W
P3_K#
2 D8 W: O* n8 C8 L+ I

# b' o% @8 l/ {IAD,VF3,C,RFA,OFA,
3 E' n1 m8 @1 `1 tIAD,  T! c* X" N; j5 ~& p# @7 P
IAD,O,0 r7 p5 F- D& a0 ^, g
IAE,VF3,C,RFA,OFA,7 h# T6 Y/ z0 M4 D# e- d3 g2 z
IAD,: Z+ k/ L* [8 a* U$ p- d
IAD,O,  g  u0 X4 |. S9 u; E: x
IAE,V20,C,K10,RFE,OFE,K08,: A! K& I6 {8 Y: O7 |7 @/ U
IAD,
& q. R' u* P/ pIAD,O,; z: z! y; v+ D
IAE,V20,C,K10,RFE,OFE,K08,
! g/ d- F# |% P& D1 f( MIAD,3 t, K8 r4 b8 K: d- I; W: p! u
IAD,O,
5 U$ s; _" U  g, V4 [" F% x& m( eIAE,V20,C,K10,RFE,OFE,K08,
) w& u+ Z8 n' XIAD,
! |+ r  e- E' E, h* K: RIAD,O,. I7 p' F* v( _. w9 `
IAE,1 _: [* S5 G: j& J3 r
IAE,VF4,C,RFA,OFA,' D  E9 ?6 e/ [0 M4 v
IAD,
3 p7 Q: U" E+ `% n" [IAD,O,, M# W% B% N  d
IAE,VF4,C,RFA,OFA,9 I7 ~$ N& ], |3 W8 t6 A
IAD,
1 k3 u5 x/ t7 b  X5 sIAD,O,) ~8 n/ E' ]) Q6 l; l7 F
IAE,VF2,C,RFA,RAB,R41,OFA,
+ s/ q! s8 Z) N# t. y% }IAD,, N- g; m8 l2 `7 y6 Q6 Y6 g2 |
IAE,O,OAB,
5 U/ ^% F; [! U. S9 O- zIAD," }5 H" q+ N5 l' z- D* u
IAE,O,O41,0 @* e, N3 _9 y4 O7 d) R
IAD,2 Q2 ]4 \2 t; m: _8 @! A1 G/ `
IAE,O,VF2,C,RFA,RAB,R41,OFA,
$ |/ ~* G. p+ H) X; a9 @6 {IAD,( z) g, ]2 o) F- S
IAD,O,OAB,
) \  z1 b* _+ t8 U! sIAE,O,O41,
9 W9 ~4 U$ f$ f6 x4 C/ {IAD,3 ]) }4 e0 P7 Q
IAD,O,
7 g) ?  [$ O* u# J: R3 JIAE,VF2,C,RFA,RAB,R41,OFA,$ A" J+ G6 x8 O; C8 G) R8 n' j
IAD,
; V+ Z7 {% M0 W+ Q3 `' g1 MIAD,O,OAB,$ V+ P; C( D* L3 r0 r7 P
IAE,O,O41,7 ~( P5 L: n  z( p! y8 ?8 [7 [
IAD,
, l7 L0 f* K/ {2 K/ ~5 i( M$ J4 IIAD,O,
/ [3 M. u4 ?, w1 H; b6 {- e7 Q8 r( ^IAE,! _. q/ r! v7 c
I90,VED,C,RFA,OFA,
! E- a  ?( m* U- ?( z9 A4 `! AIAD,
; Q/ H. @& h. J4 ]# \7 i/ XIAD,O,6 F/ z3 K( Q& f* L; J
IAE,V00,C,RFA,OFA,9 K/ D3 Q) }3 O8 e# b! u8 R
IAD,
) s1 o! l" ^/ M4 u  ~IAD,O,, `8 w- N" ^% t( }  C
IAE,- x5 p1 @: q; W4 x5 U+ Z
ID1,DDD,
9 ~. [" i- |2 ?9 EID1,DDF,5 s/ {2 y9 H1 z) `% L$ t: \
ID1,DDF,
1 c/ |# P& c) e% ke22,oFA,
' e' ^; D# b* ~( y9 s; A( ye83,/ F4 |; v! y, U8 C$ n, _- z' h
e83,) q0 k$ ?& D6 c. L8 ^+ Z2 {
e83,/ @3 V+ R+ n4 U8 u3 x" _
e83,
, D& G4 F+ M6 j7 v  v, `e83,
  E$ \1 s0 k! Q8 u  Y3 ?5 z% z; le83,
+ F& V3 h' u3 C  c' N4 x/ e5 w0 Qe83,
5 S' ~, l4 i& Z9 u) o  Y- U* ce83,/ J( {: @8 T! B6 S$ T+ n
e83,
( h5 J, m# v& L4 N; F# {IAD,
/ y, q0 M! e5 g/ \. A9 RIA7,4 \' z& W# q! D  x1 A
IAE,O,
4 N( h! V# a( n5 ], Z" bIA8,, D; {* _& H5 _' U+ p$ N
I60,D44,
( r2 U! F- M( e0 ?% e$ h  HIAD,$ U7 L' `3 G' w, p, S& {2 p/ }
IA7,
# N% G0 {! E( ^IAE,O,
7 V+ h' c* g& w& OIA8,VFF,C,RFA,OFA,RAA,OAA,8 \0 v3 v0 F3 E- }" i4 A' `8 Y
IAD,O,K20,* F8 h& l- r! P. E  [8 ~
IA7,
& N" a8 l" D! BIAE,O,
0 t8 e2 i6 I0 dIA8,0 U, P) b% b; |+ u
I60,D04,  L' {& q; p$ |% ~! I: B
IAD,2 }. X* z$ _! Z" G. ?( s
IA7,: L" t/ E3 f. m$ d: h
IAE,O,4 \2 w$ D# O6 s: K# i; m
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,) ]: M; D0 _( Z/ b# G
IAD,O,1 A6 g! s1 U5 A; L
IA7,
! D5 K% j( ]+ N1 m' v: {2 PIAE,O,! R7 v9 |3 z0 J- a* S$ @- v9 w- B
IA8,
8 t! K) \* L; }I60,D44,  C% U# L5 D& y& l4 }
IAD,3 B- P6 C- r: h4 P3 D% j( D3 T3 U
IA7,
4 s0 S# q1 t7 y% f" u6 q2 mIAE,O,
) Y" m5 k9 g& I1 GIA8,
. j2 ^- `+ `0 s& WID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
/ b1 c; ~. M& {) DIAE,O,
( U/ Z: a/ R# ~% x0 p& j0 F- jIA8,
! ?0 ~+ z& u2 R7 QIAD,! c& F) J9 C# S' S- O+ p$ U; c
IA7,
. e$ V( }0 x: G$ FIAE,O,
2 Y, J% O- w0 R. F1 LIA8,
$ `) w4 j8 Z4 t3 K4 K# dI60,D47,- i4 Y' O& b, P: Q4 }0 T( U3 t
IAD,  o$ o$ y4 s( X; A
IA7,+ V3 Y8 T! U% R% ?: N
IAE,O,
  W2 P8 }4 j4 v1 a4 F2 O5 }+ @2 MIA8,8 z( X* ~, v: E; i" \
ID4,VFF,
- y; S" l7 C2 f2 Be83,C,RFA,OFA,
: i& N- k: l+ D4 t, c$ k& Re83,O,RAA,R00,OAA,O,O00,1 [: F% J" h. {4 {: y3 ~$ B
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
" b! g( K$ e1 O" E" @- K$ iID4,VE8,O,C,RFA,OFA,
- n  L7 f' ]7 `/ ]0 V. o) \7 n5 p4 T, A* BID4,V00,O,C,RFA,OFA,
. `& W4 J  o6 Z  |ID4,VE6,O,C,RFA,OFA,
1 v4 F5 m- }6 Y/ b' U. {$ m8 i, GID4,VE6,O,C,RFA,OFA,
  A6 V& w1 i' \: g9 [- l6 G2 FID4,VE6,O,C,RFA,OFA,' b; l' o; k* M( J8 T
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,$ M3 r! X0 D8 L7 c9 {
ID4,VE8,O,C,RFA,OFA,
, g3 b6 z& a3 C: X( L) \' J! [# V: V: CID4,V03,O,C,RFA,OFA,
. i( M7 v/ l& @2 e7 [ID4,VF3,O,C,RFA,OFA,
* V; i  A1 W6 D+ ~# ?ID4,VC8,O,C,RFA,OFA,
$ L5 p( b( d: Q/ P) yID4,VF3,O,C,RFA,OFA,
4 T6 I2 Q, M- [3 W3 LID4,V64,O,C,RFA,OFA,; \4 Z3 i% G$ b) d. |! ^7 v' l
ID4,VF3,O,C,RFA,OFA,
2 V1 G. g) }4 Y/ ?$ s0 v5 xID4,V50,O,C,RFA,OFA,
6 |: V7 ~8 `  TID4,VF2,O,C,RFA,R03,OFA,O,O03,
# q* h# d3 u. dID4,VF3,O,C,RFA,OFA,
3 E0 d- q! @0 x# a) b/ qID4,VC8,O,C,RFA,OFA,
' {' |# W. C  `- WID4,VF3,O,C,RFA,OFA,% L+ A' z- C3 R% }# P3 ^& G; ]
ID4,VC8,O,C,RFA,OFA,
/ ~6 u; R% v/ j8 m6 _) G, XID4,VF3,O,C,RFA,OFA,- A2 S: W1 }2 p; Y3 |$ f
ID4,V50,O,C,RFA,OFA,/ |  c$ K' l& }5 E* k4 \
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
2 b, z4 Z) a: P" x- F1 ~% QID4,VF3,O,C,RFA,OFA,
* a% f: @+ h# P' GID4,V64,O,C,RFA,OFA,2 S0 Y% N( T/ T! |2 V
ID4,VE8,O,C,RFA,OFA,
0 P" ?! U9 Q% ^& s9 E3 h& ?' HID4,V03,O,C,RFA,OFA,
% v) {* v" u. K' dID4,VF4,O,C,RFA,OFA,O,& }& s4 J4 U, o
e83,
; |8 S7 L0 B& ~% }. i# {e83,% k6 b, j# u2 x5 x  R. Y, h/ c
e83,
* w) g0 i: F3 q, b. Fe83,3 ?7 r& o3 C1 ]+ y) i+ \8 _1 |" v0 q
e83,
$ A- R: P/ D5 i. Y9 _6 }e83,8 a' b* e5 T8 @3 l# s: t. V# I/ v
e83,
- C+ S& ^. N  \+ P2 V' }e83,. w! q7 O" B- ?; m9 o8 f7 P
e83,
  g( b4 n) }3 H( |7 K) Ge83,00,C8,2E,' B8 ]" e) A3 O$ [$ ?
e83,00,C8,2E,
; {( }' E! p& K  M0 ze83,00,C8,2E,
8 a  V/ w! j% M: U( F3 je83,00,C8,2E,4 k) p* `6 Q8 B- K# Q
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
/ U: h1 Y0 }: Y- \  y2 p5 `) I7 re83,
9 x: L: n! |) z! F6 l

/ [+ Q4 u" |% `/ @4 r* y1 m) @& G0 W
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。% g# `' a4 |4 l
Device(EC0) {
. ?& t# [9 X8 Z, D: P; N; eName(_HID, EISAID("PNP0C09"))
4 v. T, @0 c* c6 I" Q2 T5 J......9 Q' g. _! g2 ]& I
}
# e& [# S# F& J3 _5 s9 S5 ~- sPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
% B$ q* h6 q4 R, O就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等); P; d* ~+ N% ~3 p' p
2、    , I+ P, G9 w) K  m- V* L
Name(_CRS,ResourceTemplate(){           
8 {1 Y" G/ ~" b, y% r6 q0 b        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x840 i" i: q6 m* |! [! n) [
            IO(Decode16, 0x66, 0x66, 0, 1)
7 ?7 G" ~, O. X5 X/ K        })3 C5 y7 R3 `) j
3、接着就是: [! A1 p# j/ w( V
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7! b/ ~' [! O5 Q, m1 x' A, p$ Y
通过这个声明,OS知道EC和哪个GPE关联起来
5 X. Q7 u$ e) {# w5 n! C; j9 x而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
. x/ ?. d- Q  v" u3 R, c/ fEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
! l' R% ]9 y! H0 T0 d  ?而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
5 c  k/ x) S. N4 v7 \" t* A, v3、OK,看看linux是如何处理SCI中断的
5 w5 ^+ y& t5 v( wacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute" v$ r8 i, {5 {( D
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令), S1 i2 z- m2 A3 i+ \- o0 l
4、EC接到0x84查询命令之后,就把Q事件号传给OS- e& m/ p1 N. m! f5 G4 D& q
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分1 w* L4 K7 I, l: R* ^2 J9 q/ O
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了) b0 ?# q9 n' E
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。8 Y( e7 V5 Q9 E5 w5 m* [
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
& s; e; J: Y+ f9 T" b4 Wbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。) d3 @1 r: p; ^1 V; g
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 14:26 , Processed in 0.247888 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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