arc: trap handler should always check IRQ_ACT
Regardless of the number of interrupt priorities supported, the exit of the trap handler can check AUX_IRQ_ACT to see if it interrupted a FIRQ or IRQ. Change-Id: I0b84d8298d3e6e437c934c01db4535fa8fe29458 Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
This commit is contained in:
parent
3fe2575f0d
commit
73c5b2861e
1 changed files with 0 additions and 11 deletions
|
@ -57,15 +57,6 @@ SECTION_VAR(NOINIT, _exception_stack)
|
||||||
GDATA(_firq_stack)
|
GDATA(_firq_stack)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_NUM_IRQ_PRIO_LEVELS == 1
|
|
||||||
#error "NUM_IRQ_PRIO_LEVELS==1 is not supported."
|
|
||||||
/* The code below sets bit 1 in AUX_IRQ_ACT and thus requires
|
|
||||||
* priority 0 and 1 at a minimum. Supporting only 1 priority
|
|
||||||
* requires a change to this file but also changes to make
|
|
||||||
* FIRQ optional.
|
|
||||||
*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @brief Fault handler installed in the fault and reserved vectors
|
* @brief Fault handler installed in the fault and reserved vectors
|
||||||
*/
|
*/
|
||||||
|
@ -160,7 +151,6 @@ SECTION_SUBSEC_FUNC(TEXT,__fault,__ev_trap)
|
||||||
|
|
||||||
mov_s r1, _nanokernel
|
mov_s r1, _nanokernel
|
||||||
ld_s r2, [r1, __tNANO_current_OFFSET]
|
ld_s r2, [r1, __tNANO_current_OFFSET]
|
||||||
#if CONFIG_NUM_IRQ_PRIO_LEVELS > 1
|
|
||||||
/* check if we're a nested interrupt: if so, let the
|
/* check if we're a nested interrupt: if so, let the
|
||||||
* interrupted interrupt handle the reschedule
|
* interrupted interrupt handle the reschedule
|
||||||
*/
|
*/
|
||||||
|
@ -174,7 +164,6 @@ SECTION_SUBSEC_FUNC(TEXT,__fault,__ev_trap)
|
||||||
_trap_return:
|
_trap_return:
|
||||||
_pop_irq_stack_frame
|
_pop_irq_stack_frame
|
||||||
rtie
|
rtie
|
||||||
#endif
|
|
||||||
|
|
||||||
.balign 4
|
.balign 4
|
||||||
_trap_check_for_swap:
|
_trap_check_for_swap:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue