Luke Wren
|
9dd091b7b5
|
Doh typo
|
2021-08-21 09:06:20 +01:00 |
Luke Wren
|
b99e5b8a67
|
Convert timer to serial for smaller area. Rather untested
|
2021-08-20 22:27:15 +01:00 |
Luke Wren
|
4aba165166
|
First pass at a 64-bit system timer
|
2021-08-20 21:49:05 +01:00 |
Luke Wren
|
8263ee3a5d
|
Fix reporting DPC after an excepting instruction when halt request is simultaneous with exception
|
2021-07-24 15:31:33 +01:00 |
Luke Wren
|
70a44d9681
|
Small code cleanup
|
2021-07-24 10:08:27 +01:00 |
Luke Wren
|
155d3ba554
|
Tie off 1 or 2 LSBs of DPC depending on IALIGN
|
2021-07-23 23:09:03 +01:00 |
Luke Wren
|
115cb2c50f
|
Tweaks to example soc configuration
|
2021-07-23 23:08:23 +01:00 |
Luke Wren
|
279e4b4f29
|
Implement mstatush as hardwired-0, as required by priv-1.12
|
2021-07-23 21:52:01 +01:00 |
Luke Wren
|
2ae30183aa
|
Working ECP5 debug, seems a bit slow but maybe just due to bitbanged FT231X JTAG.
|
2021-07-23 18:32:47 +01:00 |
Luke Wren
|
8ceae7e9e6
|
Start hacking on ECP5 JTAG DTM
|
2021-07-23 00:36:55 +01:00 |
Luke Wren
|
41477ce479
|
Extract DTM bus/control logic from the JTAG-related parts
|
2021-07-22 19:26:25 +01:00 |
Luke Wren
|
8cdde82248
|
Coding style tweaks for ALU to workaround upstream Yosys issue, see #1 and friends
|
2021-07-20 00:13:26 +01:00 |
Luke Wren
|
7d24f42da9
|
Oops, properly fix platform IRQ mcause numbers
|
2021-07-19 09:32:59 +01:00 |
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
|
d9300ee127
|
Fix bad handshake on bus error response (need to report both phases of response, to get clean exception entry
|
2021-07-17 19:26:45 +01:00 |
Luke Wren
|
5deff12f95
|
DM: don't report as running/halted in dmstatus if unavailable.
|
2021-07-17 16:46:39 +01:00 |
Luke Wren
|
ab0b4a04f0
|
Also support progbuf in abstractauto.
|
2021-07-17 15:08:00 +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
|
ce5152a4f4
|
Implement HALTSUM0 and HALTSUM1 registers
|
2021-07-16 17:58:28 +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
|
f4952ab66d
|
Add simple example SoC, hangs nextpnr for some reason!
|
2021-07-13 03:40:06 +01:00 |
Luke Wren
|
307955c810
|
Make CPU regfile nonresettable when FPGA symbol is defined, to support BRAM inference
|
2021-07-13 01:10:55 +01:00 |
Luke Wren
|
93c7039ea1
|
Sync doc updates
|
2021-07-12 22:13:31 +01:00 |
Luke Wren
|
4b650ac437
|
DM: add missing w1c to abstract cmderr, add capture of last abstract command for use with abstractauto
|
2021-07-12 21:26:00 +01:00 |
Luke Wren
|
42632e325a
|
Fix brokenness of JTAG-DTM and CDC, add openocd remote bitbang testbench for DTM + DM + core
|
2021-07-12 21:21:16 +01:00 |
Luke Wren
|
27674be996
|
Start hacking in a JTAG-DTM
|
2021-07-12 01:49:32 +01:00 |
Luke Wren
|
f7b3097ad6
|
Fix some bugs/typos in DM, add a tb to run read/write vectors against DM, confirm that GPR read/write works
|
2021-07-11 16:20:39 +01:00 |
Luke Wren
|
0dce59daaf
|
Start hacking together a DM
|
2021-07-11 05:11:19 +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
|
83244c6651
|
Add Read ID command to UART DTM
|
2021-07-10 16:14:35 +01:00 |
Luke Wren
|
3312ea7022
|
Add draft UART DTM
|
2021-07-08 17:57:46 +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
|
2330b84b73
|
Use .f for riscv-formal tb dependencies, small reshuffling of directories
|
2021-05-30 09:44:57 +01:00 |
Luke Wren
|
ad8f251ba2
|
RVFI wrapper: use proper bus assumptions. RVFI monitor: don't mark instruction which is aligned with IRQ as invalid, because the IRQ entry is notionally behind it
|
2021-05-29 23:24:02 +01:00 |
Luke Wren
|
ea5db61582
|
Fix exception being passed to M when X is stalled but M is not (a load which had an unaligned address spuriously during a RAW stall on the result register)
|
2021-05-29 22:52:50 +01:00 |
Luke Wren
|
4b9a3c2c78
|
Fix wrong reg readaddr when D starvation ends during a downstream load/store dphase stall (was using garbage from D instead of new fetch data predecoded in F)
|
2021-05-29 19:32:12 +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 |