Commit Graph

71 Commits

Author SHA1 Message Date
Luke Wren 65fb62901e Mask off trap entry assertion from IRQs when in debug mode. Because the IRQ is level-sensitive, this caused trap entry to be held asserted when an IRQ fired in debug mode. This was exposed by the last bug fix -- it is only seen now that MIE+MPIE shuffling is correctly disabled in debug mode. 2021-07-19 00:19:56 +01:00
Luke Wren 70443fa557 Disable shifting of MIE/MPIE stack when in or entering debug mode 2021-07-18 21:14:11 +01:00
Luke Wren d30fc46f5b Fix IRQ mcause not being set correctly when vectoring is disabled 2021-07-18 20:44:39 +01:00
Luke Wren e95b465e26 Typo in address of mcountinhibit! 2021-07-17 19:27:01 +01:00
Luke Wren 8e3dc62b97 Fiddly handshake changes for hardware single-stepping. Can now step correctly through illegal instructions 2021-07-16 20:43:24 +01:00
Luke Wren 5aca6be572 Implement data0 inside of DM instead of core, so it gets correct reset. Add dummy tselect CSR. 2021-07-16 18:28:30 +01:00
Luke Wren 011008efd1 Fix detection of exception-like vs IRQ-like halt/trap entries 2021-07-15 19:41:35 +01:00
Luke Wren 71ec9fa283 Fix exception entry not counting as a step point for dcsr.step, and mask off IRQs in step mode (we tie dcsr.stepie = 0) 2021-07-14 20:39:51 +01:00
Luke Wren 5cc483898d Add smoke test for core debug interface, and suppress bus fetch incrementing frontend level counter when in debug mode 2021-07-10 21:02:18 +01:00
Luke Wren 63d661af63 Start hacking in debug support to the core -- seems to work as well as before adding debug! 2021-07-10 18:53:48 +01:00
Luke Wren 6a38fc33a6 Allow MHARTID to be configured at instantiation 2021-07-07 16:08:08 +01:00
Luke Wren 278dc8b6a2 meie0 default to all-zeroes 2021-06-04 07:37:02 +01:00
Luke Wren af684c4e82 Some cleanup; correctly decode 16-bit EBREAK 2021-06-03 20:03:43 +01:00
Luke Wren 5f8d217395 Implement new IRQ behaviour, and change mip.meip to be masked by individual enables in meip0 2021-05-31 17:54:12 +01:00
Luke Wren 12851d3742 Bring mtvec vectoring modes in line with spec: all exceptions go to mtvec, IRQs are optionally vectored away from it if mtvec LSB is set 2021-05-30 19:52:46 +01:00
Luke Wren cec5dc4e3b Remove old MCYCLE/MCYCLEH, implement MCOUNTINHIBIT fully, always decode tied-off HPM counters 2021-05-30 19:20:53 +01:00
Luke Wren 565b76672a Make MVENDORID/MARCHID/MIMPID configurable 2021-05-30 18:42:43 +01:00
Luke Wren f23ec3f941 Don't hold back instruction in M when an IRQ entry is stalled (but do for exception entry). Now pass add and lw checks in riscv-formal with depth 15, so getting somewhere 2021-05-29 18:57:43 +01:00
Luke Wren 65075df0e5 More work on traps, delaying IRQs which arrive whilst a load/store address phase is stalled to avoid deassertion on the bus 2021-05-29 18:00:43 +01:00
Luke Wren 1b252d4bda Significant overhaul of trap handling. Exceptions now taken from stage 3 instead of stage 2 2021-05-23 11:59:46 +01:00
Luke Wren 844fa8f97f Rename hazard5 -> hazard3 2021-05-21 03:46:29 +01:00