[comp.sys.ibm.pc.programmer] Using IRQ 2 on an AT is tricky

nelson@sun.soe.clarkson.edu (Russ Nelson) (03/03/90)

I'll bet that you already know that IRQ 2 on the AT bus is mapped to
IRQ 9 on the slave 8259.  You may even realize that the IRQ 9 handler
simply issues an EOI to the slave controller and calls the interrupt
associated with IRQ 2 (INT A).  This ensures that software written for
the PC will work when you use it with IRQ 2.

But what I'll bet you *didn't* realize was that IRQ 9 is enabled at
boot time.  If you have a piece of hardware that generates a spurious
IRQ 9 at initialization time, it will get handled by the default IRQ 2
handler.  This interrupt handler may not do anything useful.  In my
case it crashed my machine.

My solution is to disable interrupts during the time that I'm initializing
the board.
--
--russ (nelson@clutx [.bitnet | .clarkson.edu])  Russ.Nelson@$315.268.6667
Violence never solves problems, it just changes them into more subtle problems