aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-07-19Add a new pc access function to get the architectural PC: on CHERI this is ↵master-cleanupRobert Norton4-3/+12
not what is in the PC register because the architectural PC is the offset of PCC and the PC register stores the absolute PC (at present -- may review this decision in future). This allows fix for AUIPC and RVFI reported PC.
2019-07-18More tweaks to reading guide and diagram.Prashanth Mundkur3-31/+36
2019-07-18Minor tweaks.Prashanth Mundkur1-4/+7
2019-07-18Add info about the C emulator to the reading guide.Prashanth Mundkur4-6/+186
2019-07-17Disable mmio devices (clint and htif interfaces) when using RVFI to prevent ↵Robert Norton1-1/+8
divergence when using TestRIG.
2019-07-11Merge branch 'master-cleanup'Prashanth Mundkur17-355/+419
2019-07-11Tweak fig.Prashanth Mundkur2-10/+12
2019-07-11Undo get_config workarounds.Prashanth Mundkur3-28/+10
2019-07-11Fix an issue where zeros function defined in sail conflicted with lem ↵Robert Norton1-24/+7
builtin (lem backend does not do z encoding) and add default get_config_print_xxx builtins mappings to lem build (now there is no longer a sail definition of the function because of -Oconstant_fold bug). Also remove FEATURE_IMPLICITS ifdef that was required for backwards compatibility with long obsolete sail versions.
2019-07-09Merge pull request #15 from heshamelmatary/masterPrashanth Mundkur1-0/+0
os-boot: Update Hafnium image
2019-07-09Merge branch 'master-cleanup' of github.com:rems-project/sail-riscv into ↵Prashanth Mundkur4-0/+11
master-cleanup
2019-07-09Minor tweak to fig.Prashanth Mundkur2-231/+235
2019-07-09Add some missed logging guards.Prashanth Mundkur6-47/+83
2019-07-09Move the get_config_ print defaults to the backend preludes, since it seems ↵Prashanth Mundkur3-7/+24
to get optimized out by sail, making the emulator the command-line options ineffective.
2019-07-09Fix shadowing of the -v option in C emulator.Prashanth Mundkur1-6/+6
2019-07-09Add ext_rvfi_init to allow model to be initialised differently for rvfi.Robert Norton4-0/+11
2019-07-03Add a maximum memory access size to slightly improve C code geneation.Robert Norton3-23/+32
2019-07-03os-boot: Update Hafnium imageHesham Almatary1-0/+0
* Reduce the size of the image by removing unused secondary VMs. * Recompile Linux with -march=rv64imac -mabi=lp64 (softfloat). * Remove NFS filesystem in Linux as it's not needed.
2019-07-02Default terminal output to stdout instead of in 'term.log'.Robert Norton1-2/+1
2019-07-02Add an instruction limit option to C emulator. Also print kips every 2**20 ↵Robert Norton1-2/+22
(~100k) instructions with -p option so you can keep see how it varies during execution.
2019-07-02Crank up optimisation (sail and gcc).Robert Norton1-2/+2
2019-07-01Predicate another bit of tracing.Robert Norton1-1/+2
2019-07-01Merge remote-tracking branch 'origin/master' into master-cleanupRobert Norton11-21/+37
2019-07-01Improve argument parsing of C emulator. Make trace / no-trace argument optional.Robert Norton1-11/+14
2019-06-28Rename zeros and ones implicit functions to something that sail ↵Robert Norton1-7/+4
monomorphisation pass recognises. We don't need the overload.
2019-06-28add interpreter extern for string_of_intJon French1-1/+1
2019-06-28Avoid implicit casts to stringAlasdair11-20/+36
Can have unintended consequences, due to how overloading interacts with casts. For example, x : X == y : X can be interpreted as eq_string(cast(x), cast(y)) if x and y are both castable to string, even when there is an equality function (X, X) -> bool. Sail->SMT can't handle strings very well so it's best to just ensure that this can never occur. Rather than implicitly casting in logging statements like: print("xyz" ^ x ^ " foo " ^ y) it's now print("xyz" ^ to_str(x) ^ " foo " ^ to_str(y)) which ensures that the conversion to strings only happens where intended. I also added a warning to Sail itself to try to catch these cases in future.
2019-06-27Merge pull request #14 from gameboo/aj443-fixesPrashanth Mundkur4-8/+8
Zero extend rather than sign extend rvfi-dii reports (usefull for 32 …
2019-06-27Update the os-boot patch.Prashanth Mundkur1-32/+39
2019-06-27Update docs and diagram.Prashanth Mundkur3-240/+275
2019-06-27Merge branch 'master' into pmpPrashanth Mundkur3-0/+57
2019-06-27Merge branch 'master-cleanup' into pmpPrashanth Mundkur4-6/+10
2019-06-27Fix the lem target.Prashanth Mundkur2-84/+68
2019-06-27Zero extend rather than sign extend rvfi-dii reports (usefull for 32 ↵Alexandre Joannou4-8/+8
rvfi-dii comparisons where upper bits are not expected to have information in them)
2019-06-27Fixes for get_perf.py script: fix name of tests directory and cope with uc-p ↵Robert Norton1-2/+2
test being so fast the script it takes zero microseconds.
2019-06-27Predicate more tracing with get_config_print_xxx.Robert Norton3-5/+10
2019-06-27pointer to RISC-V ISA Formal comparisonPeter Sewell1-0/+4
2019-06-27Merge pull request #12 from heshamelmatary/hafniumRobert Norton2-0/+53
Add a bootable Hafnium image
2019-06-27os-boot: Add a Hafnium image with initrd and Linux VMsHesham Almatary1-0/+0
This image includes: - BBL - Hafnium Hypervisor - initrd - Linux as a Primary VM - Linux as a secondary VM - Busybox - Hafnium.ko device driver It runs on Spike, and requires PMP, CLINT and HTIF
2019-06-27os-boot: Add a Spike-derivative DTS with chosen node for HafniumHesham Almatary1-0/+53
2019-06-26Merge branch 'master-cleanup' into pmpPrashanth Mundkur10-20/+104
2019-06-26Add command line option in c_emulator for disabling tracing. Add builtins ↵Robert Norton6-7/+83
for getting values of config_print_xxx variables to speed up emulation when not tracing.
2019-06-25Some more pruning and commenting of riscv_mem.Prashanth Mundkur1-33/+37
2019-06-25Add PMP regs to the is-defined predicate.Prashanth Mundkur1-1/+20
2019-06-24Add PMP checks to physical memory accesses.Prashanth Mundkur24-61/+135
- unify AccessType and ReadType since they were essentially redundant, making it easier to implement PMP checks for ReadWrite/atomic accesses. - add command line options to enable PMP in the platform - also fix the matching for the case when all entries are off
2019-06-24Narrow the external interface to riscv_mem to mem_{read,write,write_ea}.Prashanth Mundkur7-23/+26
2019-06-24Starting cleaning up physical memory bits for pmp integration.Prashanth Mundkur6-63/+37
. convert duopod to directly use Sail lib/regfp functions . put lib/regfp wrappers in prelude, and avoid calling them directly in riscv_mem . remove mmio assumption in page-table walks, making read/write calls symmetric . prune obsolete functions from prelude_mem
2019-06-21Checked locked flag on PMP reg writes, and add the special case for the ↵Prashanth Mundkur3-62/+64
pmpaddr0 check.
2019-06-20Hook in csr reads/writes to PMP regs. Locked entries are not yet handled.Prashanth Mundkur3-85/+129
2019-06-20Handle pmpcfg packing and unpacking for csr accesses.Prashanth Mundkur1-22/+76