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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
3 z2 ?$ M  w- i1 l( w今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
3 Q) Y7 s/ P* I% l$ D  t0 F7 n+ w' W我们在操作系统下用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的命令. ^4 k+ {5 u8 K. Q* f
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
+ B( Y# k3 ~1 g* c9 J5 H" y7 |这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
5 j" ^5 v! a' a2 A' T其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。/ U5 A$ Q( C6 [" r
1 k" y4 q8 O2 k8 O! r! }( \: y
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
7 ?, J( U: }) m! Ve83,/ B! }$ r: d& }! H
IFE,
# b- @8 I+ T( W6 M+ Ne23,oFA,
  q! `$ `. S# d$ y. XID1,DDF,LPC RST
2 M1 ^4 Q8 }0 u2 b9 }: eSwrong LPC RST" K) o* J# s* D+ ?; K
LPC_Reset_Flag=64
" x. `8 }- V9 K1 ]& P
- h+ q- w4 h7 O5 d
ID1,DDF,
! V6 p4 U! m( N: M6 k  tIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
8 W- t" H" |' d/ o& fID1,DDF,
+ N8 E# }+ N) }& Q# B( }I90,VED,C,RFA,OFA,V01,C,RFA,- r8 v6 ]; C! _# Q- Z7 A
ID1,DDF,O,OFA,O,
/ O' @0 \; D) P+ `$ v! \$ Se2A,>IDLE
" U( F+ u; ]' Y: a! `3 ?oFA,<9 f! }6 g' s1 B1 Y* b- v% ]9 F
e00,
( q! q, G9 L  p( HIAA,O55,O,; _. \/ M% l: ]  D1 _
IAD,
: }" Q& F6 P+ M3 l( y$ MID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,8 V! J% c" J4 d  _
I60,O,D65,8 o& w. `, @7 W
I60,D6D,VF5,C,RFA,OFA,K20,! B3 J1 B. D% l8 Q
IAD,
0 H5 ]3 K1 O5 c8 M. m0 dIAE,O,VF5,C,RFA,OFA,K20,1 o. T' N9 g# T: a2 o
IAD,' Q7 B& R7 m* {% a
IAE,O,
  Z0 X0 D0 i: J% eIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,$ V7 Q& [. r( ^. F% i6 q
I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,& u) n3 E" K+ x9 B, u4 [' b1 q  {
IAE,O,
! z/ C8 ]" f0 U( {' V0 }. f- Ae91,d2F,d00,
5 V% s7 {+ g  ]8 |e10,d83,d2F,P3_K#. Q! `) D% m  i: G: x: c. t
P3_K#

- ~! n# K& y7 c9 D8 m0 C
/ I# P7 ^5 g0 L" xe23,oFA,
6 f. a6 ]+ }& M6 i2 P' RI90,VED,C,RFA,OFA,5 m! n% Q( a4 f# M/ `
IAD,
& q0 k+ I* m% o4 H4 X* oIAD,O,
6 h7 f. s# N( T( g3 P! ^8 g1 x/ QIAE,V03,C,RFA,OFA,) C( G7 M1 {, b1 n. P& M2 T
IAD,
7 \  a0 i) G/ o1 ~# VIAD,O,
$ D. e1 N  M$ CIAE,+ d$ f4 ^5 C; n6 Z: a# T
I90,VED,C,RFA,OFA,9 b1 f* ]6 V& F0 h) H
IAD,6 T6 E* q  W8 _3 l7 V4 `
IAD,O,
, Y# @5 @! N0 [6 A" `$ @. \( Q% t- ZIAE,V05,C,RFA,OFA,9 L/ @7 g3 U) j( T
IAD,
6 d* W3 |8 x2 U) OIAD,O,
/ Q( Q3 e0 ?' U: QIAE,O,
7 v% t, [+ }1 v- ne90,d2E,o00,$ s; q$ a( G8 F/ e) a/ F
e91,d2F,d00,P3_K#
; k. M7 g5 r. d/ ~# W* k. MP3_K#

/ @- w6 |  [; A( {# P7 X( c. Z) |
6 w  y& F9 p, [" O. a2 xIAD,VF3,C,RFA,OFA,9 B4 E% P2 c5 [" b5 K! Y# S; |7 [5 ]
IAD,
, q" H# Z6 R  L- mIAD,O,: v' k/ P! I; ~; D9 c5 V. ]( E
IAE,VF3,C,RFA,OFA,# k  X$ W  Y5 h" h) u* i" ]
IAD,
( z' D& q. y& B. j7 z9 _5 y- XIAD,O,
' W. M2 J5 L% m' @! X2 q$ y7 oIAE,V20,C,K10,RFE,OFE,K08,! [, k8 r1 K0 T& }& y
IAD,+ F3 d( S# x: z; s+ r+ }
IAD,O,
. v# q' |% B/ K2 F; iIAE,V20,C,K10,RFE,OFE,K08,0 r' @% M- v! ^! v- J
IAD,
% ^7 M+ l! V6 ?4 N5 a- JIAD,O,. q2 l4 a! A5 B, j9 L
IAE,V20,C,K10,RFE,OFE,K08,
2 \$ P6 R+ M3 zIAD,' q* y" {5 N6 ^8 z+ G+ E# G* h
IAD,O,
( U4 s. u/ n* X+ YIAE,4 g4 Q1 J. U0 e: B; @6 G
IAE,VF4,C,RFA,OFA,
' P; W( v" ?' i/ ?IAD,
% D& f; Q9 y. m$ a: D. Z3 fIAD,O,/ u- A4 P: p0 D, C
IAE,VF4,C,RFA,OFA,3 u* _  S0 c" y
IAD,
& X' l8 G2 }& P' O6 H6 c2 NIAD,O,
' C" c$ x& [  j! E: Y& ?7 H  XIAE,VF2,C,RFA,RAB,R41,OFA,6 [* q% n1 E. X. v8 C: \% d
IAD,
* g5 V) D" h0 ]1 `0 o8 q# yIAE,O,OAB,- `6 O* x3 f) o6 W4 F
IAD,7 o9 _7 ?- O; f$ ^1 H. s& u' J! D
IAE,O,O41,
/ u2 ]5 m5 t2 wIAD,. p* m+ V4 |% Q, {4 d
IAE,O,VF2,C,RFA,RAB,R41,OFA,. |  r8 u  h! }8 g- g
IAD,
5 G8 I+ a& V, W% c$ f" @IAD,O,OAB,
! }4 Y8 w& d- p' c3 E7 j4 U7 UIAE,O,O41,
- v6 _$ F+ {+ K4 t8 \1 m4 }IAD,
' n! R: {& J% [6 K$ u' d: |IAD,O,
6 U% U4 H; Q/ B. ]IAE,VF2,C,RFA,RAB,R41,OFA,
+ S! k5 h3 |+ Q+ r- ZIAD,
. k  K: b  w8 X; E4 sIAD,O,OAB,# ?& F% a1 R9 G/ J
IAE,O,O41,
2 b, Q4 H! S5 x, M$ N2 h8 L  e6 b5 D5 YIAD,
/ ^4 p' P% F; e) B' Q' eIAD,O,
5 c. {0 E3 U4 T  CIAE,4 j, j/ J  l7 S& }2 R! a" f
I90,VED,C,RFA,OFA,5 i. `; _, m0 J5 @/ c2 ~
IAD,
: r7 I4 Z% d/ Y. L. v$ D: ^IAD,O,* g- j4 A$ a* W0 E, Z; U6 }: k
IAE,V00,C,RFA,OFA,
; q* `0 x% [! p# [9 yIAD,
+ w% [* s$ E+ ]; h! D, o5 k. oIAD,O,
- w* ~- ?1 ^. B8 JIAE,
: \- }! v% Z+ N* xID1,DDD,
5 {" a. Q) I9 c+ u* {ID1,DDF,
6 d% W% U3 n9 a* U; kID1,DDF,/ w2 X& `# l: q1 |+ X  F
e22,oFA,
( E1 K, t" Y4 }! n1 d6 Be83,, u$ d& Y8 |) W& E2 ?: M4 T
e83,
& }1 ^4 P$ q' B2 y: g, o0 e8 ie83,- T0 x6 H+ o8 L. M
e83,/ E& {- T: i1 f7 L  o
e83," A* s9 i# y8 O9 z3 e) d
e83,
0 D+ ~- V: U1 Q: c& E; ie83,! f$ l3 C/ `6 E( k1 h5 G
e83,; ?6 s* t8 U+ V- |" C, E! n
e83,
4 R& o$ H* }5 ~* a: UIAD,+ o3 M. }5 {. a: q6 H
IA7,( o: n2 K6 i/ z0 e& B, b7 j
IAE,O,
2 e; c& a8 |5 _, oIA8,7 \% l4 g7 u# Z; p, j$ i# R
I60,D44,( F" U2 l6 T; A$ S- v5 j
IAD,0 x; L+ a' T7 v5 P' ]
IA7,
8 ]3 \& V$ _9 ~9 MIAE,O,$ s6 d3 X* B) q
IA8,VFF,C,RFA,OFA,RAA,OAA,
. X+ p2 l+ O; `. T( [IAD,O,K20,( p; N% M7 @2 _7 \7 o
IA7,
5 O% z0 q; J# ?7 FIAE,O,
8 C" b, L! d+ v6 s8 `6 S5 EIA8,
, }* L$ b" v' @, KI60,D04,: m) a  O" E7 i# ]' d6 p3 U
IAD,
7 u9 @% O5 d8 w, }IA7,3 G/ r0 ?2 r2 G# [
IAE,O,' Z0 i' E6 B$ F
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
" z5 {0 E6 h$ k5 k! d! o6 VIAD,O,+ I% b" ?; I( X5 x' N
IA7,; V7 T) e( }/ Y; P/ G; e6 W0 w
IAE,O,
' V4 r$ n, }) ^: E: lIA8,3 K+ I2 _7 f- \8 z" v
I60,D44,
( S' w, b6 b- DIAD,, |7 n) s0 X0 ^$ _
IA7,
! f, f: r4 S3 I+ R. QIAE,O,
% d) B$ q4 F- S1 i/ @6 x: }IA8,
1 R+ J; s9 h9 Q% j# `7 RID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,2 ^( B  I3 b# r% A4 B# ?  Z, w
IAE,O,! s7 `6 ]8 J  Q$ W6 O2 M  B
IA8,0 ]" |5 i5 |) u( ~
IAD,* T: y8 L/ J. X# ~$ C' U( H
IA7,
( G" W1 O! ]( C1 [$ D1 `5 K% tIAE,O,
  s7 ]6 k7 C+ m5 m- \IA8,
2 g$ U# n- r% E8 |5 Z$ e8 AI60,D47,6 K  T: `% _2 F
IAD,
: |: N3 E  d: aIA7,( z; ?$ @9 U9 z7 p4 `1 J/ g4 w
IAE,O,5 s5 I' l: d1 j; h% W- M+ _1 N
IA8,
4 ?# G( |4 C' P$ \" v' x$ MID4,VFF,5 A$ p  s; p5 ?) j2 T
e83,C,RFA,OFA,  }' I: m( b9 `8 H7 k
e83,O,RAA,R00,OAA,O,O00,
( c% d2 c6 n$ V+ O# j, N6 X& WID4,VF2,O,C,RFA,R00,OFA,O,O00,
8 f8 b0 U) ~4 }9 lID4,VE8,O,C,RFA,OFA,5 z! L6 u% O9 S
ID4,V00,O,C,RFA,OFA,
1 o0 u* M) s4 Z) I# XID4,VE6,O,C,RFA,OFA,( R9 P$ B" i  \; f
ID4,VE6,O,C,RFA,OFA,
# q# ]: b; D# E6 X" W' W, H. B1 IID4,VE6,O,C,RFA,OFA,1 |( g/ J% w2 m# s, _
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
' Z# ?& W8 h- a4 N. SID4,VE8,O,C,RFA,OFA,6 q/ M( s& Z, E
ID4,V03,O,C,RFA,OFA,1 d# }. E" e, [7 M( x3 X* g
ID4,VF3,O,C,RFA,OFA,
( z# F8 h8 t! N# E. }ID4,VC8,O,C,RFA,OFA,- j; W* i# ]5 ?( i% Y- {" u3 A1 P
ID4,VF3,O,C,RFA,OFA,6 U# e$ a- L, O, u7 O( N0 Q1 C
ID4,V64,O,C,RFA,OFA,) \" A! U/ q9 ?& [4 t* y
ID4,VF3,O,C,RFA,OFA,
! D  @) F; B8 N5 k( f% XID4,V50,O,C,RFA,OFA,' Y+ Z/ A& B+ o
ID4,VF2,O,C,RFA,R03,OFA,O,O03,) w+ `5 {, }. Q2 W8 T& R
ID4,VF3,O,C,RFA,OFA,
2 K: J) G( Z1 x; \' N& k2 CID4,VC8,O,C,RFA,OFA,
0 W: g" B. \1 r& vID4,VF3,O,C,RFA,OFA,
3 U/ Q! l) ~, P2 @- M1 i2 IID4,VC8,O,C,RFA,OFA," D! X4 c4 l4 R6 p0 y
ID4,VF3,O,C,RFA,OFA,! |# m3 `( \4 m7 X& J- ^4 a6 L0 E2 _
ID4,V50,O,C,RFA,OFA,
* _; Y9 W' P" m3 N/ L0 |; KID4,VF2,O,C,RFA,R03,OFA,O,O03,$ a6 T$ H5 R* ]
ID4,VF3,O,C,RFA,OFA,
) |: M( m  g1 P$ U; B" ~, gID4,V64,O,C,RFA,OFA,: j7 |, ~. Z0 }. ^" z4 Y
ID4,VE8,O,C,RFA,OFA,
) ?  V3 l& O4 E" F. CID4,V03,O,C,RFA,OFA,
% ?8 L$ }- A) ~) s6 M; ~4 b% o# k6 L4 b# yID4,VF4,O,C,RFA,OFA,O,
$ B6 x, q& o' Ye83,9 X( ?  B4 |  V, q* a
e83,# w& y4 I; X- J9 L7 X% ~% T/ ^
e83,/ `. Z! m, y$ }( l
e83,  Y( n9 W; z$ Z
e83,
8 ]9 `; D: m3 w9 Q( w, z3 }, Qe83,
; _) S" S6 x( ee83,
2 X( p; x0 U9 Q" y4 k+ u2 C' Ue83,, v: q: b. u' c0 A* {
e83,4 }0 H6 J  f9 O
e83,00,C8,2E,
4 o& E2 ]- F, z8 G: o- I0 M7 he83,00,C8,2E,5 L3 q+ A# G% h
e83,00,C8,2E,
# L/ K* N' K3 _' b  j9 ye83,00,C8,2E,: j2 ?+ K8 {3 k: N2 a$ f6 l
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,2 L. Q1 y; e. \0 u* z
e83,
) T- s, _8 |; n' f

( N: `) D( D3 L* V% F* E
' G$ s( ?* p1 F" m2 c[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
- q0 c0 k5 O# R0 y* r     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
7 v- m8 P' Q3 L8 {- [      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
7 M. O: e' i: {. q3 y- J      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
6 A( U( y! M6 c- I) j1 @      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!3 o2 q2 J& R6 p( I! ], k0 `
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
# Q9 l0 J- r: d9 O2 u! ZDevice(EC0) {
- B" G4 G7 P" z! ]8 }Name(_HID, EISAID("PNP0C09"))
: c# T" y$ `, l( N7 P......, w: z& E6 |; Z8 \! |1 i* y* O5 y
}
+ w0 ?. a7 a% J/ cPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
$ f0 a) L5 y+ [% D3 _. f就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等): {3 @) @  @, J9 v5 A4 Q5 u0 h
2、    / T- W4 I( O7 K  \
Name(_CRS,ResourceTemplate(){           ) J$ t9 E  {' }2 P! P/ X# f
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x845 P$ O$ m4 F9 c! s* j
            IO(Decode16, 0x66, 0x66, 0, 1)6 B) |) E+ z& h7 _0 g* g$ E
        })
3 H" M9 t6 |* b3 Y0 Y3、接着就是
& r3 f0 m! }- g3 |Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7. S# u9 L0 H0 E- r+ q+ Z5 a4 g5 u) F
通过这个声明,OS知道EC和哪个GPE关联起来, J% ?. a  @+ K* ~
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来6 g  H- ]# `  Q. R& T  K" s7 Q
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
% t8 |+ F& g" W$ E4 y而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
) M4 C3 g0 t+ `! Z8 z4 h3、OK,看看linux是如何处理SCI中断的, _: `) ]6 n& i" C# Z$ K
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
4 ]' u' a7 ^) p1 aacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)9 f* ]% R9 I. K- {
4、EC接到0x84查询命令之后,就把Q事件号传给OS7 Z' W/ X% l& O. p9 g, B
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
, {6 i3 C% C8 j9 M: ?$ C你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了7 R) @% z: K) h, @3 F& S6 N, K$ O
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。% R2 P: N. O( {( E# k& w/ Q
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
* J2 o4 q. T; gbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。! J  I' u' h# p5 m7 C3 Y6 `+ e
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 05:35 , Processed in 0.127990 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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