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

[原创]AC In/Out OS Slow Response

[复制链接]
发表于 2009-6-11 20:37:24 | 显示全部楼层
我也想知道答案,能在定时器里面把 程序计数器 PC 定时的发出来吗?; r* y0 ^( ]9 J% y! ^
看看是到哪里死掉的。
回复

使用道具 举报

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

找到死机的原理了

感谢版主的回答,
' M# Y' D! M' o& j+ B7 t/ K今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。1 l* T* w/ L( c; I5 M
我们在操作系统下用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的命令* w5 U# `5 g! z( x( h
D4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check1 D" H, i7 Q4 U: }9 m8 C, ]8 i
这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析
  P8 q+ L5 O. I其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。+ b+ Y4 A- P5 u" Q
6 F0 i6 c& X: _' M3 t# m) i) F
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,$ K# o" `/ }- ]/ s( G1 ^* _* V7 f
e83,
1 B$ U! I) W( @5 `0 x+ N# rIFE,
9 w' W: _/ ]& K6 I5 G2 \e23,oFA,9 o; L7 Q8 V- |( [* R4 Q6 `9 P
ID1,DDF,LPC RST7 o0 F# n1 K. c
Swrong LPC RST
0 o5 B+ Q) m7 V& ~, `LPC_Reset_Flag=64

. _& |8 b3 a2 t# z* v
% i7 r6 }+ s" t8 |. E6 l4 c  L9 u1 T$ ~ID1,DDF,% @# t6 \( n+ D( ]
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
  x5 H; L4 r- GID1,DDF,5 |. \+ E2 z# f
I90,VED,C,RFA,OFA,V01,C,RFA,
2 D) _1 j9 _8 r! iID1,DDF,O,OFA,O,; d9 r3 h6 j8 z3 Q" U/ v* v+ j
e2A,>IDLE. f  a# A8 N9 J( Z$ X
oFA,<9 C( B7 G/ E+ ]4 m1 h! a- D
e00,6 j4 U) W) @: m  m% s# P& L
IAA,O55,O,- E% u0 F$ X4 l9 _% l
IAD,
) d9 j4 b5 D& @  C. {4 b$ NID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,0 n  d! D3 f" R# }  O" S
I60,O,D65,
. B" y# N* U+ m( ^I60,D6D,VF5,C,RFA,OFA,K20,
. i( r; f- D: `& l9 j' OIAD,7 U7 {* I: w" [9 v
IAE,O,VF5,C,RFA,OFA,K20,% x# R( Z8 W6 Q  {7 w( u
IAD,7 E( U% b7 {& g& C
IAE,O,: W, {7 [7 a( j5 t0 h1 i
IAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
! a- k" T2 L& E" O4 n5 GI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
# N+ I  \! d! |% }IAE,O,, f7 Y9 `) |. b- {' Y* H* b! |
e91,d2F,d00,6 E6 C! R% I5 X8 |
e10,d83,d2F,P3_K#' l- }4 c- P: T+ \( g# B3 g
P3_K#
  w* x+ ?% F% x: n- R

% @8 n( ^) Y/ k+ P* {e23,oFA,
  o0 j' g2 W7 B2 q$ E  XI90,VED,C,RFA,OFA,9 \) C' L5 W* n# Y4 }% B
IAD,
) ?8 d9 D' ?& ^, l* c2 jIAD,O,
  A4 H* C' T( tIAE,V03,C,RFA,OFA,+ x1 t0 o( o( S; V
IAD,
) a% ?7 I; Q" |9 `IAD,O,1 F- [; a) @6 A  W3 G# E/ o1 N
IAE,$ j1 f3 Z9 N! w% y4 ~7 V% A
I90,VED,C,RFA,OFA,2 w/ c- ?# w6 l/ R8 |& V9 [
IAD,; _* u& b8 x) z3 z6 w0 |! g
IAD,O,
0 |1 q  ], i4 |IAE,V05,C,RFA,OFA,
5 t9 W$ {* z/ j& x* J& q3 bIAD,  e1 M0 j2 J% W- e, t# G5 i4 s
IAD,O,
$ \, u) s* S% c+ ~5 ^) MIAE,O,; q" D; }, c8 Y% G
e90,d2E,o00,
) X; w) W; u! i  l/ ie91,d2F,d00,P3_K#/ h9 H! m, W+ h/ C6 s  e/ X
P3_K#

* h8 u( e5 I9 O( ^2 U2 G' \( W3 B; M) Q: E7 S- ]; A
IAD,VF3,C,RFA,OFA,* T1 H; k- D/ f( E
IAD,
' q: J3 d9 ~# p* KIAD,O,& e  a! r- e, F/ R+ z& r3 O* v$ \
IAE,VF3,C,RFA,OFA,
9 l! f0 O/ _% ]% W/ zIAD,, {' u& B1 `2 _5 R" {
IAD,O,
6 L# Z! N' b9 W2 W$ \/ w! GIAE,V20,C,K10,RFE,OFE,K08,
+ f, a  ^) E) J. X1 LIAD,9 q' ?. S3 i8 J- W& R
IAD,O,6 Z+ }6 S9 g: @% ~& D" F4 W
IAE,V20,C,K10,RFE,OFE,K08,
8 h6 h9 ]! `' h9 GIAD,; T2 {$ O# F& u5 B0 h4 g( Q
IAD,O,
: E7 ]* r8 U' c- o# w8 a& {IAE,V20,C,K10,RFE,OFE,K08,
4 |3 K, Z' J; G9 l5 }IAD,
: o/ ^( d, p+ u! }1 RIAD,O,
# ?3 c% B( a# d: _& bIAE,, X/ t$ s0 S4 J; X' Z
IAE,VF4,C,RFA,OFA,
9 u! `/ c$ z+ q" _! G% _IAD,
3 U7 M% p% R# w: ^# lIAD,O,
( O- z" V2 g: M  `IAE,VF4,C,RFA,OFA,. i5 R8 B1 ]% W) A) J
IAD,
% C+ V& O% {: d9 {* gIAD,O,7 ]5 s: c2 w& x
IAE,VF2,C,RFA,RAB,R41,OFA,
" P  C' a  o3 x5 w  Y! ?IAD,$ y0 r4 R4 q: u  E
IAE,O,OAB,
. l! T2 b9 q6 UIAD,# C6 K( j) _: Q+ y
IAE,O,O41,
. u" y9 C+ r8 A7 }5 dIAD,
# l4 @+ m- D9 U5 LIAE,O,VF2,C,RFA,RAB,R41,OFA,
" k3 ~8 T) j3 m3 JIAD,
; O! ]5 p1 ~' j0 E8 P  S! n5 ^IAD,O,OAB,
" g. P+ m8 M7 H8 @# m( |IAE,O,O41,5 {( H8 `% G+ d$ |) R% G
IAD,. b' x4 T/ r! W! F: o6 t  {% B
IAD,O,+ s  x$ m: h& m6 q& C2 L
IAE,VF2,C,RFA,RAB,R41,OFA,% {% g$ O5 N/ S1 S8 E
IAD,. O# i2 G6 L4 D, H* L- R: m8 n; J3 f+ L
IAD,O,OAB,
: `8 W* L$ E7 T& X: L- l5 RIAE,O,O41,
' O/ t, A. g0 N# z3 k. E& a: M- ?5 wIAD,
0 R4 K% N- B9 y# f, cIAD,O,
0 p3 {( N9 o* F) D! N, f' u% _4 V; cIAE,$ I' f# L& Y+ `$ g0 g
I90,VED,C,RFA,OFA,
5 p# m2 \5 @' L# T' L( W& }IAD,/ {' n( C4 l2 d, k8 o  U8 y# E
IAD,O,: |7 j0 P% ~$ F1 c& r- ]
IAE,V00,C,RFA,OFA,
5 X+ t0 D% T; \- b. o4 eIAD,% U. t, r, l* k
IAD,O,7 F. l* Q  m5 F! O0 m- D; T
IAE,
# R: R$ m. B" H3 i6 C3 c/ Z2 rID1,DDD,
. V/ T. y- E0 V5 R+ O( dID1,DDF,8 n+ y( H5 W' S0 Q
ID1,DDF,
# x7 i4 j) l+ i! |e22,oFA,# T  }( G( J6 f4 Z0 a
e83,  s; D0 \9 |5 a# F5 \) N
e83,
# w! y* [; |5 J2 [. ne83,, t# U- f* p. f2 m8 d
e83,; B: W( Y/ {% {2 r8 p
e83,
( h) t" e+ L; d3 R: W: m/ ze83,5 p( \9 Q# m# W; ~9 q
e83,. N! k) x/ D5 b5 D# [9 s# ~+ j
e83,% ~  f7 t" f" k0 k9 F! Q- C( b
e83,
7 e, ~+ ~$ Q# gIAD,) J4 G8 F, S- v$ Q$ A
IA7,
3 Z3 Q& p0 d, }+ U; t- a. ]IAE,O,
9 |1 R. P8 l# ]IA8,# H, y( j9 J: x& U2 D" P2 p
I60,D44,5 `: Z% p3 s  Q! z8 e) k; ?
IAD,
& I/ Q) ^" v$ |  O) U- sIA7,
  K. J  n" ?, ]6 c) TIAE,O,
4 d1 p: s  @; o' h" |IA8,VFF,C,RFA,OFA,RAA,OAA,
. h2 \8 R7 `2 P9 SIAD,O,K20,4 |+ q0 m+ \6 F4 `% D2 ~4 e0 p
IA7,
- H  S8 i! P# }4 I6 k. \, bIAE,O,& V9 `# L2 l6 D* N7 t3 b( a
IA8,
$ A) o+ m/ G, K* GI60,D04,% j$ s! D' R9 b2 _# @: [
IAD,; d8 h; l8 I- u, Y  |  {: [
IA7,
% m7 S# ^( u0 j' ^IAE,O,$ f: {' E2 F: z" @3 h# e
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA," ~7 u5 U! I; O! C  h2 b
IAD,O,
& S* ^. d* ]) F# v$ \, HIA7,: c& {" L3 N5 t: A8 t6 r* z7 v
IAE,O,
7 [3 R" Z2 H, K' U* oIA8,6 j1 F6 G% k6 X7 u; l
I60,D44," A# `4 _9 }: _7 u  ^5 k1 g
IAD,& [# n; [+ Y5 p" L( o
IA7,
( \/ c, y1 H: u! xIAE,O,
; [0 `- Y' b+ C7 Q# Y. GIA8,
& U9 M, B9 [% q1 C$ F( o& V" t# EID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
" D; @0 C2 Y) L2 n& _IAE,O,% z. y9 T( s8 r  h/ Q
IA8,
  ^6 q; D3 G9 J0 I% x. Z; MIAD,
2 y; W$ a# x1 ]) n/ S. ~5 tIA7,2 @0 G& Z% C4 {1 B
IAE,O,
0 M6 b) F  z/ p# M. m' dIA8,  n. o  V  b* h. A
I60,D47,3 Z  G" o: r- o3 n- F& Q
IAD,
) V" X) s& ?9 ]/ }2 mIA7,
5 }4 Z" k# f4 L. d+ [) g3 TIAE,O,
2 B' m3 k9 i. Q) H! SIA8,  w1 t4 ~! d# X5 P6 S
ID4,VFF,
5 m2 |& V0 `& U! Ce83,C,RFA,OFA,
( `, R+ v$ u3 @0 G! T. W! y* f- \e83,O,RAA,R00,OAA,O,O00,: Q, x9 N. Y$ r# ?' u3 w
ID4,VF2,O,C,RFA,R00,OFA,O,O00,' U5 E8 j- |! }, A3 a" H! A
ID4,VE8,O,C,RFA,OFA,
1 O" M7 ]  m  Z0 j$ c/ Q* |ID4,V00,O,C,RFA,OFA,
! G5 Y4 B4 H4 xID4,VE6,O,C,RFA,OFA,2 |9 j7 d" x! a
ID4,VE6,O,C,RFA,OFA,
' V; q; I/ g# F+ Q1 ~0 Q' IID4,VE6,O,C,RFA,OFA,9 X4 m* D0 m# o/ Z' S
ID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,
6 H0 H; P* q. j2 r% ~% N/ VID4,VE8,O,C,RFA,OFA,2 M8 ~( e  m2 z+ K  Q4 n0 ]2 b& K
ID4,V03,O,C,RFA,OFA,
% `- k; \' t3 @! wID4,VF3,O,C,RFA,OFA,0 \8 i: C6 L0 ~$ o% c6 J
ID4,VC8,O,C,RFA,OFA,
- s4 P9 Z/ E# W6 Z5 zID4,VF3,O,C,RFA,OFA,
! K' u  M/ i3 p8 P3 j4 F) y- iID4,V64,O,C,RFA,OFA,
: Q# L% _& a, ]5 u* tID4,VF3,O,C,RFA,OFA,) P2 x- g& Z$ M! X$ F' ^
ID4,V50,O,C,RFA,OFA,
& u# K3 d% Q0 r. K3 {6 g0 AID4,VF2,O,C,RFA,R03,OFA,O,O03,0 d7 [7 `% O8 X# ~; r- ?) ?. M
ID4,VF3,O,C,RFA,OFA,  q7 h# h  F/ _1 v( W
ID4,VC8,O,C,RFA,OFA,; P0 }! i, N; @; e
ID4,VF3,O,C,RFA,OFA,3 [4 M6 }$ S% i8 _
ID4,VC8,O,C,RFA,OFA,7 |3 W! A  y& }0 H4 q. G  A7 h
ID4,VF3,O,C,RFA,OFA,
8 [$ [9 w" j. _* oID4,V50,O,C,RFA,OFA,
: B# d& i+ O8 r/ n7 JID4,VF2,O,C,RFA,R03,OFA,O,O03,1 W  ]: L- w3 m$ D2 _
ID4,VF3,O,C,RFA,OFA,! K5 C7 M! H- `
ID4,V64,O,C,RFA,OFA,
7 |1 |# k/ G5 V: CID4,VE8,O,C,RFA,OFA,
4 P" D  T, d5 h, Y. w- z. BID4,V03,O,C,RFA,OFA,
4 R, C* d# v- O" b+ f8 N0 sID4,VF4,O,C,RFA,OFA,O,9 s( Q5 ~9 R( M0 e5 g  L# K
e83,
, |0 w  b. n0 r9 o) M. b' pe83,
) _7 y8 Z2 a' N8 s1 x, k- Se83,0 e+ Y3 U; u$ |- B: y7 I$ w
e83,9 H! r; ?$ O+ d! O7 j+ |/ A
e83,
' X# T  F/ L/ b9 P$ T8 Q) |e83,( a: @! T$ J! m: @: W
e83,
( N* Z. A3 [- F# Je83,8 s  g) O' q8 J; u0 M. g( L2 `. [" d
e83,
7 J0 K% Z5 r/ S0 N7 |  v4 h6 C6 `; Q! Re83,00,C8,2E,
' C; B" v- A7 Be83,00,C8,2E,; d0 A: X0 R& g% T
e83,00,C8,2E,
% G/ V- h2 r$ f: Z$ ce83,00,C8,2E,
& D5 \2 x/ f0 G# me83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O," }& ^9 ^- m* c1 R
e83,
7 {. v( i. [1 x6 ]
! V$ x; e5 u+ F( n# ?0 i9 o; t. @
6 o6 S7 ?. R# L5 R+ q& d
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

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

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。* M9 t" t6 o; w0 Y- ~
Device(EC0) {; z3 z& V0 d1 ^/ D% |  |
Name(_HID, EISAID("PNP0C09"))# K  [; i; C- a. `
......
% p3 E4 y  \' n, @" w}1 A: f& v$ v& I  q1 e3 q1 e/ }
PNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,
# {5 d* w# ]8 [0 N1 Y就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)$ x1 o3 S) @3 I, ^. \( x
2、   
6 m) }% N/ I& A8 \  N" `! O/ F5 yName(_CRS,ResourceTemplate(){           ( a& M! v  `1 B' }6 h' @
        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
% j: X; u+ k3 A" E( J% ~            IO(Decode16, 0x66, 0x66, 0, 1)
! d) y' j' w3 U/ q        })
& d( x% p! @1 A/ m3、接着就是. b" V( N1 q& e9 g* J
Name(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
5 X' d: r6 A* `% [* s通过这个声明,OS知道EC和哪个GPE关联起来
0 I  f* m$ n* y而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
# t1 w; k0 o7 z! J  s+ W4 ^  dEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
2 q2 Q, L! _3 o# J0 a, |而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。8 g" Q& k6 |' u! N" {
3、OK,看看linux是如何处理SCI中断的
+ G) e7 F% z& s- q" xacpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute
% `5 X( D2 g' V+ E" hacpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)
) `: s6 J7 @$ e4、EC接到0x84查询命令之后,就把Q事件号传给OS7 X. |2 q! J7 P1 `8 |, X% `3 |
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分
6 b5 N3 q0 j" u6 i你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
  f" `5 W  ^/ X5 k有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。! H. y. `3 q- t$ l% @
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
& w/ i7 Q) a2 q+ u5 z& Cbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。
3 F: n" ~& G+ O1 D版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-1 16:53 , Processed in 0.151763 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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