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

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

[复制链接]
发表于 2008-7-21 11:31:40 | 显示全部楼层 |阅读模式
sis 968 datasheet ,page468  说了2种存取APC reg的方法,但是其中的SB reg.48h不知道是指哪个寄存器?
0 D# ~% x+ C# e4 W. ^9 |: l: |; z+ B, k. \& W1 e
IO index access   - X# A! w/ y7 {+ w5 J1 Q3 e# S* g4 S0 O
Software would use 2 way to access the APC register
7 g7 M# a, X$ \ 4 w  [: l/ P& h- p! E

% F4 t/ `- v, z. h3 k1.  Software would set SB reg. 48h bit 6 to 1 to enable the APC bank. Use index/data port : j( ~7 X% [5 N" z4 r! m
with 70h/71h to read/write data. After access, reset the SB reg. 48h bit 6 to 0 to disable   R$ h8 e/ }+ }
the APC bank.
& `8 i- ^- B3 O% n5 x/ u + O9 S5 l2 U" J6 D/ E( W
2.  Software would set SB reg. 48h bit 1 to 0 to enable the new re-index. Use index/data % Q' G7 ?6 Y; d, F/ v) \
port with 78h/79h to read/write data.
+ ~& }. e# ?& q* Q( M! V# n: U* R
+ s, L' B) C2 F6 Q8 e如果指的是48h  RTC control的话, 我将0x7f填进去后,为什么通过70H,71H访问的还是 Internal RTC
发表于 2008-7-21 13:02:13 | 显示全部楼层
你确认访问的位置是Bus0:Device2:Function0的Reg48h吗?
" V# [6 e$ Z8 ?- q4 v! T请用下面这段代码来试试
7 }) o8 h7 m5 G, p. B$ g    reg:BYTE9 W' e+ `. Z) c) _  d- |
        mov ax,0b108h
; c# U% M* c5 c# V/ L        mov bx,10h
' s& L1 r, B; o% C9 v' w; j        mov di,48h# E- ?  X: m3 I3 T1 y
        int 1ah
4 I3 B7 o; x5 p7 j3 F  Y. `4 }        mov reg,cl          ;get RTC Control Register
2 F1 O7 f6 A: F7 _
; d$ N: ]% h4 z2 R2 {  g        mov cl,reg
( S6 V% |6 y7 z2 `6 A- W( T" S        and cl,3fh
) `7 C3 [. _2 I# S8 O" e        or cl,40h           ;set APCREG_EN" r( K1 J5 J: v8 `' w& T4 r
        mov ax,0b10bh; H. T4 ^: Y; X6 G
        mov bx,10h
) M* D  d+ v0 O, A" R  D1 Q        mov di,48h
$ h& j3 ]; j2 y        int 1ah# J: B: X- x2 c' `2 m2 }
       //now can access the APC register
( m, A$ T5 g1 ^
( D- x5 A! F) d9 W) g7 L. @        mov cl,reg
2 m" L  d- }- f5 U0 u! s6 \        mov ax,0b10bh# a. z. U2 l& U$ p  [0 D- j$ a$ x1 C
        mov bx,10h
/ V5 L+ L9 m9 [" E: p2 Q        mov di,48h
* t! h9 d. b$ r  I- n6 p* {        int 1ah              ;Restore
回复

使用道具 举报

 楼主| 发表于 2008-7-21 13:54:47 | 显示全部楼层
应该没弄错啊8 p" r2 O; C* P! y# p( Q
(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了
8 [- b+ @' d! a0 L1 j$ {, R) L2 [+ s/ w! P5 Y: R: \1 Y* [" `+ m
ps.看来还是要仔细的看datasheet
9 Q; \% B) }% g8 q/ ~- Y; {7 B  f0 n& p$ T3 `) t
[ 本帖最后由 jackey_gu 于 2008-7-21 16:13 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 18:35 , Processed in 0.031593 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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