[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "spurious 8259A interrupt: IRQ7."

On Mon, Oct 20, 2003 at 11:35:13AM -0600, Bob Proulx wrote:
> > It isn't right.  What it means is that an interrupt was asserted, but by
> > the time the hardware got around to telling the CPU, it wasn't there any
> > more.  IRQ7 is the lowest priority interrupt, and that's where the service
> > routine ends up.
> That isn't right either.  IRQ7 is not the lowest priority interrupt
> and neither do routines just end up there.  At least we are both
> posting what appears to be bogus information.  :-)

How do you figure that IRQ7 isn't the lowest priority interrupt?

IRQ0    timer tick
IRQ1    keyboard
IRQ2    chained to IRQ9
 |      IRQ8    RTC
 |______IRQ9    chained to IRQ2
        IRQ10   free
        IRQ11   free
        IRQ12   usually PS/2 port
        IRQ13   free (used to be the numeric coprocessor)
        IRQ14   primary IDE
        IRQ15   secondary IDE
IRQ3    secondary serial
IRQ4    primary serial
IRQ5    free (was the HD interrupt on the XT)
IRQ6    floppy disk
IRQ7    lpt

The whole reason that the architecture has this weirdo interrupt structure
is that for the AT, IBM had to get the HD interrupt up to a higher priority
than the serial ports.  You have to daisy-chain the two 8259's SOMEWHERE.

Of course, we don't have motherboards that use 8259A interrupt controllers
any more, but the same idea holds.

I shouldn't have said that the routine "just ended up there"... that's
idiot-level speak.  The hardware had an interrupt asserted, but it's not
there any more by the time the logic tried to route it.  Remember, chained

So it fell to the bottom of the logic.

The kernel, on the other hand, is sitting there saying "huh, there was no
interrupt for IRQ7 asserted."

 Marc Wilson |     QOTD: "The baby was so ugly they had to hang a pork
 msw@cox.net |     chop around its neck to get the dog to play with it."

Attachment: signature.asc
Description: Digital signature

Reply to: