[U-Boot-Users] Bogus External Interrupt

Jerry Van Baren gerald.vanbaren at smiths-aerospace.com
Fri Mar 3 16:13:03 CET 2006


do wrote:
> Hello,
> 
> I am trying to write simple program similar to examples/timer.c, which 
> uses interrupts from general purpose timers.
> 
> My board is based on mpc8260 and I am using U-boot 1.1.4.
> 
> When interrupt is generated from timer, there also appears message: 
> Bogus External Interrupt IRQ 0.
> 
> I don't know why bogus interrupt appears and how it is related to my 
> timer interrupt.This is also strange that the number of IRQ is 0. This 
> bogus interrupt appears only when timer is started. When I have 
> registered my timer interrupt handler with irq_install_handler, but not 
> started timer, everything was ok, and I was able to check with irqinfo 
> that my handler is registered.
> 
> I would be grateful for some suggestions what can be wrong.
> 
> Best regards!

Typically "IRQ 0" is an indication that there was no interrupt found 
when the ISR went to read the interrupt reason.  I can think of two 
reasons for this:
1) (Typical reason): an interrupt happened and was withdrawn (level 
sensitive interrupt: it went inactive) before the processor got to the ISR.

2) (Likely your problem): The ISR cleared the interrupt improperly so 
that the processor (re)latched the interrupt that was cleared.  When you 
exit the ISR, the processor has a pending interrupt so it re-enters the 
ISR, but doesn't find anything to do.  Typically this is caused by 
clearing the processor side of the interrupt and _then_ clearing the 
source.  You should clear the source _first_ and then the processor (or, 
for a multi-level interrupt, clear from the furthest out inward).

This should be a non-fatal error, but should be understood and fixed.

gvb




More information about the U-Boot mailing list