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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
$ }+ ]) L7 w  e* w" h$ I今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
1 w3 s! w& s" L3 y8 {我们在操作系统下用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的命令: U- ~6 o3 x  ~% g
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check9 l  h6 z0 A: Q
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
* L; j& P) G: I" |" }其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。& ~2 g4 N$ f# O& k7 B

  Q5 v& Y3 M3 YVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
" m7 H6 `5 _( we83,
* e9 D1 ]# z% n' p+ a% MIFE,
9 J5 C8 l; x- [, `* W, {e23,oFA,
6 |" M2 C. c% k0 K% W8 }  m) T: eID1,DDF,LPC RST
0 b; F$ ]5 X. {  S/ ISwrong LPC RST
* M  V) I) z! q# Z3 k& P6 ?LPC_Reset_Flag=64

5 H: r9 f+ g' Y& P! G
- E7 u) Z( ]5 f4 b7 }ID1,DDF,
% K- z6 G7 l1 I* x8 Q! S4 ?IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
9 k" ~6 z. g/ Q$ k" v2 KID1,DDF,
! G# f/ h+ z- y! L! N- CI90,VED,C,RFA,OFA,V01,C,RFA,% [, K: a- T# J5 T
ID1,DDF,O,OFA,O,' H8 D; D' x9 m7 d/ z2 n
e2A,>IDLE5 q1 \! {+ ^: z
oFA,<
9 r' a7 Y" B; Me00,8 s3 C# ?( D, @' k
IAA,O55,O,  A; v0 B( L& S! O7 y
IAD,
5 s4 a. ?8 H+ e3 \& a. D: VID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,) D8 H3 z2 ~0 r* x- E. u7 _
I60,O,D65,7 f# P# H; X  j( X1 a1 p% `
I60,D6D,VF5,C,RFA,OFA,K20,9 n( f9 I( u2 Z) F& L* c
IAD,
0 q, \( k/ a$ i" |IAE,O,VF5,C,RFA,OFA,K20,
3 R2 |; v8 l# a2 k9 [' k1 }# f: VIAD,1 v+ ]" j6 A# ]4 O4 h* {
IAE,O,: g1 v8 T5 q0 _% `/ E
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,. l. t, T% m: w3 e6 G. A  `
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
  ^( h( {5 N: }5 wIAE,O,0 a: @* \( ~) c# W9 o
e91,d2F,d00,
8 v7 m/ Y0 `' o* ke10,d83,d2F,P3_K#& j! {: c5 b4 f# ]
P3_K#

9 h/ i$ m8 C" N. y' v. x" X7 n
6 A! [( e1 j& k' He23,oFA,' X  E8 ^2 @# p
I90,VED,C,RFA,OFA,& o5 k0 \6 `. s% d( v
IAD,
) a  Z  d' S* L" t9 j5 K, m" F7 Z  E- k- uIAD,O,# b. {! h9 F0 ~9 {
IAE,V03,C,RFA,OFA,
$ Y$ S0 `5 ^2 c* j5 u( f9 PIAD,
$ N1 @7 V8 Y; K) s9 n2 p8 N, \IAD,O,
1 }  x9 o6 i' w* yIAE,
; ^3 }0 }/ F/ F4 s0 t, \I90,VED,C,RFA,OFA,
; g+ C# I2 f0 i+ ^5 r. G. @0 LIAD,* X1 l9 \- v# K4 O
IAD,O,
% w9 r1 X+ }; g, H3 }IAE,V05,C,RFA,OFA,
6 G. W9 b& k0 l- M- |+ k' P% \IAD,/ X, {' q. k; S8 t  b0 u
IAD,O,
1 z- G( V  U  ZIAE,O,. x7 s' f. N( G
e90,d2E,o00,
8 h6 D0 `% g4 X* x, S0 Ne91,d2F,d00,P3_K#! I! f; e* F  t+ A4 U8 Y4 ]4 K
P3_K#
( k- M1 \7 h4 S' j
. ^: O! T" i$ W! z! k9 v( ^
IAD,VF3,C,RFA,OFA,
3 c# N* v3 _1 [% m1 C+ F! w' PIAD,
$ r1 W' @+ b  s) eIAD,O,5 P' M# F3 j* W  v8 l* i# X: F
IAE,VF3,C,RFA,OFA,0 {% X) ?8 y2 D7 f' ?
IAD,5 Y) W! K$ C/ s1 E
IAD,O,
( i  n7 Z0 c8 e7 Q' V! o& Y7 cIAE,V20,C,K10,RFE,OFE,K08,
2 s* B4 w- p) s; t. n& k5 uIAD,
2 p9 W$ T0 `8 e, A, k& `IAD,O,
# P" a, V8 M2 N' V6 T- A* W; gIAE,V20,C,K10,RFE,OFE,K08,; C2 A+ [. o% c2 Y
IAD,
- D! P5 ?+ O8 r* G, m6 C! y+ _IAD,O,6 j4 n' k2 S( m5 {' g+ n
IAE,V20,C,K10,RFE,OFE,K08,
4 N% L8 v( z; w0 ^IAD,
$ ?# u" q$ t6 A" b$ ZIAD,O,
/ \, t& @# q4 Z  Q8 z# [IAE,$ M" r0 }0 }  R7 Z2 V
IAE,VF4,C,RFA,OFA,$ u# S4 X0 g5 R! Y. O
IAD,
! O: o* f5 K7 F" f# dIAD,O,
, g9 R( l  ^( d- D. O- ]IAE,VF4,C,RFA,OFA,
- L! Y  {# _( t1 g- ]IAD,( v# i. l3 V0 b0 g. }4 u
IAD,O,9 u5 }; n0 h% n" l' P, i) G
IAE,VF2,C,RFA,RAB,R41,OFA,4 N7 M  |9 n5 i$ v! B- c
IAD,
1 C: Y/ U' Z% S# \* B) n9 o% D* w* c' d/ KIAE,O,OAB,
4 R1 n& m# u2 b8 A+ U: v+ h4 {( @IAD,, A$ Z: g+ r4 Z
IAE,O,O41,
2 F- h) E4 O+ a2 _8 j0 ZIAD,7 ]) T$ C6 ^. u2 F5 D
IAE,O,VF2,C,RFA,RAB,R41,OFA,$ ?- q, O! J" D* |# z
IAD,5 I" U; }. ]! @% ~3 \# i
IAD,O,OAB,
1 D' k0 H  u6 \! fIAE,O,O41,
" K0 t3 q( ^1 m' }6 i6 ZIAD,
/ R  J  A) @5 W5 X$ x3 [  z6 n4 jIAD,O,0 g, u% m' v4 |7 r( J' V
IAE,VF2,C,RFA,RAB,R41,OFA,/ T9 @; ^8 `+ c& |) i) o8 T
IAD,/ r0 e* s; i; f% l4 p. m/ Z
IAD,O,OAB,
& {3 B/ X- M% @IAE,O,O41,
% E+ `8 C. [, }IAD,& M3 @! f! w* G9 {8 ~! Z3 M
IAD,O,. q- g' ]( s9 N
IAE,2 w8 D* d9 N! j, z
I90,VED,C,RFA,OFA,; U; ^: p% F/ z/ D6 V& c9 g
IAD,$ ^" K" s# M7 @$ o' G/ t
IAD,O,! k1 e) Z' E5 x( L+ ]: P6 ^, @# |& y3 ~5 ?
IAE,V00,C,RFA,OFA,
# q& \$ S9 W5 `0 p  IIAD,
, P  a- p8 v4 J4 v9 cIAD,O,
* p1 c# m# N0 ?2 _$ {$ {8 W0 _" P" |8 uIAE,
$ O" l; x" ^$ G  M: zID1,DDD,! t1 a( O! r& f7 e+ C+ D# O8 w
ID1,DDF,
) _  R- }; _3 S  O3 W1 G; F: sID1,DDF,
6 g! e) z- |# E: H* a. Te22,oFA,
, Q9 k+ ^5 e* A& g; O. Me83,
6 E" H5 {: k( D6 W% h3 C) @e83,
4 a$ v# h, x3 I$ q6 Oe83,) s# h% N1 k% [& f8 u( d
e83,- x6 X! }# ]/ g! q" m
e83,
0 H# E' V" A  ^e83,
6 Q& \6 y+ M0 h0 n3 I- J7 ke83,
4 W9 O2 U  w1 V% @: f# }e83,
* s( W$ _- F. G! U- M- ?5 Se83,
$ j% e8 o0 F4 {/ a- PIAD,
- q: j! ~) h" f( Z" u2 GIA7,& U! X/ n& y% H3 {4 U' N
IAE,O,
* x% l7 w, X) _; F, w# oIA8,
+ v# ]6 I; Z( U0 @I60,D44,, @( M5 h# t3 V' H# y: K0 E9 z
IAD,
$ \% o6 w% j. H" @; PIA7,
& e) S3 q* n: o+ H1 A4 _IAE,O,
- _: r% y- s# O( }0 r$ {1 BIA8,VFF,C,RFA,OFA,RAA,OAA,
- \- s- d  D8 O1 ]% KIAD,O,K20," X5 V6 i3 h% ~9 a% z& r& n
IA7,
2 L% u/ Z0 N) @4 S3 B. VIAE,O,
# H5 B2 b% }) U0 K4 Q2 rIA8,
2 o! e/ I' v/ bI60,D04,
' L7 x9 m3 q7 Q( _4 @1 j5 HIAD,
7 S/ A% O9 K: p9 e3 I0 kIA7,- j4 ~! D7 y. g1 ]& f, l
IAE,O,6 r  b; a. O3 \& Y
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,# Q1 a9 F+ ^; _$ V& m8 g: t
IAD,O,
$ b  S) M: }+ E) o2 MIA7," t8 q. z9 b: g- h, C. q
IAE,O,! C' e% e+ N" @' U% U- {
IA8,
$ ^" j, [3 |3 gI60,D44,
& a) Z' i$ R+ H1 xIAD,
( P9 K& H5 U2 U$ [* K! WIA7,
: v  i. A" o' E. AIAE,O,
5 Q4 `6 @* ^# v: ~) b. i5 V- PIA8,3 e& T! ?+ k1 N- y0 V5 |$ S& [
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
( r9 W8 M' D1 f; c4 |# EIAE,O,3 T3 [! [* W0 P! e  ?6 _& v4 w1 E- m1 U
IA8,
$ ~' [! h- X$ f- v$ zIAD,# \, u: H+ Y; J( |
IA7,0 t  ^% u6 ]% U: A  Z
IAE,O,
) `# t& O: N# I! ^. Q8 gIA8,8 n9 O( r0 M  v. }  O1 ?
I60,D47,
+ g! I! J3 V- l; Q1 aIAD,
$ h+ @) R1 D3 S. g0 t# H+ Q: ^' W/ YIA7,! ?, z9 X4 [4 x9 v
IAE,O,
* M  j. a3 f8 q" ], ]; j/ F) @. iIA8,
0 l$ x" e8 r9 d% J& o: [3 uID4,VFF,
2 f1 a0 B, J: ?6 \! Le83,C,RFA,OFA,
. T* {4 ~  H- H7 d8 z1 re83,O,RAA,R00,OAA,O,O00,6 m0 o' |3 ?  K8 k% F
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
' `! H) A* ]; T4 ]  IID4,VE8,O,C,RFA,OFA," z: o6 b1 l: Y4 W1 ~5 b
ID4,V00,O,C,RFA,OFA,
( t2 G. R: |* ^. L5 q  RID4,VE6,O,C,RFA,OFA,
1 x+ g& P0 _7 _/ o) _ID4,VE6,O,C,RFA,OFA,, S0 |# F4 O9 H  j
ID4,VE6,O,C,RFA,OFA,
* L) Q% r. I, K1 bID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
! }! O0 H% [- |4 v1 v) _3 fID4,VE8,O,C,RFA,OFA,
- V( a: y% o, d% H0 z* T: C' zID4,V03,O,C,RFA,OFA,
- k0 M1 O4 {( w9 t! fID4,VF3,O,C,RFA,OFA,, a' z' @: J- G: ?( Z% X+ c' A2 c
ID4,VC8,O,C,RFA,OFA,
0 O! x4 [1 H5 Y' Q5 Q& g1 cID4,VF3,O,C,RFA,OFA,
7 O9 A* r5 R. I6 O2 \1 aID4,V64,O,C,RFA,OFA,
+ z' h$ n  S) T) p+ F  I3 J& Q! UID4,VF3,O,C,RFA,OFA,
) H4 `" R; [2 w* Y$ B  z) r0 jID4,V50,O,C,RFA,OFA,
4 P. |2 E3 \- \5 ~2 c$ g5 GID4,VF2,O,C,RFA,R03,OFA,O,O03,) g" l% m" g: H2 H$ _1 g
ID4,VF3,O,C,RFA,OFA,& E5 C, g* b) ?9 G8 o5 t
ID4,VC8,O,C,RFA,OFA,
8 i1 F7 S. M( _2 WID4,VF3,O,C,RFA,OFA," J+ [' O' ^; z7 Y" m, S9 Y7 _
ID4,VC8,O,C,RFA,OFA,
6 Q( G: L4 m+ J: s" ~ID4,VF3,O,C,RFA,OFA,
* Q! z3 b/ [' p8 O6 IID4,V50,O,C,RFA,OFA,
$ E' T1 ]3 n- @9 ]  U" u5 M! QID4,VF2,O,C,RFA,R03,OFA,O,O03," E* i9 O5 U2 k7 n; T- w1 Q
ID4,VF3,O,C,RFA,OFA,5 f: ~3 ~0 e7 `  M7 @' V9 @9 v/ M
ID4,V64,O,C,RFA,OFA,
9 N& ~% B+ i1 q5 vID4,VE8,O,C,RFA,OFA,: }( ]" m2 D% T; C3 o% B
ID4,V03,O,C,RFA,OFA,
9 u3 I$ ^  {. [1 nID4,VF4,O,C,RFA,OFA,O,' C9 l4 ?, t' x9 S
e83,  R& |5 B" i5 f. m' R/ i
e83,+ c! Y5 y3 z2 V, `
e83,5 Z% j3 p: G- B- Y+ I
e83,
1 t2 h9 j( d6 o4 [# U& _e83,9 N. Z% @/ @- |$ {1 P
e83,& B' }9 [# j5 ]4 C
e83,3 y5 ~# v+ l, B; I
e83,
% V$ z/ Y6 |3 ^3 ?8 ge83,
# U1 ]1 a1 C& r3 P' ?9 q5 De83,00,C8,2E,; ~& F2 V/ A, ?; O
e83,00,C8,2E,# N* i! W9 q3 ?
e83,00,C8,2E," Y2 v! _6 f* N6 j' R. n7 r
e83,00,C8,2E,
3 A8 r# v3 \$ Y1 ce83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
( d" B; O, {. T. ge83,+ @  f3 K* N8 H4 d/ C; h3 h) X' ?

0 j  j1 |( H: ]! ~, ~* ?# ?, p: |6 I9 @) s
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
+ k3 b% K$ Y) ^! yDevice(EC0) {
' s5 N+ `7 ^0 y( F  m* u, E+ lName(_HID, EISAID("PNP0C09"))! ^! H4 a& f; f- J" r
......' r% n5 R. @* d% L7 g
}/ p- y# R  l1 a; R+ o; t+ `
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
: G) i- y3 V- ~9 \$ s9 F就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
* [* u; Z2 I6 c# A; u2、    , w- r/ ^$ q) R, E) X' s7 K, B/ S
Name(_CRS,ResourceTemplate(){           
, h4 e/ V9 d1 u: W' E' y        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84) @2 V! @" q2 d6 o, r' H# \
            IO(Decode16, 0x66, 0x66, 0, 1)
% t% f  o) m' L7 J        })
/ V; C1 B% p2 Q0 H3、接着就是- r& H/ a  c* B1 I7 u# d
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7& f- o; [. D4 N, U5 G+ a* x
通过这个声明,OS知道EC和哪个GPE关联起来* T$ h1 u% w3 Y( b  y2 O7 ~
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来  @9 [! o: S5 b
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。; p% v. B6 ~4 ]- [$ G% H& s; p
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
( `7 p6 t2 R9 T5 w; L/ j3 X3、OK,看看linux是如何处理SCI中断的* D( D3 t# B- ~1 L5 A. G
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute! y9 m2 t8 m8 }
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
, w+ Q2 {/ V1 N. i4、EC接到0x84查询命令之后,就把Q事件号传给OS; ~1 S5 N# I9 H
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
0 {8 r, Y8 j4 G你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
4 ]( `8 {# m) n$ c5 ^6 ^7 f+ x有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
' K9 ^+ Q0 f9 l8 K7 t* l% C; y( y7 Rqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
4 x6 i* W  U; d4 r. Zbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
8 V4 e* b* E7 g  k2 ?  _1 S版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 07:10 , Processed in 0.025466 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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