Specifications

©
2008 Advanced Micro Devices Inc.
Sample Programs
AMD SB600 BIOS Developer’s Guide (Public Version) Proprietary
Page 67
push dx
mov eax,8000A148h ; To modify register 48h on the IDE controller
mov dx,0CF8h ; PCI index register
out dx,eax ; Set index for register 48h-4Bh
mov dx,0CFCh ; Set PCI data register for 48h
in ax,dx ; Read register 49h
mov bx,ax ; Save current 48h-49h registers
; Unlock the IDE controller to be enabled/disabled bit
mov eax,8000A108h ; To write to PCI register 08h on IDE controller
mov dx,0CF8h ; PCI index register
out dx,eax ; Set index for registers 08h – 0Bh
mov dx,0CFDh ; To read register 09h
in al,dx ; Read register 09h
or al,08h ; Set bit 3 to enable secondary channel program
out dx,al ; Write back to register
; Disable the secondary IDE channel. The register 48h-49h is saved in BX
mov eax,8000A148h ; To modify register 48h on the IDE controller
mov dx,0CF8h ; PCI index register
out dx,eax ; Set index for register 48h-4Bh
mov dx,0CFCh ; Set PCI data register for 49h
or bx,0100h ; Set bit 8 of 48h
mov ax,bx
out dx,ax
; Lock in the secondary channel to enable/disable bit
mov eax,8000A108h ; To write to PCI register 08h on IDE controller
mov dx,0CF8h ; PCI index register
out dx,eax ; Set index for registers 08h – 0Bh
mov dx,0CFDh ; To read register 09h
in al,dx ; Read register 09h
and al,0F7h ; Clear bit 3 to enable secondary channel program
out dx,al ; Write back to register
pop dx
pop bx
pop eax
; End of secondary channel disable