diff options
author | Martin Galvan <martin.galvan@tallertechnologies.com> | 2016-02-28 00:19:33 +0100 |
---|---|---|
committer | Ben Gras <ben@minix3.org> | 2016-02-28 00:23:02 +0100 |
commit | 8c5c53f4788eb74264a053f8293fed26da85b764 (patch) | |
tree | 89d62ce07b2a2baa2cc0a1301ff2c7da0863a742 /c/src/lib/libcpu/arm | |
parent | rtems: Avoid __RTEMS_USE_TICKS_FOR_STATISTICS__ (diff) | |
download | rtems-8c5c53f4788eb74264a053f8293fed26da85b764.tar.bz2 |
am335x irq handling improvement
This patch makes the following changes to the Beaglebone IRQ handling code:
- Disable support for nested interrupts.
- Detect spurious IRQs using the SPURIOUSIRQ field of the INTC_SIR_IRQ register.
- Acknowledge spurious IRQs by setting the NewIRQAgr bit of the INTC_CONTROL
register. This cleans the SPURIOUSIRQ field and allows new interrupts
to be generated.
- Improve the get_mir_reg function a bit.
Closes #2580.
Diffstat (limited to 'c/src/lib/libcpu/arm')
-rw-r--r-- | c/src/lib/libcpu/arm/shared/include/omap3.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/arm/shared/include/omap3.h b/c/src/lib/libcpu/arm/shared/include/omap3.h index f28e5e5406..0cc43d6383 100644 --- a/c/src/lib/libcpu/arm/shared/include/omap3.h +++ b/c/src/lib/libcpu/arm/shared/include/omap3.h @@ -72,7 +72,8 @@ #define OMAP3_INTR_ILR(base,m) \ (base + OMAP3_INTCPS_ILR0 + 0x4 * (m)) -#define OMAP3_INTR_ACTIVEIRQ_MASK 0x7f /* Active IRQ mask for SIR_IRQ */ +#define OMAP3_INTR_SPURIOUSIRQ_MASK (0x1FFFFFF << 7) /* Spurious IRQ mask for SIR_IRQ */ +#define OMAP3_INTR_ACTIVEIRQ_MASK 0x7F /* Active IRQ mask for SIR_IRQ */ #define OMAP3_INTR_NEWIRQAGR 0x1 /* New IRQ Generation */ #define OMAP3_DM337X_NR_IRQ_VECTORS 96 |