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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,, C7 d+ M1 j) ^6 }
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。) {( X6 O4 N& i0 x" ?
我们在操作系统下用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的命令
+ v3 H9 |- o! {5 O* h& H) \4 ~% f8 K2 ^D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check$ J5 c  C4 C7 u/ Y/ _8 W
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析% w. p2 W3 s. f, o5 Y
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
! u7 ~" D" l4 z8 {3 M# S. D: }( g$ D! ]* m5 p
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,/ X/ C* y* b8 n6 F; {2 X: _; R# p( q: V3 [- d
e83,# X. a% k4 ?9 X8 t% j% X- M- v
IFE,
0 x' }- X; E" C2 a; ^e23,oFA,
0 i6 q4 o4 d# d/ o3 U+ ~ID1,DDF,LPC RST3 p2 h5 Q% ^. q, n
Swrong LPC RST/ ?. t$ H! p$ k0 s
LPC_Reset_Flag=64

! {8 ]/ o7 x$ ^
0 I" d9 ?4 K6 S4 y" bID1,DDF,
2 a: ~4 o6 V' O, G1 y, a/ W- pIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,4 h* _8 ^% t3 S3 k
ID1,DDF,
6 U% r! g' A* F5 R3 s4 wI90,VED,C,RFA,OFA,V01,C,RFA,- V7 H" z( r" f8 h" d9 `& W
ID1,DDF,O,OFA,O,
* l# v5 ^/ |7 k" E4 t( Ee2A,>IDLE& ~  a3 Z9 e3 H, C* [  Q
oFA,<7 K2 F5 h) s2 M6 p. E, ^% p
e00,
* Q. h4 }. Y, U; g4 D9 n$ ]/ g$ Z6 ^IAA,O55,O,) _5 K* Z- V5 S
IAD,0 x9 |8 |7 M* |9 I
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
* y/ p7 r" R0 D2 L2 N+ @9 BI60,O,D65,
. G# \7 B( Z1 u$ v% l# X3 l- j) tI60,D6D,VF5,C,RFA,OFA,K20,
; `. u8 T! \$ N5 c- M6 XIAD,; l- T7 ^- s4 K8 b' v+ o& J6 a# u9 a
IAE,O,VF5,C,RFA,OFA,K20,+ b( u3 g3 i( Y5 g% C9 m; O
IAD,' r8 }# K( R+ }4 [
IAE,O,
4 `; _+ `+ s- _8 ?( T; iIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
4 i: D; z- Y' c1 l3 dI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,, Q7 P+ ]( `& S1 t1 h1 T( o
IAE,O,
  u9 a2 ]: _. H) ?9 C5 O( Be91,d2F,d00,
" T& R/ C) x; U, K( je10,d83,d2F,P3_K#
/ T$ D" j! d0 i; @8 Z1 }0 t/ W: vP3_K#

0 _, {6 y5 B, M% d9 g8 k3 Y7 W2 S- W
e23,oFA,
9 Z0 w- `  ]* {6 ]I90,VED,C,RFA,OFA,$ a/ V& Q* l/ y3 L; C1 W
IAD,6 Z. y  B2 A: R# |% D
IAD,O,
; N$ \$ f2 R% E3 i- U! v+ |: RIAE,V03,C,RFA,OFA,
  F5 d  ^( Q* V! UIAD,' y; t' P9 q3 ~& X& X
IAD,O,
1 F% x) |' D( |- H! R2 ], GIAE,+ |7 K6 [0 c9 u1 L! b" X% U& I
I90,VED,C,RFA,OFA,' ~5 d+ |2 p7 c. n* _1 Z8 t
IAD,
+ D$ B7 G3 I5 ]$ V/ [. JIAD,O,/ i  M( ~' h0 Y, ?) ?, @
IAE,V05,C,RFA,OFA,
- }. U2 n4 X( s9 e0 I) L( B, ~IAD,  x2 l# H7 j! |7 _: ^
IAD,O,
5 l$ ^2 n+ {0 r. `% H  WIAE,O,
8 S" Z9 T- n/ Y  }! o% te90,d2E,o00,
, S6 U. E- J, V/ ^2 q) Me91,d2F,d00,P3_K#$ h! d' ?, x) ^5 m3 l
P3_K#

# X  h/ k( Z& Q: v' k" c0 H( x5 i
IAD,VF3,C,RFA,OFA,. y) F6 ]! q: @4 Y; t# j5 S# r5 N
IAD,& A1 ~+ x, w2 a& G$ Z
IAD,O,: s) _, ]" `, h
IAE,VF3,C,RFA,OFA,
6 A7 D3 D6 {- D; f4 q/ vIAD,! G0 c7 ~+ P" x% J. B0 I; p
IAD,O,# g$ [  ]5 K5 H
IAE,V20,C,K10,RFE,OFE,K08,
% U) U' E7 e( jIAD,
1 [7 D- A2 W5 TIAD,O,
( }8 @; i! C) F9 h9 x5 UIAE,V20,C,K10,RFE,OFE,K08,
; t) ]/ y' |9 Y2 ?% mIAD,
  E2 z/ W* C. ?IAD,O,& ]& R( A$ {" X; ~8 n/ f
IAE,V20,C,K10,RFE,OFE,K08,* C: W0 @, H3 e  O1 L! \; x4 e
IAD,
% ?" m) o! P3 I; P1 y; H, `& V; XIAD,O,! v1 R9 K' h; J6 c. |
IAE,& D$ v4 {- [% A7 m: s1 N( E! F
IAE,VF4,C,RFA,OFA,
7 n- o' s$ d8 t/ K# ?( r& TIAD,, a, s0 M8 |* j/ d% T) l
IAD,O,
6 e! p; K- Q" i0 @$ I4 v# i2 qIAE,VF4,C,RFA,OFA,
7 d9 t( x, w8 i0 t5 hIAD,; a: n0 I3 ^! v2 r  x
IAD,O,
& y& e8 U% z, v, z0 a. Z  O3 NIAE,VF2,C,RFA,RAB,R41,OFA,
' A4 R& b7 A2 I  K8 d* W3 I4 z2 V5 W; hIAD,
" S9 E* I8 z! DIAE,O,OAB,7 Z" V8 I8 c5 ~0 ?3 N
IAD,
( ^, V/ W8 S- L  ?- G+ z. E9 xIAE,O,O41,! s- s3 _4 g6 U6 t9 Y
IAD,/ _1 g0 R) L& k8 a& h! K
IAE,O,VF2,C,RFA,RAB,R41,OFA,; l5 |) E; E" O! d: v& K
IAD,) N" B5 Q) u. T/ [
IAD,O,OAB,
8 z" }- j2 D$ u( pIAE,O,O41,
5 n$ v# W6 R7 u6 B6 U" M( T: m- sIAD,
& F- c1 t( [% e9 @IAD,O,) Z/ `: w& ^7 N0 V0 j1 s
IAE,VF2,C,RFA,RAB,R41,OFA,0 q2 [' z1 z  [& f  Q. \
IAD,! f! I. F4 P8 Y+ U9 W7 K' }+ t
IAD,O,OAB,7 ]$ O( a/ }- ^7 N
IAE,O,O41,
* x; t# W+ u: O3 oIAD,
0 t7 L/ E* n, A$ F1 Y- o; {IAD,O,$ S# h  Q  W/ j3 ~4 o8 s: w
IAE,
) ~1 n7 w* Y8 S- J7 J6 BI90,VED,C,RFA,OFA,  H$ w2 D" a; J4 D" M0 B& [
IAD,7 \& e% J7 J$ s! }' z1 _- i
IAD,O,
4 c1 _( I# T9 W% K$ S( j( E  U! wIAE,V00,C,RFA,OFA,
- h( a1 [0 G& ]$ |" {IAD,
/ S' B9 Y  P; e: S! f0 m8 pIAD,O,
; r1 G. X  u% s! gIAE,
. F1 g. T3 y7 rID1,DDD,0 l7 ?1 k6 M9 h6 E: a
ID1,DDF,! W; u$ f) b5 o0 E& l; `1 o
ID1,DDF,
* t7 g9 z, ], p* J: f$ R4 Le22,oFA,
: R6 W9 v( s5 n: v" b  k/ q0 he83,1 n/ I% @( c* g3 T8 a- `
e83,. }5 A8 F5 z2 B% w6 i
e83,
2 b0 @" Q3 o2 N3 U& He83,/ x; f' e8 p1 T; H1 a
e83,
6 u6 i; h% h; J3 D! N$ F+ Fe83,
& @5 `3 @8 t: t2 b- ve83,
: }* A% Z2 A4 f% {. ne83,
  Q5 |) ~, G3 [' U! ^e83,1 M" L6 b& k0 F
IAD,- r2 k/ `  k$ x9 l1 z8 G# v
IA7,; t  Z* n  ?& h" T' A" w6 l1 [
IAE,O,
% {* M: {" x' N" ?" L: mIA8,9 o- y4 k4 x; m  `5 T
I60,D44,; d; `6 H0 f5 u' O2 I) _
IAD,
% D9 e' B5 J* {  P0 ^& ~IA7,
9 z3 e( S& s) v3 o/ }- kIAE,O,
6 b* T4 I: q' C2 ]/ B& J! lIA8,VFF,C,RFA,OFA,RAA,OAA,
8 }0 a) }1 f; _5 BIAD,O,K20,2 ?4 D! i9 R1 V; D5 J* @) i5 t
IA7,
* }* N7 C5 F, I" zIAE,O,
& B1 G& N1 z9 i* g6 V# AIA8,: X: r3 q0 S" Z  v
I60,D04," F* N' |: M6 }; {& {
IAD,
1 H' w2 ~% v6 s/ n, MIA7,' z2 Y' [5 ?. d: z4 l9 |$ w( s. J
IAE,O,
( a6 f5 p' q5 c9 b# {1 [IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
* C- {3 w/ X) o2 Q+ XIAD,O,7 Q+ p6 n) h" J! l5 _8 d1 c
IA7,
- Z  p  L. w8 t& D2 L: ^, }5 bIAE,O,
* N% k& ^  H5 E3 c7 S/ lIA8,& s. R8 p2 X% ?5 }5 D) W
I60,D44,% U& l+ ?7 d' P& J: N. q. L) w
IAD,$ j; r7 q( A, t" Y7 \
IA7," @% @8 ], `$ l) q
IAE,O,
% s$ ^6 _' l5 x8 X! S# c" YIA8,
4 W; A) d2 Y2 p  ]; iID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,! f( c0 m# u; x! C- ^2 E7 ]0 i2 j
IAE,O,8 I$ H8 G  Z1 O1 |' I( |+ P. p7 r
IA8,
$ C2 k- S- I1 K# p1 dIAD,
% R& |7 K0 X# g' v- m! nIA7,
+ a/ I) y: N1 p6 D/ Q' D& XIAE,O,
% u( ?' ]( W) H! ~IA8,
' B7 _3 e0 u- z6 J% k9 [# FI60,D47,
) s# W$ B. b! P" QIAD,
7 y7 r( _& Y: w% _+ [3 bIA7,! ^$ L5 h/ l! u! Z+ }0 d1 p/ _' n* k8 X+ u/ g
IAE,O,
- u* N, B, {# M2 C3 a8 k1 O! t& RIA8,
" V6 X) d3 {* Q0 G' J8 ?+ K& e2 J( WID4,VFF,7 H- N3 ]* K5 v
e83,C,RFA,OFA,0 s  `4 P  a& u) @' r
e83,O,RAA,R00,OAA,O,O00,
  g$ v1 E+ F- X, {5 ?5 T7 t% pID4,VF2,O,C,RFA,R00,OFA,O,O00,3 z( ?$ v3 P* e! X
ID4,VE8,O,C,RFA,OFA,
" j& g0 Z4 Z) A3 G3 q# X' GID4,V00,O,C,RFA,OFA,. q  O4 r, b9 W9 O
ID4,VE6,O,C,RFA,OFA,6 a, P. \- q: L, K9 y/ P
ID4,VE6,O,C,RFA,OFA,
9 H5 q" `* O: G: V6 I& tID4,VE6,O,C,RFA,OFA,
9 Y: n# F" o' k+ \ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
1 t% D! e. j; y6 D+ {4 BID4,VE8,O,C,RFA,OFA,- j+ m. m  n$ \9 F$ S
ID4,V03,O,C,RFA,OFA,
9 x0 ^: j/ R9 R$ PID4,VF3,O,C,RFA,OFA,
* J, D8 U9 J) ^. J1 l" L5 j6 bID4,VC8,O,C,RFA,OFA,
% n+ V9 N! U; B& J. V! Y9 v- NID4,VF3,O,C,RFA,OFA,8 P7 A( ^( d) ]
ID4,V64,O,C,RFA,OFA,
7 \% W/ z( r% r* q, OID4,VF3,O,C,RFA,OFA,+ e' K3 @. z# s
ID4,V50,O,C,RFA,OFA,
5 S  t9 @  ~6 C" o0 g) rID4,VF2,O,C,RFA,R03,OFA,O,O03,
) ]# k& r8 C9 M& W+ ^) YID4,VF3,O,C,RFA,OFA,! p& J" m% H! Y  `8 U
ID4,VC8,O,C,RFA,OFA,
( Z3 O* H3 l1 c% w' \ID4,VF3,O,C,RFA,OFA,$ j5 z/ l7 G- S0 t
ID4,VC8,O,C,RFA,OFA,
8 Y" y7 E1 b7 d% |! _: l* U$ FID4,VF3,O,C,RFA,OFA,
5 {6 ^1 ^, |: H* v! X4 HID4,V50,O,C,RFA,OFA,
- F2 \$ N+ X- h" D  r2 c. K: LID4,VF2,O,C,RFA,R03,OFA,O,O03,
6 S! G+ \) b0 `" P' Q8 S5 NID4,VF3,O,C,RFA,OFA,; d- f. r0 m2 f  |/ J2 l! g
ID4,V64,O,C,RFA,OFA,1 y4 m+ A+ ^4 X4 S, E; h( l' {; Y
ID4,VE8,O,C,RFA,OFA,
9 `9 Z8 }+ ^/ S- QID4,V03,O,C,RFA,OFA,5 D* _  [$ ^. i4 k% B" X1 |
ID4,VF4,O,C,RFA,OFA,O,, B2 c% F" Q$ _, ^
e83,
& D2 i  ^1 E; ^! m) A) D6 p3 I4 We83,
# \$ Z& P! q* ^& `, `e83,& `( b  v# B/ a: G( \( k2 M6 `
e83,0 J3 c$ ]/ S9 O, \2 O9 V
e83,
  Z2 ^# L( L0 \5 P* ae83,: v7 c& Y6 E% ^. W( Q
e83,/ ]. C, r# f9 s* Q; _3 p2 ~
e83,
. L  p+ p/ J7 u: k* Y3 q" |* Q: _e83,$ D  [) u  @6 z7 U+ v2 A
e83,00,C8,2E,
' N' d# c  S8 x7 a! v# m2 u, @0 pe83,00,C8,2E,+ B  Q" i* X; ^6 R4 I
e83,00,C8,2E,
5 t- R- B- V$ N9 c# V# ~! K$ We83,00,C8,2E,
6 c! l4 z; p6 d( T" A2 a3 e) r- ce83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,7 \/ N; d- _: N; O! |% e
e83,
- o) L' q  P% [" G6 s5 i3 a. D
7 w; V6 Z' k4 p& S

) q+ I) N! e9 ~, j. c* }[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复' f0 h0 w2 m8 m) e
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。3 E' V1 Q5 V. A
      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!9 a1 d& a: W: E7 o
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。9 N- v( y; l% T
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!4 x. P, i' g8 [% n/ c- W
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
' O$ L& ?. H5 k6 X) kDevice(EC0) {* j; [3 O* I! M
Name(_HID, EISAID("PNP0C09"))1 [3 K+ l5 X' {9 I) J. F4 M: L
......
( j* h5 }6 p# }/ F# w}, w  `# v1 j* W; J# V$ P
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
) x" q3 C: C' \5 C就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
3 `; X: u$ Q) v- N% ^/ d2、    ' C. f$ V% V+ I7 n  v
Name(_CRS,ResourceTemplate(){           . i, g3 L. k+ J
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
0 V" H& m6 j) N; W' ~            IO(Decode16, 0x66, 0x66, 0, 1)2 f/ Q) T0 ?1 p! n8 Q
        })
# c! q6 n' R9 C( F3、接着就是
0 P. b2 X+ C. X, }' FName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7" L' X/ A" V7 q1 g
通过这个声明,OS知道EC和哪个GPE关联起来( K; S7 R0 Z; n4 Q1 z
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来# J% M+ Y7 O2 T' `# F8 Q+ Q/ b0 A
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。( M! \" U$ b% g$ F- R5 H2 y* C
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。, Z2 s8 o' n$ l
3、OK,看看linux是如何处理SCI中断的: v0 Y2 Y! g; X8 X+ x7 I9 p
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
7 I/ M* j+ [2 l% C: ^! K2 `acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)) l, S& ^; j2 q- v
4、EC接到0x84查询命令之后,就把Q事件号传给OS
& F1 Y1 v  I$ W+ N& g& T2 w! wOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分; R' E; ]. d8 z; d* I
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了( L4 _: ]9 ~* `& B: q# v* ^' M
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
$ O% r/ a$ j6 M  V, h7 z2 s0 Q# eqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm0 Q% o7 F4 e7 \# u. L5 @
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。4 |# M3 a5 D3 o% b" X
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 07:03 , Processed in 2.475777 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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