[U-Boot-Users] Bogus External Interrupt
Jerry Van Baren
gerald.vanbaren at smiths-aerospace.com
Fri Mar 3 16:13:03 CET 2006
> 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.
More information about the U-Boot