1. Oct 22, 2021
  2. Sep 09, 2021
  3. Aug 25, 2021
  4. Aug 22, 2021
  5. Aug 10, 2021
  6. Aug 03, 2021
    • Robert Norton's avatar
      Clarify the build instructions. · cf099be2
      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.
      cf099be2
  7. Jul 29, 2021
  8. Jul 28, 2021
  9. Jul 27, 2021
  10. Jul 16, 2021
  11. Jun 29, 2021
  12. Jun 26, 2021
    • Robert Norton's avatar
      Add a Dockerfile with sail and dependencies. · 60776f92
      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.
      60776f92
  13. Jun 25, 2021
  14. Jun 22, 2021
  15. Jun 18, 2021
  16. May 27, 2021
    • Robert Norton's avatar
      Fix Error_not_implemented exception on lr.rl or sc.aq. · b099e33f
      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).
      b099e33f
  17. May 21, 2021
    • Robert Norton's avatar
      Extend LR / SC / AMO execute for unused widths. · 309cff67
      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.
      309cff67
    • Robert Norton's avatar
      Fix internal error caused by invalid LR / SC / AMO widths. · 47d31eab
      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.
      47d31eab