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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,% M! U! L* ], n( k0 W3 M& Y
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
5 g+ M) n3 A. M( o/ C) ~我们在操作系统下用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的命令
" N6 M% e3 b3 @( c! K+ Q5 bD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check, s- c' f" r% l
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
; b' {+ a% m) z: ~! T( W) b其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。1 w( ~( o* s. Y; {: H1 {
. `/ E1 z$ L! B" q3 U
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,7 {: |8 d5 J3 U* S! T: z
e83,, ~6 z" F6 T- N( O5 u
IFE,
9 `5 G( L! R! r) }- s) d/ de23,oFA,
# X5 b7 L1 h/ j& UID1,DDF,LPC RST
- f' e) h: L& Y' G6 G% Y  @' aSwrong LPC RST
5 y7 s$ E  T& {LPC_Reset_Flag=64
6 c7 u9 M; O9 e/ B; }! g
  |# w3 x2 Z: Z# K- w9 w' A) O
ID1,DDF,
: T9 V/ C  h* }: u. MIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,% ]& L8 Z/ D3 I7 J9 r
ID1,DDF,
* z3 j8 X0 k- g; @# }) ZI90,VED,C,RFA,OFA,V01,C,RFA,
. X8 V7 u  }6 a/ g: KID1,DDF,O,OFA,O,
3 h, s& y( ]) T9 {# n3 @, y. u  Fe2A,>IDLE
" a2 L' }) I( W* qoFA,<
0 a5 C7 G/ i" X- u) o/ V* Se00,- E9 m# d9 @  S& `9 v  W
IAA,O55,O,
2 J" O5 l$ I6 P0 i5 N! eIAD,$ ~' k5 o: E$ B  m4 i$ _
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
0 h; ]0 W2 O  q9 Y- M& D) ?" QI60,O,D65,
5 a5 t% q) l4 Z+ w6 D! r/ UI60,D6D,VF5,C,RFA,OFA,K20,
0 s- \9 a) X- N# r! Q; V2 R* }IAD,- d4 T, R3 s6 H, h8 A6 r2 k
IAE,O,VF5,C,RFA,OFA,K20,1 y+ I; S; y$ B9 Z4 y
IAD,
3 u5 `8 [/ B( S6 sIAE,O,
9 g, x* l" E! l( y" i2 z6 F. iIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,& R9 H6 v- N$ N: I" ~% t+ {
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,6 l) a* i4 t# O) U& r) {
IAE,O,
5 C  A& r$ q3 |+ k7 D3 \e91,d2F,d00,/ _/ K6 Y, \+ N- \
e10,d83,d2F,P3_K#7 Z0 _! I7 \$ Q" `1 y* j) E) v
P3_K#
" k' T- w+ I( `" x

5 }7 t5 A  u# me23,oFA,
# F* G8 h% Y; V. E9 m) }I90,VED,C,RFA,OFA,
6 \6 [5 \& I( X; x8 H, oIAD,' R& E3 n& _4 a! l
IAD,O,
9 a+ N* c# L% W, v( C# r/ t9 {IAE,V03,C,RFA,OFA,4 h# c3 Z5 [5 d3 N6 G
IAD,
, Q; o: K7 k7 X$ B7 ]IAD,O,2 e  ^8 e" f, f4 p# k
IAE,5 o* T" M$ [' Z& E
I90,VED,C,RFA,OFA,( u. @9 s* \( |* l
IAD,& ~2 P0 ?& Q: [8 G: }
IAD,O,# t# `/ w( t2 _$ c! n, M7 s1 R! o4 j, q. k0 K
IAE,V05,C,RFA,OFA,
* H- ~! k' B' c) Y: cIAD,
& K. [# J& D! bIAD,O,
/ _8 n/ X9 C. T" Z, NIAE,O,
, ?" A" }! V$ N. ?e90,d2E,o00,
: C, q+ X" V5 G  se91,d2F,d00,P3_K#1 L4 {  N) S- F! F& \5 e1 O6 o
P3_K#
; o+ a) f  _" _* {& z) J

- \0 h5 {) h: {IAD,VF3,C,RFA,OFA,
. z# R' @/ @$ D  H" XIAD,$ ~/ f# l4 i0 A+ `
IAD,O,& @' J, d% t/ {6 ?0 F
IAE,VF3,C,RFA,OFA,
4 ^' Q' d  B  c7 ^. ^IAD,/ s: |2 f2 s4 R
IAD,O,
% p$ R7 b2 Q+ yIAE,V20,C,K10,RFE,OFE,K08," L7 }; D1 e0 i+ L* j
IAD," `9 q# M8 H( N( x6 s/ u
IAD,O,1 S" n6 m# P7 P: k  n+ N: [
IAE,V20,C,K10,RFE,OFE,K08,
4 k9 }8 ~, n& iIAD,
5 W: j4 H6 O  I5 H! aIAD,O,$ b( ~! e# j# r, ]- L
IAE,V20,C,K10,RFE,OFE,K08,4 k+ g9 F+ I1 g7 ~; e
IAD,/ [* T  K( g, s! h
IAD,O,
% ^  x$ E$ q4 B9 s4 ]+ @0 XIAE,  ~! b; q9 n: w3 u# t) }
IAE,VF4,C,RFA,OFA,6 U1 H9 s% [& A2 a
IAD,
. D" a2 K  U& y% }# {! h0 k9 {IAD,O,
7 e; P* K& W& |9 d  ?2 c% k5 }" aIAE,VF4,C,RFA,OFA,
5 g' V2 W% m) o: ^IAD,; U3 m# O  X+ s
IAD,O,
, J9 p4 w* J+ o* c- G5 L+ ZIAE,VF2,C,RFA,RAB,R41,OFA,: J8 A) U, ?' l$ Q
IAD,
8 C. h- a1 S# }6 s  R# G1 H4 aIAE,O,OAB,% C1 \( c, f5 }9 Y
IAD,2 {9 I, q; e$ c( z: _
IAE,O,O41,
6 ^! H+ @( p3 ^2 s4 GIAD,
1 r+ O2 H% U3 {) L( r6 F/ n- |IAE,O,VF2,C,RFA,RAB,R41,OFA,1 z8 n0 J) O7 c; f
IAD,
& P% U' Q! Z  f- H3 \. xIAD,O,OAB,
5 A; v9 O* r: ^: }" m" v5 o. QIAE,O,O41,
* ?+ t2 E0 x# mIAD,/ U; l. a, @8 }9 B
IAD,O,1 j) m7 r* |; F1 z: Y' q
IAE,VF2,C,RFA,RAB,R41,OFA,1 C- K% |- z$ R: X5 D
IAD,
7 [0 G' w2 @' n* {IAD,O,OAB,
7 z# ^4 \$ F" Q, G- nIAE,O,O41,
$ l; `5 Y* v  m: b7 WIAD,7 i7 g. S( s4 d& e9 V& z' x
IAD,O,
; G5 W6 I% t5 H) |& F( WIAE,7 I. @# n' [7 R  U$ p6 p
I90,VED,C,RFA,OFA,
: u( H/ |& Q2 d/ ~# _IAD,' ]1 `, [) g" l& x' H2 J- B
IAD,O,
- w  T8 U  d) }5 J1 c, [IAE,V00,C,RFA,OFA,% u+ G, D, l+ n2 W- z, b9 X
IAD,5 g, Q/ W: d- |  E9 L' [
IAD,O,+ W) ?! _3 h. T( b$ z
IAE,/ |5 e; T. p# E& A9 m- T2 z8 \0 L
ID1,DDD,1 H: b2 `( _2 M/ I8 ]% |
ID1,DDF,2 M9 {; D  u( F& @7 G( X: C
ID1,DDF,
+ ?! u/ g  U% J: f7 ^! u  Ne22,oFA,
0 u# G0 D9 @, be83,
7 T7 i7 c$ M( H! v: |e83,. l) d5 B  M5 V2 z( d) W6 a" H, ]
e83,
% i1 t* _' U+ i* q# c& q% S5 W) }e83,
2 b; b1 L) y  U' }' ^( Ze83,
3 P# r7 V# R7 `( A3 ~  De83,
5 x; W1 o. m: I6 h  Ce83,5 v- i6 X8 `7 O
e83,) Y) P% V" w$ x2 o1 q- R7 y
e83,: T) k/ N, Q- W( ~- Y+ Z
IAD,
2 ~$ i& E8 Y9 v( h% F' b" p7 HIA7,
4 ^, J4 E, c4 }7 `) NIAE,O,% `; b, \" C+ w
IA8,
: P9 s! Z; Y& e$ D+ S( i! bI60,D44,
( D# b& Z- \" s4 V+ b8 hIAD,* c7 F' S7 i4 B0 T* @0 a; K; g
IA7,
- ~) h! V" N& rIAE,O,
; F) n. D7 C4 H! B! CIA8,VFF,C,RFA,OFA,RAA,OAA,. g6 H% p( N+ g1 n" H4 Y$ i( c
IAD,O,K20,
" m/ B$ `# F7 T$ ~7 s; X0 f2 EIA7,( f( W2 w' o/ ]8 c- @) y6 k
IAE,O,$ P. O$ G, ^) A1 R
IA8,9 y  U1 R- S# M8 R! W' t
I60,D04,
: L6 X, |1 y4 {; o5 i# g7 lIAD,
9 [! b( d. M6 Z: d  Q8 d7 k1 E* tIA7,
' j  j0 G0 _% ?. CIAE,O,! d' f  B- s2 w8 y
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,; q/ r+ q5 O+ D/ r% G% U
IAD,O,- g4 b2 k, E. M  X8 e! \4 ^
IA7,. c4 Y& E" e& C& U4 ]3 Z! c
IAE,O,
  B/ g" b4 ~# W$ L# b. ^9 uIA8,
( v! O6 M( `2 {7 {8 dI60,D44,* |! ?0 O) r2 H  q! K
IAD,* r. Z/ G$ K, _0 R' x
IA7,/ C4 l  s1 P: S  E8 S$ ]( H' U
IAE,O,, I, U$ L, K8 Z% e: m
IA8,( f% ^& V5 {  ]9 M6 }
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
9 Z- t# _& J/ d3 q5 K& x% @IAE,O,
, k0 f, t5 s3 M$ `- fIA8,8 H( O% @4 ~  k% i( C
IAD,8 p& a  }* b* ]0 ], f$ C6 H7 C
IA7,
! g& @, v5 w6 n. Z( pIAE,O,% D$ E+ ?! u- y- A8 {
IA8,
$ G" O# {% t6 \5 v  s: yI60,D47,  E; [# L1 ~/ A- u
IAD," L3 V& @; y+ ~4 M3 Q) [
IA7,- A1 Q, [& A( F% X
IAE,O,
- b- X- V( e- h$ BIA8,3 @8 F7 R! |! M" X' L
ID4,VFF,* {! D6 g8 i/ Q" v( V' v, ?# L
e83,C,RFA,OFA,
; K! F6 e% |9 s: w  Ce83,O,RAA,R00,OAA,O,O00,
/ W. M. h! G. b1 m) e. bID4,VF2,O,C,RFA,R00,OFA,O,O00,! O$ ^8 x) a# {# z
ID4,VE8,O,C,RFA,OFA,$ n; t8 F$ m1 H& v8 Y; U" \
ID4,V00,O,C,RFA,OFA,
! A+ z6 Q; |& h* E" o' |& mID4,VE6,O,C,RFA,OFA,
: Z$ A% Q7 @' O4 @" A2 B8 |5 \, IID4,VE6,O,C,RFA,OFA,- }7 t) K: Y* U& u- `7 n
ID4,VE6,O,C,RFA,OFA,8 J/ s7 F! h9 c4 q$ ]/ c" G
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,- u9 D4 [( `. i# ?# S
ID4,VE8,O,C,RFA,OFA,
/ k& V+ @0 t, v( i$ U0 d: lID4,V03,O,C,RFA,OFA,
) L9 v# j0 N5 QID4,VF3,O,C,RFA,OFA,5 Z# M+ |( k& g, |
ID4,VC8,O,C,RFA,OFA,
3 J) e6 y# f  [9 ZID4,VF3,O,C,RFA,OFA,0 l: Q9 n* J+ |, B) M1 }$ o
ID4,V64,O,C,RFA,OFA,
% _' F( j( I( Q6 ^0 j# V3 t" y& ^ID4,VF3,O,C,RFA,OFA,; `( z0 x$ e$ o! N/ D
ID4,V50,O,C,RFA,OFA,' y/ M+ u' n$ p, t' p: w
ID4,VF2,O,C,RFA,R03,OFA,O,O03," s! r6 q% R. I9 L) p" F$ n
ID4,VF3,O,C,RFA,OFA,
" z* s3 P* q$ w/ U4 RID4,VC8,O,C,RFA,OFA,! w3 b5 i+ N& K( K* z( B* P
ID4,VF3,O,C,RFA,OFA,
- X4 X2 v0 C! y/ I9 i3 h6 qID4,VC8,O,C,RFA,OFA,7 @5 `- t1 P) q# u# s
ID4,VF3,O,C,RFA,OFA,
& n8 M9 C7 I7 I" G7 H- JID4,V50,O,C,RFA,OFA,
1 p$ g' R. J* J- k( R3 ZID4,VF2,O,C,RFA,R03,OFA,O,O03,
- w: U* t7 g0 RID4,VF3,O,C,RFA,OFA," e, }6 ~7 i2 A
ID4,V64,O,C,RFA,OFA,
, }& p* E4 Z$ b7 S9 }  {. cID4,VE8,O,C,RFA,OFA,5 K0 d8 N/ L3 |' g# }7 K% q
ID4,V03,O,C,RFA,OFA,1 E( K( i+ q! D: ?0 o
ID4,VF4,O,C,RFA,OFA,O,
4 [; E, D  j8 @/ A6 `' `8 z( ee83,
6 w+ i$ h4 M8 W4 @9 y' xe83,
" H; X1 x) k7 {& Ge83,
+ o* u6 a; e  I2 K' y! X6 n9 Ne83,
! F/ k! D$ f) A' D! ^  [e83,8 t* q4 ~) Z, r) T
e83,
! J% b- e: B! V9 u/ ee83,2 R. K4 {8 J1 J  s' O6 u0 R( K
e83,. P  O+ T% k! |2 P* q* l
e83,
7 u3 @- F( C0 u& n5 [/ Ze83,00,C8,2E,
2 z) @  j0 |1 S% Qe83,00,C8,2E,
$ h' x/ d8 p( U. G- Ie83,00,C8,2E,
/ i/ J9 D# {# D2 P; x) f: y7 Ae83,00,C8,2E,5 _8 O, I% i9 I- c
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,0 Q1 j  b7 c0 L+ T
e83,+ Q9 M, w2 |' |  |- |

8 g2 j* M8 i' ?" Z
- }; _, f1 c: X[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。) d& r3 [% p4 I" y
Device(EC0) {* W% s+ V- J2 a. ~  c1 @+ m
Name(_HID, EISAID("PNP0C09"))
9 J( C+ y) d6 c$ k1 w3 i......
7 n7 q, n$ ^6 A2 |}' V) L) S. p! K: Z: B
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,8 W; |  _+ C9 s! `$ H+ q: K# x# J( u
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
3 n& ^0 R8 e, E5 p# J! m2、   
. K3 |! q- ~% K+ I4 w: b* JName(_CRS,ResourceTemplate(){           & z2 W! K. j& u) V8 }. o" ?, n
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84! q3 u9 K2 v9 k  w; {
            IO(Decode16, 0x66, 0x66, 0, 1)* Y! D# p' n' f
        })
/ k7 M  F2 o4 P5 k" s3、接着就是( W/ O+ B% E. Q4 x+ y0 X+ \
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO71 u+ ]" G4 |0 F" N% N1 m' b. N' o' M
通过这个声明,OS知道EC和哪个GPE关联起来8 F- Q& g0 g8 ^7 m. W' z% _" e
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来! x3 W# |, R6 s* x$ X
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
% F8 a1 h6 C: t1 z* m6 Q% A- k8 {$ R而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。' Y9 o% a5 R: T5 W! e) s3 E
3、OK,看看linux是如何处理SCI中断的+ C) W+ Q' w' D. n3 t$ _
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
$ ?6 E! C8 w/ B3 b  z: p2 ]acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)' X" F& @! u% H$ M
4、EC接到0x84查询命令之后,就把Q事件号传给OS, V7 N  e3 M# s, J1 ^4 h) t
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分! m4 m' D% V3 B/ B( `" l
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
; C: f! u( Y7 i4 u  \. A有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
( z: l+ N& ]6 I4 Kqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm0 ~& B: g1 i# M1 d# r* K. U
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
" Z6 c2 V- O: ?* j) i版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 01:33 , Processed in 0.177295 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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