Matteo Concas created an issue: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5522



## Summary
<!--
Please provide as much information as possible such as error messages or 
attaching logs
-->

In applications where `CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER` is not defined 
and the previous boot stage did not set `stimecmp` to its maximum value, RTEMS 
might exit with fatal source `RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT`.

This is due to a supervisor timer interrupt happening while no interrupt entry 
had been installed for this vector (since the clock driver is not used).


Normally the supervisor timer interrupt should not be enabled in that case but 
in `bsps/riscv/riscv/irq/irq.c:674` it is enabled when the supervisor software 
interrupt should be enabled instead:
```c
rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
{
...
_Assert(vector == RISCV_INTERRUPT_VECTOR_SOFTWARE);
#ifdef RISCV_USE_S_MODE
  set_csr(sie, SIP_STIP);
#else
  set_csr(mie, MIP_MSIP);
#endif
```

The same error is also present in `bsp_interrupt_vector_disable()`

<!-- Pre-set options
- milestone
-->

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5522
You're receiving this email because of your account on gitlab.rtems.org.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to