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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?: X* Y3 ]+ q$ F' D( D
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
  K. a2 j# g' Z* H7 ~! z& H今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
  c- H) K+ Z4 l0 E2 F我们在操作系统下用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的命令, ]* p: X; L: N3 I' z
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check3 L! B3 g, i/ D7 j5 F  J) \
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
. g6 o, ~, |3 y; j+ J0 E/ e其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
5 I9 A  h. x: ]2 u8 m" E: ~  m4 E- p- v$ P' H; R
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
  V; s& l' C6 F' o5 y# }; ~e83,: d  a5 ~" W% d$ B& n" E8 b
IFE,
% k( ^# K; q- @5 C- A$ Ne23,oFA,; ~/ R( R& [2 J) X2 ~  D
ID1,DDF,LPC RST
7 L0 x; [. b9 P3 QSwrong LPC RST
$ j. p6 j; `" s4 Q, l, JLPC_Reset_Flag=64

* G, r8 U1 `2 {( h' q  q- Q8 [* `/ z7 f8 S! e+ h  P
ID1,DDF,
$ h& r! r# i% YIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,6 q3 K$ x+ }2 ^
ID1,DDF,( F& w1 E# O. W1 I5 T/ q
I90,VED,C,RFA,OFA,V01,C,RFA,3 z8 Y1 }) B2 A0 t8 f7 N- }
ID1,DDF,O,OFA,O,
$ Q' |  O# _  x6 H, H  Fe2A,>IDLE! k* K, K2 \+ \4 T
oFA,<, V9 [9 ^3 \6 j; P
e00,5 W% j+ d  g0 R' f  b1 I  o
IAA,O55,O,+ M/ q  d8 W+ j) m% M, _
IAD,/ y% n6 `9 `) i! R3 ?
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,: }0 z4 w1 R# i- H$ T9 S
I60,O,D65,
, y' h# l9 [$ p! G- p. NI60,D6D,VF5,C,RFA,OFA,K20,1 A5 ~7 Y" N+ r# p" k
IAD,, X" p1 H2 S, O# z7 R" e4 h9 b
IAE,O,VF5,C,RFA,OFA,K20,3 {6 y* x  V; f# U/ I
IAD,, `5 c+ Z: f$ w2 a, o4 ?8 x" r/ X* w3 T/ X
IAE,O,
- e) M1 i2 {1 t' GIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
* k( G" }% K8 _" v8 i0 EI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
6 {. |- V2 _6 v0 ~* |9 MIAE,O,
# H1 x+ G& c* i" H$ n# m4 pe91,d2F,d00,
% w% K) \8 V( De10,d83,d2F,P3_K#0 Q/ @% j3 Y" w9 ?1 Q/ l
P3_K#

) N- N7 Y3 K; n6 ]9 _, i1 {# H) J7 y, f9 ]6 w
e23,oFA,/ C+ X3 }' Y$ c
I90,VED,C,RFA,OFA,4 ^3 }5 w( V5 X! Z  ^* `% L1 d
IAD,& r9 W6 f) t5 s! B; g7 i8 r
IAD,O,
5 T7 n# F% x! i" ?9 _, HIAE,V03,C,RFA,OFA,
) h+ Q7 h5 ?* _% ]1 t# z- ?& Y% gIAD,
& s1 {/ l! U$ n/ q* p/ ?2 {; qIAD,O,) r4 i4 [; k1 L
IAE,
* i  v3 P0 t$ Q' F3 o9 \I90,VED,C,RFA,OFA," F9 U6 g( {! h# z6 L
IAD,0 w, T, a2 R1 T7 a
IAD,O,& Z  o/ @& ]& b! R
IAE,V05,C,RFA,OFA,' F% v! L5 O0 k! ?
IAD,  u0 r& z0 y& D/ k$ c8 f4 [
IAD,O,
# a( j* B& m) o1 C  VIAE,O,* \" h2 p; z# M: d
e90,d2E,o00,+ }1 i3 b9 f9 X- E/ r  [
e91,d2F,d00,P3_K#% e; T" h: Q* r6 h# A( N1 X  }
P3_K#

: H% D  v* H$ O; i5 h6 H
# x' k% Q! I9 a, v" W5 V4 LIAD,VF3,C,RFA,OFA,
! ~( y  d4 a! \7 X  `9 k5 O7 E! iIAD,8 @  A0 s4 o1 r0 ~8 j+ i
IAD,O,
, N, X  N- r: k! Z0 C% q2 I: yIAE,VF3,C,RFA,OFA,; r' ~" w' h% x% H) P1 I/ X8 @! b
IAD,
1 E3 q( B( @4 @: y) x- NIAD,O,5 @7 ]# J' P9 m% p2 R6 O
IAE,V20,C,K10,RFE,OFE,K08,+ Q8 E* l0 X. O
IAD,+ d/ B) Q' }! q
IAD,O,0 k- T0 n) n, k4 l& K$ x3 d
IAE,V20,C,K10,RFE,OFE,K08,
% U: x2 J" a& B) A2 k) x2 L8 PIAD,& v- b* g6 n4 W+ \" B
IAD,O,
7 @& V+ c; p1 ^/ w  p+ Y' T" bIAE,V20,C,K10,RFE,OFE,K08,
; ~& P5 s% h- L: uIAD,
9 K( d- X% e; E5 iIAD,O,
; D& f8 [3 ~: C; M: ~) kIAE,
" i: e3 q% G& S5 T) P' vIAE,VF4,C,RFA,OFA," s, w0 Q/ l! w, F2 n9 `; j
IAD,; e- [: I. k* ?' @9 o% Z: m
IAD,O,
, `5 x3 C: b5 `, }: QIAE,VF4,C,RFA,OFA,
1 t' |" b' f: }! s3 }' tIAD,
( @/ X0 Q7 L  I5 nIAD,O,
1 X) `3 y7 C5 wIAE,VF2,C,RFA,RAB,R41,OFA,
9 A/ i0 G4 k# H- l& M3 e* gIAD,1 _/ U) e& `: s* G& i. q' l
IAE,O,OAB,
) z" z1 o7 z& @  C* U0 R0 FIAD,
; W+ h% B  p) D- @IAE,O,O41,1 ~& `; a4 U+ z+ @' V% J9 H
IAD,
- g2 j/ }. i, {& |IAE,O,VF2,C,RFA,RAB,R41,OFA,
- N8 Q9 q) X$ ]5 d7 q8 O3 ^IAD,
! h. {0 y/ @/ s% wIAD,O,OAB,
" F+ V5 d8 F: L0 Q+ ~# FIAE,O,O41,; w% Z/ C# {9 |' c+ x& m2 I" q
IAD,
# M& n! X" O! EIAD,O,, M0 ~. W; X# o" p5 ?" B# a7 T
IAE,VF2,C,RFA,RAB,R41,OFA,* `( a5 U" k" V2 N; C; q
IAD,
( I$ R; K9 z6 MIAD,O,OAB,4 w7 l- S+ @& v
IAE,O,O41,
$ j' T; c& x9 I# ~$ W7 kIAD,
4 x: @7 ^6 w& Y* n5 D6 xIAD,O,
6 O0 i9 r( l  j7 S$ t8 D9 \; V* O) xIAE,+ [: O9 Q1 d4 K* @- P( g
I90,VED,C,RFA,OFA,
; l. N6 @5 n, nIAD,
+ z- S9 B: ^4 Z" y, m) s5 @IAD,O,  v0 N& s* H1 E8 E% ?( f7 s
IAE,V00,C,RFA,OFA,
9 [. q6 h0 i# s4 h8 FIAD,
: f$ n6 m' n! _8 s; wIAD,O,
& q/ \+ j; w9 u  LIAE,
( a' ~6 U7 e) W4 Q$ ~ID1,DDD,5 l) d0 e, D$ m( g, H7 ]+ f! \
ID1,DDF,
3 Q0 N  u3 a4 U2 t, U8 I  W0 gID1,DDF,
  i5 m" O- s  v  {5 u+ A+ X7 }! n4 se22,oFA,* ]$ p5 D/ \: l: m0 S  F; Q0 q  n
e83,
" r; o! H* Q4 `; N: c& @e83,' G) c1 M! B3 C6 S3 `8 a
e83,% ^! G0 Q9 ?2 l) A
e83," `2 y! I& h* C* [0 b2 [
e83,
' Z: V  g7 |; ?: ~e83,
6 W6 O" P6 Q& {9 ue83,
6 n7 O" x/ `" w* p7 Y1 A  Ke83,
0 k/ R5 n# K1 |7 ?/ I( @e83,
' z8 X* K& b3 {$ SIAD,+ V3 V9 Y+ o, x) q
IA7,$ L2 F4 I- ~% z4 q" G/ O( [
IAE,O,
2 f: R: }+ ?; k8 [8 `1 ]IA8,: H+ Z# |  i" }% b( M
I60,D44,
- Q0 f! }, D, y9 {8 eIAD,, q1 R% @5 b: q# B
IA7,9 K# a0 z% q( H1 m- Y
IAE,O,
5 g0 |5 e& _+ _# u" N, m2 c( SIA8,VFF,C,RFA,OFA,RAA,OAA,! p# ]5 {3 ~+ _' L2 M% m
IAD,O,K20,
" V' Y. V. m, f' y- |, CIA7,: i5 z) K# ]" j* N/ m% i4 x& `
IAE,O,
. u! v1 p5 D# g1 Q; Y2 J# oIA8,
% S2 n5 _4 ^0 D8 R: s. ~/ Y* p  a' I% RI60,D04,
. P. ^. b, l+ |5 w: U% fIAD,
  h: f/ R: h. V  [: VIA7,
0 F# k  b% p! q  \. j) b# VIAE,O,4 ~  ^! E* ^, ^+ v9 y% W
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
1 D" j( s& S+ {3 V, X9 rIAD,O,. R; @! @$ M6 v( k7 B7 w
IA7,3 v- |9 p. ?  X4 O$ I7 ^8 w7 I
IAE,O,  z) x+ ]6 S7 S+ j( N7 c
IA8,; M6 y3 e7 m* p( U+ W
I60,D44," Y( ?- s8 j9 g
IAD," T, e! p5 u2 K* g
IA7,: y. y8 J  ]( f+ y/ m
IAE,O,, H- g+ u6 j/ \3 E3 M* m
IA8,6 x2 }8 Y, g$ X! x5 n
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
; b8 [' o9 O; d6 n2 QIAE,O,* O- J3 o% ~; z7 z
IA8," ]3 I; ?$ Z" Q: n6 v+ o, A
IAD,5 Z( i8 t7 C" f, ^% E
IA7,
0 W/ S" s. c' }: JIAE,O,
) t! C: N& w9 `IA8,
: k* q, M3 ]$ P7 t3 vI60,D47,) _, `6 S0 f- Y& o2 D$ L
IAD,; U  ~2 u$ h0 y) T/ A
IA7,
& k! z% j3 }: ^5 O5 j4 nIAE,O,
1 R+ L0 ]$ @# t3 ]- Q  iIA8,3 I  Q4 D' _& t5 T( ]8 W
ID4,VFF,- [. F7 E' q9 A- s2 [
e83,C,RFA,OFA,+ _5 e9 V6 [& q
e83,O,RAA,R00,OAA,O,O00,
3 f  m3 f* Q' [: F. ~ID4,VF2,O,C,RFA,R00,OFA,O,O00,
4 b+ E( W1 E+ J% IID4,VE8,O,C,RFA,OFA,1 X# X  k' z+ @( ^" _6 Z
ID4,V00,O,C,RFA,OFA,
8 A% q' t# A' Z$ EID4,VE6,O,C,RFA,OFA,6 A9 ]  I6 g/ h( R
ID4,VE6,O,C,RFA,OFA,  m: S. C8 z* u" _* d
ID4,VE6,O,C,RFA,OFA,& g- T; m+ I% i8 ]3 b* e& H. y9 ?5 C" p
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
! `4 b/ f% K( P& [4 GID4,VE8,O,C,RFA,OFA,; J1 t* T8 q7 k+ A& |
ID4,V03,O,C,RFA,OFA,
, N; x* k: Q$ Z+ Z/ I# y# |7 bID4,VF3,O,C,RFA,OFA,
5 Z, o0 X$ u1 t3 w* w$ K3 vID4,VC8,O,C,RFA,OFA,9 X6 ?* ]  p& ~+ T$ a+ O1 R: `" [
ID4,VF3,O,C,RFA,OFA," D! U% u7 o& }- z1 I
ID4,V64,O,C,RFA,OFA,( O/ D' X, I2 b0 K
ID4,VF3,O,C,RFA,OFA,
1 }/ d! w. a$ ?5 ]0 B7 P1 mID4,V50,O,C,RFA,OFA,$ H& j  k* s) X2 G! R; t7 Z
ID4,VF2,O,C,RFA,R03,OFA,O,O03,/ y/ n8 i4 h% i: j  s/ n  r* e
ID4,VF3,O,C,RFA,OFA,9 O; _. `; a& u
ID4,VC8,O,C,RFA,OFA,. [9 G, k$ }: L4 i) N6 M) _
ID4,VF3,O,C,RFA,OFA,
: {2 V. {. |- mID4,VC8,O,C,RFA,OFA,
( O  `% f# x1 x; f6 E$ C, NID4,VF3,O,C,RFA,OFA,
' [3 R( }. b5 j% \  g3 Q% U* ~ID4,V50,O,C,RFA,OFA,
3 O4 a* C+ p# Q! cID4,VF2,O,C,RFA,R03,OFA,O,O03,
* q9 i1 f  v3 R9 Z* F" M' wID4,VF3,O,C,RFA,OFA,
  ?+ X4 D; v. Y& _ID4,V64,O,C,RFA,OFA,- x- z) A7 w) ~- f! s
ID4,VE8,O,C,RFA,OFA,
, m$ o, z8 L! uID4,V03,O,C,RFA,OFA,2 A7 E$ F; {8 n8 F! A% H5 `
ID4,VF4,O,C,RFA,OFA,O,/ s3 d9 P: R. A' W' I
e83,
8 `% |. V; z- f, [, G4 ne83,& G- S/ ]& C" E
e83,+ Q) x% M' G* g" d1 Y7 g
e83,5 c5 M8 r, Y! l) x% N: T* C& u
e83,3 A$ z2 `6 A* [( D9 f. N
e83,6 @! w1 Z& P/ D: ^
e83,7 g2 z& M" a5 ]7 E( _
e83,
% h! r+ b( A* V( ^/ w0 t' Y  Se83,
9 y/ V7 x% `$ K, ye83,00,C8,2E,  J6 T+ C- u  {2 x; z. c
e83,00,C8,2E,. |+ F: Y$ B2 o6 Z
e83,00,C8,2E,
2 r1 ^) y/ c( j( re83,00,C8,2E,
! I& a$ s6 v! P+ O6 j* fe83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
/ |/ B0 @$ P2 h' m* @e83,
& F3 m5 q/ g" ?+ E

; @" k1 Z9 p0 \* O2 S( o) z! F8 O) }* O
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
( B2 W8 F& K3 O) W. a     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。1 E9 J0 R6 v  Z8 b+ V+ r. s( z
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!2 T* K. ^" Q" Z0 _; _6 `3 s. f; g
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。  w' Q( @+ J2 q% J( Y
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
# k. B3 c- e! u4 ?! I; y( a3 I/ EBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。6 O- q. g2 ^) v& _9 N/ g* X
Device(EC0) {
) F! W8 y8 |" g: KName(_HID, EISAID("PNP0C09"))
! G0 T: F# E5 H' x* z......" @6 ?% H; {- k' ^2 w
}
. N+ ?- u* W7 f" ?. gPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
6 x. ], M. v. `0 R' `, y" k5 J就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
. H( o. R, _  S' l- ^2、    5 K. T% I$ Z, n
Name(_CRS,ResourceTemplate(){           
: J% ^4 \- X& K5 v1 I; Y! v        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84( N/ |7 q  E. w, f- S7 f6 ~
            IO(Decode16, 0x66, 0x66, 0, 1)- y; ]8 L9 U8 f7 ^
        })- J7 _5 ^; Y( y' b/ J* b
3、接着就是$ y0 Y4 E/ w, g( E- W" W
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
5 k- P+ ?8 c! V% F通过这个声明,OS知道EC和哪个GPE关联起来) f8 \0 w  [4 I# J; N
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来) Y* m2 h6 N3 e: d2 m
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
: m- v8 |- W* z2 t& ~而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
( d) D1 g0 d# ~* L3、OK,看看linux是如何处理SCI中断的  D4 }6 e2 M( \9 ?7 a0 A2 [. i* N
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
3 j3 }' }' h: c1 |% Iacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
" E7 z! T* G  q4、EC接到0x84查询命令之后,就把Q事件号传给OS  P% }- O) k: z# G
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分3 ~0 {5 B& X* |- }5 t( R- k
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了9 ~6 O' i5 C  O( w6 N8 u- a3 i! F
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
; a- Z# b' z+ Q  Pqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
2 v6 d1 v$ ^# ]( |+ W+ D0 S8 k$ y5 g, ]bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
5 s; ]4 q7 H7 v5 C0 }, L' g! I版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 10:27 , Processed in 0.140656 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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