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

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

[复制链接]
发表于 2008-7-21 11:31:40 | 显示全部楼层 |阅读模式
sis 968 datasheet ,page468  说了2种存取APC reg的方法,但是其中的SB reg.48h不知道是指哪个寄存器?: _- e! e  A) ]% k: ?: r
! B$ J) Z. {' S0 H$ g$ b
IO index access   4 Z, _) R5 R. X0 o5 _! w
Software would use 2 way to access the APC register # H8 P; t$ w; H7 ]9 n9 p# a6 {* m
* l2 y  H" ~4 y. b, F

; d# [2 m! O9 O/ ]/ U1.  Software would set SB reg. 48h bit 6 to 1 to enable the APC bank. Use index/data port
! ]6 \9 _% ]3 x4 S! C, ^" a$ bwith 70h/71h to read/write data. After access, reset the SB reg. 48h bit 6 to 0 to disable / M* F( \4 X7 v$ h: z- u1 [
the APC bank. ' {1 C( `9 m% d8 m2 h' D
8 n' r7 F0 n5 Q1 a) \
2.  Software would set SB reg. 48h bit 1 to 0 to enable the new re-index. Use index/data 7 i1 w4 k: Y+ z) e" @. j& V
port with 78h/79h to read/write data. 5 [7 ?: _- C  j4 v

# |5 R1 ], |4 @1 ~6 c3 E) F如果指的是48h  RTC control的话, 我将0x7f填进去后,为什么通过70H,71H访问的还是 Internal RTC
发表于 2008-7-21 13:02:13 | 显示全部楼层
你确认访问的位置是Bus0:Device2:Function0的Reg48h吗?! C. L5 t8 n- `2 {1 |7 m$ Z3 j
请用下面这段代码来试试! J: D6 T/ h1 B. m* Z8 A
    reg:BYTE0 i9 U9 c" j2 R4 M5 p
        mov ax,0b108h2 d" S9 @7 T, {, y0 ~
        mov bx,10h
8 S: T2 y1 A3 s+ N4 _* @3 a4 D        mov di,48h* z+ k# X/ a: A; ~
        int 1ah
' G0 a5 G; |/ I0 h' a& g- F9 m        mov reg,cl          ;get RTC Control Register
" @, d. k; h; d   G( t9 n( B- S2 l; _2 I1 m
        mov cl,reg
; s# b# F$ A7 f9 U  ?, v' S        and cl,3fh
* d2 d; v! ]1 J: Z        or cl,40h           ;set APCREG_EN) }6 z( q3 \) r$ Y/ a2 a
        mov ax,0b10bh
# y  A3 n5 p3 P        mov bx,10h
/ O) H2 Y) O; l2 b8 @4 F        mov di,48h1 f' O0 v1 H3 @/ O$ {+ T5 l
        int 1ah
" R- z% S" n. F0 |# I       //now can access the APC register
, q& v5 H0 C9 R% K) p / ~- Q  m2 A* G1 _# [/ j
        mov cl,reg! C# X5 L2 k. z, b7 b# P3 x/ V6 E
        mov ax,0b10bh* ]2 t/ F8 O& s% H2 W" v9 z
        mov bx,10h. L. |" Y6 @$ ~
        mov di,48h
5 Q8 S1 d8 F, F3 B& L5 d        int 1ah              ;Restore
回复

使用道具 举报

 楼主| 发表于 2008-7-21 13:54:47 | 显示全部楼层
应该没弄错啊# Y2 u/ M, N. x6 w
(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了: l! d3 ~" k" S& S5 I' N" O$ m) y
* m, n4 k6 m; X  y- w
ps.看来还是要仔细的看datasheet
/ K. \6 ?4 {/ \2 t# m
" h& K& |. R5 e/ M3 S, x[ 本帖最后由 jackey_gu 于 2008-7-21 16:13 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 16:29 , Processed in 1.298090 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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