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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,; k* Y6 G+ z* W, Z
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
3 }" g$ Q& M! T: k* V7 z我们在操作系统下用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的命令
1 ^/ N/ c" P2 n2 ?D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check7 ^  L; s6 j- j9 U! |- v( g
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析& I5 s9 y% @/ U( f
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。: `4 s$ w- m+ {+ T0 B' D) f8 D

8 }% t, z& q% ]/ iVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,. M2 b8 e& k4 `+ d% c3 Y2 x6 W
e83,7 T$ E1 _1 M) W' t( m
IFE,
' G& {4 ]" S% O& B$ g% ]  y- De23,oFA,+ M- w- i# x) q
ID1,DDF,LPC RST3 B6 k1 u$ s! W5 Y4 A: l/ N
Swrong LPC RST
- ?: p, T9 G! i$ HLPC_Reset_Flag=64

* Z( o; h! m: ^" l+ X3 W$ l+ `! S
) ^* O0 t, [& N7 K8 BID1,DDF,% A9 b! M5 j1 j( Y' \
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,$ ~- h' Y& b( k: b" u# P
ID1,DDF,& V5 e5 z+ x# P: _9 z8 V
I90,VED,C,RFA,OFA,V01,C,RFA,
7 N& L( \& @- wID1,DDF,O,OFA,O,
) x8 d+ j* `0 Z1 T3 T; |e2A,>IDLE
: Z4 }' H; w3 W, doFA,<- C1 v1 W! t8 T3 w; a
e00,% B' l6 |6 g* u5 l# k' ?" g% N
IAA,O55,O,
3 {8 M: r  j9 o: gIAD,6 ~! b2 i. K7 \4 r& {$ [0 Y/ j. V
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
1 X, ~9 `- ?( l' \2 {I60,O,D65,8 L( ]! k$ w  C( ~0 {: Z
I60,D6D,VF5,C,RFA,OFA,K20,2 ]* N2 h: S2 D7 K# \7 f
IAD,
, ~0 d# R5 r/ b; UIAE,O,VF5,C,RFA,OFA,K20,  K! ]; [0 O% E. g6 H. d% ~
IAD,% x: s  y! S2 d' e5 Y5 ?9 k
IAE,O,
* U' S3 Y# J# R4 G- }# HIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,' t5 i5 W2 c# K- ~( [6 d+ P) j
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
# V  h* a4 s  H( S8 c) m3 d8 ZIAE,O,
& B4 K9 Q) |6 ie91,d2F,d00,
9 a. a: E! P/ L% _3 }e10,d83,d2F,P3_K#  A: m$ ~! U& r6 X
P3_K#

+ |! z( Y1 y' ^9 T8 y( Q4 y" B5 y, C  |' o# s# l% t/ \
e23,oFA,
3 O# D3 Q5 K0 }6 uI90,VED,C,RFA,OFA,
. _, _% R5 U8 j0 `( R7 F. r5 IIAD,
" D: z- ]7 f, `+ C, ^/ wIAD,O,9 J( _5 }  ?7 T
IAE,V03,C,RFA,OFA,; Q; [6 h% _4 ^
IAD,
1 g, A7 k$ [; S& [0 {IAD,O,
$ X; M% I+ @, j* Q- KIAE,
7 Y: i- h. f/ ?2 r! ?I90,VED,C,RFA,OFA,
7 v/ }* ]( ^0 N/ P) w% pIAD,$ F4 v" `: B  |: b
IAD,O,
. Y! D0 ~1 e3 h! b! d( M9 F3 ^IAE,V05,C,RFA,OFA,
0 @) Z8 [3 i; YIAD,
% W. L2 `' m& U, U7 ~3 u  s6 ^IAD,O,4 G# L# D& G( y" `. m2 \
IAE,O,
7 j+ G! D; C! V6 Y# t$ Le90,d2E,o00,3 C% h0 p0 k3 [, J% U
e91,d2F,d00,P3_K#) r7 Y- Y% _" L: F% Q: ~- E
P3_K#
1 i. f* F" `7 z- H

" S8 `% ^% ?- [: j0 s5 z# B4 i# OIAD,VF3,C,RFA,OFA," J4 U! \; t  j5 `5 t
IAD,
) S1 ~" M$ X; q1 k  p2 S: H' [IAD,O,
9 ^/ T- F9 y5 v9 w* M2 UIAE,VF3,C,RFA,OFA,
3 v( r. X. I; _1 x% oIAD,
3 L4 P0 A3 c" B6 g- ~2 H  C4 dIAD,O,
) |% y1 H6 h# @# j6 iIAE,V20,C,K10,RFE,OFE,K08,' h" T- b4 v: [3 B( I8 @6 W
IAD,2 }3 w" k( Q' W+ _+ {* O
IAD,O,
: F4 C3 s, `, w! DIAE,V20,C,K10,RFE,OFE,K08,* @$ |! i6 ?* }# o
IAD,1 G, G0 Z0 M8 l2 e2 g/ J
IAD,O,/ }, s* R) A) C$ l
IAE,V20,C,K10,RFE,OFE,K08,' R8 z3 m- S( z. |; b
IAD,% [" S3 S3 T1 \
IAD,O,0 Q0 ^2 ^/ L1 V9 w  s. q
IAE,# E. m# z4 |7 G: j  }6 N
IAE,VF4,C,RFA,OFA,# n+ R) T& z' F4 \5 g+ K
IAD,
7 y3 b' g) L: i( Y2 P) W, t. I/ AIAD,O,$ u) m7 s% Y+ p7 f3 S
IAE,VF4,C,RFA,OFA,
: x& h% l0 d" [8 j2 bIAD,5 n/ B% c! `, k
IAD,O,: D0 `- a1 l# I
IAE,VF2,C,RFA,RAB,R41,OFA,  y3 Q7 U6 E2 V: K( @$ r$ e! l
IAD,
, {( F% O# i. Z( |# ?1 IIAE,O,OAB,* b( C; e8 u5 a1 A9 d
IAD,
8 u0 z& `: r7 f& a. x5 CIAE,O,O41,7 w1 e7 N! U; J5 X0 U
IAD,
4 j6 ]" c3 L7 MIAE,O,VF2,C,RFA,RAB,R41,OFA,2 P% V! U* Z9 _8 f5 k
IAD,
' j' c' w) k1 c! nIAD,O,OAB,/ T2 F% g% ?  D4 k1 X! d$ Y
IAE,O,O41,
- _& P' l9 ~8 L1 D: O0 o9 g# Q; @IAD,# _/ F0 m7 Y8 z/ \' w
IAD,O,
/ w' k3 c2 L- g: |: J' qIAE,VF2,C,RFA,RAB,R41,OFA,
; y3 b, M/ z3 ?* E/ a" |IAD,; d8 F/ z  W3 k; @% l
IAD,O,OAB,: L9 x* L6 y6 w! c- l/ H' Z7 D
IAE,O,O41,
( F6 {0 i& N$ z  _0 e. p" iIAD,/ {/ r" F# t; E- n' j# d
IAD,O,
5 [# |/ ^' g4 B* @IAE,2 R1 O/ i8 L4 L/ y3 I9 D
I90,VED,C,RFA,OFA,
, B8 d6 M% |/ iIAD,
! ^3 g- H" I; s, Y7 SIAD,O,
- E1 `2 x) |" DIAE,V00,C,RFA,OFA,2 S( z# |9 z* u" T
IAD,: }" W% U7 p! q
IAD,O,
7 B, v# x9 b6 ]& g: cIAE,
) j$ ^* J7 I, P) w2 x+ `) q; WID1,DDD,3 d0 ?, Z# U) a5 R2 Q0 v" N
ID1,DDF,
+ q* s& d0 W- c; _) r3 f! yID1,DDF,
' i" o: j. \" ke22,oFA,
4 w: a. h* p, P8 j: We83,/ {  P/ ~6 j6 l* \
e83,
" Y1 ^  U8 B4 ]6 ee83,- l" r' F. }/ a- w9 V1 Y7 {
e83,: w. H$ h7 A. X. h& H$ e
e83,$ b1 {: r0 b3 r8 X. O( F
e83,
2 c" w, U/ D; [& P9 [' ce83,
  F3 @$ i3 X$ @) q. c2 E+ f% K* x! We83,$ y3 k/ E2 |- U5 w; w
e83,0 l2 G+ j4 U, |' s4 R
IAD,
% \/ Y" L0 x9 Q9 Z0 ]6 g0 [: pIA7,
+ @% n! V  ?8 k: V3 sIAE,O,2 u* y- d, ?) `
IA8,
. E/ y# `( L2 e9 F0 oI60,D44,' f" H& \3 ^+ a
IAD,
: D. \3 q. G2 B# V# x  |% ZIA7,4 H/ `8 E/ j2 {; S( I
IAE,O,+ c; [; f/ n: @0 d/ [
IA8,VFF,C,RFA,OFA,RAA,OAA,. r2 s* H' Q. ~  @9 g8 Z# G5 [; C2 s
IAD,O,K20,9 m2 w6 l9 z8 B. [
IA7,
$ @5 [9 ]+ }  y4 `- l6 Q& RIAE,O,5 x) {6 u$ H! W- R. Q
IA8,
% b0 U" @! W, S7 P+ E, PI60,D04,( C; t& M, e7 N6 O2 k/ L/ R: \3 I$ l
IAD,# G. A( d( h$ ?9 q6 w! P
IA7,; A9 E! e0 V2 K# ^2 T
IAE,O,  A; G! u% t5 w- M
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,1 s0 F2 f6 Y  [, v3 ]4 z9 s- Y4 L
IAD,O,
7 k7 ?  R' G! L! X7 n. a# kIA7,
" `2 D8 ~% \6 y  ^- S4 }9 f0 I. }IAE,O,+ p" i8 l5 f# I2 Q
IA8,
  c% T% I' n0 q7 ]* O1 |( j9 gI60,D44,! l7 q$ a7 s. Q5 h1 `$ Q
IAD,
$ t. ~. L1 s0 P1 MIA7,$ p/ I9 i( C* E# `: N
IAE,O,. T' b! h; {7 N2 d  m
IA8,
) @' q% V1 V' t0 u. ?' FID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,9 c& P2 ^: E; j9 C
IAE,O,$ r, T: ?* B3 L
IA8,! F$ ~* F7 f% A( L
IAD,% h; r( s) c# k0 N
IA7,
: C' Z  `4 ^$ M# ]9 iIAE,O,
: f4 _% X5 E5 K8 rIA8,
' x9 H1 A2 J) C& o. R5 jI60,D47,
* z& t; m4 z/ DIAD,
2 T$ T5 F) }" X. gIA7,4 w* b( M8 x) B
IAE,O,
' |" x  a" E" f0 oIA8,  j+ ~1 v7 Y/ H+ ?% Q* E* i' c
ID4,VFF,
, X0 I) M" R% L2 g3 }e83,C,RFA,OFA,1 W  e% q, u. L/ d2 j4 c+ S) i
e83,O,RAA,R00,OAA,O,O00,
4 z) A" h* E* \ID4,VF2,O,C,RFA,R00,OFA,O,O00,) R) l. l! m, i' m6 `8 i2 n+ A# M' p
ID4,VE8,O,C,RFA,OFA,
0 R% a* `9 P& U* lID4,V00,O,C,RFA,OFA,
3 k3 u+ \+ o. U. ^1 G) y7 bID4,VE6,O,C,RFA,OFA,( X4 t' {3 f/ g( K9 e7 ~  K  ?
ID4,VE6,O,C,RFA,OFA,
) e( c9 P' |& V# j1 W' r( mID4,VE6,O,C,RFA,OFA,
8 x& r+ I) r4 sID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
+ D( E* P" O4 r! j+ eID4,VE8,O,C,RFA,OFA,2 ]+ @( r" J; F  l% z) h
ID4,V03,O,C,RFA,OFA,
0 G3 t& i& i  }$ k. rID4,VF3,O,C,RFA,OFA,4 G% v1 w) X$ K9 U+ D
ID4,VC8,O,C,RFA,OFA,9 [- d' m& q0 ]* K8 W
ID4,VF3,O,C,RFA,OFA,2 A3 Q* R1 q$ }, E
ID4,V64,O,C,RFA,OFA,9 H! ^  j2 A) m6 D) H3 r
ID4,VF3,O,C,RFA,OFA,- z0 w4 n, z. h6 D0 y/ l
ID4,V50,O,C,RFA,OFA,
6 L6 o3 D" `/ C+ B+ OID4,VF2,O,C,RFA,R03,OFA,O,O03,0 b* L3 y4 E8 D7 s/ K- f2 h$ _5 [! a& b
ID4,VF3,O,C,RFA,OFA,  s) z4 I0 R/ Z- l! R+ H8 n
ID4,VC8,O,C,RFA,OFA,( d. x5 B/ b2 q, q0 n* w/ V8 c# k
ID4,VF3,O,C,RFA,OFA,5 {3 _6 V  s/ f# Y1 k& A1 [4 \& r
ID4,VC8,O,C,RFA,OFA,5 z4 V- Z: H0 f: ^  l2 V, D
ID4,VF3,O,C,RFA,OFA,
4 \8 D/ z1 X" V: u0 v9 o, S+ \ID4,V50,O,C,RFA,OFA,2 @, q/ y- P5 v( T) o
ID4,VF2,O,C,RFA,R03,OFA,O,O03,: ], l  e& q6 E, K
ID4,VF3,O,C,RFA,OFA,9 y; `/ M; y9 w! k' L  w
ID4,V64,O,C,RFA,OFA,# `) E" D' L! G: X" B$ D' B
ID4,VE8,O,C,RFA,OFA,  e7 c/ K: m# g
ID4,V03,O,C,RFA,OFA,* Z% _; o8 Y2 [; V5 y, K) b3 U" p
ID4,VF4,O,C,RFA,OFA,O,
" D3 T+ \7 m: i/ Q, \, `! ^e83,6 Y1 @$ Q9 d, C  k
e83,# v4 u7 u7 q$ F3 I5 U
e83,
. \9 ^. x* S: t& F8 i, }; {1 Ae83,
2 W; U  v& N' Y* ne83,
$ L1 |" J. E, j8 ce83,
- A9 |  F$ z" e/ [! h& Ae83,
4 z+ c9 u) ^, |* n' _e83,
9 |' p7 u" `# ?! [. ae83,
) w8 U" z3 _" }0 A' c2 F' _7 V, j0 we83,00,C8,2E,7 q1 \: [6 O: U) V8 y
e83,00,C8,2E,4 k  D- f+ Z4 S, k$ }+ I- \5 @
e83,00,C8,2E,3 ~' F: N9 t8 V' n
e83,00,C8,2E,. g3 U2 x1 b0 l- X7 ?
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
' j6 l6 E8 ^4 a5 [e83,
1 z8 E8 a, ~0 m0 E& V. B1 A

3 ]7 K  ~6 `$ k- F. R
& n* `7 q, e" o+ E[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。. V0 v& L1 x4 V( k9 I) k- Y; u) v, }
Device(EC0) {
9 }; r/ V( j0 c+ L' GName(_HID, EISAID("PNP0C09"))
6 S- @) Y6 @4 k6 z7 j......4 E( b( `5 f$ K: D* |4 {
}9 S" s- E8 j& `- S0 O
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
: M& i9 v- e1 [3 b就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等), r( U) g# t$ X+ v) x! D
2、    3 q" d( u) u. J- E! O  L$ [
Name(_CRS,ResourceTemplate(){           ; t$ n- s9 @8 x. j
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84/ Y; }: [; v3 e4 R2 H2 G: h
            IO(Decode16, 0x66, 0x66, 0, 1)
0 M1 x4 W# k# c: G        })
' |* h: J7 I% S5 c5 D3、接着就是
/ ]) E# T3 R1 T8 Y" z' A- WName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
1 f6 A9 d9 g/ ^: F+ v通过这个声明,OS知道EC和哪个GPE关联起来
. B% X5 r) Z8 @# }. J( w" F而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
% `( F, ?/ e4 e, Z1 OEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。/ m' F3 z3 k6 f" x9 ~* A. h% N0 M
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。( {# V; R. S" o/ f
3、OK,看看linux是如何处理SCI中断的
9 i+ Y9 o' r' P7 u  e2 [9 Y) O" q8 Hacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute3 f! @# {) u3 p. I8 o
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
/ B; |% Q7 }0 Z4、EC接到0x84查询命令之后,就把Q事件号传给OS2 F0 i2 z5 W+ G0 A: y2 m  x! l
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
) x, I$ T" B( V2 f你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
4 K7 E/ k( }) Z1 W- Q有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
2 [! G6 P5 A- ~1 m2 D; iqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm, L7 o1 R* r8 R3 d. Z
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
- N0 G$ p3 j) N8 Y! i版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-13 07:04 , Processed in 0.082091 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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