Libre RISC-V Mailing list Archives (accessible via public-inbox)
 help / color / Atom feed
* [libre-riscv-dev] Handling Interrupts
@ 2020-05-09 17:23 Yehowshua
  2020-05-09 19:42 ` Luke Kenneth Casson Leighton
  0 siblings, 1 reply; 2+ messages in thread
From: Yehowshua @ 2020-05-09 17:23 UTC (permalink / raw)
  To: Libre-RISCV General Development

One thing I just realized that I’ve never done in any of the RTL CPUs I’ve worked with is enable interrupts.

How are interrupts done in RTL? As soon as the CPU controller sees that EINT is high, does it(upon the next clock boundary), flush the pipeline and immediately jump to the handler?

I’m aware that there can be external hardware such as a PLIC to arbitrate interrupts, I’m just not certain about the actual CPU RTL - what it would do. That is, if the CPU immediately jumps to the handler address - or if it bothers to save a few register first( this might depend on the actual ISA itself too).

I see that for MIPS(link below), there is a dedicated area in memory to dump the current GPR values.

https://courses.engr.illinois.edu/cs232/sp2012/section/disc5.pdf <https://courses.engr.illinois.edu/cs232/sp2012/section/disc5.pdf>

Yehowshua
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-09 17:23 [libre-riscv-dev] Handling Interrupts Yehowshua
2020-05-09 19:42 ` Luke Kenneth Casson Leighton

Libre RISC-V Mailing list Archives (accessible via public-inbox)

Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev

Example config snippet for mirrors


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git