Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:15:34 +0000 (20:15 +0100)]
transferring more over to LoadStore FSM
Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:08:02 +0000 (20:08 +0100)]
start putting state info into LoadStore1, slowly putting loadstore1.vhdl
FSM into LoadStore1
Luke Kenneth Casson Leighton [Sat, 8 May 2021 19:00:10 +0000 (20:00 +0100)]
add LoadStore State enum
Luke Kenneth Casson Leighton [Sat, 8 May 2021 00:43:43 +0000 (01:43 +0100)]
add bugreport link to mmu
Tobias Platen [Fri, 7 May 2021 18:39:37 +0000 (20:39 +0200)]
fix 'sync' referenced before assignment in src/soc/fu/mmu/fsm.py
Luke Kenneth Casson Leighton [Fri, 7 May 2021 17:53:29 +0000 (18:53 +0100)]
start setting DSISR bits but commented out
Luke Kenneth Casson Leighton [Fri, 7 May 2021 12:26:21 +0000 (13:26 +0100)]
update comments and docstrings
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:51:56 +0000 (12:51 +0100)]
whoops, import error
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:51:26 +0000 (12:51 +0100)]
move LoadStore1 class to soc.fu.ldst.loadstore
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:44:07 +0000 (12:44 +0100)]
whoops was still copying output over in CommonOutputStage
for SVP64 pred-zero-dest
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:40:41 +0000 (12:40 +0100)]
how we managed to get this far without noticing that test_runner.py is
not using "with self.subTest" is anyones guess
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:37:17 +0000 (12:37 +0100)]
move dsisr and dar into LoadStore1
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:19:26 +0000 (12:19 +0100)]
move zero-dest-pred in Common Output Stage to not copy target.
this then allows CR0 to set a "zero" bit
Luke Kenneth Casson Leighton [Fri, 7 May 2021 11:15:48 +0000 (12:15 +0100)]
whoops setup of core.sv_pred_sm/dm not indented and under "if svp64_en"
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:52:50 +0000 (18:52 +0100)]
whoops disabled tests agaaaaain
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:52:24 +0000 (18:52 +0100)]
pass relevant predicate mask bits through to Decoders (PowerDecoderSubset)
at the right time
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:45:43 +0000 (18:45 +0100)]
add in predicate mask bit detection when zeroing is enabled
Luke Kenneth Casson Leighton [Thu, 6 May 2021 17:06:47 +0000 (18:06 +0100)]
pass SVP64 ReMap field through to core and then on to FU decoders
Luke Kenneth Casson Leighton [Thu, 6 May 2021 12:40:28 +0000 (13:40 +0100)]
moved exts* SVP64 unit tests to a different location
Jonathan Neuschäfer [Mon, 3 May 2021 19:53:26 +0000 (21:53 +0200)]
.gitlab-ci.yml: Increase the build timeout
The job takes longer than an hour on gitlab.com, so let's set the
timeout to two hours, to be sure that there's enough time.
On other GitLab-CI runners, it will be faster, but it's good to be able
to run the tests on gitlab.com too.
Luke Kenneth Casson Leighton [Thu, 6 May 2021 04:02:31 +0000 (05:02 +0100)]
argh someobe falsely stated in the README that LibreSOC is an "open"
project.
Luke Kenneth Casson Leighton [Wed, 5 May 2021 15:33:48 +0000 (16:33 +0100)]
if zeroing is set, put zero into input or output as requested
Tobias Platen [Wed, 5 May 2021 17:56:53 +0000 (19:56 +0200)]
fix bug in mmu/fsm.py
Luke Kenneth Casson Leighton [Wed, 5 May 2021 13:36:07 +0000 (14:36 +0100)]
simplify README.md so that it gets submitted to pypi
Luke Kenneth Casson Leighton [Wed, 5 May 2021 13:19:23 +0000 (14:19 +0100)]
mark long description type as markdown
Luke Kenneth Casson Leighton [Wed, 5 May 2021 13:17:59 +0000 (14:17 +0100)]
update NEWS.txt
Luke Kenneth Casson Leighton [Wed, 5 May 2021 13:16:58 +0000 (14:16 +0100)]
add libresoc-openpower-isa to setup.py dependencies
Luke Kenneth Casson Leighton [Wed, 5 May 2021 12:38:39 +0000 (13:38 +0100)]
put sv_input_record_layout onto CompOpSubsetBase after all
Luke Kenneth Casson Leighton [Wed, 5 May 2021 12:38:11 +0000 (13:38 +0100)]
whoops wrong signal name, set exc_happened
Luke Kenneth Casson Leighton [Wed, 5 May 2021 11:51:26 +0000 (12:51 +0100)]
add SVP64 RM fields to ALU input record
Tobias Platen [Tue, 4 May 2021 19:25:22 +0000 (21:25 +0200)]
Merge branch 'master' of ssh://git.libre-riscv.org:922/soc
Tobias Platen [Tue, 4 May 2021 19:23:32 +0000 (21:23 +0200)]
implement MFSPR the same way as fu/spr/main_stage.py
Luke Kenneth Casson Leighton [Tue, 4 May 2021 19:21:04 +0000 (20:21 +0100)]
remove minerva debug unit (not needed)
Jonathan Neuschäfer [Tue, 4 May 2021 11:09:49 +0000 (13:09 +0200)]
minerva tests: Don't import soc.minerva.csr
Fixes: 4af6717b ("remove unneeded minerva code")
Jonathan Neuschäfer [Tue, 4 May 2021 08:03:17 +0000 (10:03 +0200)]
.gitlab-ci.yml: Silence pywriter harder
"make -j$(nproc) pywriter" and "pywriter" fill the log with over 20000
lines like this:
> /builds/neuschaefer/soc/openpower-isa/src/openpower/decoder/power_decoder.py:420: UnusedElaboratable: <openpower.decoder.power_decoder.PowerDecoder object at 0x7f4bf8ae8e48> created but never used
> row_subset=self.row_subsetfn)
> UnusedElaboratable: Enable tracemalloc to get the object allocation traceback
Ideally, the relevant code should be fixed to avoid this warning, but for now,
I'm silencing it, so I can fit more relevant output into GitLab-CI's 4 MiB limit.
Jonathan Neuschäfer [Tue, 4 May 2021 06:19:29 +0000 (08:19 +0200)]
.gitlab-ci.yml: Trim log output
GitLab-CI limits log output to 4 MiB, which the build job currently
exceeds. Trim the output of some of the earlier steps, to make it
possible to figure out what went wrong in the later steps.
Jonathan Neuschäfer [Mon, 3 May 2021 21:14:35 +0000 (23:14 +0200)]
.gitlab-ci.yml: Fix invocation of pywriter
See
ffb6288f ("svanalysis and pywriter now command-line scripts").
Jonathan Neuschäfer [Tue, 4 May 2021 10:57:26 +0000 (12:57 +0200)]
.gitlab-ci.yml: Clone and build power-instruction-analyzer
Jonathan Neuschäfer [Tue, 4 May 2021 10:28:56 +0000 (12:28 +0200)]
.gitlab-ci.yml: Clone and build c4m-jtag
Jonathan Neuschäfer [Mon, 3 May 2021 21:57:58 +0000 (23:57 +0200)]
.gitlab-ci.yml: Clone and build openpower-isa
Jonathan Neuschäfer [Mon, 3 May 2021 20:33:12 +0000 (22:33 +0200)]
.gitlab-ci.yml: Install Rust and cargo
Unfortunately, Rust 1.41 (as available in Debian 10) is too old for
object v0.23.0, a dependency of maturin:
error[E0658]: subslice patterns are unstable
--> /root/.cargo/registry/src/github.com-
1ecc6299db9ec823/object-0.23.0/src/read/mod.rs:162:41
|
162 | [0x7f, b'E', b'L', b'F', 1, ..] => FileKind::Elf32,
| ^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/62254
... so we have to resort to rustup.
Jonathan Neuschäfer [Mon, 3 May 2021 19:13:18 +0000 (21:13 +0200)]
.gitlab-ci.yml: Remove tags from nmigen-soc repo
In nmigen-soc, setuptools complains:
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '24jan2021_ls180'
This commit is partially inspired by: https://git.libre-soc.org/?p=dev-env-setup.git;a=commitdiff;h=
6b79a0fea2052a8b35a4f130a64c119983d40f3c
Jonathan Neuschäfer [Mon, 3 May 2021 19:01:02 +0000 (21:01 +0200)]
.gitlab-ci.yml: Rewrite git://git.libre-riscv.org URLs to https://git.libre-soc.org/
git.libre-soc.org supports git over HTTPS, so let's use it.
Luke Kenneth Casson Leighton [Tue, 4 May 2021 18:33:34 +0000 (19:33 +0100)]
whoops disabled some test_issuer group tests
Luke Kenneth Casson Leighton [Tue, 4 May 2021 17:40:35 +0000 (18:40 +0100)]
add SVSTATE (SVSRR0) to TRAP pipeline
involves adding svstate to TrapOutputData regspec, and a corresponding
write port to StateRegs, and adding svstate to CompTrapOpSubset
Tobias Platen [Tue, 4 May 2021 18:32:39 +0000 (20:32 +0200)]
upate dsisr and dar using sync
Luke Kenneth Casson Leighton [Tue, 4 May 2021 17:09:36 +0000 (18:09 +0100)]
adding fast3 SPR to Trap pipeline and unit test
Luke Kenneth Casson Leighton [Tue, 4 May 2021 17:08:56 +0000 (18:08 +0100)]
new fast3 needs to be remapped to fast1 port in "reduced ports" case in core
Luke Kenneth Casson Leighton [Tue, 4 May 2021 16:32:40 +0000 (17:32 +0100)]
missed that soc.regfile.util has moved to openpower.util
Luke Kenneth Casson Leighton [Tue, 4 May 2021 16:32:26 +0000 (17:32 +0100)]
add SVSRR0 to FastRegsEnum
Luke Kenneth Casson Leighton [Tue, 4 May 2021 16:18:33 +0000 (17:18 +0100)]
add TODO comments and cross-reference to bug
https://bugs.libre-soc.org/show_bug.cgi?id=636
TestIssuer EXECUTE_WAIT FSM needs to note that an exception has happened
and *re-execute* the instruction
Luke Kenneth Casson Leighton [Tue, 4 May 2021 16:02:49 +0000 (17:02 +0100)]
note a way to see if an exception happened, in TestIssuer
Luke Kenneth Casson Leighton [Tue, 4 May 2021 15:56:06 +0000 (16:56 +0100)]
add printout showing exception output from FUs
Luke Kenneth Casson Leighton [Tue, 4 May 2021 14:44:39 +0000 (15:44 +0100)]
remove symlink
Luke Kenneth Casson Leighton [Tue, 4 May 2021 14:39:10 +0000 (15:39 +0100)]
add links in README
Luke Kenneth Casson Leighton [Tue, 4 May 2021 14:18:51 +0000 (15:18 +0100)]
more rename of exception_o to exc_o, add convenience function in TestCore
to get at all exceptions
Luke Kenneth Casson Leighton [Tue, 4 May 2021 14:18:08 +0000 (15:18 +0100)]
wire in exc_o.happened into write-cancellation of LDSTCompUnit
Luke Kenneth Casson Leighton [Tue, 4 May 2021 13:55:14 +0000 (14:55 +0100)]
comments, and change name of LDSTCompUnit exception_o to exc_o
Luke Kenneth Casson Leighton [Tue, 4 May 2021 12:55:57 +0000 (13:55 +0100)]
remove exception from data on FUBaseData, explicitly eq() it
Luke Kenneth Casson Leighton [Tue, 4 May 2021 12:41:14 +0000 (13:41 +0100)]
code-comments for LDSTCompUnit
Luke Kenneth Casson Leighton [Tue, 4 May 2021 12:35:54 +0000 (13:35 +0100)]
add LDSTException class to LDSTOutputData
Luke Kenneth Casson Leighton [Tue, 4 May 2021 12:31:35 +0000 (13:31 +0100)]
add option to add exception type to FUBaseData (pipe_data)
Luke Kenneth Casson Leighton [Tue, 4 May 2021 12:25:30 +0000 (13:25 +0100)]
rename IntegerData to FUBaseData
Luke Kenneth Casson Leighton [Tue, 4 May 2021 12:24:30 +0000 (13:24 +0100)]
comment out nc (nocache), it seems to actually work
Luke Kenneth Casson Leighton [Mon, 3 May 2021 15:28:14 +0000 (16:28 +0100)]
MMU: get store to activate only when data is available, and to wait till done
Luke Kenneth Casson Leighton [Mon, 3 May 2021 15:05:54 +0000 (16:05 +0100)]
disable the cache for now, whilst testing read/write corruption
Luke Kenneth Casson Leighton [Sun, 2 May 2021 20:05:48 +0000 (21:05 +0100)]
use Const to define bit-length when comparing top nibble of address in MMU
Luke Kenneth Casson Leighton [Sun, 2 May 2021 19:55:26 +0000 (20:55 +0100)]
mmu FSM store in dcache: only put data onto d_in on write request
Luke Kenneth Casson Leighton [Sun, 2 May 2021 14:38:37 +0000 (15:38 +0100)]
return d_out.valid instead of always "ok" in MMU FSM
Luke Kenneth Casson Leighton [Sun, 2 May 2021 14:21:21 +0000 (15:21 +0100)]
HACK WARNING: disable d-cache on hard-coded address 0xCxxx_xxxx
this is for peripherals
Luke Kenneth Casson Leighton [Sun, 2 May 2021 14:20:18 +0000 (15:20 +0100)]
add nc argument to dcache load/store tests
Luke Kenneth Casson Leighton [Sun, 2 May 2021 10:39:48 +0000 (11:39 +0100)]
quick hack to SRAM test and to dcache to enable classic wishbone
Luke Kenneth Casson Leighton [Sun, 2 May 2021 05:55:06 +0000 (06:55 +0100)]
adjust dependencies in setup.py
Luke Kenneth Casson Leighton [Sat, 1 May 2021 20:47:27 +0000 (21:47 +0100)]
enable issuer_verilog.py to generate new MMU/DCache config memory type
Luke Kenneth Casson Leighton [Sat, 1 May 2021 20:45:16 +0000 (21:45 +0100)]
send a DMI RESET at the end of the test.
this resets DCache otherwise it contains old values from the previous test
Luke Kenneth Casson Leighton [Sat, 1 May 2021 19:31:08 +0000 (20:31 +0100)]
store data in microwatt dcache goes in one cycle AFTER valid is set
Luke Kenneth Casson Leighton [Sat, 1 May 2021 19:28:31 +0000 (20:28 +0100)]
dcache store test: data goes in one cycle AFTER valid/addr set up
Luke Kenneth Casson Leighton [Sat, 1 May 2021 19:08:23 +0000 (20:08 +0100)]
only do dcache lookup for now
Cesar Strauss [Sat, 1 May 2021 19:04:19 +0000 (16:04 -0300)]
Add GTKWave documents to each DCache unit test
Luke Kenneth Casson Leighton [Sat, 1 May 2021 16:39:53 +0000 (17:39 +0100)]
add LD/ST cases to MMU, which should all still work
Luke Kenneth Casson Leighton [Sat, 1 May 2021 15:24:49 +0000 (16:24 +0100)]
add MMUTestCaseROM
Luke Kenneth Casson Leighton [Sat, 1 May 2021 15:13:01 +0000 (16:13 +0100)]
whitespace
Luke Kenneth Casson Leighton [Sat, 1 May 2021 13:16:20 +0000 (14:16 +0100)]
use new AllFunctionUnits.get_fu function
Luke Kenneth Casson Leighton [Sat, 1 May 2021 13:15:10 +0000 (14:15 +0100)]
use SPRreduced to match PowerDecoder2
extend mmu_sprs to include redirection of PRTBL DSISR DAR and PIDR to MMU
Luke Kenneth Casson Leighton [Sat, 1 May 2021 12:22:30 +0000 (13:22 +0100)]
missing self.
Luke Kenneth Casson Leighton [Sat, 1 May 2021 12:13:00 +0000 (13:13 +0100)]
resolve DriverConflict in TstL0CacheBuffer, really bad hack
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 15:25:20 +0000 (16:25 +0100)]
debug and stop on mmu test_pipe_caller.py
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 15:25:05 +0000 (16:25 +0100)]
comments on dcache-to-mmu link
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 14:23:34 +0000 (15:23 +0100)]
add a TestSRAM variant of LoadStore1, for being able to run unit MMU unit tests
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 13:09:17 +0000 (14:09 +0100)]
add basic test_issuer_mmu.py
for running specifically with microwatt_mmu=True
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 13:05:01 +0000 (14:05 +0100)]
add option to use new mmu_cache_wb ConfigMemoryPortInterface
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 12:48:34 +0000 (13:48 +0100)]
hook up dcache wb_in/out to PortInterfaceBase Wishbone Record
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 11:46:50 +0000 (12:46 +0100)]
sort out spblock 4k sram cell instance name to match coriolis2 changes
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 10:23:57 +0000 (11:23 +0100)]
https://bugs.libre-soc.org/show_bug.cgi?id=635
turned out to be as simple as the test infrastructure setting initial
values in the wrong regfile (only a few of the unit tests set initial
values in SPR regfiles)
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 10:19:28 +0000 (11:19 +0100)]
better reporting on gpr comparisons
Luke Kenneth Casson Leighton [Fri, 30 Apr 2021 00:22:21 +0000 (01:22 +0100)]
set up LoadStore1 in ConfigMemoryPortInterface and hook it up in MMU
Luke Kenneth Casson Leighton [Thu, 29 Apr 2021 22:00:52 +0000 (23:00 +0100)]
comment out adding mmu and dcache to pspec in MMU FSM
Luke Kenneth Casson Leighton [Thu, 29 Apr 2021 21:58:31 +0000 (22:58 +0100)]
move dcache into Loadstore1
Luke Kenneth Casson Leighton [Tue, 27 Apr 2021 18:51:02 +0000 (19:51 +0100)]
add option to disable bus forwarding on SPRs and FAST regs.
not StateRegs: that actually critically depends on access to PC through
bus forwarding
Luke Kenneth Casson Leighton [Tue, 27 Apr 2021 18:46:57 +0000 (19:46 +0100)]
add option to enable/disable bus forwarding mode on INT regfile