Mask off trap entry assertion from IRQs when in debug mode. Because the IRQ is level-sensitive, this caused trap entry to be held asserted when an IRQ fired in debug mode. This was exposed by the last bug fix -- it is only seen now that MIE+MPIE shuffling is correctly disabled in debug mode.
This commit is contained in:
parent
70443fa557
commit
65fb62901e
|
@ -1018,7 +1018,7 @@ assign trap_is_irq = DEBUG_SUPPORT && (want_halt_except || want_halt_irq) ?
|
|||
|
||||
assign trap_enter_vld =
|
||||
CSR_M_TRAP && (exception_req_any ||
|
||||
!delay_irq_entry && (standard_irq_active || external_irq_active)) ||
|
||||
!delay_irq_entry && !debug_mode && (standard_irq_active || external_irq_active)) ||
|
||||
DEBUG_SUPPORT && (want_halt_irq || want_halt_except || pending_dbg_resume);
|
||||
|
||||
assign mcause_irq_next = !exception_req_any;
|
||||
|
|
Loading…
Reference in New Issue