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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
4 q8 \9 c% d4 w9 `8 _1 v- s! x看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,; f1 R8 _/ d' T4 Y9 _( J; b
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。; Z4 a. c1 ?( i: a$ y7 {
我们在操作系统下用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 Q; H. ^) F7 n4 b$ jD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check& V  H% r6 N/ F/ |# M5 j
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
+ h; p* ~# _2 I5 `其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。7 F$ \( j2 H. \! ^: ?* z
* _6 _* ]: M0 l5 U- {. l
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,+ M  u1 i$ o- z6 E. E2 i
e83,
# U4 p+ _: [" O9 F4 l; b! }IFE,, O' Z# W, n* D! \5 b0 X/ r' L
e23,oFA,
0 d& H/ v/ x3 c, BID1,DDF,LPC RST: d6 \5 Q4 j/ q; Y& l
Swrong LPC RST, y6 V# a+ Y& J% w
LPC_Reset_Flag=64
; A, v4 @& {$ \' S
9 C( w' d1 g5 d8 \' _; ^& L
ID1,DDF,
, s: {9 f& Z5 I- ]IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
" ]8 B0 E% {: ?ID1,DDF,
3 T9 U& ?' ^1 zI90,VED,C,RFA,OFA,V01,C,RFA,
* h! p6 t. N* `4 G" |0 e: W% gID1,DDF,O,OFA,O,  Z0 W$ U% {9 y+ K
e2A,>IDLE3 F# o$ t; }9 N" U+ T/ l5 ]8 `
oFA,<7 @9 d: o- H, b* S' D2 u, C, t; I' \* a+ E
e00,
2 c3 F; A; G, @; _# H8 v! Q" gIAA,O55,O,
' G* K/ ]! }& D" qIAD,% U+ ~1 H+ c& |! `) _7 B
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,1 l# {, z7 [+ V8 Z* d' \
I60,O,D65,4 _$ Q7 S1 w# A( x7 L7 w  G
I60,D6D,VF5,C,RFA,OFA,K20,: `4 t0 I7 @. t5 X. [: X
IAD,
! ^1 u& z' r; Z/ y$ u# ?IAE,O,VF5,C,RFA,OFA,K20,2 k0 K1 H' L4 W: f2 i
IAD,) B/ Z' R: I' u" x" N" T7 E) O7 }
IAE,O,5 _" k1 f! ~( u7 {! }0 K9 E9 a
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,. C2 v5 n0 T' |. M
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,1 @2 e/ R: ?$ ~" T1 \
IAE,O,; N" ]9 L0 F* M/ y) U
e91,d2F,d00,
" V$ z9 _# X' x; @" ie10,d83,d2F,P3_K#
2 n) D2 y$ U  P# T/ IP3_K#
; S8 I8 T3 _3 @# k  q. A9 I
' Z* p8 t. z5 t, W. ^, [
e23,oFA,' w5 f: }  z, T% r, W5 ~
I90,VED,C,RFA,OFA,. w% U- G  o% q' K
IAD,
' f( |" a+ q/ `2 B) O% V6 ^. o; _/ ZIAD,O,( G/ n2 _) g9 I. G% V+ K$ c
IAE,V03,C,RFA,OFA,  i" o* d  A' F: K7 j3 Z3 k
IAD,' d0 H9 q7 V! t$ [
IAD,O,
$ R3 F# N% a2 f2 }/ D: DIAE," \5 I: b0 i3 k9 M
I90,VED,C,RFA,OFA,* p  c: ~5 p" A& V: z0 s, Y/ y
IAD,. I+ _( h, H7 C6 l2 X
IAD,O,
! q0 R% y. c9 y: W3 h9 \$ HIAE,V05,C,RFA,OFA,
1 e! }! M9 {% t1 k0 _( ]1 |IAD,
( j# J! }5 s/ e6 qIAD,O,
; ?5 M6 n7 x+ b) M/ X9 O3 BIAE,O,
6 K- a" Y7 x% ue90,d2E,o00,
2 i& {( N7 E$ g; ue91,d2F,d00,P3_K#" R  h/ P: T: Q) \: P3 y  \3 q$ v
P3_K#

" @* |7 F; e9 `% G$ w* A1 d2 M6 j7 x! _0 R) N
IAD,VF3,C,RFA,OFA,% r& o4 E; g0 h: d; }9 N
IAD,
0 V. I9 P, J/ s9 FIAD,O,3 Y2 o0 U( i4 w5 ]# i
IAE,VF3,C,RFA,OFA,
3 k0 W, m7 P8 S8 @6 n  m$ \* ^IAD,& a( m, b/ K+ b, l+ t: o: Z0 D
IAD,O,
! z# h) f: ^1 ^. _IAE,V20,C,K10,RFE,OFE,K08,
, Q$ h' |) d+ X% [1 ?IAD,
/ J  V7 C  K4 ^/ T- T7 ?7 OIAD,O,
7 o+ z0 h, P& p) J% s9 eIAE,V20,C,K10,RFE,OFE,K08,
  D/ ~7 Z% [; q& U5 v6 |IAD,, ]0 E1 A; M! C, w) U
IAD,O,
1 i/ j. W5 }' @) TIAE,V20,C,K10,RFE,OFE,K08,! N, w! M+ f1 n9 V9 g7 ]& P( d; @
IAD,& q; \9 Z1 z; g- V* ~' O. s
IAD,O,
$ b: X& J" d& t7 mIAE,5 k; n& G$ m$ o! B
IAE,VF4,C,RFA,OFA,
1 K" N1 P# ~& V& ?' f( X  k9 V, CIAD,
; _$ u' I$ F, xIAD,O,
6 ^1 A7 r/ ?% K* b4 Z' ~3 SIAE,VF4,C,RFA,OFA,7 {1 Q4 x! }+ Y. F, ^0 K4 |
IAD,$ x* J0 \* @( w( ]# f. x) d
IAD,O,
! K* c& m. p! I( Y( G8 YIAE,VF2,C,RFA,RAB,R41,OFA,
+ W5 P# N' m* |! B' k: b+ n9 p; w: hIAD,, N1 V( Q* o; h; b
IAE,O,OAB,8 S9 J9 Q# c& _0 X
IAD,
3 J& H2 Z+ y4 GIAE,O,O41,
, [$ Q7 Y6 w3 ~' e+ EIAD,7 ?  j0 }! W1 v" y0 d1 B
IAE,O,VF2,C,RFA,RAB,R41,OFA,
6 ^% c0 `) M) w. k/ NIAD,0 X$ k+ |$ e! I* J9 t" U0 o
IAD,O,OAB,8 V5 Q/ [& ^" V4 l9 f, d
IAE,O,O41,* X1 @* r, Q0 ^
IAD,
# J! y4 f2 `: m) `& I. rIAD,O,
9 }( T" J( w% p6 ^# f2 h, t" t3 o* sIAE,VF2,C,RFA,RAB,R41,OFA,4 c7 x; z9 ~, k7 G
IAD,, }! u# t, {  z# C. m
IAD,O,OAB,
- ~3 g6 C& G' ~, y$ s$ OIAE,O,O41,
4 W! k8 f3 y# Y; a4 KIAD,2 S! f% w# t+ a9 [5 D6 |7 K) z
IAD,O,8 {( P8 J% e( O4 f+ h. p
IAE,5 Q  G9 ]. U* z, F1 _
I90,VED,C,RFA,OFA,6 [- y& a* H0 c% a6 ~
IAD,
  _4 j. X! A  q: G1 s" DIAD,O,* E, V7 w$ J2 }2 Q, q% w- b- Q
IAE,V00,C,RFA,OFA,6 r) I( {( ^) t/ Q* _5 _
IAD,
/ l" y- j" J2 r3 dIAD,O,( \/ W/ ?+ A" z: b/ s! }" Y
IAE,
2 M  D3 x6 t7 d3 XID1,DDD,9 m7 t$ N& E) c: }
ID1,DDF,
. B( U& U( C2 Q$ v9 Y8 |ID1,DDF,2 g; l3 O! P. z
e22,oFA,$ c) C. N  S' O% l6 I6 ~8 r7 P
e83,
% f& N. {; d) V8 je83,
9 d/ Q# e" k+ U5 a+ P& ee83,. `1 h0 @- R$ Q4 [) R- ~  |: d
e83,7 x5 c4 g" r0 X
e83,5 `$ E+ o9 ?" _$ k" s8 e/ q% Y) `
e83,
# P' f4 i& z' \& X0 oe83,
; d; h' R* g/ [: |  qe83,
& i  @0 w) ~& ve83,7 n9 l) O+ L" J' G/ d% v
IAD,% t6 ~- W" R9 y$ E( |& m6 G6 B
IA7,
6 i4 i7 t) ]) }# lIAE,O,) L, q* k' x  V: ~+ w, j, l7 O  o0 l
IA8,4 G7 v# A; N/ q) T  v
I60,D44,
+ D3 z" r/ ~& l! s4 B& ~, fIAD,
  d3 |5 U. X. \7 N0 |& ]. TIA7,( B+ E2 z9 P! Z- @$ S5 v+ G
IAE,O,
4 S" ~+ U# s0 J- [: d8 w; gIA8,VFF,C,RFA,OFA,RAA,OAA,; C6 c3 L4 @) ~6 ?5 {+ k) L& i
IAD,O,K20,! j4 Z# m5 H3 ?
IA7,
. Q1 c8 a" F/ c) }IAE,O,
' k% T( U$ }$ E; i6 n# b  ^4 ?IA8,& N& r+ Q+ a- m" s# G" |9 \
I60,D04,9 V8 Z2 I0 E, F" R2 Q2 c
IAD,
, F8 m' q, `/ QIA7,6 s' @' w0 m; N0 @+ t6 t6 s
IAE,O,
$ x. x/ u- X! h3 g' O5 W; \IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
3 n5 w7 W1 s# h. X( @2 G% g! DIAD,O,$ g' K4 {# x& v3 K
IA7,
2 u) }$ _* h4 ~. s# _! B# PIAE,O,
, x0 N) B. w$ h  Z- LIA8,
# u  g$ M& f, ]I60,D44,
* h% B7 k7 F% a' ?1 Q7 m* _IAD,
9 Z. Y" i/ M. t, aIA7,* T1 Y. ^& v2 B. _5 \% M* ^8 |
IAE,O,
" Q1 v' q- B5 \- I0 bIA8,. l# I% t0 L/ ]. F  ?+ N) x1 T
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,/ Y1 S5 O% B( L4 s, E
IAE,O,$ M/ k1 ^) _1 C4 u0 l
IA8,/ s$ R4 k  r; A, j* v; G0 b9 X
IAD,+ V  Q! ?0 C4 D/ f* S  u
IA7,
" |$ p+ K% ]% T  wIAE,O,
% I) ?9 [# F; K$ m# C6 D$ RIA8,, [! R6 c! d' ?) L1 `
I60,D47,
; W7 o8 j  E% ^- i$ ]9 ]IAD,: @1 f$ O$ R/ X9 f: z. s
IA7,$ r; a9 m$ j8 C" z* z% Z" Y+ l
IAE,O,
4 x2 y  o! j9 iIA8,
& f- J: V6 z$ g8 L* gID4,VFF,( b& t. f% y% D! |1 ]: ^
e83,C,RFA,OFA,# K' V  N2 n" ^0 |1 M$ Q
e83,O,RAA,R00,OAA,O,O00,
& S0 ~% h2 u+ [3 ^) hID4,VF2,O,C,RFA,R00,OFA,O,O00,
% u: S) K/ L2 A$ @( p0 Y, YID4,VE8,O,C,RFA,OFA,
' M: t& z4 j1 i# q' pID4,V00,O,C,RFA,OFA,. A1 }3 e& I% v. u5 e
ID4,VE6,O,C,RFA,OFA,; O! q& P9 G0 W6 ~& N& _
ID4,VE6,O,C,RFA,OFA,3 D% ^& b/ p& y* {
ID4,VE6,O,C,RFA,OFA,
! Y$ ]4 c) ^3 y1 B, \ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64," o7 h; Z5 ^6 i/ z$ g/ [: a: {
ID4,VE8,O,C,RFA,OFA,
! b4 Q( Z% w4 A8 K! sID4,V03,O,C,RFA,OFA,
3 R4 z3 r9 a! n2 T5 n- L& ZID4,VF3,O,C,RFA,OFA,& A; [: \/ Q( E  h5 }  U
ID4,VC8,O,C,RFA,OFA,- c4 Z: |+ x6 G/ i4 @$ ~; [
ID4,VF3,O,C,RFA,OFA,
) C9 e) j8 A6 u+ B- E2 hID4,V64,O,C,RFA,OFA,
- L' R( [* l9 C2 R5 |& kID4,VF3,O,C,RFA,OFA,
( w4 X' }/ K  P; g' YID4,V50,O,C,RFA,OFA,
& |+ S3 e9 y4 `7 `' e3 E* t! AID4,VF2,O,C,RFA,R03,OFA,O,O03,% U( ~/ A+ y6 e3 s; B
ID4,VF3,O,C,RFA,OFA,
3 u( O" X- Y% A+ D! E6 h$ A% V  j: fID4,VC8,O,C,RFA,OFA,
6 g: R3 B; G3 N' {$ N, n6 J5 IID4,VF3,O,C,RFA,OFA,
! s8 S; }( Z: V7 K0 m+ [/ Y! `$ gID4,VC8,O,C,RFA,OFA,
. T7 y: l! ~- k$ kID4,VF3,O,C,RFA,OFA,
% c/ t& _' v) a# O! {ID4,V50,O,C,RFA,OFA,; Q9 S' _, T. q5 e
ID4,VF2,O,C,RFA,R03,OFA,O,O03,! p3 y7 p7 G, n9 |$ l
ID4,VF3,O,C,RFA,OFA,0 N. n/ y4 J: `/ r  S1 Y. v6 u( S
ID4,V64,O,C,RFA,OFA,
+ T% [" M( x2 V0 M, i7 XID4,VE8,O,C,RFA,OFA,$ H7 Z- K4 ^) M+ G! m/ O
ID4,V03,O,C,RFA,OFA,6 g! m! o" t  x0 }+ q) d/ q& m
ID4,VF4,O,C,RFA,OFA,O,: [' @5 l# c  Y% y
e83,8 @! E5 e% U- ?  W) D* a* L& ?) u
e83,
3 S5 d; H. Y2 J) L) ]' V8 qe83,% H( a1 O4 E/ a/ H6 M! m/ j6 |
e83,
- p& E" j% ]1 F3 Ue83,
- X/ t6 \# H% ~9 G( f1 Me83,
, j  o  _$ R! x! e0 l9 Te83,8 T) a) x& X0 L9 V- Z2 z, o
e83,7 ~% E5 Z% }' o
e83,9 `; a8 ?& s* j
e83,00,C8,2E,+ T6 m- |1 G$ |8 n/ N5 e4 h0 Y% x& ^% _
e83,00,C8,2E,
7 T, u# w2 d, S3 K/ F0 o% \1 {0 qe83,00,C8,2E,
' ?4 r* o9 F: U6 L& ^$ E/ u2 Oe83,00,C8,2E,
1 M5 T, g9 B1 g1 D! be83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
4 k$ n" s+ r2 Re83,
+ o$ U0 \$ g1 r% \
! _0 u; u5 O9 Y3 W; F

5 E0 |; f+ u1 R, G6 T. A- a[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。9 }5 s& ]7 V! Z0 u9 ~0 G" q
Device(EC0) {, T# ^! l0 j7 s; i/ W
Name(_HID, EISAID("PNP0C09"))
; g) q; e1 n5 B2 s# {1 o: [) f......# W# Y* y" O8 {0 I& i7 ]$ d" Q
}* t4 S. p8 g; A5 o7 l7 X* A
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,& a+ J2 u  Y. u  c" P
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)1 s; i0 P3 L# k! o" w, ]
2、    3 F# {7 A; C4 ^" V5 w
Name(_CRS,ResourceTemplate(){           
! g2 \2 b3 M, H& @! F" H. {        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x848 n. n( l; Z: D. T5 g* f
            IO(Decode16, 0x66, 0x66, 0, 1)5 `1 S' L" ]$ p9 ~6 @# f, I
        })
7 _/ M* K  V3 w3 b3、接着就是
# ]" p9 }: ?0 f2 [# UName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7/ x+ K; v7 b. |( O% ~' {
通过这个声明,OS知道EC和哪个GPE关联起来6 b( d& ~+ N; _  w
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
$ ?% |5 h' z& y; P. j6 wEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。3 X# G) w, J6 E$ f6 i4 [) T
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。7 K$ A0 ]9 n2 d% l9 M
3、OK,看看linux是如何处理SCI中断的
% B8 Q+ l3 t9 B, R' C6 I; Nacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute/ k6 I, J0 w* S* `+ Q' p
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
- l6 e" {$ B: {/ K$ A# Y  [6 C$ |4、EC接到0x84查询命令之后,就把Q事件号传给OS
5 n1 G0 C/ I5 m. {OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
4 {5 ]* b1 m1 f  p: n, o你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了# x0 V/ f9 o! t3 O( e
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。& Z: }/ C' @" u6 O7 l
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm7 v( i7 i0 g6 B( v( r
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。: w8 E9 a9 V6 e  @7 y
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-21 02:14 , Processed in 0.127619 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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