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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?" ~" B/ G8 f0 `3 c, @
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,* s$ P  l$ [, M% G* ~8 {
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。  Y' |" k" |$ q" V  B
我们在操作系统下用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的命令# G: L5 |5 f$ y5 O
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check: H% E8 z. k2 I& ^. d3 J: Z$ W
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
6 j% A3 ~' Q) ]/ S其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。
2 U% E+ ~$ }5 b1 v# w
) u) h6 c; k- F. l  B9 UVF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
% K: D( q5 ?* |# g1 l9 @e83,
/ a' j2 s( R3 I; M4 GIFE,
, q7 u4 R" P' M- Y8 {* a& He23,oFA,
( I$ E" }* S( v& f2 m) q3 \ID1,DDF,LPC RST% J% S  U4 c% }1 o' e5 c8 Z+ c( w
Swrong LPC RST
0 O  ]9 A) I$ k; q) DLPC_Reset_Flag=64
2 G: ?  V* [4 R9 Y# t

& R* h. [5 {& D' O" @2 g# IID1,DDF,
% J5 s* B2 G1 f" \, pIAA,O55,V65,O,C,K10,RFE,OFE,K08,O,9 [# \0 q& G) L/ o$ T7 o
ID1,DDF,9 _( W! o  {8 H, j) `
I90,VED,C,RFA,OFA,V01,C,RFA,
7 s# R+ n. I' M0 J( ^" C5 ^- [ID1,DDF,O,OFA,O,
( g& x/ B0 H: V8 g2 z9 l6 \; Ue2A,>IDLE( R, W$ {! Z( ^& z4 H. I0 L; a
oFA,<
  L+ I2 L9 l. e6 le00,$ W: Y# |( K$ d/ z, G. @
IAA,O55,O,8 `. s6 F/ C0 x( e0 ^9 V: H( X5 X! y
IAD,, Z* @) t; e; f. ?7 ~' K
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,  _; H+ Y- k/ Y4 E& b
I60,O,D65,2 J# l, |/ e! ?- e  |; e, W7 R6 d7 I
I60,D6D,VF5,C,RFA,OFA,K20,. \3 {# l/ Q- E( h3 d, H+ O
IAD,. d0 M- j  b& M! W4 o$ T
IAE,O,VF5,C,RFA,OFA,K20,
0 ]; S3 Z3 C" NIAD,/ a, t& j6 {9 Y
IAE,O,& N! @% E2 L$ I, x% [
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
0 i& W, g4 E6 y- D9 kI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
7 C0 O1 G" _0 ^% ?- K+ W) VIAE,O,4 U- h  j0 h* e$ K" |% f
e91,d2F,d00,
; }" _; J; K4 we10,d83,d2F,P3_K#
, p: N: [- f* ~% SP3_K#

" N! v& x( P* b4 ~& a% R; b; ^" m- s! Q+ O
e23,oFA,+ B  p3 W8 d2 @# ]* K. x
I90,VED,C,RFA,OFA,
; M8 k+ M5 S9 L3 [IAD,
$ q1 i# V; S6 D) s; g; Q8 ?IAD,O,* l2 k- Q9 }6 m
IAE,V03,C,RFA,OFA,
- Z. b/ y- r* b( Z5 g% sIAD,; b* z0 F& o; R. U4 C7 y
IAD,O,, X* R* D4 C  l4 v8 e8 h/ |
IAE,
- ~: F* N2 F1 ^; e7 mI90,VED,C,RFA,OFA,
; c5 v% [5 J3 h' S8 F4 L3 V! |  B6 DIAD," Z. h; f2 D4 I" x. J3 B& U; U
IAD,O,* E6 G9 w0 r8 L: _) x3 d6 i  c
IAE,V05,C,RFA,OFA,, o: _& {3 ]$ E
IAD,
! Z( q. ?& r6 e( FIAD,O,
% e/ M$ R# D0 D# K  YIAE,O,
7 i( x6 A- [/ d) we90,d2E,o00,' R  H4 ?" U6 a* z2 j
e91,d2F,d00,P3_K#& Y6 x6 Z4 n) N
P3_K#
* {& s. Q4 K; I  g/ v# k$ |

( {6 q) i) i# D0 T2 f9 gIAD,VF3,C,RFA,OFA,( O& O6 f3 c1 d$ z
IAD,) m! B% l0 c+ g- Y3 |
IAD,O,4 Q1 `4 b  s, T5 y* ^
IAE,VF3,C,RFA,OFA,
) e9 \5 V$ ~: A) E' rIAD,
- t5 j/ H+ _; y2 FIAD,O,
' {3 V6 F* O4 G  {  T+ f5 LIAE,V20,C,K10,RFE,OFE,K08,2 M8 N5 m- f; V% n/ o( f+ h
IAD,' e3 ]& d) }7 d( }6 c
IAD,O,
! i5 ~' L* H- E2 Q7 L) H* S2 |4 |IAE,V20,C,K10,RFE,OFE,K08,4 d  }0 F+ a$ n
IAD,
; \3 D4 ^) M$ {. ^5 C9 E: L& b) h5 gIAD,O,( E' g1 T3 D7 a
IAE,V20,C,K10,RFE,OFE,K08,
5 X9 d+ i) U* i& a$ e) vIAD,) ~1 g( }; ~4 y
IAD,O,
3 D, h* a. e! {" L$ B+ x% t3 nIAE,- [2 r( M, m* M
IAE,VF4,C,RFA,OFA,, D, J2 H2 P: x* n) e
IAD,! |8 }& m) F0 ^8 C
IAD,O,+ `, c  S. ?% F+ Y* }# x
IAE,VF4,C,RFA,OFA,, {; Q+ J7 d: M$ {6 W7 y
IAD,( d4 p$ B  U0 \+ I
IAD,O,  |! O9 H3 m$ R  r
IAE,VF2,C,RFA,RAB,R41,OFA,# g* V- ^8 d: l" r% Z' y
IAD,
/ ~* `& C) R8 Z) |$ EIAE,O,OAB,
5 X* G" j' l( M5 W  cIAD,
& L5 B& W2 u* \, R' B2 ^IAE,O,O41,) U# o/ q- T  D! |& c
IAD,
8 q: M9 \9 x3 P5 y3 e" M3 _0 bIAE,O,VF2,C,RFA,RAB,R41,OFA,, }# i& s9 Y0 h9 ^/ N3 u! B5 {. f
IAD,
' }- X1 L/ I& TIAD,O,OAB,
$ H+ r0 l- U8 E6 pIAE,O,O41,
5 x" b" E; r" Z* \IAD,5 W8 L4 i3 A0 R9 f
IAD,O,4 O! r4 D' w" G* A
IAE,VF2,C,RFA,RAB,R41,OFA,
3 C: M3 Y$ }$ RIAD,
3 n( k! I  B3 UIAD,O,OAB,
! g: S2 e1 l+ O* Q. C- q6 EIAE,O,O41,
& k! R( _# y* uIAD,
+ V0 h3 ^3 A! E/ j, [0 `* O# D; K: MIAD,O,7 f! j3 C. z6 ~+ H: D. w2 D* B
IAE,- p6 I3 V: t0 y+ D! o
I90,VED,C,RFA,OFA,( b4 A; ?+ U! F/ t, E
IAD,6 ~* v3 S8 N+ U  Y
IAD,O,
  w0 d! D) l5 t4 O2 s. s( lIAE,V00,C,RFA,OFA,
# {% J- `9 h+ ?: n7 U- JIAD,/ M9 \: y# ^) S* T1 q% C7 _
IAD,O,2 _. c2 W- l* B" J! A
IAE,
2 p0 Q. @" p6 n: W0 a/ v" a' XID1,DDD,
( [- c+ W. |" M4 b+ l: PID1,DDF,! U/ H) a+ }% `- K/ ?& f% l
ID1,DDF,& d4 r- e5 `7 O6 [# f/ N; [
e22,oFA,
& c7 v# Z5 P5 S- Ke83,! R6 |1 E) ~3 Y- J. Y0 ~
e83,
4 J, h3 |; Z, m4 `6 ?. te83,# e, m) V. s% B) k# E! \
e83,
! h# X9 N% i' U4 O) s: oe83,0 ]$ K' p* ^" g% h" w, u$ g
e83,/ C9 M4 m  M, L8 b. ?, g: A
e83,
5 f: @$ q4 n) r  s- qe83,
) b3 H. h6 B& b" z3 fe83,& G9 h' L5 ]2 M
IAD,3 E) Y( Y& Q" H: h. R2 c+ p7 P6 \9 k: ]3 ^
IA7,
. C! x  T- L7 _, e$ Z( e5 wIAE,O,
+ s+ d" n  V, y  u4 GIA8,2 A( W' U7 d7 o/ y
I60,D44,
% o) c& G/ C3 b* c' _% c' hIAD,
3 Z5 u. M* @( |2 V9 S; O6 `IA7,
: c! y: R% C7 i% ?. X2 n& P& tIAE,O,
& I# R+ n& {7 E5 q, tIA8,VFF,C,RFA,OFA,RAA,OAA,
2 `9 a  H: }4 R; k& |IAD,O,K20,
8 E& V0 H+ Y( s: k7 X; u; HIA7,$ E" L8 h! K2 E! m5 u3 T; J8 u
IAE,O," \5 I7 W  l0 f
IA8,
: @" I( G/ ^/ x/ v; R( k  y( Z8 i" KI60,D04,
6 U8 }( X5 Z, PIAD,
  {6 ]. i! t# `+ i- X* f% gIA7,
5 c7 ?, _, i' k" y* I1 T( sIAE,O,2 y3 V# z: `. B# g  @  w( t
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
, K, i, s1 U6 Q4 o3 a% c+ uIAD,O,
' ?8 N7 y0 u% y! r4 p$ m' P& UIA7,
. F; h3 [: @; h3 e/ p! f8 oIAE,O,
- {1 g1 c* `$ K; S$ N( L& L) R0 DIA8,' S2 T) u& V4 t3 j! I
I60,D44,
2 B: o5 Y1 q; g0 jIAD,# e2 O/ h8 K0 e
IA7,, W7 @6 q3 T. {7 f0 G
IAE,O,+ Z+ Q% S" _3 w' n5 Y  D( Q) _
IA8,: e4 k% _! |7 V% P
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
8 l! t) ^; z/ C( S$ u7 H. kIAE,O,
( f' E2 U0 H- S  V( nIA8,* C: D4 Y9 i- \
IAD,
* n5 Y) a. R: I; p5 |- P+ |& u3 P0 MIA7,
- m- \  e/ n9 [/ w" NIAE,O,
5 D& w7 I3 g$ @! RIA8,
; c1 a/ P8 W: b9 w6 CI60,D47,, d$ w* @- U7 M
IAD,
- w; B- H- O! \IA7," Q/ Q) s" I" g7 |  R/ i; X
IAE,O,5 Y5 G# }: h% p2 b4 H; d" }6 z
IA8,
, B4 |. U0 E' n- i6 rID4,VFF,
6 }9 g4 g7 O  _& q9 ~e83,C,RFA,OFA,
% o" y% k2 G+ b; ie83,O,RAA,R00,OAA,O,O00,! L2 y% m$ {( [5 t
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
- d2 p+ i* F/ W4 `ID4,VE8,O,C,RFA,OFA,% Q4 \* I7 l( w( j  w# y
ID4,V00,O,C,RFA,OFA,' T# R- j' X" u5 }
ID4,VE6,O,C,RFA,OFA,% ?7 ^# |! T' e$ y
ID4,VE6,O,C,RFA,OFA,
3 o# F/ m7 B& }* z+ oID4,VE6,O,C,RFA,OFA,: J8 j& W, I. y& N) n1 U8 n
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
! q/ B8 S. w# {9 IID4,VE8,O,C,RFA,OFA,
$ H+ _' i3 P5 G6 b* g9 n( |  d  rID4,V03,O,C,RFA,OFA,' @* O5 y7 G1 O- K2 S. x
ID4,VF3,O,C,RFA,OFA,* ~! Y2 q4 N3 y  t8 D! z  g0 _
ID4,VC8,O,C,RFA,OFA,5 g3 M6 D' z+ b5 w
ID4,VF3,O,C,RFA,OFA,
! e! R$ ?6 K7 J6 Q! _ID4,V64,O,C,RFA,OFA,
+ p4 z" P5 [3 B8 Q" ?5 kID4,VF3,O,C,RFA,OFA,
: D) o: ^0 _7 H5 f) b# C1 g% EID4,V50,O,C,RFA,OFA,
+ {' |. P: y7 v+ V  C0 tID4,VF2,O,C,RFA,R03,OFA,O,O03,
6 f8 \; K+ `. V9 d. ?0 n! }4 \& [8 [ID4,VF3,O,C,RFA,OFA,
' \7 x7 i' H) B6 o: m+ }ID4,VC8,O,C,RFA,OFA,
% K: J! q' e+ [" xID4,VF3,O,C,RFA,OFA,
; p0 L' Y4 W" u; ?' QID4,VC8,O,C,RFA,OFA,
/ |) u8 M6 j: cID4,VF3,O,C,RFA,OFA,
9 Q  Z0 R* [3 [' s5 Q* ]/ x* B. _ID4,V50,O,C,RFA,OFA,# ?- k; e/ G6 f: }) ^
ID4,VF2,O,C,RFA,R03,OFA,O,O03,
$ j& E  p. ?, U  [% oID4,VF3,O,C,RFA,OFA,
/ T$ R- ~6 Z3 O  s4 M1 U% TID4,V64,O,C,RFA,OFA,( v7 |8 W; b" n3 z0 w  z
ID4,VE8,O,C,RFA,OFA,
$ d  Q* n4 [. @6 ^ID4,V03,O,C,RFA,OFA,
! V2 Z) I' L1 n4 Y6 DID4,VF4,O,C,RFA,OFA,O,
% y- e, f: X) Y  ?/ H* Le83,
; \: d$ H. i$ Qe83,6 W5 E- A+ o% {- ?1 Q* o
e83,5 M! o# W2 Z2 B/ J* r$ k
e83,
. a* Q0 e4 {* Xe83,5 Y: `, M4 e! I8 d& y) ?' z7 [
e83,
2 c" H6 i8 i( R+ ^- {; G# Ze83,
: t  X0 I3 {2 D7 X% Y- D5 I( T. f6 pe83,! A! j% Y; v3 [, }" G/ ~+ f
e83,
+ R+ L* [+ n$ F. oe83,00,C8,2E,) q) c' B, \' _1 y+ @
e83,00,C8,2E,
' t0 F" [# R8 Ye83,00,C8,2E,) b+ }, F7 B5 J+ q, l, N2 R
e83,00,C8,2E,1 [2 C+ t/ X% E5 @* H
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
! ]" w) q3 M9 le83,
8 I( z  B) ^* u5 w8 R
7 o$ \/ i, o/ P# t

: k+ y* y* G. h( z: M7 a[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。3 q. h3 _, K; ?& P, i) X
Device(EC0) {/ B. r7 e+ d. _1 G' W/ _
Name(_HID, EISAID("PNP0C09"))* C- y' Z# F+ L& K4 ~7 y, ~2 u
......
# S- i' P. M% D) j1 S& a}
; b7 X# d/ s/ r3 I. P: NPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
$ q( B& C; y+ w- r( ^- S2 `就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)
; q4 p6 r0 p' q9 ~0 ~8 ~, M2、    1 z! W" @# @6 W% A
Name(_CRS,ResourceTemplate(){           
: `6 G" q: V  D" H; z8 {        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
. w/ ^. }, [% }9 \2 {4 t            IO(Decode16, 0x66, 0x66, 0, 1)
, b: g5 T: I% w- D        })4 u! E) z. ~& \; b, a* V1 N
3、接着就是: g/ e" i1 r$ c4 ]7 p
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
& ]9 R4 n' A  \( C8 m通过这个声明,OS知道EC和哪个GPE关联起来( p/ M, w7 U' P3 T* a4 G$ ?+ A
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
  i! O& {9 I2 f& N$ w% }5 t! f2 nEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
2 a/ U- [7 m  x& B$ Q而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。& o, k$ h: l( L8 M$ X
3、OK,看看linux是如何处理SCI中断的
( l  g( r( ?1 g  ]. |1 m' uacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute1 K& n6 \: r; J6 e
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)! ^/ l8 i+ G. `' Q
4、EC接到0x84查询命令之后,就把Q事件号传给OS6 x5 k7 W# I) y2 s
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分; d7 @# ?" b% ^+ g2 }; z
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了7 ?, V: l9 O' l6 g5 \$ d
有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。+ c& v+ `4 K" t7 t
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
7 J9 ~/ E3 x$ ]7 k6 |! cbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。- P2 j/ U  f4 ?. F" P$ h
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-23 03:06 , Processed in 0.050560 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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