Luke Kenneth Casson Leighton [Mon, 17 Jan 2022 17:49:57 +0000 (17:49 +0000)]
add a couple of trap pipeline unit tests
these are based on linux-5.7 to make microwatt compatibility with
hrfid and mtmsrd work
Dmitry Selyutin [Sun, 16 Jan 2022 18:41:25 +0000 (18:41 +0000)]
sv_binutils: fix typo in disclaimer
Dmitry Selyutin [Sun, 16 Jan 2022 18:09:35 +0000 (18:09 +0000)]
sv_binutils: add missing include directives
Dmitry Selyutin [Sun, 16 Jan 2022 18:01:03 +0000 (18:01 +0000)]
sv_binutils: introduce SVP64 entries
Dmitry Selyutin [Sun, 9 Jan 2022 17:34:36 +0000 (17:34 +0000)]
sv_binutils: rename Field into CType
Dmitry Selyutin [Sun, 9 Jan 2022 17:31:24 +0000 (17:31 +0000)]
sv_binutils: inherit Entry from Field
Dmitry Selyutin [Sun, 9 Jan 2022 17:22:32 +0000 (17:22 +0000)]
sv_binutils: drop semicolons in c_var methods
Luke Kenneth Casson Leighton [Sat, 15 Jan 2022 19:20:10 +0000 (19:20 +0000)]
correctly identify atomic reservation CSV file field and
copy into op in PowerDecoder2
Luke Kenneth Casson Leighton [Sat, 15 Jan 2022 13:47:36 +0000 (13:47 +0000)]
add atomic reservation field to Power Decoder data structures
Jacob Lifshay [Fri, 14 Jan 2022 23:10:01 +0000 (15:10 -0800)]
remove stray newline
Jacob Lifshay [Fri, 14 Jan 2022 23:06:59 +0000 (15:06 -0800)]
add grev[w][i][.] pseudo-code
Luke Kenneth Casson Leighton [Wed, 12 Jan 2022 19:53:16 +0000 (19:53 +0000)]
add second version of wb_get which can cope with pipelines
TODO: make it spot the "stall" signal
Luke Kenneth Casson Leighton [Mon, 10 Jan 2022 16:09:54 +0000 (16:09 +0000)]
increase addr_wid to 64 in TestRunnerBase. hm this should not
be importing from soc, openpower-isa should be entirely independent
Luke Kenneth Casson Leighton [Mon, 10 Jan 2022 16:08:28 +0000 (16:08 +0000)]
enable privileged-instruction detection which had previously
been commented-out
Dmitry Selyutin [Sun, 9 Jan 2022 16:53:05 +0000 (16:53 +0000)]
sv_binutils: drop redundant imports
Dmitry Selyutin [Sun, 9 Jan 2022 16:52:22 +0000 (16:52 +0000)]
sv_binutils: sort entries by name
Dmitry Selyutin [Sun, 9 Jan 2022 16:36:35 +0000 (16:36 +0000)]
sv_binutils: discard VHDL stuff in comments
Dmitry Selyutin [Sun, 9 Jan 2022 16:17:53 +0000 (16:17 +0000)]
sv_binutils: calculate reserved bits
Dmitry Selyutin [Sun, 9 Jan 2022 15:40:52 +0000 (15:40 +0000)]
sv_binutils: reorder declarations
Dmitry Selyutin [Sun, 9 Jan 2022 15:24:49 +0000 (15:24 +0000)]
sv_binutils: print opcode as hexadecimal
Jacob Lifshay [Thu, 6 Jan 2022 04:57:46 +0000 (20:57 -0800)]
add grev[w][i] instructions
Jacob Lifshay [Thu, 6 Jan 2022 04:35:46 +0000 (20:35 -0800)]
format code
Jacob Lifshay [Thu, 6 Jan 2022 02:44:41 +0000 (18:44 -0800)]
add stand-alone simulator bitmanip test
Luke Kenneth Casson Leighton [Thu, 6 Jan 2022 00:04:53 +0000 (00:04 +0000)]
add tlbsync and wait as NOPs
Luke Kenneth Casson Leighton [Wed, 5 Jan 2022 23:53:24 +0000 (23:53 +0000)]
add eieio instruction as a NOP to minor 31 csv
Luke Kenneth Casson Leighton [Wed, 5 Jan 2022 19:12:21 +0000 (19:12 +0000)]
add lbzcix instruction which had been completely forgotten (doh)
Dmitry Selyutin [Tue, 4 Jan 2022 07:58:58 +0000 (07:58 +0000)]
sv_binutils: introduce real opcode class
Dmitry Selyutin [Mon, 3 Jan 2022 13:44:48 +0000 (13:44 +0000)]
sv_binutils: parse CSVs directly
Dmitry Selyutin [Fri, 31 Dec 2021 11:41:38 +0000 (11:41 +0000)]
sv_binutils: support basic header generation
Dmitry Selyutin [Thu, 30 Dec 2021 17:45:10 +0000 (17:45 +0000)]
sv_binutils: introduce code generator class
Dmitry Selyutin [Thu, 30 Dec 2021 17:31:26 +0000 (17:31 +0000)]
sv_binutils: use stdin as input stream
Dmitry Selyutin [Thu, 30 Dec 2021 16:55:33 +0000 (16:55 +0000)]
sv_binutils: introduce helper classes
Luke Kenneth Casson Leighton [Mon, 3 Jan 2022 14:04:06 +0000 (14:04 +0000)]
copy over msr and rename cia to nia in PowerDecoder2
Cesar Strauss [Tue, 28 Dec 2021 21:05:44 +0000 (18:05 -0300)]
Add an inorder flag to pspec
Luke Kenneth Casson Leighton [Mon, 27 Dec 2021 12:49:50 +0000 (12:49 +0000)]
add empty default_mem for running without MMU
Luke Kenneth Casson Leighton [Mon, 27 Dec 2021 04:37:32 +0000 (04:37 +0000)]
whoops wrong parameter name
Luke Kenneth Casson Leighton [Mon, 27 Dec 2021 04:35:17 +0000 (04:35 +0000)]
quick attempt to fix test_decoder_gas.py (did not work)
Mikolaj Wielgus [Mon, 27 Dec 2021 01:25:04 +0000 (01:25 +0000)]
bool() is !!() for integers
Mikolaj Wielgus [Mon, 27 Dec 2021 01:17:13 +0000 (01:17 +0000)]
Add missing parentheses for explicit operator precedence
Luke Kenneth Casson Leighton [Sun, 26 Dec 2021 13:36:09 +0000 (13:36 +0000)]
add very basic PowerDecode2 test which at least gets things going
Luke Kenneth Casson Leighton [Sun, 26 Dec 2021 13:35:30 +0000 (13:35 +0000)]
a few extra things discovered needing c syntax not python syntax
in crtl
Mikolaj Wielgus [Sun, 26 Dec 2021 03:29:58 +0000 (03:29 +0000)]
Give human-readable names to slots, run functions and filenames
Mikolaj Wielgus [Sat, 25 Dec 2021 21:24:54 +0000 (21:24 +0000)]
Put CRTL CFFI modules in crtl dir
Dmitry Selyutin [Sat, 25 Dec 2021 13:01:19 +0000 (13:01 +0000)]
sv_binutils: provide small comment on regex
Dmitry Selyutin [Sat, 25 Dec 2021 12:55:22 +0000 (12:55 +0000)]
sv_binutils: introduce entry dataclass
Luke Kenneth Casson Leighton [Fri, 24 Dec 2021 13:44:51 +0000 (13:44 +0000)]
clear memory is optional
Luke Kenneth Casson Leighton [Fri, 24 Dec 2021 13:40:12 +0000 (13:40 +0000)]
whoops forgot to put the copy of the wb_get memory back in
Luke Kenneth Casson Leighton [Thu, 23 Dec 2021 15:00:01 +0000 (15:00 +0000)]
code cleanup / comments
Luke Kenneth Casson Leighton [Thu, 23 Dec 2021 14:39:37 +0000 (14:39 +0000)]
repeat power decode test to check performance
Luke Kenneth Casson Leighton [Thu, 23 Dec 2021 14:26:47 +0000 (14:26 +0000)]
bit of a tidyup of crtl:
* code-comments for template-creation
* use "with open(xxx) as file" rather than explicit open-then-close
* use abspath on __file__ to get the relative position of the templates
(makes it possible to run from locations other than current directory)
* add the module location to sys.path so as to be able to get at it
(again even when running from locations other than cwd)
Luke Kenneth Casson Leighton [Thu, 23 Dec 2021 12:40:56 +0000 (12:40 +0000)]
add load-store byte-reverse 64-bit unit test
(ldbrx/stdbrx)
Mikolaj Wielgus [Thu, 23 Dec 2021 01:59:13 +0000 (01:59 +0000)]
Add CRTL templates
Forgot to add them in the previous commit.
Mikolaj Wielgus [Thu, 23 Dec 2021 01:52:51 +0000 (01:52 +0000)]
Give unique names to CRTL-generated modules
test_power_decoder.py now passes.
Mikolaj Wielgus [Thu, 23 Dec 2021 00:39:04 +0000 (00:39 +0000)]
Move "pending" set to C
Finally something works.
Mikolaj Wielgus [Wed, 22 Dec 2021 14:22:16 +0000 (14:22 +0000)]
Make _PySignalState CRTL-aware
Luke Kenneth Casson Leighton [Tue, 21 Dec 2021 15:46:32 +0000 (15:46 +0000)]
take a copy of the wb_get memory and then for each unit test
overwrite it (resetting) if any unit test has a replacement memory
Luke Kenneth Casson Leighton [Tue, 21 Dec 2021 14:41:32 +0000 (14:41 +0000)]
ISACaller (actually RADIXMMU) only do virtual memory mode
when MSR.DR is set (which is virtual memory requested bit)
Mikolaj Wielgus [Mon, 20 Dec 2021 18:07:32 +0000 (18:07 +0000)]
Generate variable declaration in some missing places
Luke Kenneth Casson Leighton [Mon, 20 Dec 2021 15:47:50 +0000 (15:47 +0000)]
create header/footer for crtl code-generation
code +=
code +=
...
is a bit naff
Luke Kenneth Casson Leighton [Mon, 20 Dec 2021 14:40:57 +0000 (14:40 +0000)]
whoops forgot to trap if non-execute (instruction) invalid
ISACaller RADIXMMU returns exception, there are two types:
LDST (0x300) and I-Fetch (0x400)
Luke Kenneth Casson Leighton [Sun, 19 Dec 2021 21:29:50 +0000 (21:29 +0000)]
TODO notes for executing ISACaller Invalid Instruction Fetch
must set some SRR bits coming from the MMU
Luke Kenneth Casson Leighton [Sun, 19 Dec 2021 21:27:09 +0000 (21:27 +0000)]
pass the mode (LOAD,EXECUTE,STORE) through ISACaller RADIX MMU
so that the right exception type can be raised (0x300 rather than 0x400)
Luke Kenneth Casson Leighton [Sun, 19 Dec 2021 20:50:46 +0000 (20:50 +0000)]
add "stop at pc" argument to TestCase,
used to hard-stop if an instruction at this address is attempted to
be executed (without executing it)
Dmitry Selyutin [Sun, 19 Dec 2021 19:37:34 +0000 (19:37 +0000)]
sv/binutils.py: provide sketch sv_decode.vhdl converter
Luke Kenneth Casson Leighton [Sun, 19 Dec 2021 19:00:38 +0000 (19:00 +0000)]
save mmu simulation to different gtkwave file in TestRunnerBase
Luke Kenneth Casson Leighton [Sat, 18 Dec 2021 18:46:44 +0000 (18:46 +0000)]
bit more verbose info about number of instructions run
Luke Kenneth Casson Leighton [Sat, 18 Dec 2021 15:37:34 +0000 (15:37 +0000)]
use new core domain variable in TestRunnerBase
and add the dbgsync domain back in
Luke Kenneth Casson Leighton [Sat, 18 Dec 2021 11:51:56 +0000 (11:51 +0000)]
update comments in wb_get
Luke Kenneth Casson Leighton [Sat, 18 Dec 2021 01:56:21 +0000 (01:56 +0000)]
ooo annoying, it is actually icache.ibus
Luke Kenneth Casson Leighton [Sat, 18 Dec 2021 01:08:11 +0000 (01:08 +0000)]
whoops error in accessing icache.ibus which is an intermediary
set of signals
Mikolaj Wielgus [Fri, 17 Dec 2021 22:34:06 +0000 (22:34 +0000)]
Call the simulator-generated C using the CFFI
Luke Kenneth Casson Leighton [Thu, 16 Dec 2021 20:27:35 +0000 (20:27 +0000)]
bug where t1 was set to zero but s2 was not in imdct36_standalone.c
Luke Kenneth Casson Leighton [Thu, 16 Dec 2021 14:21:11 +0000 (14:21 +0000)]
start/stop wb_get in TestRunnerBase, otherwise it never ends
Luke Kenneth Casson Leighton [Wed, 15 Dec 2021 15:47:06 +0000 (15:47 +0000)]
must read off of ibus in wb_get TestRunnerBase
Mikolaj Wielgus [Tue, 14 Dec 2021 15:50:16 +0000 (15:50 +0000)]
Add CFFI as dependency
Tobias Platen [Mon, 13 Dec 2021 12:17:02 +0000 (13:17 +0100)]
add namedtuple MSRSpec
Luke Kenneth Casson Leighton [Sun, 12 Dec 2021 18:56:48 +0000 (18:56 +0000)]
copy over fake OP_FETCH_FAILED and instruction on instr_fault
Luke Kenneth Casson Leighton [Sun, 12 Dec 2021 17:22:56 +0000 (17:22 +0000)]
enable mmu_cache_wb for wb_get mode in TestRunnerBase
Luke Kenneth Casson Leighton [Sun, 12 Dec 2021 15:48:37 +0000 (15:48 +0000)]
add pretty-print of MMU memory to be used for a TestRunner test
Luke Kenneth Casson Leighton [Sat, 11 Dec 2021 15:19:48 +0000 (15:19 +0000)]
remove ROTL64(1, idx), just use TLI[7-idx] it is shorter and readable
Luke Kenneth Casson Leighton [Sat, 11 Dec 2021 15:13:15 +0000 (15:13 +0000)]
use concat in ternlogi to reduce code size
Jacob Lifshay [Fri, 10 Dec 2021 21:19:12 +0000 (13:19 -0800)]
add ternlogi to SVP64Asm
Jacob Lifshay [Fri, 10 Dec 2021 21:07:47 +0000 (13:07 -0800)]
format code
Jacob Lifshay [Fri, 10 Dec 2021 20:34:23 +0000 (12:34 -0800)]
change ternlogi to not have Rc field
Jacob Lifshay [Fri, 10 Dec 2021 20:30:12 +0000 (12:30 -0800)]
add .gitignore to ignore the generated vhdl
Luke Kenneth Casson Leighton [Thu, 9 Dec 2021 15:46:11 +0000 (15:46 +0000)]
add I-Cache wishbone bus to wb_get when MMU and ROM mode enabled
Luke Kenneth Casson Leighton [Thu, 9 Dec 2021 10:39:01 +0000 (10:39 +0000)]
add warning about creation of "-.csv" which indicates that
some SVP64 instructions have not been correctly identified
Luke Kenneth Casson Leighton [Thu, 9 Dec 2021 10:01:57 +0000 (10:01 +0000)]
add FAST SPRs temporarily to power_enums
Jacob Lifshay [Thu, 9 Dec 2021 06:04:10 +0000 (22:04 -0800)]
make ternlogi tests run
Jacob Lifshay [Thu, 9 Dec 2021 04:52:09 +0000 (20:52 -0800)]
rename ternaryi to ternlogi
Jacob Lifshay [Thu, 9 Dec 2021 04:51:41 +0000 (20:51 -0800)]
add initial ternlogi pseudo-code
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 19:15:53 +0000 (19:15 +0000)]
add instr_fault to PowerDecoder2
this, like LDST exceptions, allows instruction PTE fault-detection
to propagate from I-Cache to Issuer to PowerDecoder2 to OP_FETCH_FAILED
to MMU FSM to MMU to do MMU_LOOKUP to get the PTE which then...
you get the idea
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 18:56:51 +0000 (18:56 +0000)]
whitespace
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 13:45:09 +0000 (13:45 +0000)]
code-comments for LDSTException.instr_fault
(which is not actually an exception)
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:47:24 +0000 (12:47 +0000)]
add an on_Display function which is being used by some of us
for debugging purposes (needs a patch, normally would not be needed
but because this is low-level a dummy on_Display has to be provided)
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:46:16 +0000 (12:46 +0000)]
found a way to print out the names of the signals
will be useful to see what the heck is going on in the auto-generated c
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:30:56 +0000 (12:30 +0000)]
absolute import again
Luke Kenneth Casson Leighton [Wed, 8 Dec 2021 12:17:10 +0000 (12:17 +0000)]
use full-path imports (so we know where they come from)
Mikolaj Wielgus [Wed, 8 Dec 2021 11:26:58 +0000 (11:26 +0000)]
WIP: Output C instead of Python for Nmigen simulation
Mikolaj Wielgus [Wed, 8 Dec 2021 08:09:28 +0000 (08:09 +0000)]
Source Nmigen simulator from this repository