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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
9 Z9 B7 u, p; f9 w今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。. W$ V+ [; `- R- n4 p
我们在操作系统下用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的命令/ q0 u& w/ m( ]' m  o- z4 W" F
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
' a; Z& @! y) Q4 i8 a' k9 T这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
* B/ g8 e2 Z& ~其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
) X5 ^- q1 ]6 x$ j+ ^
+ g0 O& z4 [/ z( g! A4 K- V/ \VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
( J6 e& b$ h% p7 H; ee83,* A' U4 {% h( R; w. X: f
IFE,
* |+ d# `9 j6 Z$ P$ ^/ F% Le23,oFA,
$ N; h7 Y- z4 `$ ^4 `ID1,DDF,LPC RST' C1 _# e' ~: y3 e  W
Swrong LPC RST
, z8 j! ?+ k4 j( v4 vLPC_Reset_Flag=64

/ t: g# [1 S. n8 L# n5 \2 O
9 j- }( g6 ~; U: t$ ]ID1,DDF,  }4 g) A7 @1 V' y! S
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,6 P: e! a/ f3 v  s3 {+ j' W
ID1,DDF,3 D7 D6 I: L7 P5 K) W
I90,VED,C,RFA,OFA,V01,C,RFA,
# C. F: ]" s3 ^$ r6 R. UID1,DDF,O,OFA,O,) h+ D- ?9 s% O1 K+ g. [: E
e2A,>IDLE( F6 f; e5 H+ B/ V! W. {6 Z" y
oFA,<( T& @5 }( i  X7 P9 ]0 w
e00,7 b( {; M, W# x8 _: G8 z& s
IAA,O55,O,* U- `! E3 ~! k; w
IAD,
. a- b8 A4 }$ {2 \/ ]. SID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,2 l+ b/ Z# E/ [8 Y$ B
I60,O,D65,1 t8 {1 @; Q, c+ S% c1 A
I60,D6D,VF5,C,RFA,OFA,K20,
! h/ Q8 P6 ?+ E3 |) DIAD,
; x# k! ]+ Z1 u* |: MIAE,O,VF5,C,RFA,OFA,K20,4 L2 x- G; Y  f
IAD,
4 S' [% K& L* ]8 a- x, tIAE,O,
' N4 z0 f' @4 h- g/ T# X" UIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
# ^$ G9 a1 V6 VI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,4 }6 D& ~2 K. e% O$ A$ J8 O0 I8 C% O/ Z6 j
IAE,O," e3 ^. Y5 W$ s4 r7 K0 U9 K& i
e91,d2F,d00,, i! ~: y' T( ]. B
e10,d83,d2F,P3_K#& Z0 S$ o& H9 O% l
P3_K#

0 V2 I8 C0 U1 ~. N6 A3 p- b: Z( n1 w1 W5 a/ V6 ~5 m, C
e23,oFA,
( m8 \, q2 ^5 Y! x& tI90,VED,C,RFA,OFA,
; _4 S: H7 m6 k6 S0 M1 I7 CIAD,. k) ~* ?) F4 ^4 {! @9 r( m  w& o! h
IAD,O,
6 ^- D* L$ r9 v) f9 Q' C7 AIAE,V03,C,RFA,OFA,
+ u- E, O- c9 w* O" Q/ FIAD,+ {. J! b8 r( T# s3 R7 x
IAD,O,
: g4 e" V* s# Z- [+ lIAE,
: c4 Z; ^+ T0 m. \/ zI90,VED,C,RFA,OFA,
& J$ H* R* ?8 E$ g. G/ H; }IAD,
/ ?2 v9 _) {6 ?4 ?7 `$ fIAD,O,6 c( j1 I6 t) v/ Q
IAE,V05,C,RFA,OFA,* I& F; I9 L( S9 D6 A( l
IAD,
# w3 W, ]" f+ d3 \3 g. MIAD,O,2 ?! }1 Y5 f& s. K. l
IAE,O,+ ], k. R- H1 E' X+ y1 `) M
e90,d2E,o00,6 w# Y# L& K% p  H
e91,d2F,d00,P3_K#- }% u* u6 r. ]" n6 y
P3_K#

# D2 S. q- K; _1 _/ n! Q# s; x
4 s$ K1 |8 W( W$ a$ UIAD,VF3,C,RFA,OFA,
9 ^$ m% H1 ?6 c' A5 vIAD,
' ~1 T; H# \/ iIAD,O,# Z4 I5 o# S5 e4 X/ f9 R. ?
IAE,VF3,C,RFA,OFA,
' j  d2 p% R6 O3 @0 FIAD,; O2 z: L- T- I( C: \, Y
IAD,O,
+ y3 [2 l1 W" F( l. [IAE,V20,C,K10,RFE,OFE,K08,- x( d) [5 f" K$ b2 m7 w
IAD,
* q3 ^" s9 ]/ @1 G+ B4 N& S+ `+ YIAD,O,
. w. ]" f# ~( S# P7 c7 CIAE,V20,C,K10,RFE,OFE,K08,
  r2 e8 I2 V5 l; qIAD,/ o+ L" u3 @5 I; e2 W
IAD,O,  K9 }7 G7 H3 E' v: }. b& |* |
IAE,V20,C,K10,RFE,OFE,K08,
+ P) v" H8 `) [) R/ M1 `/ m( e( q1 a0 Z& ^IAD,
5 }0 D* m0 A. Y# v6 ^5 t( n3 l& GIAD,O,4 g2 e3 O) ~7 C0 S8 u5 |
IAE,+ n, H* v* d( }) r& U  \' @
IAE,VF4,C,RFA,OFA,
# Y9 i% {6 B" |IAD,' R$ Y; |" B, C6 x2 N8 r  d9 }
IAD,O,# @; }+ i: I& [/ X4 y" i
IAE,VF4,C,RFA,OFA,3 d/ ~9 `& r" q( S, E
IAD,
8 y: W& U1 J& L' ?0 y: YIAD,O,. M! N$ G4 F2 h+ Y: |
IAE,VF2,C,RFA,RAB,R41,OFA,
2 T$ K6 ?7 ?% N7 S* e; fIAD,2 z/ d6 |$ ~6 F( n' |
IAE,O,OAB,
; |8 ]2 m4 s, j  o- y, x! m* J+ uIAD,  x: G( O! ^) N8 \
IAE,O,O41,+ @6 h( W* |% ~7 R
IAD,
: R9 I. O, {  w; f5 o/ ?IAE,O,VF2,C,RFA,RAB,R41,OFA,
9 a6 H( z. ?* e& r+ r" T) XIAD,
( y+ u! L/ c; A0 H5 S( t9 a. OIAD,O,OAB,
0 c* `2 j/ l& PIAE,O,O41,
5 @  k& B4 @& q5 d' o+ BIAD,
& w0 Y" l# U+ \' M! I: FIAD,O,
2 e4 Z7 P3 l/ B5 V* H0 o8 Q4 MIAE,VF2,C,RFA,RAB,R41,OFA,% i, m# P8 r: e) y
IAD,
" }" k1 G1 T0 EIAD,O,OAB,
: @. _; g/ q& M- u8 A( P8 X. l  A* V1 \IAE,O,O41,! \; S3 @0 c  T: W; }- L
IAD,
* C# c( R& \% {" w/ d9 WIAD,O,+ X6 U2 e5 Q% O( W8 L$ L* f" k
IAE,' l' Z( K1 G+ B' L" q/ S9 H
I90,VED,C,RFA,OFA,! q2 p* C, z, ]
IAD,
- e. d5 K, w1 i8 C1 TIAD,O,
8 H8 ^, C, w" r7 T2 jIAE,V00,C,RFA,OFA,9 A2 o6 F$ K4 e( k
IAD,
9 k  |8 G4 y8 M7 \0 v. jIAD,O,
' U; p5 V4 U* g$ w$ ~' FIAE,
- ?+ Z9 G: `+ o7 a& TID1,DDD,
, |" L- H/ w4 X$ c& b) [ID1,DDF,, w; c! X8 s& ~' I2 U
ID1,DDF," a; V9 {8 A1 u: N" l3 r* w* J
e22,oFA,. r' g- V0 ]+ ]  y6 `
e83,
5 l3 g5 x, n. Q. r1 v$ ?( X2 }e83,) X, l. R- L8 W4 z. W; q; W
e83,
) w) P5 x* u. n  e2 V& w, Y) be83,% l8 _% a6 G2 q( G" S" s
e83,
: q: O# T7 y% R- L& h- {/ |e83,
. i4 o. R" F; q6 S( \1 a8 Re83,! X; E) u( v1 d* \2 a( {
e83,
9 R2 x) a  _. V4 O, I3 u. A, a+ se83,
$ Z% L+ i4 Q' S  [  p( ]  k; TIAD,6 L$ F. L. }+ [7 C  _
IA7,6 B, T4 k( d1 E2 X- u$ }
IAE,O,. h/ `2 B* v; a3 q' g: C2 n6 r
IA8,9 n$ y3 F4 `/ Q8 b8 K! n% D
I60,D44,
& \5 c+ |1 }$ E9 z5 `IAD,
: m; C1 W- b: f5 y2 dIA7,
) u5 A/ S- f* B% p9 lIAE,O,
. O% G! u6 S" i2 h" CIA8,VFF,C,RFA,OFA,RAA,OAA,5 F9 P2 I- k, s3 W; Z5 S8 c
IAD,O,K20,
) I5 c1 J% g9 G7 B# cIA7,% ]  W  g4 H% w! u
IAE,O,
* [& @$ F- C. v% u: E, r% OIA8,+ Y# H5 s& g* L
I60,D04,6 J4 h6 I4 O% a7 k
IAD,5 z+ M  ?# c4 y" I/ y  `
IA7,4 j" U: }7 j; Q7 |. u: R! n
IAE,O,. j% `0 |# k6 B% H8 z8 n  x
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,8 G' ^$ t( g& @. C6 E
IAD,O,1 @: L$ }9 L/ y# C1 \
IA7,
5 d/ m7 B- B0 I* sIAE,O,
" o2 [3 _6 o; Y& o2 H' ?$ p5 kIA8,
; L- ~; V. w  H3 I$ _, B2 CI60,D44,6 m7 K& S( m/ |; h( L  z3 {
IAD,6 z7 p( p, P. D6 Y! j* E
IA7," W* O6 l5 a/ b* V7 [
IAE,O,
; T8 z6 d7 {/ I+ l  z* J) SIA8,9 |) I0 U3 \, S
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
$ P6 _8 r! i7 J' AIAE,O,4 l. K$ v$ S: I0 [: h! n
IA8,* J. j9 P5 }& S5 x
IAD,
: ?$ G' w; I9 cIA7,
& v- _/ {( Y1 |9 ]4 P2 MIAE,O," i7 d8 ]  D, Z* F
IA8,# `4 b; O8 b8 T3 l* H: O" H5 g
I60,D47,
2 R+ H* Q8 Z  p# ]' cIAD,' m% q: K& ?1 O5 y9 a7 d! P% ~; ?+ w
IA7,, T9 q& S5 n. `
IAE,O," K5 d5 }6 G7 ~7 L
IA8,
4 u% H7 a% {4 }7 Q8 y) JID4,VFF,
! t# C0 Y8 o& Ze83,C,RFA,OFA,* j: {. g7 W0 d" X
e83,O,RAA,R00,OAA,O,O00,
5 u! {7 f* [7 g$ t& ZID4,VF2,O,C,RFA,R00,OFA,O,O00,
/ {. |8 I+ \! l& A, {& E6 }ID4,VE8,O,C,RFA,OFA,
2 H: x9 i: S0 l2 L$ G" ^: YID4,V00,O,C,RFA,OFA,: \5 f' r; x$ d9 ?+ y
ID4,VE6,O,C,RFA,OFA,2 I+ y) Y6 l4 T. @& S7 H
ID4,VE6,O,C,RFA,OFA,5 l. K# u- C8 j
ID4,VE6,O,C,RFA,OFA,
+ c5 r* u1 W; h% U% n" @! _ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
2 Q" p+ _+ v6 w3 Z8 ?ID4,VE8,O,C,RFA,OFA,
5 m3 X" y# Q- ^9 V$ IID4,V03,O,C,RFA,OFA,! P. m3 g7 s% n# m( p" l  |
ID4,VF3,O,C,RFA,OFA,: z  J( V' a8 k: b. X
ID4,VC8,O,C,RFA,OFA,4 T8 o" A0 I. e; c8 q# Q
ID4,VF3,O,C,RFA,OFA,3 o' R+ F0 w# k: ]% D# @; S: Q
ID4,V64,O,C,RFA,OFA,
; }& U6 p1 s6 I& a6 C0 JID4,VF3,O,C,RFA,OFA," J7 [' j  H3 T
ID4,V50,O,C,RFA,OFA,6 K4 P, g# @* k2 r
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
" v5 j# J' t4 A; B  n3 j' @9 N5 U; \ID4,VF3,O,C,RFA,OFA,
; S  F+ ?+ J. oID4,VC8,O,C,RFA,OFA,( y$ q, V" M- K( V9 |- c
ID4,VF3,O,C,RFA,OFA,
+ L8 u8 _% O* |ID4,VC8,O,C,RFA,OFA,
6 ]6 t2 O" J+ H# k8 P: K2 fID4,VF3,O,C,RFA,OFA,
1 ?8 @6 x1 v. A9 `/ @ID4,V50,O,C,RFA,OFA,$ y7 T' n! Z: ^  ]2 H
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
8 b! d; v$ L/ p- J( DID4,VF3,O,C,RFA,OFA,& w) @3 s3 f/ R4 V9 Z  U
ID4,V64,O,C,RFA,OFA,
9 y- ~3 }" d8 l, z& h# KID4,VE8,O,C,RFA,OFA,
8 ^# }! ^, a& f7 PID4,V03,O,C,RFA,OFA,
1 S) z4 j' t' \ID4,VF4,O,C,RFA,OFA,O,
8 e$ P: N) `# F, x1 T6 Ye83,
% w9 D/ N& f1 |: a* \  fe83,8 N- B, }4 X; F0 n) i
e83,
) S, G7 y& n& qe83,
6 ?# A( E$ M* ^e83,% ?' Z) @8 F5 [; m5 ]2 {0 F  t3 t" L2 g
e83,3 E- ?8 ^3 J3 }' u
e83,, ]" A( O* V$ H; I- X& ?
e83,$ u7 \; ]7 N! T1 e) q7 u9 H
e83,' V7 q3 W3 y5 [# f
e83,00,C8,2E,
# ~2 e* A0 ?) s. J% n; U" |% p' oe83,00,C8,2E,; B' `  e6 S. l5 ?# y& I
e83,00,C8,2E,
4 Y' X0 l1 F) _e83,00,C8,2E,
- ?* [6 {( Y) c# |. Ee83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
- E8 z& L  {3 m/ b4 P: ie83,2 j: S3 i5 ~# ~5 `& t

8 i* z) a3 o2 s; z  X! o+ w  e4 j6 E1 E# }# t2 J" a- o
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复' v: `6 G$ Q) D* b$ R
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
# L: y7 b+ z) u8 V6 \      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
6 }: w5 F0 Z; j, |. j3 d/ Y      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。3 L! L  O9 I' C3 _- g1 b
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
. |0 V0 L8 B: ?  V. jBIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
; R* ?# m2 {( A( SDevice(EC0) {
" y0 G- f6 _& `* m- X, m! O" Q( UName(_HID, EISAID("PNP0C09"))
5 }8 C9 j+ n1 B% ^. A......" a* A% `( K" e6 A: E" a. \
}. q2 H0 q4 Y6 g
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,& d% X6 G$ ~# Z3 l+ `: N$ @7 z
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)  _/ c; W2 ^' O0 z" D8 m) Y
2、   
8 `( A% N! @% p9 F3 R+ W% WName(_CRS,ResourceTemplate(){           
$ M0 L! m5 S. F* W- l( S7 k7 M        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84/ L  M0 A5 q- {$ f) [1 I) S3 N
            IO(Decode16, 0x66, 0x66, 0, 1)7 j! A" s/ E4 u4 y0 B" Q- d
        })
6 ]4 d( e' i2 f* N8 ~1 F3、接着就是& a! m3 b, l1 [# s
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO79 z) D9 M3 ~$ w5 R3 Z
通过这个声明,OS知道EC和哪个GPE关联起来3 W( d2 N% G1 f/ W
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
7 d& g" y; N0 `9 `. L: G0 x  s4 P7 nEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。% j3 |2 W  Q' a, |8 J
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
' L* p$ v) |3 n1 R, J, w) [3、OK,看看linux是如何处理SCI中断的
) [8 w4 F5 o6 {# jacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
/ J% C% v& o* ^" o- Uacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
9 v* \* q. W* ?1 c0 A* e4、EC接到0x84查询命令之后,就把Q事件号传给OS" r& f* `( S; p2 @- N4 ~  j% x
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分6 P: A1 ~& N/ r. H, p/ D4 W
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了$ E: F# R  q3 }& h6 X$ U
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。& ?$ g$ y* ^( g8 a5 Q( M5 I
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
3 D9 S1 v9 n6 nbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
$ e: \& |% B9 q7 H/ Z/ e版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 01:51 , Processed in 1.703424 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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