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

[原创]AC In/Out OS Slow Response

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

使用道具 举报

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

找到死机的原理了

感谢版主的回答,6 O1 ?! T$ U4 u% X- u
今天我发现我的EC死的原因了,主要原因就在于我们的触摸板!只要你在重启的时候按几下触摸板,那我们的EC就像是死掉似的。/ a2 D, Y+ ~0 p# W5 x
我们在操作系统下用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的命令
* N( m8 e) Z& UD4通常也会用作disable touchpad。disable touchpad有几种做法,有些会直接disable ps2 port clock。你可以check
& }4 G* c2 G1 l3 `  v( ^! }这部分命令的处理的code有没有缺陷。另外上述cmd的处理过程你完全可以追出来,不要偷懒!附上reboot的log信息供你参考分析% q, W; p3 A4 \5 n% ?' [
其中I表示cmd,D表示data;如IFE表示FE送给64h,D65表示65送给60h。4 A3 G& b5 N9 e/ k
3 p* l3 B% ^. u7 O
VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,, O* e6 Q, H2 S4 d9 d& w  Q
e83,
+ E* ?+ k3 \2 m. u' D* c5 E0 }IFE,3 H6 [4 W- t& e# t0 f! H' p
e23,oFA,
2 c$ ?- \' d! G; R' LID1,DDF,LPC RST
5 D; a, B. |& W, nSwrong LPC RST
9 `2 b- W6 {4 e. _LPC_Reset_Flag=64
$ w- ?: r8 N/ W2 ~! f: z3 ?+ n
: F7 }4 F# z# P6 t$ e* s: H
ID1,DDF,6 k( H% M. b+ [
IAA,O55,V65,O,C,K10,RFE,OFE,K08,O,
+ ~4 C( z/ _+ @9 o. O3 KID1,DDF,% l1 X  u: d0 d8 R1 W
I90,VED,C,RFA,OFA,V01,C,RFA,
) t3 {+ I0 L$ _/ CID1,DDF,O,OFA,O,* }8 e! x- B6 u8 s9 `6 w
e2A,>IDLE: R3 D7 z3 {, k" h" ]5 p
oFA,<
& W% S, e0 p8 C( `' xe00,# V/ j, S- @, D* c
IAA,O55,O,
$ E  s9 z) i; i  i0 X7 {% N& mIAD,/ A& R1 C" ~* |% [1 V9 h# A- W
ID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,
1 ?5 L' ^. y  NI60,O,D65,  s8 |# _& M2 F7 L- A
I60,D6D,VF5,C,RFA,OFA,K20,/ f: c# z. }' G! d
IAD,
9 D; ~5 q* p- U/ U$ TIAE,O,VF5,C,RFA,OFA,K20,, I8 K& d1 |$ |4 |: Q& g
IAD,
, b' W8 F/ F" Z2 Y8 p2 a' ZIAE,O,
( \6 |+ v& k% oIAD,VFF,C,RFA,OFA,RAA,OAA,K20,O,
5 G2 L2 k3 m+ {  U; D7 Y! QI60,D65,VED,C,RFA,OFA,V00,O,C,RFA,OFA,
, N9 Q2 j8 D" M' A& h3 lIAE,O,
3 i! }6 E; B' S) V! Me91,d2F,d00,' H- U& J' @( N& E* a
e10,d83,d2F,P3_K#) U/ X1 v' o4 C9 p& ?
P3_K#

: e8 Z- t9 G9 I6 U# {8 J
; u# j  ~. B2 K  fe23,oFA,
4 ], c1 Y2 Y8 n; hI90,VED,C,RFA,OFA,$ H: T" g) t4 b2 Y8 S/ R
IAD,, N6 V- E6 N$ E" Q
IAD,O,
% q1 m/ s) i) HIAE,V03,C,RFA,OFA,8 C6 R  ?9 Q5 |4 t
IAD,
* M$ `2 T0 S% A0 G0 aIAD,O,
. j$ j6 \3 x: rIAE,
% [9 j3 @2 n8 M% m- _I90,VED,C,RFA,OFA,
0 w9 P6 Q0 @3 f- Y9 z) J' T9 RIAD,' o" N: B6 }0 g$ J! T: s2 ~4 i% `
IAD,O,
! N! k) }3 v0 H8 w0 F' ]IAE,V05,C,RFA,OFA,2 k2 D* Z$ U" S) ]5 t0 ?
IAD,
! |+ E1 o7 q- N3 x( EIAD,O,
, q( V" z  v8 F, N( xIAE,O,: F& x6 k( T! P- q  |% x
e90,d2E,o00,* L) @! ]1 A+ Z6 \: j
e91,d2F,d00,P3_K#6 Y4 d- [$ x3 p! Z* h
P3_K#

' b1 ~! T5 b+ D0 @- v5 l: S' @7 f$ L. g) \
IAD,VF3,C,RFA,OFA,: N3 B) }. C8 H9 m
IAD,
! }; p. g" N% x# k' uIAD,O,+ m. y, p! S0 m' K$ O4 u  W3 X- T; @
IAE,VF3,C,RFA,OFA,( i6 ?3 z; e& I
IAD,: E2 {6 T* C' \* ]9 ~& \
IAD,O,
; r5 b  P) x+ c( m' I5 R1 c0 c8 XIAE,V20,C,K10,RFE,OFE,K08,
! |1 `. Z+ I2 L3 F% v' Y* @. \6 zIAD,
, U! Z1 ], }5 i" LIAD,O,: x7 B5 o3 ^( N
IAE,V20,C,K10,RFE,OFE,K08,
' u) h9 x$ _4 `4 }5 M! AIAD,# @) p  b4 @5 V9 A0 H
IAD,O,
# w9 g/ i0 @/ w/ OIAE,V20,C,K10,RFE,OFE,K08,
9 |5 n1 r: F! G+ t$ T0 ]( _, y; ZIAD,
( `. D9 m+ A8 N# aIAD,O,
0 X! p$ f' ]! M5 ~IAE,
8 y# ?+ y# j- d2 UIAE,VF4,C,RFA,OFA,
* _% J7 _$ }& I/ b+ sIAD,
4 ?& p' A7 j2 n. EIAD,O,
8 x- A3 r; c' l# rIAE,VF4,C,RFA,OFA,6 I7 R. L  A& V3 G/ z. B2 q
IAD,
* {5 D1 E6 j7 l, W, UIAD,O,
4 L/ ]$ A  [+ T* v* {$ jIAE,VF2,C,RFA,RAB,R41,OFA,
. R+ G% u) M$ _" h7 u  K  ?4 UIAD,
" T& g2 c7 n4 p& GIAE,O,OAB,3 o$ M* I, u) C2 r  k& _
IAD,& }9 X  S* l5 [$ \4 [
IAE,O,O41,9 J' _8 g0 t& q) E
IAD,
. ~" {. V7 H+ [IAE,O,VF2,C,RFA,RAB,R41,OFA,6 Z! T& x' f- [2 u/ L3 y4 D
IAD,8 u7 C5 I2 }5 H" G
IAD,O,OAB,& N( U% A8 B2 W. G+ T
IAE,O,O41,) t" t' c3 S6 z: w4 Y! h( q
IAD,9 }$ V5 f3 V0 j6 ?& q' l# w7 j% z
IAD,O,6 B/ `' z2 V/ S/ q; o/ U
IAE,VF2,C,RFA,RAB,R41,OFA,
  n% I+ h5 Y+ J( s) R2 P5 ^IAD,3 D9 i' x# T. U
IAD,O,OAB,5 f/ r( [4 f3 Q* v. f
IAE,O,O41,
0 a$ J! e9 w. s( ~1 qIAD,4 v1 k, k# b+ O; J$ v
IAD,O,
5 o& r  s( V  I2 ^- T( o7 P' xIAE,
: `/ F/ V6 a" d- JI90,VED,C,RFA,OFA,) y" p% P" X9 b6 y$ C
IAD,
9 u" f: @! ?8 gIAD,O,7 N! [; U6 W1 _2 ]" n
IAE,V00,C,RFA,OFA,
- L* y+ e6 ~1 G" S9 X# NIAD,6 p' Y/ |% U' }* p- C
IAD,O,; C$ f0 L4 W) l: W. T7 n2 ^9 H
IAE,
% O$ {! Z' f3 s- p. f8 \ID1,DDD,& O& c2 \4 \3 @3 ^' |
ID1,DDF,
- P3 O  Y5 O7 Q( D8 G5 WID1,DDF,
$ B& H0 Q% G8 ?; Ze22,oFA,1 Q+ G/ j9 O) [
e83,: R  C6 ?" i7 i. U6 x8 t/ `# ]
e83,3 b2 V' Z6 H( H& R' S( |1 {
e83,
9 ^$ D9 o2 q; `) U5 c! M( re83,
. N0 P8 `, b+ t, x; Y8 S% g" [e83,+ D; u2 S' m/ D" p4 @! d
e83,
4 Z2 r7 K- U4 U, T* e) z3 oe83,: J6 {5 @( w& ^1 a! Z; j+ _* B; m
e83,2 n) M- k; }+ Q' {8 P5 }( t; b
e83," n6 W8 Y. B+ E8 `# d$ Q. c
IAD,6 c. V, `9 K8 p' t: L3 z9 k
IA7,
! h0 h: v& D( K$ P* vIAE,O,$ T2 v$ S1 Y# w8 K$ \
IA8,
1 z5 _; P% P! I) z5 R9 P4 \, wI60,D44,' t2 W/ ^0 Y- X8 c3 l7 p% e& O7 K
IAD,
9 s7 u8 v$ j! T3 E  X0 XIA7,4 Q5 X  l5 D7 R9 f6 k
IAE,O,  m  _& e$ P' }% R8 v) Z  v6 ~0 L
IA8,VFF,C,RFA,OFA,RAA,OAA,
' S/ Z8 w3 v9 g& x7 h1 ]6 AIAD,O,K20,
7 n( [0 L0 q: D7 M+ GIA7,- B+ D9 a+ r- u6 {0 g7 S- ]" k
IAE,O,1 w$ x3 G. @% g' J
IA8,2 I  ?5 n3 }' n+ ~4 Y( e# a
I60,D04,
/ c- |) g, Y5 p3 @IAD,* z0 Q5 n1 a' e/ T
IA7,
1 c2 U- O4 p- rIAE,O,+ v9 r5 K; a- I2 T6 A; f
IA8,VF3,C,RFA,OFA,V00,O,C,RFA,OFA,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
; z" p8 ^" Y) p' m  i- x3 RIAD,O,
2 E: C' }' r, E! }$ N0 J% w! UIA7,
; y8 a% {; B% W5 i+ L8 g1 PIAE,O,$ Q! J  a# a0 d  T( k8 u) a5 ]
IA8,2 ]' G. q5 F- }$ H
I60,D44,6 X4 i0 }* c) y$ [
IAD,
, o& v# s. a& C! S" M0 N- E. uIA7,' P) C. p# M# |/ A/ _2 T- [
IAE,O,
. c$ h. z8 ]) m5 q5 u/ ]! e: AIA8,
8 K& s! o' q+ k9 K% x9 rID4,VFF,C,RFA,OFA,O,RAA,R00,OAA,O,O00,VED,O,C,RFA,OFA,V00,O,C,RFA,OFA,
5 c# Z( _6 Q1 Q3 Q% M2 pIAE,O,3 L& u- g/ x6 Q* ~( G+ Y1 ^  ]$ @
IA8,
, C" g) l2 C2 X/ BIAD,4 h. S, G8 f1 \1 t8 N2 L# \0 J& u
IA7,) N+ o6 `  q0 A! K/ B# D
IAE,O,
3 u; ^& {: r8 z$ C+ k8 AIA8,
# u/ `0 g' x+ `! w$ D% f) o/ PI60,D47,
' K% X, s6 G8 \. WIAD,
* d. i* v* h3 ^7 IIA7,
* a6 N! @  V0 g3 }% yIAE,O,
# q. u$ y7 L) DIA8,; B" [- }' B$ d1 T
ID4,VFF,* \  E$ t) m% i
e83,C,RFA,OFA,% m; e$ [' T2 x- C
e83,O,RAA,R00,OAA,O,O00,+ E' ?2 q% C9 {( a) H
ID4,VF2,O,C,RFA,R00,OFA,O,O00,
% ]9 b( s1 f" K" P# E# hID4,VE8,O,C,RFA,OFA,( ^7 ^: G" X& _2 e0 L! |0 V
ID4,V00,O,C,RFA,OFA,
: s$ s% U8 A0 r2 V% ?: |$ ?' qID4,VE6,O,C,RFA,OFA,
# ]1 [1 A2 _( Q$ _ID4,VE6,O,C,RFA,OFA,
' k* N- @( l, ~: SID4,VE6,O,C,RFA,OFA,
0 a1 f* r' H( G" K/ y, VID4,VE9,O,C,RFA,R00,R00,R64,OFA,O,O00,O,O00,O,O64,: ]0 Q! L$ [. S
ID4,VE8,O,C,RFA,OFA,5 ~* R, h9 t) c* p5 q5 |! W& G, M
ID4,V03,O,C,RFA,OFA,
- S6 L; _7 f! a  g  SID4,VF3,O,C,RFA,OFA,
( f4 r3 g! W+ W% O' J' k( g1 iID4,VC8,O,C,RFA,OFA,3 U6 s2 y7 S( s5 W
ID4,VF3,O,C,RFA,OFA,! Q1 ~" m$ K; L6 p& {
ID4,V64,O,C,RFA,OFA,/ N% K; I9 j$ H4 X* x5 H
ID4,VF3,O,C,RFA,OFA,+ q1 y; f7 ]: ?' h( c# N& j
ID4,V50,O,C,RFA,OFA,
6 z) \, \  j: C3 i) x" |$ ?ID4,VF2,O,C,RFA,R03,OFA,O,O03,6 G8 o$ a" ?7 L# }& ]
ID4,VF3,O,C,RFA,OFA,$ B% \- F) q, I9 c: @+ y1 D
ID4,VC8,O,C,RFA,OFA,
$ C; o3 }# \$ p; L& cID4,VF3,O,C,RFA,OFA,
' U2 W/ t2 A7 L: PID4,VC8,O,C,RFA,OFA,$ K* Z; w1 M, b/ y
ID4,VF3,O,C,RFA,OFA,- }7 @! E. C. u
ID4,V50,O,C,RFA,OFA,
0 D  d2 H( A  IID4,VF2,O,C,RFA,R03,OFA,O,O03,. U/ C' j( j+ b6 a* A; l* A
ID4,VF3,O,C,RFA,OFA,' ]3 b, b0 M% ~' D* M, Q8 L- T8 _
ID4,V64,O,C,RFA,OFA,
# @1 e+ b( |# l. [% O  M: ]" `: oID4,VE8,O,C,RFA,OFA,5 M* j. S/ h5 h
ID4,V03,O,C,RFA,OFA,# |1 B% ^! u7 j5 w6 M% u% J& V
ID4,VF4,O,C,RFA,OFA,O," O5 w5 J6 F0 d; F7 d$ S( b1 Y
e83,
1 I# P, J) u; W6 l( pe83,
4 g( I( h* w: C: i9 Re83,
) l# m! R% B& Ne83,
9 U# |3 U1 |' J2 B) y  v; He83,: {9 {; k( d( E  y' h
e83,
  n) v6 D7 e4 je83,
5 a2 v. _* D5 ~8 }e83,
( t7 T8 k: C: N2 G5 Ge83,
+ f3 c0 T; `. J3 Y: W7 v. Be83,00,C8,2E,
8 \/ l# n2 A( m9 Ve83,00,C8,2E,$ d! U( d) j6 h% B0 S
e83,00,C8,2E,
6 A7 ~% ^% f  b1 f7 X; X, i& Ve83,00,C8,2E,. i% o/ s5 q; p( M
e83,00,C8,64,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,VF3,C,RFA,OFA,V20,O,C,RFA,OFA,O,
9 k( h4 W  P. F6 u: re83,, S* H7 y- T3 v( ~* {9 }

8 D, W& c! t3 {* Z: x% v8 R7 q' T6 [: E0 m9 b; l+ p5 S& c: G
[ 本帖最后由 peterhu 于 2009-6-12 15:08 编辑 ]
回复

使用道具 举报

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

感谢

谢谢您的答复3 N& w( O( y( C7 Z& x9 t
     今天我看了一下,我们的A7命令就是拉低PS2的clock,我想结合你的资料仔细了解一下,EC是如何和OS通信的。。
$ H* s. W, v; |0 q  C! l/ N      我现在对EC和其他设备的通信的理解如下,如有不对您给指导一下!
5 g* Q1 ?0 e0 J9 S1 k" c7 [      前提是我还没有仔细看过ACPI,因为这几天手头的事比较多。4 \/ d5 Q( D# d* m
      EC就是个微控制器,在电脑中主要是起到控制一些其他IC的功能,比如风扇,电池,上电时序等。我们利用LPC和南桥通信完成一些相关的功能实现。比如通过60.64和62,66这写端口实现EC和上层的通信(包括OS比如这次遇到的问题,就表明OS在进行重启时它会本身相关服务结束,后在空过64口给我们EC发命令,我们就会关掉或开启相关的东西),好像EC要是想主动的想和上层进行通信,就只能利用SCI和SMI来实现!
; w9 S  e7 a, F0 {BIOS我的理解就是在我EC上完电后CPU开始工作就会他的代码!感觉BIOS的功能就是,开机时自检,并设置了一些相关设备的寄存器的值,是这些设备能过按照我们要求进行工作。呵呵!毕竟我不是做BIOS的只能理解到这了。我是刚做EC没有多长时间的,如有说的不对,请您一定要指出啊。我一有时间就会在看看ACPI的听说这个很重要。我英文不是很如果有什么好的学习方法,还请您赐教!
回复

使用道具 举报

发表于 2009-6-12 23:54:38 | 显示全部楼层
1、看ACPI BIOS中的定义。
/ n$ o$ F9 z0 h) @$ v- NDevice(EC0) {2 h" ]' `+ f. T: l, K- ^
Name(_HID, EISAID("PNP0C09"))# w; g9 e7 G4 N8 G7 t) n2 f
......
2 D  H4 s3 i# ^3 m! J$ b" p, {}
5 k& w" E" p0 q3 N5 y1 h- ?. P; mPNP0C09是ACPI Embedded Controller的Hardware ID,ACPI.sys在解析ACPI BIOS(也就是ASL Code)时,看见是PNP0C09,3 G; S' B7 d& e0 `# ~
就会为它创建一个特别的设备对象(Device Object),以便做一些特殊的处理(处理Q事件等等)/ `0 Y- Q8 w" [
2、      ~/ I7 p, }' j7 V8 a# S
Name(_CRS,ResourceTemplate(){           
% B8 g- p' v2 n! R; N        IO(Decode16, 0x62, 0x62, 0, 1)        //通过这里提供的资源,OS知道如何去发送EC Command给EC,特别是命令0x80~0x84
' K- N- \: i' b2 p( J            IO(Decode16, 0x66, 0x66, 0, 1)2 @) I8 T& I" Q' ?5 X
        })
2 a- ?* j# K$ z0 L3、接着就是
( X0 T* Y& v  ~. w1 t- M( OName(_GPE, 23)  //GPIO7        16+7//可以产看原理图,EC的有个拉了根线连到南桥的GPIO7
0 g5 j$ q& j0 @- O通过这个声明,OS知道EC和哪个GPE关联起来; j% d* A2 ]5 e6 z9 h
而且OS在执行 Build Up GPE_BLK的时候,会把GPE_EN寄存器的相应位置位,以便该位对应的SCI中断能传到CPU来
9 O  H& G% A. j7 c! g2 a% N0 TEC需要OS关注一下它的时候,就拉南桥上的GPIO7,产生SCI中断。
6 T$ l! Q, k  R" O& ~而且 GPE_STS寄存器中的相应位被置位,以便OS知道SCI的来源。9 X7 m4 ?# k* P& [. N, ^; z
3、OK,看看linux是如何处理SCI中断的. o  T! a5 q0 d% ?; x
acpi_ev_sci_xrupt_handler==>acpi_ev_gpe_detect==> acpi_ev_gpe_dispatch==> acpi_os_execute2 o3 n4 U% H1 L+ A  j2 r
acpi_ec_gpe_handler==> acpi_ec_gpe_query(处理Q事件)==> acpi_ec_query(直接与EC通信查询事件ID,发送0x84查询命令)& n" M$ M% e* u" I8 }
4、EC接到0x84查询命令之后,就把Q事件号传给OS& B3 R2 Y/ M+ H2 h
OS的ACPI驱动当然就是去Evaluate相应的Q Method了
回复

使用道具 举报

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

使用道具 举报

发表于 2009-6-13 13:39:41 | 显示全部楼层
Name(_GPE, 23)  //GPIO7    在这里区分6 u% o: W3 e" H- x
你看看南桥datasheet里面  GPE0_STS、GPE0_EN的描述,结合原理图,就明白是怎么回事了
) E/ B5 B# y0 x有代码就好了,用source insight或者slick edit看代码比ami自带的编辑器好用的多。
回复

使用道具 举报

 楼主| 发表于 2009-6-13 19:21:37 | 显示全部楼层
也可以参考"我所知道的EC====>KBSMI&KBSCI"。3 V9 Q# \- t! o/ B
qdk0901linux acpi driver你一定看过咯,之前在pediy.com看过一篇关于intelppm
' r3 W2 E$ Y1 O: t1 _1 W( Lbug 分析的文章是你写的吧?非常精彩!
回复

使用道具 举报

发表于 2009-6-14 09:58:07 | 显示全部楼层
见笑了。% P4 d" I9 k' ^8 H+ T
版主在CSDN上的系列文章小弟都看过了,很受启发。
回复

使用道具 举报

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

分析的很好

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 06:34 , Processed in 0.035635 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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