Subject: Re: [netbsd-4] port-powerpc/35705: interrupt handler ext_intr for
To: None <netbsd-bugs@netbsd.org>
From: addopt <gfussan@web.de>
List: netbsd-bugs
Date: 02/19/2007 06:12:26
Hello Allen!

Its the ibm4xx implementation!
Actually, I use a PPC405 on an evaluation board (evbppc).
Additionally, "do_pending_int" could call the hw routine a third time - when
enabling before unsetting!

All (external) UIC interrupts are set level triggered, here.

- Gernot -



Allen Briggs wrote:
> 
> On Mon, Feb 19, 2007 at 12:25:00PM +0000, gfussan@web.de wrote:
>> For the PowerPC-arch the machine-depending main interrupt handler
>> ("ext_intr()") doesn't work correctly for level-triggered interrupts,
>> as re-enabling interrupting before calling the interrupt-specific
>> routine causes a re-jump into the ext_intr() with marking the second
>> jump as a "pending" interrupt. So, every interrupt handler is called
>> twice per hard-interrupt, always!
>> 
>> Why was it implemented like that?
> 
> This is a guess since I didn't implement it...  It was tested to make
> sure that interrupts didn't hang the system, but not tested to make sure
> that interrupts only triggered once.
> 
> Each PowerPC port supplies its own ext_intr(), except for the 40x ports
> which share one.  Which port(s) have you noticed this on?
> 
> -allen
> 
> 

-- 
View this message in context: http://www.nabble.com/port-powerpc-35705%3A-interrupt-handler-ext_intr-for-edge-triggered-IRQs%2C-only--tf3252554.html#a9042808
Sent from the netbsd-bugs mailing list archive at Nabble.com.