forked from KolibriOS/kolibrios
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 ?
|
IDE_BAR3_val dw ?
|
||||||
endg
|
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
|
mov [pci_access_enabled], 1
|
||||||
call pci_enum
|
call pci_enum
|
||||||
|
call clear_pci_ide_interrupts
|
||||||
|
|
||||||
include "detect/vortex86.inc" ; Vortex86 SoC detection code
|
include "detect/vortex86.inc" ; Vortex86 SoC detection code
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user