[Top] [All Lists]

Re: No interrupts

Subject: Re: No interrupts
From: Systemkennung Linux <>
Date: Sun, 11 Feb 1996 16:10:39 +0100 (MET)
In-reply-to: <> from "Warner Losh" at Feb 9, 96 08:54:17 pm

> : Because the interrupt timer is not enabled.
> Because the interrupt timer IRS is not being called.  There is a
> subtle difference there.
> : So jiffies never changes - which is a real bummer.
> : The culprit is a line of  some dosisms that still remain.
> Any ideas which one?
> Datapoint:  Linux/MIPS 1.2.10ish booted to a much farther point, so I
> kinda doubt it.  Most likely some change between now and then broke
> things :-(.  I'm looking into that angle at the moment.  I'm also
> looking to see if the interrupt handlers is being called at all by
> scribbling to video memory whenever it gets called....
> Another datapoint: When I hit the numlock key, nothing happens.
> Again, indication that the interrupts that should be happening aren't
> calling the routines that one would expect, either due to a
> dispatching bug, or due to an enabling bug.  It is more general than
> just the timer...

> Ralf, any changes to the dispatch code that would might potentially
> cause this?  The tyne.S didn't compile when I started, so I'm thinking
> there just might be some changes that require this...  Just a thought.

Try to use the interrupt handler from pica.S (ll_isa_irq).  I started
with the Tyne irq handler for the Acer.  The Tyne handler was buggy;
so I repaired it for the Acer.  The two handler are essentially the
same.  In fact the Acer could perfectly run with the Tyne handler.  The
reason that they're not the same is that the Jazz chipset offers a
better way (Port accesses are incredible slooow) to do the i486-like
interrupt acknowledge cycle:

ll_isa_irq:     lw      t1,JAZZ_EISA_IRQ_ACK
                lui     s0,%hi(PORT_BASE)
                andi    t0,t1,8                         # which pic?

                lui     s0,%hi(PORT_BASE)
                li      t1,0x0f
                sb      t1,%lo(PORT_BASE+0x20)(s0)      # poll command
                lb      t1,%lo(PORT_BASE+0x20)(s0)      # read result


<Prev in Thread] Current Thread [Next in Thread>