pci irq problem
pci irq problem
Hello My OS freezes when i enable irq6 , i think the cause is a pci sound card that produces a irq ,the problem only happens when the sound card
is pluged in a given pci slot.
My irq handler sends the ack to the pic but the system freezes,because irqs stops working.I don´t have a driver for this sound card so i don´t know how to solve this problem.
and don´t know how to dissable irq on all pci devices.
some other ideas?
why are pci interrupts special ?
is pluged in a given pci slot.
My irq handler sends the ack to the pic but the system freezes,because irqs stops working.I don´t have a driver for this sound card so i don´t know how to solve this problem.
and don´t know how to dissable irq on all pci devices.
some other ideas?
why are pci interrupts special ?
it's not that you need to disable all PCI irq's, but rather enable the irq's that you need and leave the rest disabled. this is done through the PIC. Also, do you have a generic handler for all IRQ's that don't have an associative handler? if so, are you acknowledging both the master & slave PIC's whic appropriate?
Website: https://joscor.com
Yes i ack the master pic but the computer freezes.01000101 wrote:it's not that you need to disable all PCI irq's, but rather enable the irq's that you need and leave the rest disabled. this is done through the PIC. Also, do you have a generic handler for all IRQ's that don't have an associative handler? if so, are you acknowledging both the master & slave PIC's whic appropriate?
There actually is, they are level-triggered, which means that the IRQ keeps firing until the source of the interrupt is handled. So if you don't have a driver for the soundcard ('handle the interrupt') the irq keeps firing. I guess that could look like the computer freezed.Korona wrote:There is nothing special about PCI interrupts.
Hmmmm. I have not had to deal with that problem yet. That sounds very annoying during boot, when the drivers are not loaded yet. It seems like the only way to handle that during boot (as said above) is to keep the PICs masked to only the IRQs that you really want to see? (Which could be none of them, while you are in singletasking mode, and doing polling instead?)
-- But what if an "unhandled" PCI board is sharing an interrupt with a PCI card that you need to use during boot?
-- But what if an "unhandled" PCI board is sharing an interrupt with a PCI card that you need to use during boot?
Yes ,i think this is the problem,but what is the solution?bluecode wrote:There actually is, they are level-triggered, which means that the IRQ keeps firing until the source of the interrupt is handled. So if you don't have a driver for the soundcard ('handle the interrupt') the irq keeps firing. I guess that could look like the computer freezed.Korona wrote:There is nothing special about PCI interrupts.
Since the irq is used by many devices (floppy and sound card in this case)
i need to enable the interrupt for my floppy driver.
By now i placed the sound card in another pci slot ,but i can not expect from people that test my Os from doing the same.
On another computer i had a similar problem with a ethernet card,in this case the computer hangs before the OS is loaded.I think is a hardware bug but windows has some patch for this.
it is posible to disable a pci device for wich there is no driver?