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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
4 Y3 a" h# [0 y今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。8 u- A& O, ~$ T" Y) d
我们在操作系统下用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的命令: J4 D3 m3 [* R8 Z  w7 s- [
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
1 ]5 N1 x3 @% f- Q# x6 H( r6 g  M这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析: W; N. U% T' L: L& C! u
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
/ ^6 b3 l, h% D  B6 M0 c6 e9 E1 [) t1 Y9 m9 f9 P" s5 H
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
2 \, s+ z  M0 q1 D0 s" J2 d8 |e83,* L# e  [8 W5 D. O% w  r2 c
IFE,6 K* H# U- y3 C8 C8 [6 H8 M/ N) f3 D
e23,oFA,
- y, T$ ]& E& i8 q, i4 OID1,DDF,LPC RST
4 v) A' c6 G7 p1 USwrong LPC RST
0 {& c' g6 [: m3 S- SLPC_Reset_Flag=64
; `& S9 J# V5 b0 P4 P1 P
$ d# U4 k4 M  }/ Z
ID1,DDF,/ c8 x0 f: N) j$ [
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
: K( O6 C( n& w5 h( K( }ID1,DDF,
# \& m5 D7 |" I; H0 N( P6 JI90,VED,C,RFA,OFA,V01,C,RFA,! q& a. `/ _  {- X
ID1,DDF,O,OFA,O,9 m+ q: M9 [/ e9 P. v' N& U
e2A,>IDLE& ^! y3 \% B( F
oFA,<
# U# ?, F% k5 V6 E- f5 ae00,7 Z9 V- X& F. M' L* z9 x1 r
IAA,O55,O,1 }/ X6 g+ a) ^& G, x
IAD,4 o; C7 t8 s3 x' l& H
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,- Z) u- q; s+ `: l
I60,O,D65,( K1 K1 Y( r# e( k; v. L
I60,D6D,VF5,C,RFA,OFA,K20,
+ q# |( j' c( |! Z1 JIAD,
/ q3 K! L( n1 H% W4 ~9 K1 @9 V: x0 OIAE,O,VF5,C,RFA,OFA,K20,& Y% K. L+ f( n7 n+ a. A
IAD,
) d" u+ K+ K' j+ HIAE,O,
2 k" Y* `1 v" q1 G  EIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,; v, e7 S4 c' N- }+ w2 K" G
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
% Z# g$ p% r8 }IAE,O,4 A6 p: v  ^0 O! H& Y( N3 n7 l
e91,d2F,d00,
$ V2 @" G0 k: x; J; ?" Ke10,d83,d2F,P3_K#
2 u) `" ]1 k5 K( f2 j  `' U: f& cP3_K#
" o7 N2 V5 w0 m
& ?- O' p; m6 m/ T% L3 {. z
e23,oFA,
* E6 S5 E% @- Z% @4 l8 Y" {7 pI90,VED,C,RFA,OFA,
7 `7 q0 W. P! @IAD,& G7 j# G% s- H# A) M/ B
IAD,O,
3 N7 t4 l) t4 fIAE,V03,C,RFA,OFA,
- {! S4 J+ o/ U) C4 P3 `2 dIAD,
$ L3 W% o6 z$ a6 y4 k& MIAD,O,' O3 s) }, R. g. G! o1 f% i$ h! {
IAE,) ^* G  Q0 x! i3 G. g2 G
I90,VED,C,RFA,OFA,  _1 x( z! W. R( O
IAD,# l/ u0 P5 r- K  p6 E2 ?9 {
IAD,O,
) }0 j1 v/ T2 B# c. S# U/ n( l4 T1 n* LIAE,V05,C,RFA,OFA,
" z+ r2 U* O" B) r! `) d. v) pIAD,
# ?4 A6 `/ o; }* kIAD,O,
' y6 |2 b8 p; T# K) n4 W) zIAE,O,
# }6 S: v7 n2 K/ ge90,d2E,o00,  x2 d) F6 N. x% m8 U. S' `# n
e91,d2F,d00,P3_K#
9 B* |* U/ f. P+ G# W  A! ]9 l2 _% N: DP3_K#
; f* f% j* r& g  E  _: F

/ ]( r: W! d) e7 G6 d% cIAD,VF3,C,RFA,OFA,
" S2 S+ |) A  F( D& U/ uIAD,
# @/ D" c& \+ X# QIAD,O,
: H& v/ ~, ]  B' nIAE,VF3,C,RFA,OFA,  u+ s9 N- Q/ J0 Z; M1 [1 C, o  c
IAD,
! l% T5 k1 T# ZIAD,O,$ L  s7 [7 d3 F- p, H' h: }9 r
IAE,V20,C,K10,RFE,OFE,K08,
. c$ Z8 C/ P2 h$ e- S* l" ?IAD,1 ?4 V" R1 w" b; }
IAD,O,4 L$ w2 ]  m/ z' V
IAE,V20,C,K10,RFE,OFE,K08,
: f) }8 ?/ N; _4 w& E  h; m) bIAD,6 x/ L7 E0 U( `7 f+ Q( a- e0 k
IAD,O,
) Z1 Z5 a/ q# W6 G& U- v: {IAE,V20,C,K10,RFE,OFE,K08,: @; Z8 G! a7 B4 w9 |: y
IAD,
$ A9 a* V0 U5 [" p+ `; f$ m4 x  j9 AIAD,O,. h! z* {2 S( i. g) {, t& c
IAE,2 l5 u0 f+ P# \4 W, ?
IAE,VF4,C,RFA,OFA,
* V4 y6 M, \0 B. V5 z2 a, k9 A& MIAD,; f1 a: i) q1 D
IAD,O,
8 u9 T0 }/ w- @) p& t+ yIAE,VF4,C,RFA,OFA,/ q' y( F: P1 G0 y$ h, S. O2 l
IAD,7 I# x; E& x+ h7 l) H) I* W4 W$ e
IAD,O,
1 t: c1 S! R) p3 MIAE,VF2,C,RFA,RAB,R41,OFA,
/ `$ P1 u2 S9 V0 O; M/ r: y, RIAD,
% Z) u' k) @) {  y" DIAE,O,OAB,! i1 e3 P  X4 B6 _! h
IAD,
6 |1 u1 R. u  g6 _4 C. B* o4 Z* ~! bIAE,O,O41,
- ]( D- W. Q# m+ ?9 Z$ VIAD,( k& x+ l3 Y& f9 I& g
IAE,O,VF2,C,RFA,RAB,R41,OFA,
( M* @( e; t7 \6 j- FIAD,- b/ q* N4 G4 w8 r7 A. _1 x( e5 y
IAD,O,OAB,
& y+ q9 I# @5 L' F: |! WIAE,O,O41,) }/ _1 M9 N  i( U" k6 L( C! R; o1 v
IAD,/ w/ N, ~) `% g8 v) Z
IAD,O,3 G7 {6 l# s* a% p5 ~8 p* ^
IAE,VF2,C,RFA,RAB,R41,OFA,' n0 g" z9 z0 ]
IAD,
) p. u" |! Q+ v% D) m/ R% ^IAD,O,OAB,
: P" c/ t& b3 t% _5 lIAE,O,O41,
8 N( \0 G( Y  Q7 U* ^IAD,& m' F5 Z* X2 [- f) \$ z6 L
IAD,O,
+ v. O# Y0 }- O6 ]$ g2 eIAE,! a2 b9 l+ G9 d1 d  q) R6 c) p
I90,VED,C,RFA,OFA,
5 W! X2 m; Y/ e/ z  yIAD,
1 _8 v% t7 D5 i3 h$ }: W, P/ r4 n; hIAD,O,
  c, g0 v: a. g! Q# [IAE,V00,C,RFA,OFA,
' {5 o2 S4 W+ ?3 v- L5 u2 AIAD,
  Q4 f" L/ M  MIAD,O,
0 e! E+ [0 t: C, h5 ~IAE,% D" H: ^& ~3 Y9 q1 e$ ?5 L3 Z
ID1,DDD,7 V1 Z$ ]4 v  E# b* X: z
ID1,DDF,
2 f) {: R: p2 Y, x7 H+ r( ]. m) I$ nID1,DDF,
0 Y0 i3 Z# |' }. Z8 m; V: w' _e22,oFA,
$ k* f" L. x3 W% R8 C* Oe83,
  V# s  N  y" B0 _e83,
- P5 t; `" J2 `( ^1 k! n, b# Je83,
# W3 m" z3 w) y2 K, \e83,
+ M6 ^- C$ V% k& Y8 G) `e83,
% O$ A  t. B- v8 Je83,
) {3 f; V7 q/ D/ i0 je83,/ U' l0 F- U+ Z3 P+ w
e83," C, j8 q, E; w" d
e83,& J& _) @" {  w& V* d/ n1 s. D; l/ W
IAD,
9 p9 T: C2 }8 k$ `/ w( ZIA7,, p' X- \' i0 U
IAE,O,
3 V4 q) l! [: B6 eIA8,8 X/ E. E" \0 F
I60,D44,
9 w8 {& D, I6 ^, r4 CIAD,' i  e7 z, w* [- b) [4 C
IA7,
" c7 ]6 g* _+ b  ?  Q6 wIAE,O,
8 D% N" h( n) H3 I/ h, oIA8,VFF,C,RFA,OFA,RAA,OAA,2 {1 a  w0 D# A. d
IAD,O,K20,
: @+ J  \2 W9 ~- k- Q, AIA7,) C" G& E7 }/ J+ o3 W5 p
IAE,O,! D; {6 u1 q- i' t0 M
IA8,' Z' L, A0 k( d+ A8 k+ h% g$ F: n
I60,D04,
' M+ F" `7 _* h3 m: h2 ]IAD,
- L- k" ~* Y4 B; |0 ]& \IA7,; }7 j1 |. n7 `. ]$ U6 d, \
IAE,O,% a- {% g9 r) q" E4 x9 s
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
, A$ {9 r  K+ M& ZIAD,O,) e8 V/ N% r/ P3 X( x- u
IA7,: A& H. J2 X5 L2 x* Z
IAE,O,
9 T: h) k  s2 J' i3 @4 yIA8,
' W3 a8 r; ~3 x6 vI60,D44,
2 m3 O& z* A8 W, u, hIAD,1 _/ M. C7 I( E$ O- I! t
IA7,
- F- p0 U: t: y0 IIAE,O,# v) g1 B6 R* K2 J0 T( o6 S9 {
IA8,2 j5 `# a& [4 `5 `- S
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,3 L4 o" _7 A8 {7 A! `  |
IAE,O,  M) M6 @. I5 Q! h, _2 x  M3 h
IA8,
; X( V  G/ z& e" p2 n9 @IAD,
8 x. d( J* T- A& M# V7 n$ @! KIA7,
1 r4 d1 u7 e* {, {IAE,O,; |) J  V$ Z% H& j& X
IA8,# ?7 ?6 P! R0 Y# b6 ]! H& c
I60,D47,
7 y+ [' t; c" P7 F$ o( r2 XIAD,
. S# t/ k1 t3 A/ W( {IA7,6 O( y# ^' [/ o2 i$ J- f
IAE,O,- p; E/ W! p- z" l0 w
IA8,# E6 s3 r" ^1 c- ]9 R! C
ID4,VFF,
  C# f7 @/ q; h: oe83,C,RFA,OFA,
3 i. V5 L; x/ `+ A4 Be83,O,RAA,R00,OAA,O,O00,! [3 p# ~9 m( l6 H6 f* S
ID4,VF2,O,C,RFA,R00,OFA,O,O00,. K9 H* U# s- O, }4 M
ID4,VE8,O,C,RFA,OFA,  k- ~5 p$ u/ ]6 t! m' V
ID4,V00,O,C,RFA,OFA,
# U& o3 i0 m, g1 D/ qID4,VE6,O,C,RFA,OFA,( g, n2 g  C2 Z* B
ID4,VE6,O,C,RFA,OFA,
0 y! L/ f, [4 z# y' SID4,VE6,O,C,RFA,OFA,
' o. e3 A9 D6 y3 v! `ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
: e0 s+ K- a5 L4 ^9 ?3 x: @0 ?ID4,VE8,O,C,RFA,OFA,7 q; u5 V9 q  N5 Q1 b
ID4,V03,O,C,RFA,OFA,5 {' x" [% J- k
ID4,VF3,O,C,RFA,OFA,
8 {; f0 d; x  k2 i$ WID4,VC8,O,C,RFA,OFA,8 K( a/ M2 Q  s
ID4,VF3,O,C,RFA,OFA,$ P7 e/ ?/ B! T) K2 ^0 J
ID4,V64,O,C,RFA,OFA,+ k/ A5 b0 }" @, V6 Z
ID4,VF3,O,C,RFA,OFA,
# T% T4 b- w. d) \ID4,V50,O,C,RFA,OFA,! @, o! `4 _6 Y+ L
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
7 ~% H3 A# D8 k! yID4,VF3,O,C,RFA,OFA,# Y7 }8 x: x0 X% a( o  i9 Z
ID4,VC8,O,C,RFA,OFA,
2 H- b* I- Z  g  A( q% lID4,VF3,O,C,RFA,OFA,) z' u' ?4 N  ]8 L, q
ID4,VC8,O,C,RFA,OFA,
) Q, R8 S* r0 x5 WID4,VF3,O,C,RFA,OFA,7 {: a2 y) U) e' ^5 F# r3 U
ID4,V50,O,C,RFA,OFA,
$ ]; j! r" c. W& q6 y) o4 D( ?! lID4,VF2,O,C,RFA,R03,OFA,O,O03,
2 v. R3 H- G. W1 LID4,VF3,O,C,RFA,OFA,2 z' V- s! }. G) b- f
ID4,V64,O,C,RFA,OFA,- q( Y! p* {6 X# c1 K
ID4,VE8,O,C,RFA,OFA,
. }& G, ?, c& \2 w. Y: D) ]& lID4,V03,O,C,RFA,OFA,
. y9 _& m3 B. p& V7 j0 ]4 F  Z- b/ W+ kID4,VF4,O,C,RFA,OFA,O,1 V+ X5 u) P6 h. A+ Y' I
e83," q+ z1 {& X) @3 S  W5 p' |* B0 X6 F
e83,
! k2 m. h  D+ e, Ae83,: y. |( n8 O" |6 ^+ s+ S7 z! e
e83,7 G4 ], x" z% r* V
e83,) `( F* A2 a; x& ~, t! ]
e83,( A/ ]4 v. M* k) x! I) Y* \# ^
e83,
. E7 ~5 k3 }! j7 v1 be83,
" i  O+ c3 j% Z6 a0 L5 Ne83,
, F+ Q% n% N: Q9 x, J8 \& ye83,00,C8,2E,
$ n; h  t) n3 {( u5 r- C# T$ Ke83,00,C8,2E,
6 K9 W1 ^! v+ De83,00,C8,2E,0 ?5 D: O* c1 o; F7 u+ e& B
e83,00,C8,2E,
6 j8 E& g3 K! O' Z9 v/ Me83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
6 i/ P( K8 ^  q( }/ L  ve83,: c1 J& v7 h  R5 l) q& V
  p  H' Z, \4 U: X3 Q

. C- [" ?0 _- U* C! L! k' U[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复' \2 @) u% A5 t8 z4 T9 p
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
% F7 I, {$ c9 p$ V, F      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!* \9 ]: y6 V: s( \' w1 t# ?5 M+ H8 L
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
9 p1 I6 {$ N9 Q4 z6 x      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!$ }4 h) ~# z4 n( {
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。, W( Z( z' b& x) f; ~& \9 W; J
Device(EC0) {
* L8 |/ l' j! m) |4 VName(_HID, EISAID("PNP0C09"))" }( O; P! C# L# M
......
$ y) S7 `. Y7 V}  p% N/ l  q7 A+ M8 z
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
1 c; I" ~* H: Z6 |4 u5 b就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等). O* _2 ~, H0 L
2、   
, N$ r$ r& U4 G2 t8 @Name(_CRS,ResourceTemplate(){           
8 R8 s6 ^2 W3 U2 w$ @        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
$ }4 Y; E2 G1 I) e! Q            IO(Decode16, 0x66, 0x66, 0, 1)$ Q0 ^& _% ~. u
        })
+ V7 ^8 e$ X7 n8 U3、接着就是
6 V- ?( W4 m; e8 G' CName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
: u6 Q: ~4 M) _, c" j  y通过这个声明,OS知道EC和哪个GPE关联起来# i+ m$ h6 k' H& t5 j* K
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来" a! M  W2 K- L! A+ Z
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。0 y. N1 P) c  X/ ]3 S$ t
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
7 u- H3 C5 _8 i. ~* c3、OK,看看linux是如何处理SCI中断的
  G6 U: Z% ~* G  U6 n$ aacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute- t* Z9 e/ V8 `) w# w5 y
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
5 y& }0 \: S4 C4、EC接到0x84查询命令之后,就把Q事件号传给OS
' o* `" {  c( `$ A) x& gOS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分  u8 d0 J! S& t# d- M
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
$ i7 G; R. E" n/ U) }有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。4 E  H7 W  k$ W9 c" g( |5 Q
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm* X0 t4 F7 @, D, l& l" M
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
- H. C( _- ^, Z, \, I/ }& }版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 07:14 , Processed in 0.152792 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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