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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,6 z- N5 }0 d' z% }$ ?
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。
/ f' w/ R8 P% j9 y) 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的命令
$ @, o7 d. |# tD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check9 H0 k- w- I+ N: i
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
% H0 |. T, K* K* M( t其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。0 G& y$ O' s! Z: _9 w9 w5 w

7 q! f% J5 ]* [% cVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,) W1 \! x  P& z6 `2 v3 P
e83,
( `  |' K5 o5 n% ]9 g* Y4 p& Q  kIFE,
5 \! _7 b5 d8 m" f, x. v3 V! fe23,oFA,
' `4 U! _7 _- }! j. U% bID1,DDF,LPC RST
& P( ~6 o: i3 a# [% T% C3 Q3 |$ g  ]Swrong LPC RST
/ \0 s* `( x' T5 x& zLPC_Reset_Flag=64
( J  J% u" |; l
& x) l% ^0 E; o! g3 O3 r, T# a
ID1,DDF,
+ i9 d6 r& d( Z! v* ]4 L: dIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
% ~( o0 N5 L1 u/ E4 VID1,DDF,$ l5 ?9 i% b# [) B+ ?
I90,VED,C,RFA,OFA,V01,C,RFA,
0 i8 ^! ]; m$ t% ?4 YID1,DDF,O,OFA,O,
7 }  s5 E$ @8 E3 y/ ~e2A,>IDLE, |- I% |6 N6 n5 K
oFA,<
! ~- G% t' l0 D, me00,
1 ^, w" V2 Z. N9 nIAA,O55,O,# k6 O' s+ r3 ?4 C( |/ T! z: K
IAD,
" F& ?9 {* o, }9 B# k! w# F! ]6 KID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
: E- M# u7 V8 `, FI60,O,D65,2 }: S+ [1 d0 C- c2 Q0 ]
I60,D6D,VF5,C,RFA,OFA,K20,+ d0 r& @: L" k) |3 ~8 l
IAD,
# E5 {+ W" x, j) {" u' YIAE,O,VF5,C,RFA,OFA,K20,) B' Q2 x" r3 j" x) Z
IAD,: {/ @9 B5 b* c
IAE,O,
0 K9 J: `8 l3 h4 W/ C4 T, ^IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
7 q1 N' [+ Z" t& ?I60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,5 F1 n  |1 x* W+ P1 e3 x
IAE,O,
, t2 Q2 o: l, G9 fe91,d2F,d00,
) r. k1 ^# ^6 T& Z. `6 j8 t9 X, je10,d83,d2F,P3_K#
- C$ O" i* s, }9 L6 g5 h; \: tP3_K#
! k9 R8 n- {- V+ k8 [
4 C8 a9 U9 k% o  y7 K2 t
e23,oFA,
! L) j3 ^6 |( N2 ~2 mI90,VED,C,RFA,OFA,- Z  Z7 Y( C9 y+ W- E
IAD,) Q3 k( H6 N$ ~9 B9 C
IAD,O,  p8 k: L9 t) R1 ^7 i% v) f  P
IAE,V03,C,RFA,OFA,1 {; E9 _1 t7 b8 L
IAD,) [' x+ r1 Y" v( o( B
IAD,O,4 Q4 F5 f6 s0 T. f* w/ ?
IAE,! Q5 O% D6 \$ ^; v( g5 v
I90,VED,C,RFA,OFA,
; o/ L. K/ Y& p- e) aIAD,
3 g7 o8 c, ]$ t/ K! vIAD,O,
4 [* h* J( M' x8 y: F: IIAE,V05,C,RFA,OFA,' _4 h  S* ^4 i9 J) F  b
IAD,
$ c% R- Y" I: [( d# \IAD,O,& C2 b" @* P6 P3 b; W7 j; K
IAE,O,
0 E* C3 `' V& T4 m5 G# Y, _+ Ie90,d2E,o00,
( L' n/ J/ D* o) E8 p3 ue91,d2F,d00,P3_K#1 X- r4 ]* q8 M
P3_K#
, r; ?8 N9 j. x

$ \& [, v* x( R5 T4 k/ @IAD,VF3,C,RFA,OFA,
9 Q( v/ Z2 H3 H6 ~; F( _IAD,
4 l* F3 |( a1 s2 h9 k7 u3 u5 M9 z" Z% f( fIAD,O,. e/ e  j! V  ~
IAE,VF3,C,RFA,OFA,. L$ S/ E3 c9 W2 V0 C* V, I
IAD,
- C) ^5 M  k' JIAD,O,
# V5 L( c2 T2 l: S% q0 R1 d/ UIAE,V20,C,K10,RFE,OFE,K08,
$ D8 `: J1 T! z3 B7 M2 r6 VIAD,/ s0 [2 h. ~" b* F1 C/ c. `
IAD,O,) B) C% K5 E- V! }2 s+ t5 h3 H
IAE,V20,C,K10,RFE,OFE,K08,& l% O8 [, r* g: c, D& t
IAD,
" n- m) H  F- {9 g* {IAD,O,% q3 K$ G5 c" K7 |
IAE,V20,C,K10,RFE,OFE,K08,) _; Y! K  L! z. E
IAD,3 v& `$ }; I- B/ e6 |; j
IAD,O,
. W# w9 }! C: b# c, I9 HIAE,9 P. F+ a( Y0 w0 h5 O4 y
IAE,VF4,C,RFA,OFA,! u  {3 W2 B3 e
IAD,
5 u, l& f9 ]# M! cIAD,O,
4 F( W7 m9 _' J* Q. t% i3 FIAE,VF4,C,RFA,OFA,; x  r8 K5 M8 X( \- i1 @1 j+ v
IAD,
- W; Y, a4 C( @  MIAD,O," s" f# j$ F4 D, m5 o" s9 [2 C
IAE,VF2,C,RFA,RAB,R41,OFA,
- M, ?7 @' k) ^6 bIAD,
3 T+ t. ]( o% Z- Q; E8 U, t3 {- ?IAE,O,OAB,
7 J) s0 b8 c+ k& j( m  u  mIAD,' c5 N5 t. {5 r* b' l2 ~
IAE,O,O41,
8 R( [0 E' b6 ?4 g1 ]' F; xIAD,) k4 L, ~4 q3 I
IAE,O,VF2,C,RFA,RAB,R41,OFA,
5 v. S$ j: q7 \; R( q. i9 gIAD,
6 z8 M* g2 q* I* XIAD,O,OAB,+ V" U8 ^9 h# q0 F
IAE,O,O41,
( @% I; |8 h+ l5 sIAD,8 Y5 K1 I, m$ k  {
IAD,O,  w3 s' z' `- f; }, v
IAE,VF2,C,RFA,RAB,R41,OFA,6 _3 f* [$ ^( X- y6 T
IAD,8 s  f  d* g& G: o, F
IAD,O,OAB,) q4 L2 N; \( w/ @* ?+ E
IAE,O,O41,
4 O* E6 }' f7 |2 pIAD,0 t2 g$ V/ J' j% T$ W
IAD,O,
7 w+ U  b; M  D- ~7 c! k( _5 JIAE,
% T7 i; _7 o; }. {4 V( DI90,VED,C,RFA,OFA,# C0 m# p9 H" |6 l
IAD,
: d+ m. j  p+ jIAD,O,
8 ^4 g( |, `# Y! YIAE,V00,C,RFA,OFA,
! l# _8 @$ U, F3 yIAD,+ `  M- }! X0 b4 d4 Z
IAD,O,
3 k* {& Y4 F" `7 a" WIAE,
$ J" S* ]/ y2 ^* t% z9 j6 N6 xID1,DDD,
  h) |0 r' m& B6 nID1,DDF,( ^$ B' o2 B7 o
ID1,DDF,0 E; t/ R7 y( g$ n0 w7 x+ J, i
e22,oFA,6 h5 W! F: g0 |6 D7 g$ `
e83,* r* P/ k6 b3 f$ z
e83,
1 U6 q& e1 A" ~0 h7 W0 d+ g% i4 pe83,  u2 @! y9 B3 g1 S7 A+ _
e83,
- O* ^* k9 V- I; W( Ie83,4 F! t/ n- T% W( ]
e83,+ ^, p  C8 @  p" X+ f! n: a+ r
e83,8 m3 n( J. O1 x: A" o% D
e83,& w: M+ q; `9 V$ O
e83," _  H( c, V+ x
IAD,
) |7 \. r! Z. {$ z' [3 j5 tIA7,5 N; H  E- ^* a6 i+ N2 t; k7 f
IAE,O,
- E, y+ M' e0 ?; i) HIA8,
3 h2 v% f$ A0 K* r+ M8 T, E. [I60,D44,. m0 f8 f4 L0 l# Y! N( v* |3 _/ r) x* c8 u
IAD,( r8 a4 T# k0 [* z# A8 x
IA7,
' B( ?# i' a+ w- }IAE,O,
$ @8 D. A, }. [, G( ]0 [* NIA8,VFF,C,RFA,OFA,RAA,OAA,' \9 q. p" r8 R- X4 W
IAD,O,K20,
! x$ V0 w. G# E3 c2 NIA7,  q9 @) Q& \% D) z
IAE,O,
2 u7 v/ r' N1 `IA8,) Q' c% ]: j4 S  @. h7 g
I60,D04,4 S* w3 k! S- J& @0 V
IAD,
! ?2 l7 ^$ t/ J' I2 eIA7,. u, t: W4 f' ~- [0 i( c9 T
IAE,O," I: s0 W; v/ i+ O
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,( P0 n% N$ _$ s) l1 T" E
IAD,O,, O2 S. N; |1 h/ j  }0 {/ D. b& }" F) h
IA7,9 V0 d' ?: ~; F; h) N
IAE,O,
2 q& _! r5 a7 f3 W% v' @4 ~5 F/ v- v  jIA8,2 d- E) I8 Z% |1 c2 _4 ^0 A8 k$ ~
I60,D44,- L3 Z; ^7 W& n+ x+ E  s# E5 i: r5 C
IAD,
! S+ {0 s' v5 k$ k" K3 s6 ZIA7,
8 }* D/ u( R5 i2 m/ uIAE,O,
) c; s1 g8 a  d  ~  MIA8,! f0 z, `# `& q; {8 V: P/ h9 p, C
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
& i/ z1 A; e# q# s9 B# X1 MIAE,O,( J0 R1 {2 Y; j$ J# q- [
IA8,7 L1 W2 @2 Y8 n* K
IAD,$ {3 B4 X! z! @) m/ e4 H$ }
IA7,
6 z3 Q8 a; B. C* X, {IAE,O,
1 w! P, u- ^- h2 r# M  T& rIA8,. H7 y) _1 X# N5 G* |. v# `  t
I60,D47,* F  B% v0 R. Y! C1 R$ ^
IAD,
: |+ x% l. i8 \0 |) DIA7,
8 u" k. ?9 d9 G* y: X- vIAE,O,
5 A3 [9 V/ o* s9 ~: R( p4 r  c$ YIA8,
- }1 B& \# s7 w1 j/ m: f! p6 hID4,VFF,
' L# T+ h  y, s) ^e83,C,RFA,OFA,
: h# J8 n6 Q; @7 Z& ^3 Pe83,O,RAA,R00,OAA,O,O00,
1 X4 \8 n# i* u% R5 ~ID4,VF2,O,C,RFA,R00,OFA,O,O00,
! {, O) v$ z( a& ]ID4,VE8,O,C,RFA,OFA,; U3 ?- o; @. U. e
ID4,V00,O,C,RFA,OFA,
0 D) S" J; `$ {0 GID4,VE6,O,C,RFA,OFA,
9 J5 C9 s# V3 D& cID4,VE6,O,C,RFA,OFA,
* c. M7 g+ d) R* I. R. eID4,VE6,O,C,RFA,OFA,
4 J2 K% ^5 E1 o1 sID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
! |# T! J% w6 _. XID4,VE8,O,C,RFA,OFA,
1 q) e# D2 l6 \- r( s; VID4,V03,O,C,RFA,OFA,) q2 m& k/ T' o: V4 x! c
ID4,VF3,O,C,RFA,OFA,
) k7 H  d! j( BID4,VC8,O,C,RFA,OFA,+ Y* }4 M! m5 p  ^
ID4,VF3,O,C,RFA,OFA,
, \7 O* X! J: \ID4,V64,O,C,RFA,OFA,
+ ^5 M8 ^0 ^) K1 B5 P* m/ r8 cID4,VF3,O,C,RFA,OFA,9 A8 Z8 s, O* j: Q3 Y
ID4,V50,O,C,RFA,OFA,
4 S+ r, j7 c9 n3 Q, p) WID4,VF2,O,C,RFA,R03,OFA,O,O03,' z3 w3 v- {7 k7 g2 W- X4 h
ID4,VF3,O,C,RFA,OFA,
; p  ]- D* J7 r  D  [, A5 ~$ T- TID4,VC8,O,C,RFA,OFA,6 x9 e, \- |4 d% a$ p3 J5 d
ID4,VF3,O,C,RFA,OFA,% R; k7 _& m, |, `! y" w
ID4,VC8,O,C,RFA,OFA,- }/ b! ^3 p! o5 {+ ^* {" K& x! i
ID4,VF3,O,C,RFA,OFA,# {- M& m6 N5 @/ n7 e9 x
ID4,V50,O,C,RFA,OFA,
$ J0 m  B9 ^' G3 x& t1 K/ ~ID4,VF2,O,C,RFA,R03,OFA,O,O03,
) a7 w! v; B: T' d- JID4,VF3,O,C,RFA,OFA,
; Y' d! q4 W7 CID4,V64,O,C,RFA,OFA,, H/ j7 J* s0 ^/ _9 @: x' u
ID4,VE8,O,C,RFA,OFA,
3 m+ a& H% |7 |4 O/ L3 `) [ID4,V03,O,C,RFA,OFA,
9 r  S9 d" z8 w. |1 gID4,VF4,O,C,RFA,OFA,O,
# [, J( }* L1 W+ Ze83,
( M$ T& M: @% D7 k% V$ |% t% he83,
. x, F! c3 X. ?' P: J" \e83,8 M. h4 u9 h! H! u
e83,
% w1 K9 ?4 l3 J) We83,* |- j# x; Y% t( i. k7 K# o
e83,4 K) D! q* W  i  E7 T* d- `- u
e83,
. k/ A6 h6 v5 l) U1 P, me83,
2 Z" x# \+ [" w: Ae83,
- A# G2 U' A* f2 |; @e83,00,C8,2E,
& D* `! e5 o, U: R' be83,00,C8,2E,7 ^- [. [+ q4 x
e83,00,C8,2E,
: u# ^& U  Y1 d: Y3 t- ^/ pe83,00,C8,2E,6 N& q5 @7 O3 a5 P
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,: H( \% b6 [2 t. \: z
e83,3 S# T# a7 b/ L3 c

4 X+ l: s; U2 A
" A' l7 Q# i2 V5 ]0 Z# Z& @[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复
& J$ }; }# Z- b     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
! ~! b- Z+ E" O      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
; {9 a5 H! a1 H4 x# R# t9 W      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。
$ V- j6 P! v7 v1 z7 m      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!7 n, U) ~7 r' s6 j( D$ t
BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
. B" P1 Y! {2 {! s  \* p2 k; sDevice(EC0) {
' D; b% P9 ?  j* S+ dName(_HID, EISAID("PNP0C09"))! Z9 f7 p) _- C! B% \& T
......8 J9 a4 T7 l+ ]7 I; w* \
}
4 b) L/ Z* W: r% uPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,# a! E, k8 n  t  L( g
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
; l; t; C, s0 _+ M8 C2、    + y( r2 c6 w- Q3 d
Name(_CRS,ResourceTemplate(){           7 @* r/ W. s8 B+ K4 S# K2 ?* J
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
1 o% d0 S/ o8 [6 M. u            IO(Decode16, 0x66, 0x66, 0, 1)
6 P) K9 c; l- h) b: L5 Y        }); [! @" r, v+ ?& [4 @8 n7 Q
3、接着就是
" i7 X/ p  T% R% D3 XName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7& X5 K: C: W# N% x6 c0 V+ H' a
通过这个声明,OS知道EC和哪个GPE关联起来6 ^: G( T* I) d6 P3 J% ]7 _2 X% B
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来6 F+ H1 P% r* c0 O( I0 _
EC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。6 j; y: \+ t4 q) x& w# P' |/ h
而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。
/ J+ K0 {: e3 R7 f* b3 K3 ]3、OK,看看linux是如何处理SCI中断的
/ u' ^: D5 `* \acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute9 L5 @9 ?2 N9 I3 }; X% H# ^
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)1 c, U, {% X1 L8 Y- D
4、EC接到0x84查询命令之后,就把Q事件号传给OS7 X% ?+ F  f3 \* q
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
, A* X% }1 X! H. A0 w' |你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了+ n; j2 C# {/ U/ b4 [, [, M
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。
9 O" p2 y6 n) G4 O$ s8 X( n/ dqdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm- z; b8 F- Y$ b
bug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。, Q& o  H9 p& [: V5 h0 y
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-15 18:21 , Processed in 0.055062 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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