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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,7 G: R9 Y+ f1 }( V: u
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
2 @2 r/ G' j3 ^我们在操作系统下用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的命令
6 W# I( H$ H" K9 m* J$ _D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check9 P' M! u% o% A# J1 f
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析; z) P. H9 u- \: N) |
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
1 O: \9 y: g, y% R! S; c3 E7 M& b
+ Y- b8 K0 b! o$ q! VVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
$ Z9 K' y/ `0 O/ Q4 ?0 Pe83,
# K3 v/ ]1 Z& N, a9 p, V1 E% h, dIFE,7 M" m$ D0 ]9 p- ?& K8 x5 E) J
e23,oFA,
4 Y7 l" ^  Q# }6 h4 g- zID1,DDF,LPC RST) v7 x9 ~! e  V6 }; j
Swrong LPC RST
" q2 J- X2 J$ o8 t) o- }  {LPC_Reset_Flag=64

- A% W/ K# U2 a0 c
& H$ y' W4 Y- s/ {+ [ID1,DDF,
+ `# k+ A: h) e9 jIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,# d! j/ N2 W* E* A
ID1,DDF,, y, b  x  r7 P7 i% [
I90,VED,C,RFA,OFA,V01,C,RFA,
+ Q& c5 g/ Y9 @1 [ID1,DDF,O,OFA,O,
$ E3 \2 z' k9 ?( I7 j" a# Ze2A,>IDLE7 `& r- {' R) `
oFA,<7 E, g9 m+ o  C0 i& R6 ^
e00,
% Z! t$ p; S. u) T+ s# o! y: S) nIAA,O55,O,  \4 Z* N1 ~! I3 }! z- I" b4 ^
IAD,) s! n- I! c- G; ^$ S
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,1 ]7 M8 N) h: J  X! Z% N5 g
I60,O,D65,
0 v! w2 N. [( B& R$ A# X8 ~, M9 N5 f2 uI60,D6D,VF5,C,RFA,OFA,K20,
% m. q9 D5 N( a& z$ T4 l& nIAD,/ b5 @" d) N% B$ }! I4 ^% r8 k
IAE,O,VF5,C,RFA,OFA,K20,
$ e0 N& ^5 x" g: H0 ^IAD,
3 m7 Y* L* N5 Y. bIAE,O,
0 n- J* `. g9 QIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,( c& n: f4 Y& M
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
2 R" c: J+ H. y. T2 ^6 X1 vIAE,O,8 G* N9 r: K  Q( v1 \7 L+ b
e91,d2F,d00,
% I3 u; x$ ~5 h( Ce10,d83,d2F,P3_K#
. }2 J7 \. W, R! B& m  L: m/ mP3_K#
; j; ~6 x+ A( O; R- k4 @+ x7 ~

) ^) X% {5 U, S8 n! G5 ye23,oFA,
* v- s8 b" F  I; X  s8 Z5 H2 i% j: AI90,VED,C,RFA,OFA,5 k3 Q2 k7 q# w5 ~1 q
IAD,
' m3 T  R# E3 y# F5 H+ L$ ?IAD,O,
4 Y5 Z( A' Y6 q. F! DIAE,V03,C,RFA,OFA,# e3 r! {; D0 O2 b; q
IAD,
9 ]& a: w4 B% W# u' Q/ F0 U  UIAD,O,
: B! g0 w& T4 e0 ]) K7 r3 I% yIAE,: G' r1 B+ O4 }, `# H
I90,VED,C,RFA,OFA,: z2 N6 ?5 y9 R3 Z
IAD,
3 y" B' k  q; d4 X8 f+ ]IAD,O,0 g7 w$ l8 U9 P8 ~1 V$ {
IAE,V05,C,RFA,OFA,1 X% ~: ~# U8 w4 Y
IAD,
4 w1 l4 M& }" `IAD,O,& M% V1 t! P3 M# k+ n  f" t
IAE,O,: x9 i$ D0 Z8 Y- i/ z$ B
e90,d2E,o00,
+ U8 W5 h: O, l1 X, r5 je91,d2F,d00,P3_K#
& O0 Z6 F7 g7 c5 t0 TP3_K#

- X* F* D0 i; t9 L5 N' ~+ Q: o. o, l9 V
IAD,VF3,C,RFA,OFA,( e. j: k$ G$ Q
IAD,
* w9 x# T6 L, ~% Z; Q8 E4 A5 |+ WIAD,O,( A: Z8 p$ s" l2 K% @! e7 \% Q
IAE,VF3,C,RFA,OFA,
" j, }* A7 H% F+ d) V) nIAD,
. ~2 r! i) T: D2 |IAD,O,
) t) h3 p$ |8 _IAE,V20,C,K10,RFE,OFE,K08,
" I5 l+ _3 d" T7 u$ n# D- g* l4 DIAD,
1 O0 v% d. u8 W+ }1 E$ O0 d  _4 KIAD,O,$ R  S5 }4 @8 j# o1 I1 y
IAE,V20,C,K10,RFE,OFE,K08,* y. L7 Q  j! ?" L) v& m6 r
IAD,
# h8 r5 x. }9 X5 |* L5 B. uIAD,O,6 j* k2 P* A. x, d; O+ S! R
IAE,V20,C,K10,RFE,OFE,K08,
3 v- W9 r+ [" r  hIAD,2 r; O* a( t, L  _& v4 _
IAD,O,
! A# [# M$ v5 hIAE,
/ g0 \, g/ A( e# A0 q, H% K4 `IAE,VF4,C,RFA,OFA,
3 Y5 t- A$ B( u: J. B5 v8 |( d. OIAD,1 V- W3 m" Q, d
IAD,O,# Y6 j8 g0 X  q0 i' T
IAE,VF4,C,RFA,OFA,; r. C/ t; d$ O- f0 o
IAD,! x( M0 `7 F: w* S: F
IAD,O,
; g& _5 A% z3 j2 S4 @IAE,VF2,C,RFA,RAB,R41,OFA,; `# j3 y4 h1 B
IAD,$ o8 F/ x3 u; ~3 C  W
IAE,O,OAB,
* E1 C4 ~- G0 z. w/ d' X* sIAD,
  x0 w- @. [, `6 F% i- E- x* A1 o0 NIAE,O,O41,+ e7 I% r# K1 q/ ^* I9 z% ~; v
IAD,1 e! o% C( n8 ~& R" i# f9 y
IAE,O,VF2,C,RFA,RAB,R41,OFA,
5 _7 v- F: {# FIAD,6 E4 L3 M+ c+ O5 I. R& U' o
IAD,O,OAB,
- R  y4 I6 I+ |3 [( T* Y$ oIAE,O,O41,
9 P$ H; B/ d7 c) w4 DIAD,3 R9 Z* i' C: [2 @
IAD,O,& w, X# I4 `0 B* E! D% k: j
IAE,VF2,C,RFA,RAB,R41,OFA,. [, C4 t  F) ?& b& b: @$ P! o
IAD,+ ~' t' V9 a" g0 {# A2 ], g8 i
IAD,O,OAB,
! N9 d* m( m6 e  D1 a& uIAE,O,O41,
( m( v( Y. V2 z5 Q9 n# VIAD,! j- J& k6 i! |# [; f! x
IAD,O,8 V# ]# X0 w$ e8 U; u. ~+ O
IAE,# G5 J" [' O$ t6 X+ B
I90,VED,C,RFA,OFA,
3 w9 W. O0 Q$ T  x* c9 BIAD,
; q* n# @/ k' lIAD,O,
7 I+ U; I7 q. j9 o' s* IIAE,V00,C,RFA,OFA,
* ~. E" b$ j; b9 _  y4 p, uIAD,* R6 U% o) J: w6 g
IAD,O,1 ^9 F) Q7 E9 p% Y. f
IAE,
7 d7 j+ Y1 {8 j* l) Z# dID1,DDD,
& |1 h. i' J; sID1,DDF,
8 s' Z3 W% v- _ID1,DDF,4 a) Z/ @. `. F9 k, V8 `( `! R+ |" O3 G
e22,oFA,' r4 L# L' }2 G) C
e83,
# \% m% g& I1 j  K% w" ge83,
1 U; h8 {8 A( }+ y) S7 \% Le83,5 T" g; H+ B& w
e83,
6 a9 r: U0 ?$ M6 {e83,
& h: D& n( i6 W" k' n; |e83,7 m4 e$ u, E2 {- B  v/ w5 M5 a$ J
e83,
- U% i3 E2 I6 H) Z/ He83,
. B" B* `2 R4 ?0 \* le83,; p1 v# A1 j/ e; g) W
IAD,
5 e7 R' N: r4 jIA7,2 }7 C4 r% n2 O; h+ i! g
IAE,O,
. ~7 r& ]$ {1 b; J% zIA8,
0 ~7 A. p) V( p: ~# t& s) Y/ \I60,D44,$ `$ M& I2 q- U- Y$ ]9 ?7 T
IAD,) v. j& x% Q" U: ~# B
IA7,3 J4 Y; y& @- z& Z! H5 \
IAE,O,7 b7 g- E' W$ J1 ?9 |
IA8,VFF,C,RFA,OFA,RAA,OAA,: H7 h+ \" ]. B0 v/ i1 j
IAD,O,K20,! d. ^4 ?; E- s1 T2 J9 C
IA7,' D! T2 i5 Z5 ^% @
IAE,O,
8 c2 Q; g: p" X# k6 X$ I/ ]$ zIA8,% |7 w: J" G7 n0 R% A( ^
I60,D04,
8 Y/ V+ y- D5 E0 D* _, ^IAD," c7 w4 @$ Y: t2 b2 L, V
IA7,. V, d2 |, Q3 b9 Y1 B- L
IAE,O,6 R& ]& x" X9 I. J* T9 F( @
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
4 O. }5 X7 e- l2 C/ M7 s7 I$ GIAD,O,
6 K: k% h4 r  b! f6 |IA7,5 @7 p; P0 p: v, _) ?
IAE,O,; h2 g1 x6 N2 w/ V
IA8,1 b. ]! ~1 G) z) g/ g3 \
I60,D44," i( b* X" }" @- E
IAD,3 J, ?- h6 A! U6 H4 q+ p. M* x
IA7,
9 k0 S, N6 U' `! I3 fIAE,O,
  O- @; Z* V3 z2 d. o- EIA8,% f, @! {1 y: W1 L3 m8 j4 d4 S; j
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA," a" a; f/ ^% N' Q# Q" t4 o
IAE,O,
( N6 t& i& w3 e- R2 iIA8,; d5 Z0 O3 G- @8 j6 ?
IAD,
: u& N& T2 m( \" SIA7,
2 x6 q% j; J" G: K/ h( `IAE,O,
' C" C1 j9 N7 D& t1 sIA8,
6 O% h0 J2 n( w. uI60,D47,7 e+ q/ D  M. A$ l* q( p
IAD,
, U" ^8 x( M& P! w$ nIA7,4 ^; V+ m7 I4 y
IAE,O,6 l7 L# H( ?1 O- ^
IA8,) k  g8 C- D4 W3 p, G0 z
ID4,VFF,$ h5 ~7 U% A# k; x3 [' h8 s, P: Q, h
e83,C,RFA,OFA,# {& w5 U0 r  @% {) c4 k$ M
e83,O,RAA,R00,OAA,O,O00,
+ w2 b# X. \7 z0 L2 K! XID4,VF2,O,C,RFA,R00,OFA,O,O00,# j& ]: ?) @* \; L- W0 t4 v
ID4,VE8,O,C,RFA,OFA,
, ]! {, K( l5 |# S' uID4,V00,O,C,RFA,OFA,+ N1 p. A8 _9 V8 Q4 c. `. @
ID4,VE6,O,C,RFA,OFA,
" C( Y" k/ H+ C0 p! r/ S, bID4,VE6,O,C,RFA,OFA,) U$ R$ ^$ X% r* V% _: w
ID4,VE6,O,C,RFA,OFA,9 W" U  n, w' A( H( ]
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
* h' r( W% c' ?0 _$ ~- W! r5 xID4,VE8,O,C,RFA,OFA,
% o, `# S8 y# @  M% h" fID4,V03,O,C,RFA,OFA,- V0 _9 h9 ^: h5 W- s- B+ u  ?
ID4,VF3,O,C,RFA,OFA,
8 U, U! \# C+ p1 jID4,VC8,O,C,RFA,OFA,; k* R+ D& X1 r
ID4,VF3,O,C,RFA,OFA,
( m1 J) e3 L, t0 g. IID4,V64,O,C,RFA,OFA,
4 C8 Y6 J8 U1 y! tID4,VF3,O,C,RFA,OFA,& Y8 J+ n; p/ U7 @2 z/ ~) J
ID4,V50,O,C,RFA,OFA,
3 ?- p2 x3 H6 e; I4 kID4,VF2,O,C,RFA,R03,OFA,O,O03,3 ?& Q1 i& Y' o" a! u
ID4,VF3,O,C,RFA,OFA,, x# u+ T* w, F/ ?1 c; ^
ID4,VC8,O,C,RFA,OFA,
5 P) l) m9 u' }6 I$ I- }1 m; mID4,VF3,O,C,RFA,OFA,
8 E0 q1 p( _8 D" \' }ID4,VC8,O,C,RFA,OFA,
0 R1 d8 n: z  EID4,VF3,O,C,RFA,OFA,9 A2 w: m( t8 k
ID4,V50,O,C,RFA,OFA,- J; S/ h" _9 X, }
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
/ Q: g" }2 {. m! BID4,VF3,O,C,RFA,OFA,
2 J, n$ Y& f9 ^7 q. B) QID4,V64,O,C,RFA,OFA,+ ^+ W2 V9 k0 P& S; T0 F9 W' t" h
ID4,VE8,O,C,RFA,OFA,
4 e0 \" e4 t2 h7 z; jID4,V03,O,C,RFA,OFA,
; {- V& I  ^) l$ N8 m/ @ID4,VF4,O,C,RFA,OFA,O,) ~9 E: `: O$ ]
e83,
6 E/ S" B" y& I& `8 m* E7 K( }- `6 Se83,! e3 N  b* u. Q# [6 T- S- y# B1 `
e83,
/ p2 S2 f( T; R. h" le83,- Q, P! P8 ~% V( t
e83,
# l: s, R7 N/ @1 |e83,
( ?9 @' T$ r7 \+ |( B& o* @e83,+ [, r1 G5 Q! L" B7 ]
e83,
% c; z3 W2 o( X! ae83,& @9 q$ V1 y% Y2 }. k
e83,00,C8,2E,8 E+ h; Y7 M( D' V
e83,00,C8,2E,( B! i, i9 W" Z* s% X" U+ T' P
e83,00,C8,2E,
! y2 p0 c! U* H& O$ Xe83,00,C8,2E,
4 f& ^# A0 I6 ?: K: ~* [. d1 de83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,% g! [: o5 Z+ p; k) A; L" F: u
e83," A9 U0 U  k1 o: w0 q4 N( e
0 O3 E7 l" s( t4 o/ t

1 Y7 X3 N- q* l0 a[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。! @! x4 P) _$ S' d/ x
Device(EC0) {
. D+ G( B' i+ T& AName(_HID, EISAID("PNP0C09"))( @/ W# g2 r# i2 y) b+ e& @; e
......
/ u8 n% M) z( G+ I5 Z8 `}
% a* q+ w8 a- g( i0 mPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,/ p0 ~* v! w4 u3 S1 T
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)" v6 D( z! j/ ]& H) J" F
2、   
. ^# a/ m) }1 gName(_CRS,ResourceTemplate(){           * F  c5 M( G1 r( D: G6 W
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
' T6 A. a0 F! S% `8 B% T& v" r            IO(Decode16, 0x66, 0x66, 0, 1)9 `, b* ~1 L* ]& C
        })
0 \: U0 j' R, O3 w3 E2 z! x; a9 H, U3、接着就是7 P9 i' y9 K5 V( P) b
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO72 G  N2 x) _7 V! @! ~
通过这个声明,OS知道EC和哪个GPE关联起来
, R# k3 P1 U8 r, `. k而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来- l; I! b& s5 h' [, d9 }0 k4 {0 ~
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
. Z- ]0 O6 f( G" E8 P而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
8 ^3 {4 i; B1 O' h' B3、OK,看看linux是如何处理SCI中断的
3 \  }: B3 B$ v* racpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
8 y$ u) O" \0 i, ~! |( [1 R: q& macpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)5 M) F' w& K$ D( P. j2 d; K
4、EC接到0x84查询命令之后,就把Q事件号传给OS
+ j1 Z. `% r& a4 a, r$ IOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
# z7 I' V4 ^- D( E$ T你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
" x+ ^" F) U% u) d- s有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。1 C4 T9 E, G4 W2 h+ I, E3 p
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm8 I* r8 h2 ]3 {# O( H6 i* F
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
2 q/ |6 |9 F0 x/ H( C5 b版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-21 02:17 , Processed in 1.989452 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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