- Oct 22, 2021
-
-
Brian Campbell authored
Fixes rems-project/sail#152
-
- Sep 09, 2021
-
-
Jessica Clarke authored
Fix crash when fcsr.frm is invalid
-
Jessica Clarke authored
Fix incorrect SV48_Vaddr bitfield
-
- Aug 25, 2021
-
-
Peter Sewell authored
tweak README for move to riscv organisation
-
- Aug 22, 2021
-
-
dylux authored
-
- Aug 10, 2021
-
-
Peter Rugg authored
-
- Aug 03, 2021
-
-
Robert Norton authored
Encourage use of `opam` and streamline by moving discussion of setting `SAIL_DIR` into a separate section about building using a custom Sail version.
-
- Jul 29, 2021
-
-
Robert Norton authored
-
pes20 authored
-
pes20 authored
-
- Jul 28, 2021
-
-
Thomas Bauereiss authored
-
- Jul 27, 2021
-
-
Brian Campbell authored
-
Brian Campbell authored
-
Brian Campbell authored
Also tweak Makefile to remove new Coq generated files
-
Thomas Bauereiss authored
-
- Jul 16, 2021
-
-
Robert Norton authored
This is required for implementing memory version support for CHERI.
-
- Jun 29, 2021
-
-
Peter Rugg authored
-
Peter Rugg authored
-
Nathaniel Wesley Filardo authored
It's possible that we might want to do page table walks at Privilege levels other than the default value (e.g., under the explicit direction of the instruction stream). Split translateAddr into a thin wrapper of the same name and a new translateAddr_priv that takes the Privilege as an argument.
-
Nathaniel Wesley Filardo authored
Using the new riscv_mem functions to elide the Privilege level computation
-
Nathaniel Wesley Filardo authored
- Expose "just below the periphery" functions that allow bypassing effectivePermission and instead take a Permission explicitly (as well as an AccessType, in the case of reads, to distinguish Read from Execute; for writes, just an ext_access_type that will be wrapped in Write).
-
Nathaniel Wesley Filardo authored
Previously we were erroneously passing the instruction's memory access to lower layers of the memory machinery. For example, a store instruction still should be attempting reads of PTEs, not stores.
-
Nathaniel Wesley Filardo authored
This function was inconsistent in its use of arguments vs. globals. However, in all existing cases, the arguments are fed as the values of these globals, so this has no observable impacts in the current model, but hopefully prevents confusion later.
-
- Jun 26, 2021
-
-
Robert Norton authored
I have used this locally to build using a command like: docker run -v $PWD:/sail-riscv -w /sail-riscv <docker-image> make csim Thanks to @jameyhicks in #28 for showing how. Next step is to integrate this into github workflow somehow.
-
- Jun 25, 2021
-
-
PeterRugg authored
-
Alexander Richardson authored
-
Robert Norton authored
Fix the non-RVFI_DII build
-
Robert Norton authored
Also run GitHub actions for PRs
-
Alexander Richardson authored
-
Alex Richardson authored
This was broken by #76
-
Robert Norton authored
-
Robert Norton authored
-
Robert Norton authored
macOS build fixes (with added fix for Ubuntu 18.04)
-
Robert Norton authored
Add workaround for ubuntu 18.04 lack of pkg-config for libgmp.
-
Robert Norton authored
Add support for the new RVFI_DII socket format
-
- Jun 22, 2021
-
-
Robert Norton authored
PMP address match misses some corner cases
-
- Jun 18, 2021
-
-
Robert Norton authored
Fix internal error caused by invalid LR / SC / AMO widths.
-
- May 27, 2021
-
-
Robert Norton authored
The RISC-V specification says: "Software should not set the rl bit on an LR instruction unless the aq bit is also set, nor should software set the aq bit on an SC instruction unless the rl bit is also set. LR.rl and SC.aq instructions are not guaranteed to provide any stronger ordering than those with both bits clear, but may result in lower performance." i.e. these instructions are allowed but do not have stronger atomicity guarantees than the versions without the bits set. To implement this we AND the rl bit on lr with the aq bit, and similarly AND the aq bit on sc with the rl bit. Prior to this patch these instructions would generate Error_not_implemented in riscv_mem.sail . An alternative to this patch would be to 'downgrade' the operations there but I think that would risk future extensions calling mem_read / mem_write without being made aware of these special cases (open to discussion).
-
- May 21, 2021
-
-
Robert Norton authored
Even though the relevant encodings are not currently valid it does no harm to implement them in the obvious way. It means it will be trivial to enable them if they do become valid and extensions can choose to implement them simply by adding the relevant decoding.
-
Robert Norton authored
The RISC-V spec. only shows LR / SC / AMOs for word and double widths even though the encoding would naturally extend to other widths (it is a little unclear). Previously the Sail model would decode the unused widths but throw an internal error in execute. With this change the unused widths will not be decoded and will cause illegal instruction exceptions instead.
-