Oops, masked the wakeup-on-halt request path when I masked IRQs on WFI state.
This commit is contained in:
		
							parent
							
								
									099f0467fb
								
							
						
					
					
						commit
						6abd93eb49
					
				|  | @ -1423,8 +1423,11 @@ wire irq_active = |(mip & mie) && mstatus_mie && !dcsr_step; | ||||||
| // WFI clear respects individual interrupt enables but ignores mstatus.mie. | // WFI clear respects individual interrupt enables but ignores mstatus.mie. | ||||||
| // Additionally, wfi is treated as a nop during single-stepping and D-mode. | // Additionally, wfi is treated as a nop during single-stepping and D-mode. | ||||||
| // Note that the IRQs and debug halt request input registers are clocked by | // Note that the IRQs and debug halt request input registers are clocked by | ||||||
| // clk_always_on, so that a wakeup can be generated when asleep. | // clk_always_on, so that a wakeup can be generated when asleep. Note also | ||||||
| assign pwr_wfi_wakeup_req = |(mip & mie) || dcsr_step || debug_mode || want_halt_irq_if_no_exception; | // that want_halt_irq_if_no_exception can be masked while asleep, so also | ||||||
|  | // feed in the raw halt request as a wakeup source. | ||||||
|  | assign pwr_wfi_wakeup_req = |(mip & mie) || dcsr_step || debug_mode || | ||||||
|  | 	want_halt_irq_if_no_exception || dbg_req_halt_prev; | ||||||
| 
 | 
 | ||||||
| // Priority order from priv spec: external > software > timer | // Priority order from priv spec: external > software > timer | ||||||
| wire [3:0] standard_irq_num = | wire [3:0] standard_irq_num = | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue