Subject: wierd interrupt problem
To: None <port-i386@netbsd.org>
From: T. William Wells <bill@twwells.com>
List: port-i386
Date: 09/21/1994 13:20:19
I've been running with the patches I posted the other day, which have my
kludged up fast interrupt code and no mask fiddling in the interrupt handler.
This works, until....

No serial interrupts are generated, period. Everything else works fine.

By poking around with I/O ports and the debugger, I've discovered that no
serial interrupts are being generated. That is, the entry points of the
vector code, Xfast5 and Xintr5, are not being executed.

My first thought was that the interrupt was masked somehow. It isn't.
Checking out port 21 and imen shows that the interrupt masks are normal.  And
it doesn't look like the interrupt request bit is ever set. (I'm assuming
that reading port 20 gives the irr and 21 gives the imask, at least when
executing user code.)

My second thought was that the UART wasn't generating interrupts, but two
things make that unlikely. One is that the UART had all the right bits for an
interrupt and responded correctly to turning them off and on. The other is
that when one port goes, all the rest that share the interrupt also go.

So, if all my conjectures are correct, somewhere between the UART and the
8259, all interrupts are being lost. Seems unlikely....

Alternately, the interrupt vectors have been changed. Or, the 8259 has been
mis-programmed somewhere. Or...?

A plain reboot fixes the problem; a hardware reset is not necessary.

Unfortunately, I don't have any 8259 documentation, so I don't know how to
probe the problem further. If anyone has some e-mailable documentation that
would be great. Or even some clues....