quick fix for active IDE interrupts at boot stage
git-svn-id: svn://kolibrios.org@4578 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
898fe08869
commit
85d31dcef6
@ -1183,3 +1183,35 @@ IDE_BAR2_val dw ?
|
||||
IDE_BAR3_val dw ?
|
||||
endg
|
||||
;-----------------------------------------------------------------------------
|
||||
|
||||
proc clear_pci_ide_interrupts
|
||||
mov esi, pcidev_list
|
||||
.loop:
|
||||
mov esi, [esi+PCIDEV.fd]
|
||||
cmp esi, pcidev_list
|
||||
jz .done
|
||||
cmp [esi+PCIDEV.class], 0x01018F
|
||||
jnz .loop
|
||||
mov ah, [esi+PCIDEV.bus]
|
||||
mov al, 2
|
||||
mov bh, [esi+PCIDEV.devfn]
|
||||
mov bl, 0x20
|
||||
call pci_read_reg
|
||||
and eax, 0FFFCh
|
||||
mov edx, eax
|
||||
add edx, 2
|
||||
in al, dx
|
||||
DEBUGF 1,'K : clear_pci_ide_interrupts: port[%x] = %x ',dx,al
|
||||
out dx, al
|
||||
in al, dx
|
||||
DEBUGF 1,'-> %x; ',al
|
||||
add edx, 8
|
||||
in al, dx
|
||||
DEBUGF 1,'port[%x] = %x ',dx,al
|
||||
out dx, al
|
||||
in al, dx
|
||||
DEBUGF 1,'-> %x\n',al
|
||||
jmp .loop
|
||||
.done:
|
||||
ret
|
||||
endp
|
||||
|
@ -1027,6 +1027,7 @@ end if
|
||||
|
||||
mov [pci_access_enabled], 1
|
||||
call pci_enum
|
||||
call clear_pci_ide_interrupts
|
||||
|
||||
include "detect/vortex86.inc" ; Vortex86 SoC detection code
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user