This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Spurious interrrupts on arm


Hi,

I found that the configuration option that causes
spurious interrupts to be ignored did not work,
regardless of this option's value, spurious interrupts
were always handled. Investigating the problem I found
bugs in both the ARM at91 variant HAL and the ARM
architectural HAL.

First of all, the at91 HAL failed to recognize spurious
interrupts as such and returned vector #0 for them.
This vector is invalid on the at91 platform, and therefore
was handled by the default interrupt handler. While this
is the normal behavior also for spurious interrupts and
therefore appeared to work, it bypassed the code in the
arch HAL that gives such interrupts special treatment, so
ignoring them was not possible.

After fixing this I found that the architectural HAL is
also broken, because if instructed to ignore spurious
insterrupts it does exactly that: ignoring them. This is
wrong, however, because like all other interrupts they must
be acknowledged, or else the interrupt controller will
remain locked and any further interrupts will not be
handled.

The attached patches fix both problems.

tk 
--------------------------------------------------

Thomas Koeller, Software Development

Basler Vision Technologies
An der Strusbek 60-62
22926 Ahrensburg
Germany

Tel +49 (4102) 463-162
Fax +49 (4102) 463-239

mailto:thomas.koeller@baslerweb.com
http://www.baslerweb.com

==============================

Attachment: hal_arch.diff.bz2
Description: BZip2 compressed data

Attachment: hal_at91.diff.bz2
Description: BZip2 compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]