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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?; `+ V# S0 o% W" R" D4 P
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
6 C1 }8 t& A: n' _8 u' D; S今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
) y1 N3 E7 K9 s7 E8 y% D" 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的命令3 m4 z7 p6 A# @, d8 c/ V
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
% j; S. _* [+ b: J" P这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析3 T# n. g4 c, ]
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
& C9 T/ v+ q3 S4 _3 E/ ]
2 b4 B2 i* [5 T: s4 T- \VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
/ K4 }  f. d: [1 S1 A: n6 pe83,
% O7 b( _8 P% T- ^" y0 LIFE,
) R0 @, L6 q+ [3 Se23,oFA,9 r& G* e' c6 z9 e* Z
ID1,DDF,LPC RST
1 B. I+ ^$ @% i! N- j1 o& MSwrong LPC RST2 h& I1 H/ Y1 m  `1 X4 v( L
LPC_Reset_Flag=64
6 G6 u- e% W3 N0 v5 e4 g

2 ]$ p3 y6 T2 `* z& b9 j! }, @ID1,DDF,+ a: `0 A: f' @( ~
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,, b8 w: F3 Y) _  e* G
ID1,DDF,& Z1 E8 t' }2 A$ Z* b3 ~
I90,VED,C,RFA,OFA,V01,C,RFA,4 Y! W( t4 z% W1 e7 _4 i; k9 ~* G
ID1,DDF,O,OFA,O,
9 Y+ T$ t6 k# G7 T9 [3 U6 `e2A,>IDLE
# o4 M' a1 M6 A8 V! H6 z# |  ]oFA,<5 @% U- b* N# Q$ {8 t+ a' z
e00,# {2 n& V0 x3 D! L( P, o4 P
IAA,O55,O,
* J. I) a$ W! ]6 z4 r& c$ g" cIAD,8 _* T$ h7 @7 j* w% i6 c) x8 M
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,( C! X: k4 e% a9 r
I60,O,D65,
6 i* T* W- T6 u( ~: r* Y+ j7 yI60,D6D,VF5,C,RFA,OFA,K20,
% r$ D, b4 A/ ~! z3 ^IAD,; B. a! |. m; U5 ^$ }0 h
IAE,O,VF5,C,RFA,OFA,K20,, ^& K  D: `1 }# [. \1 h* z
IAD,# [. r) M; n+ n
IAE,O,
2 F3 g  l$ K2 g$ [0 yIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
2 e# Z- [  W) H" c4 c4 j' AI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,0 R% M- M, y1 o/ G6 D' N* f
IAE,O,+ Y% \" E, L+ b2 ~0 p
e91,d2F,d00,6 U5 Q8 B$ i# i' e
e10,d83,d2F,P3_K#
+ D9 `4 J- d* H6 ^P3_K#
' \" f: \/ U* w* Z: O

( D# ~6 O5 g  c; `) Qe23,oFA,
% E' z: ~8 K4 c' WI90,VED,C,RFA,OFA,: j3 f  i2 ~9 P& j  D2 H. M
IAD,
( D. j, U4 u1 r; PIAD,O,
, o/ D! p8 |3 C* \4 aIAE,V03,C,RFA,OFA,( d( l- J1 d- }2 t
IAD,
7 O6 F. _! H! O7 y  VIAD,O,9 B0 H9 L4 Q9 y; w
IAE,5 I. L  e' A8 E( x/ K- r' L$ d
I90,VED,C,RFA,OFA,
& g, B4 o" S: {( _2 @IAD,8 M, l( ?4 G- G: k3 Y" E
IAD,O,
" l1 @$ l8 y9 \0 r& m* vIAE,V05,C,RFA,OFA,
$ d  ?" u( n* L% s7 N8 rIAD,6 U4 X' V1 B7 N
IAD,O,
. [2 K- {% ~( r8 s3 WIAE,O,
. f7 K1 w; `" [1 O# a0 {" |e90,d2E,o00,
8 g, K; I9 W; o2 i1 Y& T8 E5 h/ v  ve91,d2F,d00,P3_K#* C6 h* w5 ~- F5 [" l
P3_K#
$ V* W  `1 f: F/ D

' U, m0 R6 n! OIAD,VF3,C,RFA,OFA,2 E% k/ t( K3 e1 G
IAD,$ U$ B( F3 c  C  q& _
IAD,O,
+ J2 C0 g0 O0 Q# |$ u' BIAE,VF3,C,RFA,OFA,
+ g/ {  f; O$ X- V5 s. m  lIAD,) k; `: a3 d+ j7 r' j+ w0 Z
IAD,O,
4 Y+ O- ^* O; T# {IAE,V20,C,K10,RFE,OFE,K08,7 J1 D( B; ~! i. Z. h
IAD,* V2 ?' D2 [2 D% ^0 Y1 O7 N% z
IAD,O,
/ A$ L- \+ C) aIAE,V20,C,K10,RFE,OFE,K08,
) g/ D" v6 L( Y" L9 ]+ [IAD,
% I3 P' G& t9 L- [/ d$ ^3 ?7 VIAD,O,
  e2 K% z; C, \& [3 @; SIAE,V20,C,K10,RFE,OFE,K08,
# y$ W7 ~: V$ NIAD,
, v( H0 }- a5 j0 A2 dIAD,O,: K' J+ h" Q1 u# G7 E% t
IAE,
6 {' ~6 R% M: W" a9 bIAE,VF4,C,RFA,OFA,) ]# s( f$ f4 ^
IAD,6 n! y2 @' |9 x3 y4 ]* r5 q. W. A5 f
IAD,O,
! @( m: g6 _  V% h( pIAE,VF4,C,RFA,OFA,; f" |( G# {8 r' {$ n. s  \' U# c
IAD,4 R/ U: a; B# j" C* t/ n; c
IAD,O,) I8 V$ C: [' n- d& G6 Y7 Y
IAE,VF2,C,RFA,RAB,R41,OFA,
- n: @" C, H6 S- _* P, bIAD,* @8 c8 Y, j8 M( i
IAE,O,OAB,
4 F% R4 W' z. Z, J( _IAD,
$ T7 i  [. S' V& V8 [' DIAE,O,O41,) P- P: x' [, \% h) N9 R
IAD,
$ x+ d& Z6 Z5 M( ~9 `: KIAE,O,VF2,C,RFA,RAB,R41,OFA,# q' N& X* e2 w; [, K( E
IAD,4 v1 Z4 ?% B" c
IAD,O,OAB,0 d2 r8 \7 ^* e( E9 S
IAE,O,O41,# P, b! `3 v9 E: Z, T
IAD,
0 R5 V' \  P! W+ @# _7 PIAD,O,
' d1 \3 x) Q% U, W5 ~7 `7 M  o7 v4 uIAE,VF2,C,RFA,RAB,R41,OFA,! N' u  {7 H) U: k: M/ [
IAD,* s5 q& l- G9 p/ K
IAD,O,OAB,  C& ^, A! L8 t
IAE,O,O41,2 \; u: ?+ F2 h  v% m) q1 c
IAD,& A% {" ?( [4 i. U
IAD,O,/ O2 s8 Q. L. b' Z
IAE,; i9 ]) ]9 f( O
I90,VED,C,RFA,OFA,
3 U5 W% E* E0 N8 r4 nIAD,
* v6 q, t9 A. Y& s$ O. C* PIAD,O,
+ J+ B9 e, E# ]IAE,V00,C,RFA,OFA," {" X8 q! P& G1 I9 S4 f+ z
IAD,
0 b3 y1 S# P/ c3 E7 iIAD,O,
0 i! U( A0 c" i- {4 c" ?5 WIAE,+ y3 i0 I, j0 m& ^7 i
ID1,DDD,) ]2 Z% C8 x! {8 [: C- e* {
ID1,DDF,
( Q8 c: ^$ x% O6 f" v5 ?2 q- h2 N% DID1,DDF,
, {- a7 E& J6 d9 ye22,oFA,
# C  S& f  o8 R5 @" w# B) G+ _e83,
; C8 n2 _* B! M4 p$ a4 W6 {  N8 fe83,$ ^$ a, d9 c& F4 h( [( Z  _; N- q
e83,5 V3 ~. _" ]$ }, E9 W6 Z
e83,
2 z0 q. d5 _/ q/ z+ ?e83,9 i  P. M( S1 A3 B  p
e83,
! Y2 X  S' V3 y" w' ~( Ye83," P) c' ^5 `7 }% {, M3 t  S
e83,) k* [1 N8 B8 m) N) E+ K% r& [
e83,) A" E6 M- e3 a2 Z' \# p; v9 d
IAD,* [- {/ g3 A4 O; x. S/ l
IA7,' l0 D" L# u0 D% S( c: }5 y. B/ m
IAE,O,. U- o) H1 q. v
IA8,
3 j+ I6 Q% y; u5 b0 `) H' W3 {. fI60,D44,7 X$ s" _1 z& B( F
IAD,
& j5 d# }! c8 r' }IA7,. ]8 F+ f' s8 k  \
IAE,O,
5 e( c& P1 `  s& w) t$ k  rIA8,VFF,C,RFA,OFA,RAA,OAA,8 Y2 t6 i+ `  }& O
IAD,O,K20,
& [; {9 d+ C& z0 N- w8 E) pIA7,
6 u( o" w$ ?. y0 S$ d  y0 M/ QIAE,O,
' d% a0 ^* g* pIA8,
' C: o, h' A8 B* e7 [I60,D04,
1 _" |4 p4 v2 R3 Z3 M0 }IAD,
! h- x' g) R# @9 [$ `, B+ rIA7,
( E  R$ O# a7 o( DIAE,O,
# I  T0 j6 |, i6 R/ pIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
) @1 W9 X, \, U, p, t2 XIAD,O,
  T1 M. |# L% B+ OIA7," G) ~" x7 M  F* \. ]: n& m7 `
IAE,O,% E( x( y: T; E, v# A: p
IA8,
. ~: y8 D5 W  f3 z% v! M9 w/ _) b4 e( _I60,D44,1 _8 r; P# }/ J4 Q: B
IAD,4 `7 f7 c5 p; D0 _
IA7,# d) a, M- Z) Z5 E: ^3 J
IAE,O,
" S" U" o& x; PIA8,
1 _2 q6 L7 _% @# X; dID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
2 ?8 `' Q- B& O* B1 [: VIAE,O,. z( G8 G! O/ e8 s4 }
IA8,7 u1 ~% Y0 o# w' ]
IAD,, ~; e- i# W0 f: b( M
IA7,! }% Z  b, b0 s+ j9 B
IAE,O,
" _9 n' \* i# p, a* gIA8,
; P/ d+ @1 }1 c* p  E! R, kI60,D47,! V# ^# O' u8 r; a$ [
IAD,' d% G- l1 C6 Q) _4 @6 v; C
IA7,
- h/ R8 _7 j2 v3 c3 y4 x2 @IAE,O,$ w6 c$ I: l" w! R  ~( e
IA8,
, E; F6 i  F& Q/ r$ `ID4,VFF,
3 ]8 {5 n( l0 D! h9 ce83,C,RFA,OFA,! U, r5 |' v1 Q: m0 Q3 ]
e83,O,RAA,R00,OAA,O,O00,5 |/ _$ g5 ?! a+ [4 q
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
+ x, ?: ]" M9 ^' s1 v  AID4,VE8,O,C,RFA,OFA,: R1 ]- Y5 b( J- o0 e8 W0 m
ID4,V00,O,C,RFA,OFA," k! m% B1 L: y+ B+ A
ID4,VE6,O,C,RFA,OFA,* s  Z# I8 f( F6 M% i- S- S
ID4,VE6,O,C,RFA,OFA,: H6 s: w# j: n  ^+ A. C! D
ID4,VE6,O,C,RFA,OFA,2 `- i8 [8 B( A: M$ W
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,- Y. {6 a$ w0 A7 z' T. J
ID4,VE8,O,C,RFA,OFA,4 X/ E, v0 n$ x# u
ID4,V03,O,C,RFA,OFA,
# w$ C" |6 G4 d9 d9 M8 wID4,VF3,O,C,RFA,OFA,
% r& U; g' Q9 h# [5 e  c' o5 ?ID4,VC8,O,C,RFA,OFA,
. o. \$ {6 [8 c& X. _9 d$ G* L8 N# {ID4,VF3,O,C,RFA,OFA,
; J$ d4 f) Q& I' M5 W9 ]" H( C1 zID4,V64,O,C,RFA,OFA,
- C' e7 }- {1 H4 z% cID4,VF3,O,C,RFA,OFA,
" }- l2 ^6 Z2 r( m7 _3 Q2 EID4,V50,O,C,RFA,OFA,+ ?, J" l" n5 [/ I) h
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
$ I0 [: ~$ v3 c# FID4,VF3,O,C,RFA,OFA,/ T/ p% E) m* d6 E+ _/ o: @5 h* N
ID4,VC8,O,C,RFA,OFA,
2 l5 b3 A' m/ E# ?ID4,VF3,O,C,RFA,OFA,
7 w, n9 `# r& l8 r, a7 \, [. qID4,VC8,O,C,RFA,OFA,# D: y& i' \6 F: t9 H3 Z9 O  }0 m+ {
ID4,VF3,O,C,RFA,OFA,
3 u) i" x, P5 q7 w" E9 RID4,V50,O,C,RFA,OFA,
5 J  Y9 k8 l4 g* X% }- KID4,VF2,O,C,RFA,R03,OFA,O,O03,
+ ]% e$ H0 q9 N/ ]  R7 T: u. ?ID4,VF3,O,C,RFA,OFA,
  m  W/ e" `7 U1 V# g5 W% r5 P) H" HID4,V64,O,C,RFA,OFA,
& E- Y* U$ F, B' M% V# v/ v: FID4,VE8,O,C,RFA,OFA,6 w& m  k  s5 p. A
ID4,V03,O,C,RFA,OFA,
8 C& a2 @  B' _+ a$ g+ X2 c' iID4,VF4,O,C,RFA,OFA,O,. [" U! I9 p# E1 g( c. B% Q5 i, N
e83,
3 ?$ F. L! n3 he83,: y" e4 A8 b+ _- [7 I( W5 @
e83," \) H2 k9 _0 v+ P$ M& `3 E2 l
e83,
7 y5 M" W9 Y5 y8 W% l7 G0 x1 F, le83,  p& F# f& z- e* C: e5 e
e83,2 y3 R7 }) |, ~3 C3 d: o
e83,
; y5 f  {; K9 p! ke83,
, {3 ?6 u; u: |e83," j; H4 T& H- Q. o, o
e83,00,C8,2E,5 Q- O! y/ V( |" v% A
e83,00,C8,2E,3 r- c  S) u: i* k- G* K- c
e83,00,C8,2E,
- X6 |; w+ `. v5 K& Je83,00,C8,2E,8 J) q# f+ H' W+ }, q, P/ ]- m& w# ]( |
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,* Q! P( \* b3 @3 O7 Z. D
e83,$ g8 Q! c: o) p$ ~' H
7 {2 _' n! |1 Y4 T" b

0 E! P: n( b4 w+ H6 U! F+ f& N[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复+ X% M" s6 ~" t4 w# g' g2 M2 e
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
% o! v: s3 J  E# Q2 F: l      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!$ o0 b2 q! r# B/ F5 b
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
. O) |  z: {) Q$ L# ?7 p0 i, o" d      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
3 y2 q% [4 S  c: j1 |' c# ?/ z2 [3 LBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
% u: ^0 b7 V# i9 WDevice(EC0) {* V( c( M! k9 K6 ?* k/ E
Name(_HID, EISAID("PNP0C09"))0 M7 h/ R4 T( r( z7 Q; E) Y
......
8 b! s# O2 k: {}5 I3 i3 O5 K- q9 A* |" u  I
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
5 C- Z$ k  j' x  W0 ^/ M* P就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
: A7 M. l' \: p$ r2、   
% D/ i- G/ c9 g( vName(_CRS,ResourceTemplate(){           ' T5 R: N6 W6 ^/ M( L: N, C9 s
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
4 S$ v& I  }, ]: U. B; e% M5 d            IO(Decode16, 0x66, 0x66, 0, 1)
/ N' a- ?5 h; t  p; y/ E        }), Z" R4 a7 u4 F. `6 e
3、接着就是
: r) _$ o* I4 B% H6 s. RName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
+ o7 {  [' W. K通过这个声明,OS知道EC和哪个GPE关联起来
" V) G) T8 [. s1 L而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
9 H' N9 \7 ^% sEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
) k* X, b) {6 T+ b+ n5 s而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
2 U2 i/ @2 e9 d8 @" V3、OK,看看linux是如何处理SCI中断的' m8 }6 Q1 W8 l9 F
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute4 w  b6 A& }+ d8 q8 R. ^) ^
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)# M) ^2 h/ d- h9 B
4、EC接到0x84查询命令之后,就把Q事件号传给OS! N7 L7 `8 N$ ?( Q8 s
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分! s# S" @( L) e! R0 D# ?2 [8 q: \! A
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了/ ^- ^( e, G9 W  q4 P' ^0 i
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
; c% z0 V- p8 \' D$ Yqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
( b+ p6 z9 U( z6 E" q6 bbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。" _7 y% r/ V. A' \
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 00:42 , Processed in 0.136151 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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