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] |
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] |