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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?
9 G+ \: {3 T0 }) D9 G9 G/ K" t+ X看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,; b( Q# u" r2 F9 [6 b$ I
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
) @; i' U) S( m我们在操作系统下用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的命令+ g# ]6 f6 Q! i5 q5 I( X& H: F; ~
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check; K; g# P0 H2 d; L
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
( g8 V& C/ a3 d8 e其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。3 K/ W  x" S( b7 f
2 Q* t$ T8 i8 G
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
1 [* T, a5 a8 B; e2 ^; r4 i, Ue83,5 d4 j% D! f$ A# S. U
IFE,
7 B" e6 {- i5 R1 F6 r0 ke23,oFA,* x  U4 r2 o5 H3 r) |" [# d
ID1,DDF,LPC RST
7 \1 ~( ^& }: I1 e: L; [& J! `Swrong LPC RST
( ?* I% j) L& v4 ELPC_Reset_Flag=64
7 `4 I( }  e9 K* `

; Q9 @2 I! i" Z" ]2 ?( U' B/ {ID1,DDF,
8 D- n2 t, I5 H' }IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
+ Q0 C* f! w1 U% \8 W" F+ fID1,DDF,1 w$ a% x0 h% n, g  \- o& q
I90,VED,C,RFA,OFA,V01,C,RFA,2 \4 _( v) I4 ?$ q# e& s' c
ID1,DDF,O,OFA,O,
& i2 e! z% e& o6 j) Te2A,>IDLE) Y  h9 p: W8 H& A+ [
oFA,<; _" W0 M6 K: m4 J* M7 J  W
e00,; p! E1 s3 W+ i4 t- y+ ?
IAA,O55,O,4 m! E! a; F; U' |
IAD,* E. _0 p, d3 Z
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
; `) e6 l" j* w* G+ h5 e9 D  q( }I60,O,D65,
5 _! u2 o* u; u, y, ]0 }I60,D6D,VF5,C,RFA,OFA,K20,
6 r/ Q# v8 j: ?2 |IAD,
* d# \4 U- `: ]) x5 l- r; HIAE,O,VF5,C,RFA,OFA,K20,
, B. L8 Z! e9 t3 ?* i( J  Z  D8 {9 d* NIAD,
0 Z& J& c* C# E4 {6 MIAE,O,+ S& q: ?8 A# u$ D' Y
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
3 {6 @% f" z$ Z5 f, VI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,# y5 X: n) g! f, A. E
IAE,O,
5 s; @$ |) E& H8 L2 z8 {3 le91,d2F,d00,  H# [- a( v4 j8 d# w
e10,d83,d2F,P3_K#
- s- f$ x. c2 U+ m. E6 O# NP3_K#
. l4 s  x; O4 w

; P0 ^: J( p. R2 M) te23,oFA,, L! O3 h+ W6 p7 {3 p7 S% a
I90,VED,C,RFA,OFA,
  M7 d2 g' ]5 J  q; h6 e9 DIAD,7 b$ n% U& r, j" P
IAD,O,4 }6 Y! T- {" s4 x  Z& p8 f' o
IAE,V03,C,RFA,OFA,
: `7 T" W  K9 i$ HIAD,$ K  M7 k( B# K8 E: l/ C- g
IAD,O,! \4 }' y0 D7 [, T$ y% [! i& ?
IAE,
, f1 g! T6 e* N5 {I90,VED,C,RFA,OFA,! T7 c* x& z# B. }  h0 S- `
IAD,
$ b/ V; Z" q" C/ y5 }- [# f# jIAD,O,7 x  ^8 |; u0 c1 ?* D1 [
IAE,V05,C,RFA,OFA,
7 d8 U  L. \2 P7 v; SIAD,1 \0 [% K# W6 A9 A6 I' E& H2 Z; [
IAD,O,! Q& O4 t# n9 c
IAE,O,: ]8 e7 @9 N( E9 a
e90,d2E,o00,
- G. f- [) U1 }  c, Xe91,d2F,d00,P3_K#
# o- b/ y0 W" f' HP3_K#

! m5 F+ `6 n8 y8 @6 K
- R: w; h1 l# v5 S% m- YIAD,VF3,C,RFA,OFA,
( V7 T$ l  w) }7 n# PIAD,
  ^) T* L3 G5 [8 c- SIAD,O,
3 ]+ e* E9 Q2 l6 V! h( MIAE,VF3,C,RFA,OFA,
) M! x9 x' R- M& iIAD,; G, J( t6 {4 p5 S2 Z
IAD,O,
' d4 a8 D" e$ @, ^IAE,V20,C,K10,RFE,OFE,K08,
/ _, e2 }  W+ t* Q5 ]4 u3 x* J& O0 u' K3 FIAD,
2 [( N/ ^! \! d4 O, ?9 lIAD,O,. n! ?; s/ P2 S+ h" w; v
IAE,V20,C,K10,RFE,OFE,K08,; ]' S! @$ e3 g
IAD,. C" t# P7 G* Q# e; Q5 p* q% s
IAD,O,
+ h  Y3 ]0 h$ n' y6 u6 V" k6 Q( i  o9 W8 AIAE,V20,C,K10,RFE,OFE,K08,
8 N3 D8 ]9 R8 w9 F( U; |IAD,; h8 G* B+ L6 Q5 ]+ V
IAD,O,
' U# k3 j* ]$ k/ YIAE,9 x$ L( j# i. q: ?5 w# I* D, Q9 s: w
IAE,VF4,C,RFA,OFA,) f8 k9 E/ h/ z- U
IAD,
9 n. d: _% G% t9 HIAD,O,/ ?6 y7 H# c( V  q) {2 B
IAE,VF4,C,RFA,OFA,
! {) ^; }, {8 H) |: N! lIAD,; ^9 s% Y5 O# N$ E0 w
IAD,O,
: B* K$ }" ]) V9 vIAE,VF2,C,RFA,RAB,R41,OFA,+ G( }: X# z4 b( n$ {
IAD,2 c9 a2 `+ W' y" Y/ _& a  S
IAE,O,OAB,
- C: z6 p) q- c, l8 G( gIAD,8 t! P7 P+ I2 U
IAE,O,O41,! E5 t! V2 [! A0 W
IAD,2 N* n1 c+ b8 b, w& d3 {- U& C
IAE,O,VF2,C,RFA,RAB,R41,OFA,
  Y% X4 J( |/ V! \# k' ~IAD,2 t; G$ Z. F$ L% @
IAD,O,OAB,) U: v9 {& K7 ^; {0 U) ^. Z, o
IAE,O,O41,9 y- S! M! w9 f& t
IAD,
+ n8 D# \( _' X. Z) bIAD,O,% o( m  \! g* m6 ~
IAE,VF2,C,RFA,RAB,R41,OFA,
& s6 r! u& @. fIAD,
, X% n' i" J; D) O0 lIAD,O,OAB,6 f  T$ q1 I: W
IAE,O,O41,
, h" c: l" y0 x) \8 d, mIAD,! h8 l8 ^4 T# G7 [
IAD,O,3 k1 e# P% M9 @( k( l' g5 j& ]% _
IAE,
6 w( I6 k! x. B! z/ F6 y4 gI90,VED,C,RFA,OFA,
1 y) t0 R. n: v. H; b& [$ Z! U& OIAD,+ {: i6 X* R! ^8 z! F
IAD,O,
! P) G7 C- N4 i; Q8 CIAE,V00,C,RFA,OFA,
: B9 m/ K6 b6 f" x5 b3 l" i- qIAD,
2 {' M9 i0 d7 M% l' A) FIAD,O,0 E' q; ^7 a  K- e3 k
IAE,6 P! v" X9 W4 [; e  p- G
ID1,DDD,: V; F: P6 ]6 b- Q& C, Q$ c
ID1,DDF,
* \; m, R$ k( _6 i6 Z, UID1,DDF,
. w7 C6 P- k( x" b1 Re22,oFA,
  [# X1 d3 b3 O) o- f: J' @+ t) K0 _e83,
& u8 X& G" B" |  He83,
! m4 ~+ |% k6 S& ie83,, ?! u" X$ p6 w. l+ Q' k! q" m
e83,
7 }) E" l2 r5 R, Ve83," Y9 V. f8 o, k' l
e83,4 t: p( U! L6 V5 a9 d) \6 b( T8 B
e83,1 K. f9 F. J' |+ R9 I  `* _/ G, b
e83,5 l) o, v* ?4 ~3 f
e83,3 K9 [! O9 Z8 ^! B7 S4 @% E8 H' Z
IAD,
2 t& N+ K+ v2 u4 jIA7,
# t$ v/ B: k. c) O! kIAE,O,
% v: c- R) |3 L, v& AIA8,
$ v; Y% J6 j8 b  m; N5 yI60,D44,
, H8 b+ b/ Z4 M. o% A$ gIAD,
2 D2 S% C$ H% B/ l8 j% ?8 {3 Y# Q' ]IA7,+ t6 U- r: l' I" j* w9 h
IAE,O,
2 s! V: N1 G$ F4 [+ sIA8,VFF,C,RFA,OFA,RAA,OAA,$ I; a% n2 u9 X. O7 f* q$ m  s) E1 ?8 X
IAD,O,K20,  E% W  s- d& }" A6 D2 h
IA7,0 M! Q& L0 O( C- B4 {, l+ [
IAE,O,7 @, `( n, B4 P/ I
IA8,
, X9 l+ _! A: L* b) ^5 y" ?- ZI60,D04,4 {' R1 U6 `# \0 K/ @+ s" _
IAD,6 n% D# d' M/ n, X: M1 O
IA7,6 T; Q5 s% H/ W1 S- ?+ k! }
IAE,O,
' a& |2 Y& [' g( O+ W% CIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
" k& \0 p8 q+ `) JIAD,O,% S7 q5 l# `3 Z
IA7,
  W: {, b5 V% yIAE,O,
/ I: U, X5 F6 ~) }9 zIA8,
' p9 y  s0 @4 ^; D" j. C( sI60,D44,6 b1 e$ x- }* w# r) Y7 M: s- _
IAD,
% m: b0 D$ F+ kIA7,# _4 \: u: n' c. Z. @7 ?* ?
IAE,O,: u- j$ d% A/ W; e1 h# m/ t
IA8,
& e/ v% F& W( t# ]" p4 Q/ H0 A, `ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
4 r1 E$ w, t: r( k2 JIAE,O,9 v1 S& S9 I! x- a) l
IA8,3 F6 j! C) T- p0 g+ p
IAD,! @8 ?! Z0 L8 K0 B3 w) S6 S
IA7,& }1 C5 p( B* X
IAE,O,
0 W- o6 |+ ~' t; @" W( \IA8,
( M0 t$ w+ i/ ~( kI60,D47,
1 M" s! m+ d" r0 _9 D5 U2 N- eIAD,3 T5 ~7 M( a/ k
IA7,
& {, v; ]4 p8 ?' C7 M: [; lIAE,O,
3 ?1 {' e- s5 c; Q0 ]: Z* l, S" qIA8,% ~, |. L$ {9 N  A* o) C
ID4,VFF,
" Q0 |$ M' [% F- S3 H: Re83,C,RFA,OFA,
. J8 `: d: J% |/ Z. A: Fe83,O,RAA,R00,OAA,O,O00,8 v- u5 _- E* H% E! v( C6 |% G
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
% v& t; T: [" N- M5 zID4,VE8,O,C,RFA,OFA,
+ G. k( Z, `# ~. V* L( P9 rID4,V00,O,C,RFA,OFA,: R& ~7 }* C+ L2 f! ]( w4 Z2 n
ID4,VE6,O,C,RFA,OFA,* ~% q4 T% j% W+ ]4 X0 }
ID4,VE6,O,C,RFA,OFA,
( B7 P1 M" G8 ~2 _% TID4,VE6,O,C,RFA,OFA,7 N) Y! K0 K" n$ M7 Q  @. L: q
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
/ J, r- c" V0 n/ w$ `/ AID4,VE8,O,C,RFA,OFA,
) c& P: T8 [9 i  j5 ~. yID4,V03,O,C,RFA,OFA,  z* [$ F  t6 M) U; z
ID4,VF3,O,C,RFA,OFA,( J- D8 k7 Z$ W% ]
ID4,VC8,O,C,RFA,OFA,
/ A3 V6 X8 P, t9 fID4,VF3,O,C,RFA,OFA,- i- T  w. U7 v& Y7 \* {
ID4,V64,O,C,RFA,OFA,
" q" `$ q2 o5 q" f4 c4 `ID4,VF3,O,C,RFA,OFA,
( j8 o" F8 C, ^  ]9 g; ]" i' g! GID4,V50,O,C,RFA,OFA,: s2 |) b! q# I
ID4,VF2,O,C,RFA,R03,OFA,O,O03,5 x& z3 \6 {$ Q% {
ID4,VF3,O,C,RFA,OFA,; Z+ b) I! E; L5 R
ID4,VC8,O,C,RFA,OFA,( G" m2 k- D4 U2 N
ID4,VF3,O,C,RFA,OFA,
: V! T' }9 h# i" e8 D2 EID4,VC8,O,C,RFA,OFA,
7 F& T" v$ T+ I0 C) A) QID4,VF3,O,C,RFA,OFA,
1 H& k) m( G# \1 u; rID4,V50,O,C,RFA,OFA,
# G$ p/ g& w  ^: y+ d7 H$ fID4,VF2,O,C,RFA,R03,OFA,O,O03,
' E5 E5 e! a9 ]+ l: ^; X# s% LID4,VF3,O,C,RFA,OFA,4 h* l4 m  a  s9 ~7 L
ID4,V64,O,C,RFA,OFA,- j5 j$ o  |. q, b0 ?5 j* }6 z
ID4,VE8,O,C,RFA,OFA,
' x1 V  j3 ~! `9 ?; `) p3 f  d/ gID4,V03,O,C,RFA,OFA,
' Q) G: o6 v# h( W4 k( s- hID4,VF4,O,C,RFA,OFA,O,6 y& l% e2 B3 X8 V
e83,( c7 J  W7 F% L1 b7 @# O) x/ K: X* ~
e83,+ }, h5 u* ^# e  j
e83,; ]- m6 r. }! [
e83,* T6 e5 k4 H$ f( Z9 `
e83,. D) c  H8 y# m; Q! ]2 ]; [  Q2 Z
e83,) N; V/ j7 f; N! o# K* ~
e83,3 s" h9 P; }3 B, M! E5 ^8 P
e83,4 l* b% U; D6 U  d9 @( n7 H) K
e83," w2 s- r  h! d7 Y# K
e83,00,C8,2E,
: }0 D& K' F- _! f0 r' V3 Pe83,00,C8,2E,* ^  L" X0 D0 m- K7 W( X2 ^1 q- }
e83,00,C8,2E,
  r) Z/ N3 O3 u2 F7 c/ A, P4 G  ue83,00,C8,2E,7 I1 ~; u1 M, 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,
$ ?3 `. {1 Y  q0 S2 \/ D" n! ^e83,
" @* @, P% {* q! t6 p

% w- `, G" Z8 z" D# E* P
) E) }/ Y$ k7 z* i8 |; N[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复4 C7 z4 R+ v+ q
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
0 b( u6 d3 n6 ~      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!" m: m1 y, R6 o$ ]) i, D
      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。' r6 T6 m1 @+ l' u( T
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
/ U9 F/ v& l/ A* }9 b  lBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
  ~$ A0 W6 h7 M. @- W( DDevice(EC0) {8 u  m0 n, b4 V" |0 k* a5 t
Name(_HID, EISAID("PNP0C09"))8 m) {1 S- v% m" p0 H5 W
......4 i4 R5 H% S* \7 p
}! F5 F* K& k) q. d3 J: Q! d" `
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
5 E) m/ e: X/ l就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)2 A6 q7 i: U" H+ O$ t$ `( M# o
2、    5 _4 |( `) b# B$ @! L7 z
Name(_CRS,ResourceTemplate(){           
2 C. R% U* S# T* J- V        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
1 a$ z/ L) c! J5 B# D5 Q; T" j            IO(Decode16, 0x66, 0x66, 0, 1)
, k6 a0 X3 _' H' j8 @$ h% w6 [        })
( Q  a: C/ U% S; B. Q8 B" J3、接着就是
7 Y! g2 P; P% N2 u% h% aName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7- U* ^. ~8 S8 n0 K9 ~
通过这个声明,OS知道EC和哪个GPE关联起来
6 O% g% P( p8 \  P. p* m. v/ T4 y而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
, V2 M/ L# e  h2 L% q4 yEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
! U  m% ]3 `' C* B+ k- L$ n, a而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
- |5 k' L' R/ P# N- C3、OK,看看linux是如何处理SCI中断的+ L+ [5 u. N; ]9 j+ o
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
0 V7 C. n( y! L, Sacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
; j% `- W! y/ t1 w4、EC接到0x84查询命令之后,就把Q事件号传给OS" f  k' V) |0 l, W1 M1 z
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
8 _  r  K- q' N- W8 B1 L) ?你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
( o3 ]8 ^& V% T: `有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。" O1 W6 O- s* n) n" k
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm3 \8 e6 J$ ^& }
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
1 i; l: U4 ]7 k. [. c  n版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-2 11:10 , Processed in 0.079033 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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