Commit Graph

91 Commits

Author SHA1 Message Date
Luke Wren 7dc5046505 Perf option for dedicated branch comparator 2022-04-02 11:40:47 +01:00
Luke Wren 3c61fae9ef Remove the halfword fetch thing, was only really useful on RISCBoy 2022-04-02 10:54:16 +01:00
Luke Wren 5aca1381ac Couple of fixups for rvpy which I forgot to commit at some point 2022-03-01 20:27:18 +00:00
Luke Wren 0a369efc06 Add single-port bus compliance. Fix adapter not re-arbitrating following an ERROR response, causing a squashed younger load-store to remain presented to the bus. 2021-12-18 15:41:05 +00:00
Luke Wren 1b0e205f87 Fix bad AMO asserts. Fix hwdata instability during stalled AMO write dphase, which meant AMOs were fundamentally broken following yesterday's datapath origami 2021-12-18 14:51:46 +00:00
Luke Wren 28b53ef7b5 Delete the AMO ALU. Save around 80 LCs vs original implementation, maybe enables some more savings. 2021-12-18 00:35:13 +00:00
Luke Wren a81d129961 Add exclusives monitor to testbench 2021-12-17 17:03:35 +00:00
Luke Wren 5ab60422ad Add minimal multicore launch code 2021-12-17 01:24:11 +00:00
Luke Wren 01d9617f9c Add multicore tb integration file 2021-12-17 00:41:23 +00:00
Luke Wren 207566660d tb: handle both ports identically. Preparing for dual core 2021-12-17 00:04:00 +00:00
Luke Wren 88fea7acfa Fix lockup on misaligned AMO. Add tests for misaligned/faulting AMOs. 2021-12-12 18:28:23 +00:00
Luke Wren 719c21fec3 Add IRQ tests. Disable waves by default in runtests 2021-12-12 15:53:04 +00:00
Luke Wren 9fb2af800f Allow IRQs to be set/cleared by sw in tb. Add soft IRQ test 2021-12-12 14:58:50 +00:00
Luke Wren a232833d81 Add CSR writable test 2021-12-12 14:23:34 +00:00
Luke Wren 8a003dbbed Make mcycle/minstret inhibited by default 2021-12-12 13:55:33 +00:00
Luke Wren 7da67a0600 Similarly for minstret 2021-12-11 22:25:12 +00:00
Luke Wren 1b722b5f27 Add mcycle test, fix incorrect description of mcycle in docs 2021-12-11 21:21:31 +00:00
Luke Wren 93eca19aeb Add test for lr/sc RAW stalls 2021-12-11 19:16:41 +00:00
Luke Wren 763a5cd364 Add test for readability of all implemented CSRs 2021-12-11 17:50:12 +00:00
Luke Wren 7b1da32af1 Move expected_output into tests inline 2021-12-11 16:58:25 +00:00
Luke Wren 9460b3cd04 Add load/store and lr/sc bus fault tests. Fix lr.w not clearing local monitor when HRESP=1 HEXOKAY=1. 2021-12-11 15:52:34 +00:00
Luke Wren f64f44f7af Add test for identification CSRs vs expected values 2021-12-11 13:26:59 +00:00
Luke Wren 4066e941ef Fix sim cmdline in bitmanip-random tests 2021-12-11 13:13:21 +00:00
Luke Wren 3fe0d92d41 Add load/store alignment testcases 2021-12-11 12:53:37 +00:00
Luke Wren c90727b05a Remove padding after vector table in init.S 2021-12-11 12:22:23 +00:00
Luke Wren 6076eba61f Add run_all script under riscv-compliance 2021-12-11 12:08:53 +00:00
Luke Wren 52d58fdee4 Add keep wires for debug port on bus compliance tb 2021-12-11 12:06:10 +00:00
Luke Wren 6edfbfae8b Add ebreak size/alignment test 2021-12-11 11:17:24 +00:00
Luke Wren abe1769929 Add instruction access fault testcase 2021-12-11 09:54:00 +00:00
Luke Wren 933f2cd65c Fix remaining fallout from tb args change 2021-12-11 09:53:39 +00:00
Luke Wren 6d55cd2d55 Consolidate openocd and bin-load testbenches 2021-12-11 09:46:38 +00:00
Luke Wren fadb9601de Illegal instruction test 2021-12-10 00:11:18 +00:00
Luke Wren 3d2c912b4f Add test script to make it easier to add software testcases 2021-12-09 22:25:18 +00:00
Luke Wren 449348f459 Fix bug where an IRQ can fire during load/store dphase, followed by dphase bus exception.
Result was that the exception would sample the IRQ vector PC rather than the load/store instruction PC.
Fix by fencing off on in-flight dphases before asserting the IRQ. This adds a cycle of jitter
to IRQs, but is required for correct operation without adding a full exception-gathering pipeline.
2021-12-07 19:24:53 +00:00
Luke Wren dbc331dbb4 Add exclusives bus properties 2021-12-07 05:47:25 +00:00
Luke Wren 93be227d8a Add (currently failing) trap entry property. Fails when an IRQ arrives during a load/store data phase which subsequently excepts. 2021-12-06 20:12:23 +00:00
Luke Wren ac9285846f Timer struct in IO header 2021-12-06 17:16:21 +00:00
Luke Wren c57a80f358 Add AMO + timer testcase 2021-12-06 07:47:20 +00:00
Luke Wren d86b2849c9 Bump to latest version of riscv-arch-test 2021-12-06 02:18:48 +00:00
Luke Wren df658d86ff First plausibly working AMOs. Add AMOs to instruction timings list 2021-12-04 23:44:22 +00:00
Luke Wren 5e17bb805e Add basic support for lr/sc instructions from the A extension 2021-12-04 15:02:31 +00:00
Luke Wren c5d6be24f3 Remove external IRQ vectors from init.S which are unreachable now that midcr.eivect has been removed. 2021-12-04 14:06:48 +00:00
Luke Wren 5db6c68c56 Update riscv-tests for correct misa.x value 2021-12-04 11:19:43 +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 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 fad64bb6c9 Bump embench test submodule 2021-11-29 18:51:10 +00:00
Luke Wren ba248c832a init.S: also print out mcause when trapping an unhandled exception 2021-11-29 18:49:37 +00:00
Luke Wren c8afb4ac33 Add option for fast high-half multiplies 2021-11-29 18:48:02 +00:00
Luke Wren 35c5e213c7 Bump embench for working benchmarks (except md5) 2021-11-29 00:59:14 +00:00