jackey_gu 发表于 2008-7-21 11:31:40

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

sis 968 datasheet ,page468说了2种存取APC reg的方法,但是其中的SB reg.48h不知道是指哪个寄存器?

IO index access   
Software would use 2 way to access the APC register


1.Software would set SB reg. 48h bit 6 to 1 to enable the APC bank. Use index/data port
with 70h/71h to read/write data. After access, reset the SB reg. 48h bit 6 to 0 to disable
the APC bank.

2.Software would set SB reg. 48h bit 1 to 0 to enable the new re-index. Use index/data
port with 78h/79h to read/write data.

如果指的是48hRTC control的话, 我将0x7f填进去后,为什么通过70H,71H访问的还是 Internal RTC

cjt211 发表于 2008-7-21 13:02:13

你确认访问的位置是Bus0:Device2:Function0的Reg48h吗?
请用下面这段代码来试试
    reg:BYTE
      mov ax,0b108h
      mov bx,10h
      mov di,48h
      int 1ah
      mov reg,cl          ;get RTC Control Register

      mov cl,reg
      and cl,3fh
      or cl,40h         ;set APCREG_EN
      mov ax,0b10bh
      mov bx,10h
      mov di,48h
      int 1ah
       //now can access the APC register

      mov cl,reg
      mov ax,0b10bh
      mov bx,10h
      mov di,48h
      int 1ah            ;Restore

jackey_gu 发表于 2008-7-21 13:54:47

应该没弄错啊
(1L <<31) + (0L << 16) + (2 << 11) + ( 0 << 8) + (0x48 & 0xfc)

jackey_gu 发表于 2008-7-21 16:11:58

问题已找到,原因是bios默认ACPI base registers在I/O SPACE(在角落里有这个设定),而我在MEMORY SPACE 中读的,所以只要改一下就OK了

ps.看来还是要仔细的看datasheet

[ 本帖最后由 jackey_gu 于 2008-7-21 16:13 编辑 ]
页: [1]
查看完整版本: 关于SIS 968中APC REG的读写问题