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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
0 S  W# x# G9 U, v, Y2 k今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。! X1 \2 C& q3 s5 j! g
我们在操作系统下用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的命令
) O2 S% e% v4 n0 M0 F8 zD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
5 u# X4 C$ b/ L* g7 y这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析, _1 [" b% A/ p9 T* e2 n0 W% R
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。  G/ V, N+ T2 x8 \7 F  N; u' N

$ b) v% p1 y& N3 a8 f1 EVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,( M6 w* o9 Z: m) `7 y7 x
e83,7 A$ U6 b8 Q9 \# p1 l( Q  j7 A, w
IFE,+ V0 u7 s$ p: o# B& F8 o
e23,oFA,
" x2 j! k* L# _# eID1,DDF,LPC RST  H# A: r. P: U' s2 K# U6 l& n
Swrong LPC RST
4 L. x0 T; T0 E$ M) d; U5 ?1 U6 rLPC_Reset_Flag=64
7 X2 h( E$ i' L* I- l5 V8 E2 z

" H4 O: W' Y3 E2 z5 {8 ~; i5 JID1,DDF,1 i" I3 N+ ]( r  j
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
, Z$ F& [0 Q( b/ X6 dID1,DDF,
7 J6 H) s' `, bI90,VED,C,RFA,OFA,V01,C,RFA,8 F1 L, S  ?) |# ~% {4 h+ N
ID1,DDF,O,OFA,O,
; q  @! s7 o+ _; [/ x2 x; k( {( I( de2A,>IDLE
; U  U. k) u0 o! e9 coFA,<
. c( ]8 Q- E& \, ~9 p: @* {. Ue00,
" {; f$ R% }$ R' r7 [0 N% _IAA,O55,O,
/ S; o2 c  U) B( ^8 I8 EIAD,6 A# s, `/ W% K: Z
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,: A" T" {. `) {
I60,O,D65,
! ?# s% D2 Y7 a1 L# f( M* xI60,D6D,VF5,C,RFA,OFA,K20,
! K* E. F3 ?! E2 l# nIAD,9 I/ m& t' C. @3 {  X  T' j
IAE,O,VF5,C,RFA,OFA,K20,2 P0 D1 ]8 x# @  ]- F8 |
IAD,# r- V0 O* I4 _7 p, m6 H  W
IAE,O,
4 b- ~# m9 g7 @' R3 x7 r4 X& S; h. `IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,' B# C* V; R4 v8 P0 p, R- s9 l" }
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
, ^" r  ^$ z3 Y( L$ {5 `6 t1 E) W( _IAE,O,1 Y1 X% J# ^/ n& N- x7 Q
e91,d2F,d00,+ D0 T+ ^( o6 r) E# b, k! q8 T
e10,d83,d2F,P3_K#
! A( a: f& U! z9 o/ @P3_K#

8 w9 b1 r, M  j0 y1 a1 j' m; Z+ p4 u, j: j! K3 a6 g
e23,oFA,; F' L, I3 w& |: w  ^1 R1 Y
I90,VED,C,RFA,OFA,
1 Z* [; V* `9 {/ |IAD,* i( Y- v0 g0 Z
IAD,O,
* G  a0 s% I' N9 JIAE,V03,C,RFA,OFA,& [) Q9 V5 N2 f' s/ K7 I/ G2 c
IAD,
, B! p; w& J- M3 b1 RIAD,O,
9 s3 K4 z" E9 Q2 a- dIAE,
: Z  I0 ^/ D* W$ ^4 mI90,VED,C,RFA,OFA,7 \4 B; U" l! S3 ^- n3 i1 g
IAD,
5 E( A& O, U) D6 P% d9 X# @# MIAD,O," |; i, @- W# @9 Y5 A& T6 B4 l6 E
IAE,V05,C,RFA,OFA,
5 \: w; [" H4 B% h( WIAD,
% U" U* v# z8 R- D# j0 BIAD,O,$ q- Z/ R/ Z( c8 J: C; N/ h& U0 \
IAE,O,
& F  S/ J( O' R$ ce90,d2E,o00,
' R/ W2 s: h- F# a. ~1 Qe91,d2F,d00,P3_K#
4 `" |; y8 w. E$ W- j4 c! d' oP3_K#

- w9 M0 w. ?4 l+ U) h. z& H' S6 d: @' W6 x. R
IAD,VF3,C,RFA,OFA,
% i0 p  H+ y! Q0 ]: @8 Y7 _7 mIAD," j) I- u+ \; A6 J
IAD,O,
& [* D9 O9 o, _5 ^2 c, }* Z# oIAE,VF3,C,RFA,OFA,! ?+ R% k' ]6 u' v' N4 C8 y; L5 H
IAD,; Y4 }5 k! g& ]9 O# N" u0 u; }& n
IAD,O,
' X2 M6 a( t' a6 e7 h7 H! kIAE,V20,C,K10,RFE,OFE,K08,
; k' X2 R& I- ?) B& FIAD,
, `( q5 I3 E8 O8 j- D. wIAD,O,4 d( l; p- l0 M" f' E3 b
IAE,V20,C,K10,RFE,OFE,K08,
* m$ ]7 A: @+ O" L8 DIAD,' p/ [! }/ a4 |/ T
IAD,O,
  [# S1 G, d9 B) d- h* F; s7 ]IAE,V20,C,K10,RFE,OFE,K08,
1 R, a1 b% C% |+ Y# W7 M! ]/ aIAD,
$ p, L) r8 e( U! W7 ?; z  b* tIAD,O,, m# F" t$ c: j6 _
IAE,
6 \! H! M2 i4 [1 v1 @; b2 CIAE,VF4,C,RFA,OFA,
% @- W. H: n" S/ {7 k4 {4 kIAD,- _3 h+ k/ p3 ^% [0 a' J* A# `; m
IAD,O,
* |& r% E8 r* B# X# p# m" v- WIAE,VF4,C,RFA,OFA,; B; j3 L% v4 p+ {6 @: C
IAD,
) R$ @7 y- T+ J1 g% fIAD,O,
2 I0 {! p/ G8 T- M8 f% dIAE,VF2,C,RFA,RAB,R41,OFA,0 ]. J& @" J4 ?
IAD,  ~  G- F8 _% p  E8 u! w
IAE,O,OAB,
2 A) |) C" o, b3 l& _& nIAD,6 I7 L+ {0 J- H) N
IAE,O,O41,# X3 `; p) e9 C9 y3 q: z- j9 A
IAD,9 O" C2 J- S0 P, S* H! i( i
IAE,O,VF2,C,RFA,RAB,R41,OFA,; s5 m" }/ E3 [; r5 V
IAD,
. F# i* u# i: j# V' \# sIAD,O,OAB,+ o1 Z! w! k) a( j  U
IAE,O,O41,
% [  y& X" T! r: E) H- a$ w; fIAD,. ?- j, ?# d& h" ^
IAD,O,4 v7 T- P5 `: e. A8 g/ I: e
IAE,VF2,C,RFA,RAB,R41,OFA,
' n% Q; y( V" `/ LIAD,
9 G* Y, h; A- [/ {. u* q# S* tIAD,O,OAB,1 ^( U4 c* p' c4 H2 T2 M  d
IAE,O,O41,7 ^; Y! H, J% p( F
IAD,6 t- g7 p9 e- W/ U' y4 B0 U
IAD,O,2 l8 I3 e4 V5 n, _/ ~
IAE,0 p" s# V7 n- N& j4 X
I90,VED,C,RFA,OFA,& P8 D- N( B# a: _$ G3 a5 ]# a
IAD,9 E+ I! F) R! U7 e( o: S
IAD,O,
+ I& p5 E7 [' P' f* m- OIAE,V00,C,RFA,OFA,
" p3 j4 |5 `' k0 lIAD,
' |8 d# W4 b9 v( [IAD,O,
6 e: L/ V, S' T8 {# K2 h6 |IAE,
: u" P5 o4 A5 A2 x/ bID1,DDD,$ A* a/ o" [$ t3 Q/ [- Q( x6 z: ~
ID1,DDF,
/ _, s7 C7 ^! t* y% ?/ uID1,DDF,
7 a2 M. z/ E" \$ ^% F4 Ye22,oFA," E' q& ]' I9 g1 G" t# [+ c' u
e83,
4 ?* G0 V9 l) \  _1 ve83,
, q4 n$ v# j1 e  ie83,
5 k# \9 c: H9 r* T  E* W+ O; I5 ce83,
8 P" m; k4 x: B5 o1 J5 Y6 Ke83,1 M' j( Z6 ]4 n: A& a' x
e83,; |, j& h! L% b
e83,
9 l" Q# \. T7 F4 Z  G! de83,
( S3 s. S1 @+ W* x. o/ ?! e# ue83,- j2 ^! E: r& k; ~# L
IAD,7 v2 t( R. \. X* t& M5 X# R6 {
IA7,# |% \% v  R, ?! o3 B: u1 X
IAE,O,+ H4 o+ L2 G) F3 c/ M
IA8,
$ B9 o2 G" e( g. I! w5 ~I60,D44,
$ t0 B# B5 O; Z, n8 S8 ]5 FIAD,
0 a; a- C  w$ H  W3 {. |$ AIA7,. c/ Y- C- i" c7 T& U
IAE,O,. L/ G4 w! p; H# g; S1 q
IA8,VFF,C,RFA,OFA,RAA,OAA,: |5 D7 k" j2 K% f' G$ w8 m
IAD,O,K20,
$ w8 y* q' c0 i9 PIA7,6 j4 g& h& V* j$ G& \1 W
IAE,O,
5 {; H$ Y* B7 [IA8,
. B- H6 B  G; c- xI60,D04,
1 s, Y. V( l7 b4 ?8 xIAD,
- G# l* s7 X) d6 F. z( x! F1 Z+ g9 KIA7,' W& L9 T# C4 ?  T; g7 ^7 Z
IAE,O,2 X4 O' c% I0 S2 [- Q4 L5 \
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,7 C7 E+ K8 s, F/ Q- Z6 L
IAD,O,/ h2 B5 f3 E, {8 F7 S
IA7,; `. W* U6 a2 q- p5 l8 X
IAE,O,3 O( \3 Z$ k  ]9 L- z
IA8,
% ?( w1 m- ~/ z- H0 KI60,D44,
6 D. P, O5 x) B  ]2 n7 A. C5 sIAD,
' ?1 h% y6 J1 Q# zIA7,
& o& T. k8 _8 Q; t3 _- kIAE,O,2 t5 h, f) R) d- Z/ w! X, `$ Q
IA8,
! C# Y  Y/ R! m' r& Q/ Y. T3 lID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
7 O% f/ ^1 }5 W) [+ F! B3 xIAE,O,. b  Y' [' s# ?: `
IA8,5 Y5 |& Z. C( d, z: V6 u
IAD,
& H) [( e1 G6 U" g8 H% Q0 i; |  x+ BIA7,/ d0 ^  s8 G! C% X  i* G& F
IAE,O,- E! }  B  _5 k) `3 z
IA8,
1 S( n% J6 m: s, v1 UI60,D47,
8 M) J7 W2 {6 QIAD,
, F6 N7 ~% {/ dIA7,' \& u" X& Y3 H( P+ o
IAE,O,4 Y7 Z' F1 ]  `7 }3 p; Y
IA8,
) I! I% y9 }  nID4,VFF,7 ?7 y: Q! n* O: |5 H- F& f! G! y/ P
e83,C,RFA,OFA,
! |3 i& M2 V/ a5 Z' e- E& _e83,O,RAA,R00,OAA,O,O00,& x3 b: _0 |; a! K; W' N! U6 k
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
( @' T- d% k. I8 Y. b! y; |ID4,VE8,O,C,RFA,OFA,  t% X- p0 }. N$ k. F
ID4,V00,O,C,RFA,OFA,0 U* u; L5 N/ q5 ^! X6 N: k
ID4,VE6,O,C,RFA,OFA,
1 {7 W1 W1 \; o! k+ ^  c1 hID4,VE6,O,C,RFA,OFA,1 S. L7 W) n9 r6 g/ y" U
ID4,VE6,O,C,RFA,OFA,3 p2 ~3 r$ {! \! f, Z& V$ b# [
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,5 P. {! v# n; [+ k0 B
ID4,VE8,O,C,RFA,OFA,
# f7 A3 D3 c9 r% |1 k) hID4,V03,O,C,RFA,OFA,
# Q9 d# f5 C) y, I" r6 ^. l& [ID4,VF3,O,C,RFA,OFA,& @  R7 {" {* s! v
ID4,VC8,O,C,RFA,OFA,% Y, C' A6 c. I, v2 K9 b
ID4,VF3,O,C,RFA,OFA,
  S, T; v/ J8 ?3 m7 xID4,V64,O,C,RFA,OFA,7 @4 Q! V. U! Q- t6 K' B0 {
ID4,VF3,O,C,RFA,OFA,
3 Q) ]" @/ k$ R! a4 CID4,V50,O,C,RFA,OFA,' N# w5 ?, x9 y3 p0 c
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
- [0 c% @  ?/ b5 r$ D) b! X( M" YID4,VF3,O,C,RFA,OFA,
3 {% R# a# i! z3 s8 R' mID4,VC8,O,C,RFA,OFA,
) o* |6 u$ F8 X, E+ fID4,VF3,O,C,RFA,OFA,
* [' @3 s7 m5 z8 RID4,VC8,O,C,RFA,OFA,) I0 a$ _# D, d' C
ID4,VF3,O,C,RFA,OFA,
4 Q  m0 r# _2 h' tID4,V50,O,C,RFA,OFA,6 ?. u/ B) e  f+ T* o1 G5 e- O
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
, m2 t5 p: }  w. \& gID4,VF3,O,C,RFA,OFA,
9 c. g; I% U8 S# ~: B& DID4,V64,O,C,RFA,OFA,
- t5 G4 h+ N% d# J# V7 aID4,VE8,O,C,RFA,OFA,
7 x4 i. \, O6 u+ m* JID4,V03,O,C,RFA,OFA,
; z. E# q4 U2 Y! F: s1 f+ WID4,VF4,O,C,RFA,OFA,O,
0 p6 X" Q: L4 Z" m0 z. [( be83,+ _  L* _5 l  r) s
e83,
$ S5 b! Z# V  `4 E* a5 f# we83," ?( s6 Z& g( Q0 H+ ~
e83,! R% E8 L( ^7 N8 a- ^
e83,
1 F0 c2 c$ e. _3 Z* Je83,# Z8 n* L) Z+ l. S& Y7 Z2 C
e83,
. b7 L; {/ D, ]) _: q' W, J" h. Re83,
3 G; c( C' J3 l" n& We83,0 s. H# m4 v, D: I. Z
e83,00,C8,2E,0 I. {. K) c2 R3 ?: Y$ u- j
e83,00,C8,2E,  a) }4 i9 Z4 t) }& L& e7 }5 j" F
e83,00,C8,2E,
. E$ N, k0 {# I& Xe83,00,C8,2E,* N$ _5 p. G( 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 n8 H+ l# \3 ^
e83,
4 o+ G, m2 ]' K3 k8 s$ V
) x! h5 D0 R$ ~7 ]+ `
5 e+ L; i2 \% m3 M+ Y! R( x  e; k& Z
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。, B0 u& E" }# s2 ?/ M7 Z
Device(EC0) {
( \( V8 y9 U7 jName(_HID, EISAID("PNP0C09"))8 n; Z9 f% [1 F! [2 r  d
......5 X- T+ ?1 A: K9 M+ f
}! S* F  ?" d# l1 @( X* v
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,1 ?0 o: [4 ]2 I2 g# K6 S
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
. O) R" g7 X# I1 ^+ {1 d' K% \2、    8 c0 g# q+ U& q/ g
Name(_CRS,ResourceTemplate(){           
, i3 L% m7 e, m% y4 r        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
) f8 D: \9 T5 C3 ?# i: H            IO(Decode16, 0x66, 0x66, 0, 1)! G* j& K2 W. M0 O
        })+ k$ `3 t# p0 r9 g
3、接着就是
; M5 L9 n+ [- y" Q9 C$ {Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
3 ]5 @  K5 X* R. K# a0 S) }通过这个声明,OS知道EC和哪个GPE关联起来* R6 G; P: S  e$ m% j
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来9 r1 ]% s9 \" Y- Z; `
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
5 M$ s" z/ f, a, @- S4 ?而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。1 h: E& b; L5 Z- A0 D% I! ~4 n3 G
3、OK,看看linux是如何处理SCI中断的
6 q+ E! v5 ]- Sacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
2 f, k) G. i5 n( k1 T4 p6 O2 t5 Nacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
- ~, C2 V: c" @6 _4、EC接到0x84查询命令之后,就把Q事件号传给OS
  q2 Y7 A( K+ `OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
( y' B, j4 n- Y; L( l) s你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了4 O' x4 s( W' A, v9 E# ]
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
0 W% i2 ?2 p* P+ [) s  ?qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
% v4 w* q  e& Abug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
) y5 m& \0 f4 o7 ]/ j版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-19 23:49 , Processed in 0.139307 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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