Open
Description
This is not a bug, as there is no specification besides that which I have written for this behaviour as far as I know.
When taking an NMI Ibex stores mepc
in mstack_epc
to allow for easy recovery. Upon MRET
mstack_epc
is copied back to mepc
. See here.
CherIoT-Ibex does this too, but it does not store the upper bits of MEPCC
, and so upon MRET
MEPCC.address = mstack_epc
and the rest is cleared. MEPCC
therefore does not have the value it would have had, had the NMI not happened.
This feels like the wrong behaviour to me, but I may be wrong and it's possible that CherIoT-RTOS simply doesn't care. I'm happy to be told that this is the intended behaviour.
Metadata
Metadata
Assignees
Labels
No labels