1. Jul 30, 2021
  2. Jul 29, 2021
  3. Jul 28, 2021
  4. Jul 27, 2021
  5. Jul 26, 2021
  6. Jul 23, 2021
  7. Jul 22, 2021
  8. Jul 21, 2021
    • Daniel Lustig's avatar
      Priv virtual memory updates (#750) · cb8f09a4
      Daniel Lustig authored
      * Priv virtual memory updates
      
      * Priv 1.12 requires page faults when the address translation process
      reaches a PTE with any reserved bit set
      
      * Svpbmt uses two PTE bits, but otherwise has no effect on Spike (since
      Spike is sequentially consistent and does not model PMAs)
      
      * Add Svinval instructions
      
      Even though I updated riscv-opcodes separately, I merged the new
      defines into riscv/encoding.h manually, because riscv-opcodes seems
      to be a step ahead of riscv-isa-sim for a few vector opcodes, causing
      conflicts when regenerating encoding.h...
      
      If that gets fixed, and encoding.h gets regenerated automatically, I can
      remove it from this PR to avoid conflicts.
      
      * Svinval: use #include rather than copying code
      
      ..for the Svinval functions that are implemented in ways that just
      mimic SFENCE/HFENCE instructions
      
      Thanks to @aswaterman for the suggestion
      cb8f09a4
  9. Jul 19, 2021
  10. Jul 18, 2021
  11. Jul 16, 2021
    • Andrew Waterman's avatar
      Fix MPRV-related bug · 4506ac36
      Andrew Waterman authored
      The wrong instruction might've been fetched when the PC was on the same
      page as a load or store used within the MPRV sequence.
      
      Fix by not using TLB within MPRV sequences.
      
      Resolves #746
      4506ac36
  12. Jul 14, 2021
  13. Jul 09, 2021
  14. Jul 08, 2021
  15. Jun 28, 2021
  16. Jun 15, 2021
  17. Jun 13, 2021
  18. Jun 10, 2021
    • Shay Aviv's avatar
      Apply scounteren only if S-mode is supported (#726) · 1908fc38
      Shay Aviv authored
      When U-mode is enabled but S-mode is disabled, `mcounteren` should control the availability of the hardware performance-monitoring counters in U-mode, and `scounteren` should be ignored.
      The current implementation (incorrectly) raises an illegal instruction trap when reading performance-monitoring counters in U-mode while S-mode is disabled, even if the counters are enabled in `mcounteren`.
      1908fc38