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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,/ ?# n7 }3 r9 {2 R
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
4 `: ]) J) j/ Z( {" k我们在操作系统下用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的命令
# z+ o& i" n+ N; oD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
9 U; L$ j7 U6 m( r8 v% i! w这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析. k; r' B/ y* T9 R
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
! }" K) f+ X' |4 r; K$ [0 G  o$ I; B) c4 J
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,8 ^+ U+ \- f, p# }
e83,
! n$ O+ G* q( j7 o* X! {IFE,/ b, j+ a- K: }/ q# j" l
e23,oFA,
5 o4 K7 j$ G* p+ T# aID1,DDF,LPC RST
  }3 \7 e( I0 |7 l5 K" NSwrong LPC RST$ H2 R% J( y% R7 I
LPC_Reset_Flag=64
$ i+ L2 L. s1 F$ k( z1 m' L

* Q( i: A% W# n; TID1,DDF,
. g! V6 d  B. \0 HIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
" i+ v9 d% l' E. o6 Q7 g+ OID1,DDF,, c0 F; v9 [" ]- M# {* x
I90,VED,C,RFA,OFA,V01,C,RFA,) R; M6 O3 P# T8 g: x
ID1,DDF,O,OFA,O,4 @: L4 ~, W0 x; V
e2A,>IDLE; Y* d/ [) E1 W5 [. }9 Z" X
oFA,<
" I, F2 A  _+ b7 C% J. Ue00,
; E) d$ d) H1 z6 z* [9 J# D9 YIAA,O55,O,5 s. k& I" ]! @1 x
IAD,7 n4 D$ B: @" z
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
, _2 Z0 }& G3 W1 d: P9 T) o4 _I60,O,D65,
" F9 q6 g; I$ uI60,D6D,VF5,C,RFA,OFA,K20,! ?+ p9 o0 J: Y- n: |6 H6 l4 a
IAD,
+ f; }/ ]$ ]$ p  _& [2 N" o$ gIAE,O,VF5,C,RFA,OFA,K20,
1 T# B' n% ^! u( HIAD,
6 d8 \( L; r2 P1 y' x) [/ LIAE,O,
, i4 }& ^; E: g8 c; T8 NIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,5 A) U( J2 T1 T/ ^: ]! u5 e
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
' l% k0 h6 @8 sIAE,O,
0 E0 X, E& F* R8 fe91,d2F,d00,1 V8 Z2 G7 P9 C
e10,d83,d2F,P3_K#/ R2 G/ ]" Q1 Z' J$ m9 X2 g
P3_K#

2 @6 ~) m- p" {- M, ]! w) F
) \/ `0 S$ a- x3 q2 e" x1 ?6 ue23,oFA,
+ `% r7 n% v6 K1 s1 iI90,VED,C,RFA,OFA,& K6 V0 m" U1 E
IAD,
6 j1 Z8 o1 r( E9 K: S" MIAD,O,. W8 s5 L& X; j. f# U" k- o
IAE,V03,C,RFA,OFA,* [1 H! t6 Q5 f2 J
IAD,! n9 N1 ^' e# l  u" M4 \. h
IAD,O,$ [0 z# e6 l/ b8 {; F
IAE,& F# l" u) G, l7 i& c5 Y( s! w1 }
I90,VED,C,RFA,OFA,8 R* Y5 h& P- Y/ b6 C
IAD,
  U) M+ k1 |; n7 B* D  H0 v5 LIAD,O,& d5 B  I; A# O8 h4 _! L
IAE,V05,C,RFA,OFA,
* Y$ m4 e3 _! s: {# nIAD,
" j5 e* m+ ~# KIAD,O,- Q6 p6 }2 X  T3 k; a, ]+ V
IAE,O,
7 I( j1 Q3 `* P2 R' ge90,d2E,o00,. d* p  J( y: k. G! X$ `; D
e91,d2F,d00,P3_K#
4 s: ?; p$ I0 a' g3 DP3_K#
; j0 x, ]4 l! l- n3 m; W

7 L3 s+ w$ R% Q& B; R4 g- s2 ZIAD,VF3,C,RFA,OFA,' u  f; h! b* C" x1 k( B  o
IAD,& X5 E) C8 j) L' P$ J9 Y; a
IAD,O,
( [+ k: k4 v  k6 M7 aIAE,VF3,C,RFA,OFA,
8 V. C3 e$ g8 m- l7 [0 hIAD,
4 J. t- F0 w' t/ I8 wIAD,O,- p) x  k9 E6 a. S. f
IAE,V20,C,K10,RFE,OFE,K08,
' P+ i0 @9 r4 HIAD,
% N% J% x  R8 _- m8 fIAD,O,$ A* ]9 U( `* u
IAE,V20,C,K10,RFE,OFE,K08,8 `5 p* J7 H2 \4 e
IAD,& r, z" n5 F: H* a- a
IAD,O,
; J6 W. G! O4 S1 gIAE,V20,C,K10,RFE,OFE,K08,: k% a' c/ H8 L
IAD,
3 ?- [: s7 z. Z0 D7 SIAD,O,
7 E$ p$ [( F. P& k7 }IAE,
7 O, P* C- Q* dIAE,VF4,C,RFA,OFA,) x3 E+ r" t% h+ P
IAD,/ P7 w, ^9 h0 d- a+ h+ n
IAD,O,
6 b% D6 s, g% e! b  \, XIAE,VF4,C,RFA,OFA,! {5 D4 t- i; m3 d# g7 R4 l, }
IAD,, @: I5 o( U- t! ~5 n! ^
IAD,O,$ H; m2 X4 b% y
IAE,VF2,C,RFA,RAB,R41,OFA,
% D6 W5 `! p3 V+ a; @; f7 R' CIAD,) S: M" B1 C# V
IAE,O,OAB,% \1 A: ^2 _( P2 l2 S3 O
IAD,6 R  H: E5 E4 G: N
IAE,O,O41,+ Y' \" O4 w- ?5 S) Y2 i8 x! X+ J
IAD,! P0 T: S# x: G, W; v1 j: T0 O
IAE,O,VF2,C,RFA,RAB,R41,OFA,$ J# [' `( y" q; L
IAD," A& y) x" X8 O. t& c/ c% f
IAD,O,OAB,% F/ c0 y5 d8 U: @" q
IAE,O,O41,
7 k: R$ `7 V4 h% j/ ~4 |) jIAD,
6 h4 D4 E1 Q* d( XIAD,O,# \# q) z; Z; J! W% N# J- s
IAE,VF2,C,RFA,RAB,R41,OFA,
9 @5 {* N  t( }! sIAD,( y! j, r0 j+ M( |% y
IAD,O,OAB,6 P  C( U( j8 b$ ]. E
IAE,O,O41,
2 u% f5 v2 A% KIAD,, o0 f: Z- v9 s, L6 x% p$ ]
IAD,O,7 j: g, I# r9 a+ E: i/ [
IAE,& r4 l2 k6 Z: j; [0 ^6 s9 g
I90,VED,C,RFA,OFA,% S/ X6 Y# @8 l5 [! B7 m, a. q
IAD,
# @: L; Z7 I1 c! f) Z8 zIAD,O,
0 R; Q! Y: n- V6 D: k, z. GIAE,V00,C,RFA,OFA," B" `9 `* Q" B! h1 y) ~' c$ J% Y
IAD,% q( j3 G; Q& y4 A& G- n
IAD,O,$ }4 z6 V: s, ^' K& N
IAE,
! G$ \, f  B* W0 |! D! {. YID1,DDD,, q* \9 \+ n7 f' m% K$ ?- W1 a* U
ID1,DDF,
, O& G% z* q9 x& EID1,DDF,5 |" {* X- \4 Z+ p+ n% @
e22,oFA,
- r1 A( @3 F( b& k( M5 ce83,
% L/ L, F9 D0 q; s9 L  Qe83,; Q1 c) l  Q- S$ `* z
e83,8 i* }4 g7 E9 _9 B9 J
e83,0 n; j9 d2 `# t$ ]
e83,
$ Z* q/ U; z) k3 l9 f0 We83,* m4 K) [+ h8 q5 y$ x; t7 a
e83,. T7 {* H& D4 C% ~9 h
e83,, v0 x6 F1 J% G0 G
e83,9 s4 q/ |. |' p
IAD,% R+ n) H2 c- k5 O/ b: P
IA7,
7 F2 J8 i4 K% E5 ]1 A( {+ _, FIAE,O,
7 Q# \& ]0 e  V1 bIA8,( K% {, E# J+ S4 B4 u
I60,D44,
6 a: M0 C$ F& M) B2 `IAD,
& C3 d% g% M5 \# @3 H7 WIA7,* R' I, ^* S& A& q& v/ j
IAE,O,
& l8 A3 q0 P3 @* mIA8,VFF,C,RFA,OFA,RAA,OAA,
) z8 I; V7 T8 D# L: j8 s% y# S5 vIAD,O,K20,7 L  i6 k4 m% S
IA7,7 T3 V( X  y) B: Q
IAE,O,
4 B9 `# o9 z. `IA8,5 t6 B8 ^5 d: [* W2 u* w# K8 z! R
I60,D04,
) X3 s6 F2 Z$ e/ b+ G1 r  C( jIAD,8 \$ N  O( k6 r6 ]  ]- U7 j2 z
IA7,
. h: D$ U( x. U7 g6 tIAE,O,
/ \0 f6 f8 O3 A9 B/ D) \IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,; W7 s5 `' P- F, J, m5 L6 E2 V
IAD,O,8 y& i3 K- d  _3 c# i: }
IA7,
4 B& K/ V, n9 ?  E' ZIAE,O,
* _# U& E) g' d1 F8 U" BIA8,+ d5 A$ y. W: o2 {
I60,D44,
  \1 J4 v6 h5 Q8 E# XIAD,
' h5 ^  Q  i% G) [0 d' W3 A8 lIA7,
3 \' ^  c3 O6 ~8 J" Y0 e+ UIAE,O,
2 R4 T9 \1 @! Y6 tIA8,
# D0 F3 ^" K8 R! wID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,% D7 i2 E% I8 K& l
IAE,O,
% n& \; g( o8 PIA8,
; X$ R" W" g  {  m' FIAD,
6 i  u* n( s- |# rIA7,
" U) p" x4 M: LIAE,O,% X9 P! i4 I: i! M7 J
IA8,  k" i  H7 L" o7 Q) {4 l3 ^
I60,D47,
& b# B& S/ T- S  {IAD,6 f; c0 M! b0 n
IA7,
; L1 ]# O4 V3 p6 CIAE,O,6 P4 G- Q( E# T' W* |9 q) {
IA8,1 I4 W, K- `; W! V) [" }, F! G  V
ID4,VFF,
. E. q6 {/ l) v: G- M, fe83,C,RFA,OFA,6 v0 P: _' Y7 s2 x. t' `( {) j
e83,O,RAA,R00,OAA,O,O00,4 B5 T  a; N! B" x- W9 \
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
" Y( p- ]/ p. K8 G( a+ rID4,VE8,O,C,RFA,OFA,
. f; F& t3 t# _3 s/ TID4,V00,O,C,RFA,OFA,% a6 a+ ?$ P. s0 V0 e1 n" u5 t
ID4,VE6,O,C,RFA,OFA,2 O* b5 {% ^/ X0 x; s( M
ID4,VE6,O,C,RFA,OFA,
. |" V' B9 |* @& gID4,VE6,O,C,RFA,OFA,
) M) I3 I9 [: j, H( bID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
( l; G# }0 [4 s. t  SID4,VE8,O,C,RFA,OFA,
# ^$ t7 V' S9 D  ]5 B# c  h. H* OID4,V03,O,C,RFA,OFA,% h! a5 d! w4 B* b6 |$ W3 c
ID4,VF3,O,C,RFA,OFA," c8 }4 j$ m7 j# S5 k
ID4,VC8,O,C,RFA,OFA,) ?# i+ t. E; J  ^  G" Q
ID4,VF3,O,C,RFA,OFA,- L) I# J1 c6 }2 a
ID4,V64,O,C,RFA,OFA,4 ~" @# o! I: Q7 G' g6 h
ID4,VF3,O,C,RFA,OFA,2 ^' G5 _& G8 ~' N
ID4,V50,O,C,RFA,OFA,
( P8 F* x: q% P2 Y8 t7 S, j- A9 HID4,VF2,O,C,RFA,R03,OFA,O,O03,9 q% n% ~& W# E
ID4,VF3,O,C,RFA,OFA,, u+ Z; p$ D7 i6 O. `
ID4,VC8,O,C,RFA,OFA,
! l/ m+ z' A4 u( Q3 F2 Q! L) L% YID4,VF3,O,C,RFA,OFA,
+ H; S8 R8 t, S) YID4,VC8,O,C,RFA,OFA,
5 H2 B- [8 C9 u6 o( [( UID4,VF3,O,C,RFA,OFA,- q( Y) z! K  O# O5 d/ p
ID4,V50,O,C,RFA,OFA,) r4 N8 h0 z* P: b2 K* I
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
6 E$ ~3 J: L' sID4,VF3,O,C,RFA,OFA,
* P: F1 z# y# ]& QID4,V64,O,C,RFA,OFA,; k1 L1 j  O9 q9 C) O2 f, Y
ID4,VE8,O,C,RFA,OFA,6 M$ b9 ?- M% {1 I0 X6 S8 j% V9 h
ID4,V03,O,C,RFA,OFA,
; H! x2 [3 _- FID4,VF4,O,C,RFA,OFA,O,
8 k! [! D3 D4 be83,4 H# k! W$ e. L5 \
e83,
% k6 ]2 J8 ], y4 M5 a' z- ge83,( k9 e. @8 G, K' `
e83,
7 Y( |1 s: m; v, [; l4 ?e83,
: G4 p) o9 v/ ~& n- Qe83,
& |% O2 z4 `: Me83,
8 L# J- O; [9 ye83,0 ?& y# g* a% S: E; Q! Y, Y
e83,! ^) @9 l  m% W7 M2 Z& C  t% `+ q
e83,00,C8,2E,' x# S) H8 ~, _) P
e83,00,C8,2E,) ^  ~$ b1 k/ V" X
e83,00,C8,2E,' f# h1 r4 {% F8 ^
e83,00,C8,2E,% H# }# F; U# k; H3 P
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
# P4 q: O/ ?% Y4 a3 Y* ]) B; Ie83,
  R# b7 {/ s  ]/ B; u0 o
( A- H% `$ \5 v' {+ U' u8 O3 ?

9 |" R" _  V, }[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。7 U; G1 l6 n7 c& Q" H. L" n
Device(EC0) {5 C9 t. Q+ I, k. G; V3 t
Name(_HID, EISAID("PNP0C09"))/ A9 A# w% U) u/ L6 p2 N- L
......$ t7 A) ^( E4 N5 T+ ^2 g6 ^
}' `$ b9 u0 N, n6 D+ E: r) d% G
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
& @5 f( M, X! z3 L1 I就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
! R" N9 L+ B* r  f' j1 c2、   
9 @3 W8 V* l" g  R1 }% _5 v7 yName(_CRS,ResourceTemplate(){           0 Y. {, R6 a4 [4 s" l
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
  O, w. @0 U% q            IO(Decode16, 0x66, 0x66, 0, 1)
9 e; ~2 W2 z( A        })1 O- q: f; I6 R
3、接着就是
! O- K( A. D7 A9 t% oName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7- }/ u2 X% x2 B* _1 y
通过这个声明,OS知道EC和哪个GPE关联起来
4 i, [# g' B2 i* o而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
5 \! {4 i8 m1 F" H8 B' a5 V( [EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
: |% q; e6 p/ t/ ^0 N而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。; G- a% q9 G" J) w
3、OK,看看linux是如何处理SCI中断的" s2 [: T' W+ x( {4 _
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
0 o' e& k% o8 t- _% e: y- q! Aacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
5 }! n) w0 N/ h4、EC接到0x84查询命令之后,就把Q事件号传给OS
6 j- i7 }6 W2 j7 L, F# IOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
+ d2 ?5 P! f4 N, ~' R$ L+ ~. k你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
' Z! k. ]* m+ r8 a有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。) Y' g# r  x" T" G# C8 y" O9 Z
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
# q' Y5 k# P4 y' A0 W' @' n: ]* Xbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。" L  y, ?6 j3 S  R
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 04:15 , Processed in 0.063885 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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