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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
$ o* \" i% x& B+ z* s3 n+ }$ p今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。6 z8 V* `/ U, O5 _  s) j; B  O
我们在操作系统下用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的命令9 u+ s- k0 l& @' E
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
+ x. S& \  h; t$ a这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析$ I0 w0 w+ r1 ^
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。# A. g& E( o8 P3 F! }( ~8 q- Y7 [

/ D5 `5 Q* a- GVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,; j4 B' [: v9 z7 X7 V6 H7 P
e83,
" Y1 A( p) h8 u; cIFE,
, S. A7 ?  j/ R, Ne23,oFA,
+ Y8 J7 ?( H/ n1 B1 J1 x" ZID1,DDF,LPC RST
/ F* s% O. N; J% ySwrong LPC RST6 {4 _! A6 w* B: {6 I
LPC_Reset_Flag=64

1 F2 r! L+ P$ G! C1 w# @
( _3 Z/ C) j: Z! a4 YID1,DDF,
/ c7 l* q6 N3 W! C7 K5 g5 q' N6 hIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
1 l1 v5 B% N5 Z2 O& ?ID1,DDF,
& Y) k- w+ }# mI90,VED,C,RFA,OFA,V01,C,RFA,
& P, O+ b* O, l& b1 @+ K0 h; lID1,DDF,O,OFA,O,
3 x& E9 G  x2 @6 ?1 Ne2A,>IDLE) w& `+ H4 I+ c  y; T1 ]; r9 _' M
oFA,<  r/ y) e* i# h) ?4 c! W' [6 G
e00,
* G/ r( M* t4 P- V! J* ]+ S! iIAA,O55,O,
" D" M. ~) S9 BIAD,
6 {4 b: s: d4 h/ ~3 PID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,9 [5 p: d0 u3 F$ x+ v+ Z* E7 P/ u
I60,O,D65,
. ?/ M$ p4 ^9 Y6 S+ j0 y' B( \I60,D6D,VF5,C,RFA,OFA,K20,! R) D9 v% }/ ?/ W7 k2 @: J" l
IAD,/ i) u$ B7 ^6 N  w3 s% L
IAE,O,VF5,C,RFA,OFA,K20,
7 L5 b# S2 u1 EIAD,& H* N- U2 G( y/ R# k
IAE,O,
7 Z9 d) s/ u* m, d: u7 s' TIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,& Y6 [9 Z. h9 \- m
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA," X7 D% q; k  o, k
IAE,O,$ }' [( T( O( e6 d# O/ ?
e91,d2F,d00,
6 |- v. F7 n3 Ve10,d83,d2F,P3_K#
4 w( B% d' B' |6 ~P3_K#
, g: j/ K! _" G2 w

* X* Y6 U1 y& g" {8 O8 h  \e23,oFA,
1 j0 G' I  `' sI90,VED,C,RFA,OFA,1 V' }9 n' V2 ]
IAD,; c3 u. ~9 w4 V7 J
IAD,O,, }; W/ e, A7 N- S
IAE,V03,C,RFA,OFA,
( j  a' t) m: C0 C# m& z* n; fIAD,0 m1 e0 F' D6 l. r6 s
IAD,O,
5 c) M9 ~( k. s8 E: S& T$ aIAE,2 s0 R8 m# ?5 Q5 \0 ^8 t
I90,VED,C,RFA,OFA,7 p8 ^0 i$ s) V* R
IAD,# m: W9 M% r  Q
IAD,O,
, i+ L& g- M) M% M; aIAE,V05,C,RFA,OFA,( j) [  ^$ t, x/ T; k6 Z2 _' c
IAD,5 h5 }, Y1 s. k$ T4 J
IAD,O,
2 v, r6 N& C3 H+ EIAE,O,
- R+ `& d7 u! ?e90,d2E,o00,7 G1 M% V+ m/ E: X4 E1 G
e91,d2F,d00,P3_K#
# l4 j7 [! Z+ R' w3 I* }P3_K#
) V" o% K* d8 ]3 i9 K

8 _: [" i4 V- |9 C- i+ L# |2 KIAD,VF3,C,RFA,OFA,
" ^: v% a) |$ w# x9 |& ?IAD,$ ?* x" a5 X4 E3 w2 P- |
IAD,O,$ x% N2 l! l, v8 z( R- y- O
IAE,VF3,C,RFA,OFA,
# w' _1 i& W7 e" KIAD,
& c! _0 K+ C' ~5 F0 [9 i4 GIAD,O,
) e' f. Q$ M# VIAE,V20,C,K10,RFE,OFE,K08,
+ C/ s& i0 h) M; l* ~IAD,
- u! N& E2 D& I5 ]* u0 |+ pIAD,O,
) A7 F' g. C8 K4 v; l% U4 A7 MIAE,V20,C,K10,RFE,OFE,K08,
, f3 _1 f  J! L. [IAD," W3 L1 W- c* @/ N
IAD,O,
, I: [7 ~5 S5 F# \. M9 l* dIAE,V20,C,K10,RFE,OFE,K08,4 N+ R; ~% Q( e. m. [
IAD,* P) X( b. ~! Q9 B
IAD,O,, [  W8 Z+ S% k* p9 P
IAE,* ?5 D& v2 k8 f* l8 ?  Z  U
IAE,VF4,C,RFA,OFA,
6 ]5 {+ u5 v; P7 P: J, l, ^IAD,2 v( j# u  b: ^2 j! V* ^' ^
IAD,O,
  [' j2 J. n1 sIAE,VF4,C,RFA,OFA,( S, X: Q0 q  B0 C6 p
IAD,
7 w$ q7 s3 L  X, I  z. u5 M, XIAD,O,/ W, f# a7 d) y* T8 X/ V: b5 D
IAE,VF2,C,RFA,RAB,R41,OFA,( v. Q* Z, V6 U
IAD,
3 E9 L7 u/ l# k# }IAE,O,OAB," l4 Q4 Y$ R5 ~9 h  k+ q
IAD,
. y- Q) A" q" L: ^; qIAE,O,O41,
/ Y! X! q: N* u4 ?  XIAD,3 F" D! J3 a+ K( L* o
IAE,O,VF2,C,RFA,RAB,R41,OFA,+ V. ^8 y" w6 i: v- r. @9 D
IAD," ]4 h" Z( G/ @
IAD,O,OAB,
/ t+ s9 Z. `6 J. XIAE,O,O41,% J0 N, V) w, ~- w# F, M$ G3 y; _
IAD,
; h; m' n& \' V, z+ B" ]' lIAD,O,
( z6 y, \" l. E' ZIAE,VF2,C,RFA,RAB,R41,OFA,1 d+ {7 y7 j5 h! X4 t
IAD,9 p! `, p$ h* f" D1 e/ _/ ]& ^7 y
IAD,O,OAB,
' P  A+ P3 H# v# `2 [IAE,O,O41,
* O! W* M6 Y9 w% A6 M3 r$ f' wIAD,
+ m2 f( R" K# HIAD,O,
5 f1 |! @1 F9 F& b8 A" gIAE,
+ M8 u0 j8 Z1 o0 bI90,VED,C,RFA,OFA,: [& |) ^: r6 b* V3 C% ]6 A0 o* Y
IAD,
  e7 b1 }3 I% v" U) t' P! JIAD,O,
! b: m" @/ y: O% O+ A& @IAE,V00,C,RFA,OFA,
+ O% \: k3 R+ k' E- E) ZIAD,5 V, E7 z4 C; \. J. g8 M2 i
IAD,O,; z' [& r1 v3 W: ]# j$ }- J9 @
IAE,5 c! Q+ D; v! Z; S: \
ID1,DDD,
9 r( f6 S8 s$ GID1,DDF,
& m; t+ M  {/ IID1,DDF,4 H# ]; T( s- T- p
e22,oFA,
2 Q: \- O* u: }( t9 R3 O6 D9 ie83,
9 f( @/ b: `7 |, w  {1 r$ Ee83,0 ^; c) f3 e" a% r
e83,
: Y! A4 W% N7 k. K7 F( Qe83,1 S6 A+ O7 b7 y' |+ q
e83,' O) z, w3 y& E/ G: J7 b
e83,+ a+ Q, n" S2 a. |+ V- K1 K9 B, u
e83,
- v* I! G2 c( O, v5 ye83,
+ @. O2 h4 d2 ye83,9 ?' y0 k9 y! D! u
IAD," [( ^4 X( w- [7 m5 c; X2 {
IA7,5 j( G! E! @3 S" Q  ~
IAE,O,
; ^4 b" ]3 D  ?IA8,- Y8 }, L& c4 S) c/ ^
I60,D44,  W4 R9 S2 z# r: z
IAD,
& h* \0 b8 c2 n# `6 aIA7,
5 V) @! [& `6 m$ |+ ~/ l# ~% {IAE,O,
- k, S& d. |( K! T0 X* FIA8,VFF,C,RFA,OFA,RAA,OAA,
: N+ t2 |) X  D- c# [IAD,O,K20,+ t+ u. m0 X% z$ @0 ?
IA7,
+ s3 \; u; a3 ^8 `IAE,O,
/ D1 P6 Y0 ^! p! I8 c, i& XIA8,
- T- v0 W# m0 P4 J2 s/ d# RI60,D04,
( _+ k& l2 N# G! a' \9 s2 M$ ?1 uIAD,$ x& d' s5 m2 n. B( Z! C9 }
IA7,: v4 A( y2 R, F, f' g
IAE,O,
; C/ r' d( }* w* U& Z7 u( KIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,1 o; {! F7 m# C/ X' L
IAD,O,7 p; Q  x  J: V( {* Y& ?$ Q* p
IA7,
4 ^) z- ~7 ^& w. y# s& |IAE,O,1 w0 s* o+ E) f
IA8,
6 H" {8 d+ F0 W- TI60,D44,8 D5 h1 |4 I& j
IAD,
9 W: c3 Q- }$ R! m2 q4 V' U6 WIA7,7 S! R# N6 p1 W- `0 I
IAE,O,
+ H. W+ A4 [4 W6 x4 N0 b8 o6 oIA8,
% a% L" _8 F: L# t9 s7 KID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
$ e+ S4 _6 h2 S. }, U+ M% dIAE,O,3 A( I/ _8 }. d
IA8,
5 b7 d/ X' E2 h+ U- N" cIAD,7 X+ ]0 X: B. P5 J! r
IA7,
, C9 R; d9 ]5 ?7 V& a8 S* c' |, O4 lIAE,O,
& r) ^1 f. v6 R. |' ^9 oIA8,
% V( v4 o  W! X. m' y: h4 l5 KI60,D47,
$ g$ {" H% d( b& lIAD,
# n! E0 F0 Y, ZIA7,
: ^3 ^/ Q0 s- U5 ]IAE,O,
: J5 t/ v7 k+ n. {7 F) ]IA8,: ~- J: g; y* z1 v' K9 d9 T6 l
ID4,VFF,
" s; J0 d! ]4 o# i" {e83,C,RFA,OFA," {  X1 v7 v4 u* R
e83,O,RAA,R00,OAA,O,O00,
+ Q$ y4 p6 J1 ^1 aID4,VF2,O,C,RFA,R00,OFA,O,O00,* K. X1 N! B# @3 R/ p
ID4,VE8,O,C,RFA,OFA,) o, x5 t+ A2 w' L% e% y6 t) ^
ID4,V00,O,C,RFA,OFA,
1 a, q) U9 T* I3 ]  U; M& zID4,VE6,O,C,RFA,OFA,& v3 I7 M# `: \0 ~9 N& V
ID4,VE6,O,C,RFA,OFA,
% x* U( ?5 N; j0 VID4,VE6,O,C,RFA,OFA,; v& \3 p' t- ?
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,) O5 ~1 @- J9 c4 M- O4 I
ID4,VE8,O,C,RFA,OFA,9 ~7 f( p/ E  c' }
ID4,V03,O,C,RFA,OFA,8 G' z+ [9 d% q. m6 f
ID4,VF3,O,C,RFA,OFA,
+ O/ e( q. F3 ^; {5 Z3 @ID4,VC8,O,C,RFA,OFA,# t% a- `% E$ C/ V( g
ID4,VF3,O,C,RFA,OFA,3 M6 b/ J; T) a/ {9 B4 W
ID4,V64,O,C,RFA,OFA,
: T# i' G7 E* J( K' {ID4,VF3,O,C,RFA,OFA," ]$ p' {7 ?1 b" O8 ]
ID4,V50,O,C,RFA,OFA,
# v" P8 C4 Z9 \4 \8 G0 UID4,VF2,O,C,RFA,R03,OFA,O,O03,
% T6 o' M5 E* gID4,VF3,O,C,RFA,OFA," s0 O" f2 c# u$ L; U
ID4,VC8,O,C,RFA,OFA,% b+ ]- G% ]/ u" ~' E) Z
ID4,VF3,O,C,RFA,OFA,
/ d+ @6 a" r# H$ J: Y6 hID4,VC8,O,C,RFA,OFA,- ^  s" E' y4 b# `* u5 b3 ?. c  T
ID4,VF3,O,C,RFA,OFA,7 u0 |! v+ X" Q# l5 B8 B
ID4,V50,O,C,RFA,OFA,
$ C2 k* R2 x' |  `3 R0 B+ JID4,VF2,O,C,RFA,R03,OFA,O,O03,8 v) z$ Q" M3 E* y2 t) D, ~
ID4,VF3,O,C,RFA,OFA,
9 a7 S4 W- ?/ V* U3 ?; _: J8 v: tID4,V64,O,C,RFA,OFA,; G9 [/ m8 M0 a) P3 X6 W9 X: Q% W
ID4,VE8,O,C,RFA,OFA,7 p  E: T- M5 `0 B+ s! R
ID4,V03,O,C,RFA,OFA,
  j7 V$ r* N3 EID4,VF4,O,C,RFA,OFA,O,  b' M+ t1 h% k3 p" V  o- ^
e83,  V: Y; n, s  v9 ^- c  Z$ B
e83,
* p4 b' E% @/ M+ C: R! k5 X% s/ Ve83,
* }: o6 a  @7 me83,
0 D( l1 b! j, f' D) F, q9 U: Ae83,
( n8 j7 V) q: f/ u, |, e2 ee83,$ L% p2 c3 A" s1 z0 O/ p0 _
e83,& S9 \2 j8 B1 G4 T3 [8 h1 A
e83,9 Q$ q$ E1 Z2 a3 k( ~
e83,
2 y. n6 G) [) W. R+ z+ _6 Ee83,00,C8,2E,1 [, V$ d/ V0 m  e# g
e83,00,C8,2E,
" l7 V/ i9 v6 |* Me83,00,C8,2E,- J* o; q, o7 s7 t5 j% }
e83,00,C8,2E,
4 n% H( C% B; H: R; oe83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
& N" l# E7 Z4 L' E3 r' @& oe83,3 s, N$ r: K& j$ g

4 y9 X2 i0 J4 H$ O5 r7 _) L
+ d& X# @* V, K[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复8 t: F! O; o4 t0 O  a8 c5 e! A5 W
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
4 Z1 `* ^6 ~" P0 b' C+ |, f      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
& t  R' T3 s/ V      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。/ ~: s' c  A. T7 t  A6 a- s0 x
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!; v3 U# B# l0 R- q$ r3 O# ~: |8 w
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。# y8 k) t9 z: P0 D3 c
Device(EC0) {5 R4 ?3 R5 |+ N) Z
Name(_HID, EISAID("PNP0C09"))
% }, H' z2 V0 s8 o$ Y+ r......; U% `/ |0 u/ u' ?1 x
}
  {1 l* H9 m6 C; U6 yPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,7 U8 L/ J2 M+ S7 ]' {- y5 c
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)" _5 ~$ e' a5 |* U
2、    * {' o( M* a0 }8 Q& R- e( D. A% n: M
Name(_CRS,ResourceTemplate(){           2 z  V: [7 [) f0 Q1 F
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x848 B% @: R' J1 [0 O5 y' X) S# r. K
            IO(Decode16, 0x66, 0x66, 0, 1)
% ]4 A+ ~; x4 J! L2 v) Q$ y        })
+ E1 z% J3 m/ ?2 V2 D6 ?" S9 f3 u3、接着就是4 j; m! z" e2 J9 C
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7  U  C2 N: X; G& k
通过这个声明,OS知道EC和哪个GPE关联起来- I  O7 }- A- I2 [. G* z
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
) X+ Y1 C" E0 B( E% }5 b6 r% REC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
' i' \  g3 _: N9 e, f而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
4 s7 a8 i+ a5 @* W: a4 ^9 p3、OK,看看linux是如何处理SCI中断的2 ~# h2 X* i/ r
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute, {! U" P- u7 `, A
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
5 Y, X3 Q% J+ U  d, p4、EC接到0x84查询命令之后,就把Q事件号传给OS
" c/ t! J' Y! Y) rOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分. z5 x8 F' X! p* X0 a' Z! x
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
  @! W6 N' A" j) b: l0 Q3 M/ ?有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
3 Q0 i; E( L2 g2 V  Lqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm! i+ y2 J# L+ i  E% C5 r
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。: T& t. ^7 y1 _$ S# }$ V! y
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 08:36 , Processed in 0.098888 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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