IRQ Failure

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
shad

IRQ Failure

Post by shad »

I recently remapped the PIC, and installed handlers for the interrupts. (basicly just print which interrupt it is). The problem is that the only irq that seems to fire is the clock (irq 0). (No its not a mapping problem because i tried it with no irq's masked ) what could the problem be? (yes i send EOI after the isr ).
Tim

Re:IRQ Failure

Post by Tim »

The only other IRQ that's likely to fire is 1, and that's when you press or release a key on the keyboard. The keyboard controller will only fire another IRQ 1 if you read the scan code using in(0x60).
shad

Re:IRQ Failure

Post by shad »

ok i see, do i have to initialize the keyboard to send the irq or is that the default. Also, will all the hardware be setup to send irq's or is there initialization for serial ports etc. ?
slacker

Re:IRQ Failure

Post by slacker »

no initialization is necessary. once a key is pressed(or released) irq0 fires. same for serial ports etc...

but im not sure if you disable the keyboard the irq will still fire..maybe Tim can help you here
Tim

Re:IRQ Failure

Post by Tim »

Hardware will only fire an IRQ if it needs to. For the timer, this is when the interval expires. For the keyboard, this is when it's enabled and the user presses a key. For the floppy drive and IDE controllers, when the drive or disk has completed a command. For a network card, when the card is set up and a packet is sent or received.
shad

Re:IRQ Failure

Post by shad »

Ok well, i fixed my isr for IRQ1, works fine in bochs but no go on the cpu.
Post Reply