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.
I'm attempting to switch from using the legacy PIC to the fancy I/O APIC and right now I've got the LAPIC set up correctly with the timer interrupt firing properly. However, when I set up the I/O APIC to fire IRQ1 for the keyboard I get hundreds of IRQ1s. They just keep coming.
To setup the I/O APIC for IRQ1 I set the table entry #1 (0x12 - 0x13 offset) to 0x0000000000000021.
Anyway, is there some EOI register on the I/O APIC ?
My functions for reading / writing the I/O APIC registers were messing up and causing me to initialize the timer IRQ as the keyboard IRQ.
Basically I have a read / write functions for I/O APIC so that I can just pass in the GSI# (global system interrupt #) and then the function will figure out which I/O APIC to read from so the rest of my OS can just think there is one I/O APIC. It works now.
Now on to my .. hmm I guess .. VGA. That sounds fun.
I spent a few hours trying to find this bug and shortly after I registerd and asked here I found it. meh. oh well. must be this board's good luck