diff options
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/irq/irq_asm.S | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/irq/irq_init.c | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/arm/shared/ChangeLog b/c/src/lib/libbsp/arm/shared/ChangeLog index 80c880f3b4..bbedc4a9f4 100644 --- a/c/src/lib/libbsp/arm/shared/ChangeLog +++ b/c/src/lib/libbsp/arm/shared/ChangeLog @@ -1,3 +1,8 @@ +2002-11-13 Jay Monkman <jtm@smoothsmoothie.com> + + * irq/irq_asm.S, irq/irq_init.c: Fixes a bug with handling the + situation where we are processing an IRQ, and we receive an FIQ. + 2002-10-04 Jay Monkman <jtm@smoothsmoothie.com> * irq/irq_asm.S: Add FIQ support. diff --git a/c/src/lib/libbsp/arm/shared/irq/irq_asm.S b/c/src/lib/libbsp/arm/shared/irq/irq_asm.S index ddde872d94..a3009d1be3 100644 --- a/c/src/lib/libbsp/arm/shared/irq/irq_asm.S +++ b/c/src/lib/libbsp/arm/shared/irq/irq_asm.S @@ -62,6 +62,12 @@ _ISR_Handler: cmp r0, #0x12 /* is it INT mode? */ beq exitit +/* check to see if we interrupted nd INT (with FIQ?) */ + mrs r0, spsr + and r0, r0, #0x1f + cmp r0, #0x12 /* is it INT mode? */ + beq exitit + /* If thread dispatching is disabled, exit */ cmp r1, #0 bne exitit diff --git a/c/src/lib/libbsp/arm/shared/irq/irq_init.c b/c/src/lib/libbsp/arm/shared/irq/irq_init.c index ba120cb334..74fce89778 100644 --- a/c/src/lib/libbsp/arm/shared/irq/irq_init.c +++ b/c/src/lib/libbsp/arm/shared/irq/irq_init.c @@ -16,7 +16,6 @@ #include <irq.h> #include <bsp.h> #include <rtems/bspIo.h> -#include <registers.h> /* * default int vector |