At the beginning of my kernel, I issue the FINIT instruction. After that, there are almost 200 lines of code and when I enable the interrupts with STI, IRQ 15 is fired? Does anybody have any idea?

P.S: My IDT is established and initialized correctly. IRQs are remapped and GDT is fine. When FINIT is removed, IRQ 15 is not fired anymore.
Posted on 2007-03-22 03:09:59 by XCHG
The FPU/x87/Co-processor should trigger IRQ 13 (0x0D) and not IRQ 15 (0x0F) unless something is triggering a spurious interrupt... but I've only seen that happen to IRQ 7. Perhaps the IRQs are not correctly mapped?

I don't use any FPU instructions in my kernel, so I don't have much more to tell you. Let me know what you figure out :)
Posted on 2007-03-22 06:43:14 by SpooK
I think it was Bochs' problem because even then I checked it with MSVPC and IRQ 15 was not being fired. I am testing my OS with Bochs right now again and everything seems to be fine. Have you had such problems with Bochs, too?  :shock:
Posted on 2007-03-22 07:34:50 by XCHG
Not that I remember. There are plenty of times that I thought Bochs was the problem, but to this very day every single major problem was a logic/design flaw on my behalf and not with the actual emulator. The only exception to this is the problem with the FDC not firing an IRQ6 during various operations. Who knows... maybe that is another error on my behalf that I just haven't figured out yet :P
Posted on 2007-03-22 09:02:41 by SpooK

maybe that is another error on my behalf that I just haven't figured out yet

...or just bochs not emulating hardware 100% the way it works in real life - with all the quirks and annoyances.

Posted on 2007-03-22 09:30:56 by f0dder