Commit Graph

91 Commits

Author SHA1 Message Date
Luke Wren a988adfec8 Add RISC-V opcodes and memory operation codes for atomics 2021-12-04 11:16:24 +00:00
Luke Wren 52ba930638 Remove useless midcr.eivect feature. Make mlei left-shift its value by 2. 2021-12-04 01:17:57 +00:00
Luke Wren dfb07822ee Remove UART DTM 2021-12-02 02:08:16 +00:00
Luke Wren be6b2f3f76 Fix up DTMs to use byte addressing 2021-12-02 02:05:23 +00:00
Luke Wren 1ebccb7cce Switch DM to use byte addresses on APB, not word addresses 2021-12-02 01:47:30 +00:00
Luke Wren c5e85dea4c Add mconfigptr CSR 2021-12-01 03:25:56 +00:00
Luke Wren c8afb4ac33 Add option for fast high-half multiplies 2021-11-29 18:48:02 +00:00
Luke Wren 94a3d43f27 Add Hazard3's registered marchid value to hdl and docs 2021-11-28 19:53:49 +00:00
Luke Wren 1aa9dbcddd Fix comment typo in APB clock crossing 2021-11-28 17:40:57 +00:00
Luke Wren e7466ae4be Move DM data0 CSR into the M-custom space, and document this 2021-11-28 15:52:52 +00:00
Luke Wren 76172cdade Start filling out CSR documentation. Change misa to report X=1 because of nonstandard IRQ CSRs. 2021-11-28 06:33:35 +00:00
Luke Wren 800b21d2f5 Remove event feedback path (not logical path) in priority encoder 2021-11-28 02:19:01 +00:00
Luke Wren 14a4f1a281 Add bitmanip reference vectors and test scripts. Fix bug in bclr implementation 2021-11-27 17:19:41 +00:00
Luke Wren 5d093487b7 Update README 2021-11-26 23:33:46 +00:00
Luke Wren 1bb7e33b69 Fix alignment of heap_ptr in init.S. Small ALU cleanup 2021-11-26 02:59:50 +00:00
Luke Wren 8bcec11c80 Couple more silly mistakes 2021-11-26 01:30:13 +00:00
Luke Wren 41eeb90c7d Remove (safe) feedback path which Verilator linted on -- CXXRTL doesn't hate me any more 2021-11-26 01:29:47 +00:00
Luke Wren 998f3fdeb7 Clean up silly mistakes 2021-11-26 00:55:57 +00:00
Luke Wren 58c20a39d0 First pass at implementing bitmanip. Breaks CXXRTL. Ooop 2021-11-25 23:30:35 +00:00
Luke Wren ed6b6a3660 Cleanup order of declaration/use of a couple of wires 2021-11-25 15:16:59 +00:00
Luke Wren 49462a8642 Add Zba/Zbb/Zbc/Zbs opcodes to rv_opcodes.vh 2021-11-23 22:11:50 +00:00
Luke Wren e05e9a4109 Add default_nettype none at top of every file, and default_nettype wire at bottom 2021-11-23 22:10:39 +00:00
Luke Wren 0b9b706e81 Safer logic for load/store blocked by preceding WFI 2021-11-23 22:01:14 +00:00
Luke Wren cc6a6c09ba Vaguely implement wfi 2021-11-05 18:48:42 +00:00
Luke Wren cfe16caf41 Remove some old todos 2021-09-05 22:20:40 +01:00
Luke Wren e9fccffca0 Fix break and single-step on a load/store access fault dropping the exception. Better fix for halt request on definitely-excepting stage M instruction giving unreachable next-instruction DPC. 2021-09-05 04:45:38 +01:00
Luke Wren 65bfca5fdf Fix latent bug with asynchronous debug entry during stalled load/store address phase 2021-09-04 07:49:29 +01:00
Luke Wren d03a82a826 Add instruction fetch faults 2021-09-04 02:57:39 +01:00
Luke Wren e16ae06cb5 Clean up timer 2021-08-21 17:03:32 +01:00
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