找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 10618|回复: 3

关于SIS 968中APC REG的读写问题

[复制链接]
发表于 2008-7-21 11:31:40 | 显示全部楼层 |阅读模式
sis 968 datasheet ,page468  说了2种存取APC reg的方法,但是其中的SB reg.48h不知道是指哪个寄存器?$ {- E1 Z! o/ c
' T2 f& R. q! B  {( z9 G! p
IO index access   
! h* M+ Y5 S+ x, O) s  DSoftware would use 2 way to access the APC register 3 ]8 _* u: M5 |5 Y- t. q( N) N
% q3 U" C1 Z- z7 H

8 }9 N. D! S6 U1.  Software would set SB reg. 48h bit 6 to 1 to enable the APC bank. Use index/data port 6 a& H, X+ A7 S5 }
with 70h/71h to read/write data. After access, reset the SB reg. 48h bit 6 to 0 to disable
$ q" P6 l) e$ L# [+ e0 @. \the APC bank. . w; \( t' V/ ]( Z  J

7 k6 K  h* D1 s4 {2.  Software would set SB reg. 48h bit 1 to 0 to enable the new re-index. Use index/data * [5 V7 x# M" }6 |5 {6 i2 L+ s
port with 78h/79h to read/write data.
. u% t4 m4 z) O; W
4 P4 E% M7 D6 n/ k# G2 o如果指的是48h  RTC control的话, 我将0x7f填进去后,为什么通过70H,71H访问的还是 Internal RTC
发表于 2008-7-21 13:02:13 | 显示全部楼层
你确认访问的位置是Bus0:Device2:Function0的Reg48h吗?8 b% \' L/ [7 b2 H$ U" X; O
请用下面这段代码来试试# u' g; g( P+ F& C* M  g* B+ ?
    reg:BYTE+ v7 G  P. D" p
        mov ax,0b108h7 a4 D! Q  T! k- X" f
        mov bx,10h% ^; O( G, S2 M
        mov di,48h6 b; Y% l5 t& ]; o- j+ l3 n, _0 h
        int 1ah5 G8 [& K6 S. L5 x/ F0 l  b
        mov reg,cl          ;get RTC Control Register* f- g- J: l' R8 y+ N5 V( X7 W
* }: Z8 C- G. P6 l! V& j3 n- }  N
        mov cl,reg
: p& U! O! b- V5 m" W/ |0 ~        and cl,3fh
( b& x8 p4 m6 C% w        or cl,40h           ;set APCREG_EN
* C; q- _6 Y0 V/ L6 S        mov ax,0b10bh( F7 t0 a: |# x3 }: j( ^6 }# F
        mov bx,10h- v) ^7 ?& b( [1 u' g8 x
        mov di,48h
3 j( u8 S* F0 E; Q        int 1ah
9 F3 y2 j; I+ R       //now can access the APC register 9 e3 o* J6 S6 j) X- N/ n, l
. ^# P+ l, R( i, Q
        mov cl,reg
/ T" G9 t3 y+ G  W        mov ax,0b10bh6 ?1 f+ \& H2 C/ Y) L9 G
        mov bx,10h4 b9 V" w+ }: ^
        mov di,48h
% @: L; r0 D% e) a/ N) n5 j6 j        int 1ah              ;Restore
回复

使用道具 举报

 楼主| 发表于 2008-7-21 13:54:47 | 显示全部楼层
应该没弄错啊% {% y) f2 W, A+ R( o
(1L <<31) + (0L << 16) + (2 << 11) + ( 0 << 8) + (0x48 & 0xfc)
回复

使用道具 举报

 楼主| 发表于 2008-7-21 16:11:58 | 显示全部楼层
问题已找到,原因是bios默认ACPI base registers在I/O SPACE(在角落里有这个设定),而我在MEMORY SPACE 中读的,所以只要改一下就OK了, d- ?9 J+ T" ]
+ I# ]  J, T$ ^: ]& K
ps.看来还是要仔细的看datasheet' T4 C, }; e  r7 v' }; y6 d

. ~4 H% Y+ S: a6 [% L[ 本帖最后由 jackey_gu 于 2008-7-21 16:13 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 05:39 , Processed in 0.104887 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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