RTEMS | riscv: fix spurious interrupt by using SIP_SSIP instead of SIP_STIP (!1124)

Kinsey Moore (@opticron) gitlab at rtems.org
Mon Mar 16 14:13:58 UTC 2026




Kinsey Moore started a new discussion on bsps/riscv/riscv/irq/irq.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1124#note_145705

 >  
 >    if (vector == RISCV_INTERRUPT_VECTOR_TIMER) {
 >  #ifdef RISCV_USE_S_MODE
 > -    *pending = (read_csr(sip) & SIP_STIP) != 0;
 > +  set_csr(sie, SIP_SSIP);
 >  #else
 > -    *pending = (read_csr(mip) & MIP_MTIP) != 0;
 > +  set_csr(mie, MIP_MSIP);

Why are these now setting the CSR instead of reading from it?

If this is an action taken relating to a timer interrupt vector, why is this now adjustig the software interrupt vector?

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1124#note_145705
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260316/427681ed/attachment.htm>


More information about the bugs mailing list