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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?) x0 r9 L. f$ z8 q2 C% D9 r# S2 N  ?
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,5 V1 F" A8 r" Q0 w; U
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
, C1 b0 _* F* [' K; z9 }9 f& H我们在操作系统下用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的命令- c6 s" t- ~/ P- ]: Z
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check& r9 o! y$ k3 h1 u4 \
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析1 |! ?# l- I! t5 ]
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。0 ]' e9 u3 k7 s, X
0 S' G- T% k- l. P
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
( M2 b& L; g! g4 K$ _. i3 _e83,) x8 n" e7 V, m: M( K( c" k3 ?
IFE,) z  @7 O- E% V
e23,oFA,
5 ~$ E) m- @5 OID1,DDF,LPC RST9 A9 L( R2 b! U( ]3 r' ~3 K
Swrong LPC RST
: [# J) y3 Y7 X2 c1 pLPC_Reset_Flag=64

% `" R  g1 i% Z5 i& r: u1 Z3 o" K+ @6 i4 i
ID1,DDF,
- {0 ?" F6 X& g% \4 M8 d" MIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
& E- M6 O( N/ E! U7 U- NID1,DDF,
0 c4 P/ g7 k' a+ |1 }) [I90,VED,C,RFA,OFA,V01,C,RFA,# C" @6 N' R" i9 W5 u2 q, Z) E  Y, X
ID1,DDF,O,OFA,O,
2 _/ u# v  l8 Oe2A,>IDLE
/ G/ ~; @* \1 r- {" joFA,<- m9 I  }# P7 x" I
e00,
, L% A: {0 L. `/ _; e+ z+ P1 m3 \  ]IAA,O55,O,+ P" [* u: r' ]# l
IAD," R# _0 b) j# w$ c( ^
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,; F7 u# B& }3 n0 G: d: A& B% X
I60,O,D65," ]4 v% n$ M6 Z$ M( G) ~
I60,D6D,VF5,C,RFA,OFA,K20,5 d: H* o0 Z; s
IAD,; n1 O1 K* _* u7 `7 U
IAE,O,VF5,C,RFA,OFA,K20,
6 X& p% U( j) l4 G# p4 s% e; N/ hIAD,
( b- P0 N& h2 S4 c  t& NIAE,O,
& m% ?3 Q+ S" t  oIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,, R2 ]( X  b0 R. U2 c% v
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
. q8 `( L5 {) ?$ }0 X9 MIAE,O,
2 v( r0 |" ~1 S. ve91,d2F,d00,
' Q9 B( C" O; i+ P; @1 {e10,d83,d2F,P3_K#
1 s# U; t8 t. JP3_K#

8 L0 l. j8 m' |7 `
) J& d7 R; |5 c& R  u/ re23,oFA,* h6 ~4 {1 i& c9 U) Y* q0 A7 ?
I90,VED,C,RFA,OFA,
& N7 Q/ c/ H! G7 A! L7 w- A9 k0 b) eIAD,
, T7 _- f% c, }  F* TIAD,O,8 y7 u: ]) Z+ B- P/ X- x! {( h. ~
IAE,V03,C,RFA,OFA,
2 b3 k) C. e! h4 T! `4 cIAD,
2 X- o: B7 e) ~4 Y& R; C  xIAD,O,
; C2 R9 F. H% s; N' KIAE,
# ^3 A8 s6 a% Y. Z% R$ EI90,VED,C,RFA,OFA,
. T1 ~, R. q( _( Q5 Q, r* o" D! iIAD,4 g8 I/ c* ?5 f& C4 T7 w  F
IAD,O,
* N7 [# e( K& `& ^6 sIAE,V05,C,RFA,OFA,$ C( k% R- Q- B% i; S! O+ f+ N
IAD,8 |0 J3 }% r+ S; _
IAD,O,+ ^9 I% [2 v+ O
IAE,O,
5 ?! ~+ g; i4 c; ^, z- A) S- _e90,d2E,o00,& J$ {0 J; X- B
e91,d2F,d00,P3_K#
" D, G! S: Z4 [3 w! v; o7 @P3_K#
% B  |4 p! `- x; D% o5 |! x
, L5 x) T' ~, x) f9 V- j
IAD,VF3,C,RFA,OFA,
/ g/ Q/ a8 M9 ~8 F# ]3 `: rIAD,
: k4 U* @6 `7 u9 H: T+ {IAD,O,
: J+ Z: {7 s2 z& z! E8 KIAE,VF3,C,RFA,OFA,
3 ]+ u6 u) M. j7 C1 yIAD,5 @/ W- N! Q+ Z: g7 x+ Y
IAD,O,
( S& g2 ?' ]4 t6 z3 vIAE,V20,C,K10,RFE,OFE,K08,6 K: H' x9 ]5 x9 O5 N' _" S
IAD,3 ^' a! @3 L8 a# c: o
IAD,O,4 I/ o! Q* ]) H9 `6 Q
IAE,V20,C,K10,RFE,OFE,K08,* ?* M  ]9 I4 U; \2 h
IAD,
- _1 P( C9 i# B0 fIAD,O,; c6 c% i, X- e. o: Q
IAE,V20,C,K10,RFE,OFE,K08,4 i3 e$ h2 q' p: e+ O* g
IAD,
8 v! c. S, T$ r& @, Z; n/ b2 OIAD,O,
; K* q/ _4 H2 C$ rIAE,
5 o& F4 X+ V( }# p, o3 xIAE,VF4,C,RFA,OFA,- b9 Y2 S; P( r/ J
IAD,! K; J5 {/ {* u: S& o1 ^
IAD,O,$ U$ ?) o* a- q+ D- B  t
IAE,VF4,C,RFA,OFA,0 D& y* M! B; R3 {2 p& I! N
IAD,
  a/ M6 I6 G9 I6 r: p' `IAD,O,. o! S+ X8 l+ B' O
IAE,VF2,C,RFA,RAB,R41,OFA,. U; T# P; ]$ b# e: w8 v
IAD,& S6 r" ^/ H1 s% |, e4 x
IAE,O,OAB,1 y. M2 F+ ^! [! |
IAD,# U( E7 u5 y* U/ v
IAE,O,O41,$ f/ k1 _% r3 s8 j
IAD,
) W4 r  F- ]1 {, x( k2 u2 D8 V' J5 pIAE,O,VF2,C,RFA,RAB,R41,OFA,& `& L( s4 s" X& r! I
IAD,+ v. ?3 V$ c. z  g" `
IAD,O,OAB,& v+ A6 W8 H. l
IAE,O,O41,, Y0 ~. b9 o# p
IAD,
! [7 e: Z, i: P0 ^# U5 s- VIAD,O,) u( u/ x7 I6 ]0 q. b% X0 {
IAE,VF2,C,RFA,RAB,R41,OFA,
2 L0 v! Y; M, r/ C" m% n0 H/ r& HIAD,1 _" }6 o8 h$ h/ Y* f( V6 V: Q6 q8 _& ^3 a
IAD,O,OAB,2 c: u9 G! m# p! v% l6 q# t# ?0 U3 S
IAE,O,O41,0 b, Q" ~. `4 d0 K6 k5 N
IAD,- K& S9 u4 ]  }8 Z% L
IAD,O,' j1 M# g% G, K
IAE,/ o+ P8 I( ^+ M  G' X) L
I90,VED,C,RFA,OFA,, H% u  O1 _  i. w" n
IAD,- S+ [/ [3 X" l% O# |/ [) K
IAD,O,2 _# d# `7 p; g4 k
IAE,V00,C,RFA,OFA,
! X/ ]% ]+ I  W) `: oIAD,
% I) ]- B. B  v$ c6 r8 f0 uIAD,O,3 ?5 m/ Q' e* D8 `+ V
IAE,# I+ D7 G. t! d- \& W
ID1,DDD,: s0 R9 h0 p. Y' i, B+ }
ID1,DDF,
7 \; h3 A6 Y6 f5 s9 l9 F# q( D4 ]ID1,DDF,
/ m8 m- R$ ~1 O/ @. J" d: Le22,oFA,
/ ?5 W" @" Q! g8 P; ]4 {. te83,7 B9 }  e  r) X1 t) }. m
e83,
& A1 Q: ^0 d6 S1 I" O' v3 be83,6 z- `( m, i* `5 N; w1 f( O
e83,
% b  n7 z0 v! M0 m5 n- s. ?8 o# G3 [7 ie83,
/ n- u! Q' n7 \, t6 z# h, V1 _e83,1 ^2 ^, j; ^9 [9 L) o
e83,
: |% E! S1 E' i2 w4 I( I2 ?e83,/ N# w5 h! v; A
e83,! o5 s  i0 ?9 d2 C
IAD,
* V5 s1 V& Z! Z! rIA7,5 Y- V& i* w6 [$ D5 C. D' b
IAE,O,& n1 j8 [8 _& l; j- Z- g/ L
IA8," f0 ]/ {8 @& S6 v0 J: M
I60,D44,
5 Q$ C8 J7 ]2 p' w8 nIAD,
; f$ r, K2 W1 c1 YIA7,
# A) ?+ [7 D; _5 T. L5 N1 V/ B' sIAE,O,* L; F+ H) w5 e5 a) t0 p0 l9 J8 F# |
IA8,VFF,C,RFA,OFA,RAA,OAA,
9 U; z# d! _, ~6 w* x& a( YIAD,O,K20,
# B1 r/ {% M- g( u( TIA7,  O+ R& }- `# t% G) e. ]
IAE,O,
0 }, u. g2 M2 x! y; pIA8,% t+ t' w7 m, Y; p" F; W+ U
I60,D04,
/ L; s2 l3 B* |- _( \IAD,
+ Z2 R& b  h9 A. i2 KIA7,0 x* ^* f  Q( J6 T$ U: M
IAE,O,
0 z- p* R- P: o" k; q" m- ]# m0 pIA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,+ s; b4 K, y1 ~6 u  w
IAD,O,
& Z1 G: y" x1 F0 }0 wIA7,- y5 Z3 I1 A- ^0 z7 u
IAE,O,
9 r0 f2 \% X8 }1 _! \1 ^/ lIA8,9 ?! ?- G. N7 r  W5 A$ ^) E" X
I60,D44,
) ~- b) a; X$ z# U2 @) FIAD,
2 C8 `- m2 F1 Q. O4 T8 cIA7,
3 z9 h3 b. C2 ?IAE,O,) |5 f( |6 i8 a- [  m5 F7 q- c
IA8," l6 ?2 t. x9 b# p. U6 q* }, T
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA," }( U6 S/ l( B4 b7 W# N
IAE,O,: A, R+ \& c( H& C+ s3 A/ _: s
IA8,
1 D: b& ~6 }4 A0 p& {IAD,  ^' D+ K2 V* L2 N6 b
IA7,9 U% f0 n# \! W8 ?7 q
IAE,O,
9 d' p- G- l: ]5 I$ x0 Q  v, [6 }% E+ DIA8,7 u+ S) V  u. I' `
I60,D47,3 U0 v9 o0 k4 ~% ~
IAD,3 d3 R8 [- ^! Y9 {6 v  M$ F
IA7,0 ?, \/ ?* }: a' ^* ?' ?
IAE,O,
; I5 X; Y7 A7 Q! tIA8,$ _+ o9 M6 u8 c  J
ID4,VFF,
, l- s7 @% N. C5 Ge83,C,RFA,OFA,
5 C" `$ M9 s7 [- D9 }e83,O,RAA,R00,OAA,O,O00,1 ?1 L9 {7 C$ f' g$ `6 g4 e8 c2 b
ID4,VF2,O,C,RFA,R00,OFA,O,O00,$ d/ D; Y: a) s; \+ }. C9 W* P
ID4,VE8,O,C,RFA,OFA,/ H2 G7 Q4 F) m  x  L8 g4 c
ID4,V00,O,C,RFA,OFA,* j' B  ~. w/ u" e% \+ p: `# V
ID4,VE6,O,C,RFA,OFA,
+ y' f6 y9 B& s$ d# FID4,VE6,O,C,RFA,OFA,
4 i/ ?. S% p, k; N2 i6 ]. Q( cID4,VE6,O,C,RFA,OFA,
- m9 @  o7 I8 G" RID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,- h; D6 Y3 k8 {% B! S$ Z9 `
ID4,VE8,O,C,RFA,OFA,. v/ v. S; Z5 u  t5 n7 w2 J
ID4,V03,O,C,RFA,OFA,: h% ^' u/ x  p9 U( Y  F/ U
ID4,VF3,O,C,RFA,OFA,
) l" n* I/ N: k. c3 i: `7 }ID4,VC8,O,C,RFA,OFA,
8 J+ T. Q! {2 W3 R, mID4,VF3,O,C,RFA,OFA,
3 C3 C% B+ u! @3 Z1 ?, n  O& }- rID4,V64,O,C,RFA,OFA,. X$ h, r2 |2 o/ w2 g8 H) e
ID4,VF3,O,C,RFA,OFA,
% n- _, k  }; w9 p* kID4,V50,O,C,RFA,OFA,+ c5 q1 T1 E# y- v
ID4,VF2,O,C,RFA,R03,OFA,O,O03,9 V5 [  i; m$ g
ID4,VF3,O,C,RFA,OFA,; Y" [  L3 T  I9 g
ID4,VC8,O,C,RFA,OFA,
1 }* Y6 A2 R; z$ zID4,VF3,O,C,RFA,OFA,5 Z2 N% {9 W  P* T9 y- w
ID4,VC8,O,C,RFA,OFA,& |- B8 B4 t5 t9 X" |
ID4,VF3,O,C,RFA,OFA,8 m% }# Y4 v% X- V
ID4,V50,O,C,RFA,OFA,% j6 b* A4 S, b  R' _: b
ID4,VF2,O,C,RFA,R03,OFA,O,O03,/ ^; }. }8 i% c. @- g3 a2 [
ID4,VF3,O,C,RFA,OFA,
) f' U8 L9 ?3 S7 B' `ID4,V64,O,C,RFA,OFA,
% X2 [( U! O1 ]9 {# k3 UID4,VE8,O,C,RFA,OFA,
5 ?- c5 T6 L6 {7 q1 X" X5 ~6 QID4,V03,O,C,RFA,OFA,' h/ _8 K$ ~1 g7 P( I
ID4,VF4,O,C,RFA,OFA,O,
" M, D. W# I' R2 Q; re83,  [* U) A0 C/ n( L# m2 c9 s
e83,; N* C5 j) z8 d3 Z" p3 S2 D
e83,
* j$ q$ G  ?9 b* k8 D' |4 p. ?8 Re83,- r1 o  b; D# L& ~
e83,6 ]: L* S# T# x, S% r
e83,
# K! R  K$ s% N  I6 be83,
- ?) @6 X$ i. L, ]: W! e2 C6 z& we83,
) h' M1 u+ N; D7 \) k/ Be83,) X0 j7 q. ~  L$ p, P
e83,00,C8,2E,
( w, z0 E3 o  d, \e83,00,C8,2E,
$ w0 T# f1 _+ H1 |5 c7 e  ~e83,00,C8,2E,  J( p! t4 ]) G. d8 u' @
e83,00,C8,2E,
3 u4 x0 g' k/ i) o! 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,% z9 Y: g) N! k
e83,
  _2 \% x7 d' X0 \7 U: o$ z* I. W: @) G
3 P* [4 f7 Y8 n! \; @( n; E

, T6 c% J+ W/ V# g' G% t[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
% u- ^8 f  A2 ]& X; yDevice(EC0) {
- y$ L# }: D$ F' h  z$ XName(_HID, EISAID("PNP0C09"))- [. F0 h$ Y, W9 R8 t+ ?, z
......
$ N! D: A# U8 t1 W* H' {}9 {; E0 `+ m1 |5 G% t
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
. r4 N7 t  O! h/ T0 ~9 [. Z就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
! h) O- s* C" w2、      D) P: d1 E# F8 J
Name(_CRS,ResourceTemplate(){           * Z! R8 t1 h4 M' q% H$ Q2 O
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
9 ]; d/ z8 [- H6 d* K1 B  M            IO(Decode16, 0x66, 0x66, 0, 1): w% B0 e2 c8 T, @( |: n
        })
5 I. c) i5 H/ |) i% g% L3、接着就是5 d% n1 S7 B& `
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
0 S) m$ ?( W4 l% }2 j通过这个声明,OS知道EC和哪个GPE关联起来+ A! C  T$ [4 b. n/ ^0 N8 @6 I
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来" |2 {, O! o1 D
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
$ L# K% H& g; L9 K+ Z9 g而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。: i7 J2 ]# _$ n9 m& @& D
3、OK,看看linux是如何处理SCI中断的
: l8 e/ \1 j! Q2 f* uacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
/ [, d3 o1 T" nacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)6 O0 l( r& w* X. B
4、EC接到0x84查询命令之后,就把Q事件号传给OS
) D9 v' g/ I4 W8 R+ C3 ^OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
4 T! J& p5 L( l- [你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了' T; ?4 o3 J' p
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
) S0 g8 P+ c8 }; t; [9 j6 |4 C3 Lqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm& o4 O0 w2 Z# W# i
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
: g0 g5 s5 x, B1 @& W7 u% Q版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-29 02:39 , Processed in 0.113758 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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