Commit Graph

479 Commits

Author SHA1 Message Date
Luke Wren c41fe0609b Add a second mtimecmp comparator to TB IO, for dual-core InterruptTest from RISC-V debug tests.
Fix a couple of minor test script issues.
2023-03-26 23:00:18 +01:00
Luke Wren 94bd965e4e Add script for running SMP debug tests 2023-03-24 18:45:11 +00:00
Luke Wren 97509f548a tb_cxxrtl Makefile: better support for building multiple tb configurations 2023-03-24 18:44:37 +00:00
Luke Wren cbb490da6a Bump riscv-tests for hazard3 SMP debug test config changes 2023-03-24 18:11:08 +00:00
Luke Wren 0dd6be181d Fix up HwbpManual test in riscv-tests fork, and update debug test list 2023-03-24 00:28:02 +00:00
Luke Wren 43130a16e4 Fix readback of tdata2 and tinfo CSRs
(Found due to latest riscv-openocd failing to enumerate triggers,
as it now scans tinfo before going for tdata1/mcontrol)
2023-03-23 23:33:39 +00:00
Luke Wren 532e27dbc9 Bump riscv-tests for new debug and ISA tests. (Rebase of Hazard3 patches) 2023-03-23 23:32:28 +00:00
Luke Wren afcb6d283c Missing default assignment 2023-03-23 10:57:50 +00:00
Luke Wren 2905c1f820 Revert default for EXTENSION_ZC* to match docs in hazard3_config.vh 2023-03-23 03:07:09 +00:00
Luke Wren 4a1d2b5008 Save a cycle on popret/popretz by executing the stack adjust after the jump 2023-03-23 02:50:34 +00:00
Luke Wren b074d370a6 Add Zcb/Zcmp instruction timings to docs 2023-03-23 01:12:38 +00:00
Luke Wren 56586def8d List Zcb/Zcmp in docs, and rebuild PDF 2023-03-22 03:04:16 +00:00
Luke Wren b58cde882a Add link to Zcb/Zcmp specs 2023-03-22 02:48:56 +00:00
Luke Wren 95faab6f2c Add zcmp_irq_kill test 2023-03-22 02:44:03 +00:00
Luke Wren e98d7b41ea Hook up power control signals on dual-core tb 2023-03-22 00:34:19 +00:00
Luke Wren fcbc4f6805 Fix regnum predecode of quadrant-2 RVC instructions with 5-bit regnums
(regression caused by adding Zcb)
2023-03-21 23:04:17 +00:00
Luke Wren 8f461b63b4 Fix mvsa01/mva01s in rvcpp 2023-03-21 21:54:04 +00:00
Luke Wren 410d002372 First pass at adding Zcmp to rvcpp 2023-03-21 21:28:49 +00:00
Luke Wren 8e7e8f4008 Extend rvcpp ISA sim to cover RVC. Passes RV32IC compliance. 2023-03-21 19:38:46 +00:00
Luke Wren 670099e461 Fix trap address correction for Zcm instructions never firing 2023-03-20 18:38:28 +00:00
Luke Wren f702fe5352 Add test covering all pop instructions 2023-03-20 18:26:29 +00:00
Luke Wren d2adc6aad7 Add tests for mva01s/mvsa01 2023-03-20 16:05:07 +00:00
Luke Wren 142b3a81ff Add spike-extracted output to zcmp_push 2023-03-20 15:37:38 +00:00
Luke Wren ee6e03e0e6 Add beginnings of Spike-able zcmp_push test 2023-03-20 14:26:53 +00:00
Luke Wren 7607dacfc4 Fix incorrect register order within stack frame for push/pop 2023-03-20 06:32:20 +00:00
Luke Wren 8b73b1b927 Fix mvsa01 r2s decode, Dhrystone runs with Zcb now 2023-03-20 05:03:39 +00:00
Luke Wren c4e0c15160 Fix hookup of uop_atomic signal 2023-03-20 02:40:49 +00:00
Luke Wren 3b2ddee06b Fix push/pop frame format, fix source regnums for mvsa01/mva01s 2023-03-20 02:35:18 +00:00
Luke Wren 7702c44288 Handle timeout in runtests 2023-03-20 01:32:16 +00:00
Luke Wren 4aed15540d Fix destination register for final uop of c.popretz 2023-03-20 01:31:49 +00:00
Luke Wren 6b8923a623 Fix bad predecode of a0/a1 in mvsa01/mva01s.
Fix bad pop load offset when extra sp adjust is nonzero.
2023-03-20 01:03:49 +00:00
Luke Wren e966e832d2 First attempt at Zcmp 2023-03-20 00:19:23 +00:00
Luke Wren 99c0660c3e Fix decompress of c.sb/c.sh
Can now run CoreMark, Hazard3 sw testcases etc using core-v compiler
with Zcb enabled.
2023-03-16 20:36:36 +00:00
Luke Wren 59edb2fc5f Fix predecode of quadrant-00 compressed instruction rs1,
to get correct rs1 for new Zbc byte/halfword load/store
2023-03-16 19:10:43 +00:00
Luke Wren 78d937e5c8 Yeet Zcb into core 2023-03-16 18:48:15 +00:00
Luke Wren a247c5cfc1 Bump riscv-tests fork: fix breakpoint test not setting tcontrol.mte when it is implemented. 2023-03-16 17:50:52 +00:00
Luke Wren ba3c3138ef Fix 3 minor Debug Module bugs:
- sbdata0 should ignore writes when sbbusyerror or sberror is set
- All sbaddress0 writes and sbdata0 accesses should set
  sbbusyerror if sbbusy is set
- sbaddress should not increment if access gets bus error
2023-03-03 13:24:31 +00:00
Luke Wren 7101cccf3b Cut through-path on reset halt request from debug module to bus 2023-01-19 13:47:02 +00:00
Scott Shawcroft 7fbdb69328 Allow reconnecting to the testbench JTAG socket 2022-12-17 11:58:14 +00:00
Scott Shawcroft 4c12f163bd
Add OrangeCrab 25F support (#7)
* Add OrangeCrab 25F support

* Fix whitespace

Co-authored-by: Luke Wren <wren6991@gmail.com>
2022-12-17 11:49:41 +00:00
Luke Wren 8e7ffb040c Comment typo 2022-12-17 11:39:47 +00:00
Luke Wren 52e665fb45 Remove unnecessary clear of sleep flags on bus error (which had a
TODO asking if it should be removed) and add some more properties
in its place.
2022-11-05 18:50:41 +00:00
Luke Wren 05cb6e7ee8 Rename confusingly named power control signal for allowing clock gate to shut during WFI/block sleep. 2022-11-05 18:26:56 +00:00
Luke Wren c81666177e Remove FIXME about considering concurrent load/store and debug entry
in calculating the privilege of load/stores. This is safe because it
is only the *current* debug mode state which affects load/stores,
and some new properties have been added to ensure load/stores can
not be in aphase at the point debug mode is entered/exited (which
is achieved by delaying the trap). Therefore there is no way for
debug entry to inadvertently boost the privilege of an executing
U-mode load/store.

Also rename a confusingly-named signal for an unsquashable bus
transfer in stage 2 that delays IRQ entry.
2022-11-05 18:19:14 +00:00
Luke Wren 97bf2d06f6 Hold off first instruction fetch until pwrup_ack is first seen high 2022-11-05 14:58:47 +00:00
Luke Wren dff278ea05 Increase DTM idle cycle hint to 8 cycles -- see #6 2022-10-19 21:11:18 +01:00
Luke Wren 1953773ca5 Don't gate exception into D-mode CSR write, as a valid CSR instruction
writing to a valid CSR in D-mode is guaranteed not to raise any exception
(particularly the external data0 CSR is of interest)
2022-10-10 22:15:56 +01:00
Luke Wren ae4ddf7001 Clean up the old/unused W_COUNTER parameter, and use a cleaner tie-off style for the counter CSRs 2022-10-10 16:33:31 +01:00
Luke Wren f771a1294d Alias DPC to the real program counter, small savings overall 2022-10-10 00:28:42 +01:00
Luke Wren aa438fc37c Remove op_b (rs2) register from muldiv_seq for modest LUT/FF savings 2022-10-08 18:22:16 +01:00