Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-05-05 | Factor out P extension macros into their own headerfactor-out-macros | Andrew Waterman | 2 | -500/+507 | |
No functional change. | |||||
2022-05-05 | Factor out V extension macros into their own header | Andrew Waterman | 2 | -2069/+2076 | |
No functional change. | |||||
2022-05-05 | Merge pull request #983 from soberl/epmp_updates_2 | Scott Johnson | 5 | -13/+130 | |
Implement Smepmp extension | |||||
2022-05-04 | Update pmpaddr_csr_t::access_ok() for ePMP on matching regions | soberl@nvidia.com | 1 | -5/+31 | |
2022-05-04 | Update mmu_t::pmp_ok() for ePMP in case matching region is not found | soberl@nvidia.com | 1 | -1/+5 | |
2022-05-04 | Update csr access rules for ePMP on pmpaddr and pmpcfg | soberl@nvidia.com | 1 | -7/+31 | |
2022-05-04 | Implement the new csr mseccfg for ePMP as dummy | soberl@nvidia.com | 4 | -0/+63 | |
2022-05-04 | Merge pull request #985 from riscv-software-src/trigger_hit | Andrew Waterman | 2 | -11/+18 | |
Implement mcontrol.hit bit | |||||
2022-05-04 | Fix the padding of register names in the log (#987) | Shaked Flur | 1 | -1/+1 | |
This fix print x5 as "x5 ", instead of "x 5". | |||||
2022-05-02 | Use MCONTROL_TYPE_MATCH macro instead of 2 | Tim Newsome | 1 | -1/+1 | |
2022-05-02 | Implement mcontrol trigger hit bit. | Tim Newsome | 2 | -1/+14 | |
2022-04-22 | Remove mcontrol_t.h | Tim Newsome | 2 | -4/+1 | |
It was removed from the spec a long time ago. | |||||
2022-04-22 | Remove maskmax as a variable. | Tim Newsome | 2 | -3/+2 | |
2022-04-22 | Remove mcontrol_t.type. | Tim Newsome | 2 | -3/+2 | |
It's not writable anyway. | |||||
2022-04-22 | Whitespace fix. | Tim Newsome | 1 | -1/+0 | |
2022-04-21 | Pass acutally_store from store_func to misaligned_store | Ryan Buchner | 1 | -1/+1 | |
In future, someone may expect this functionality. | |||||
2022-04-21 | Add actually_store tag to misaligned_store function | Ryan Buchner | 1 | -2/+2 | |
Is passed along to the contained store_func. | |||||
2022-04-21 | Modify store_func to throw fault if misaligned and require_alignment=true | Ryan Buchner | 1 | -2/+4 | |
2022-04-21 | Set require alignment to true on the 'fake' store in amo_func. | Ryan Buchner | 1 | -1/+1 | |
2022-04-21 | Add require_alignment tag to store_func | Ryan Buchner | 1 | -1/+1 | |
Will be used similarly as in load_func. | |||||
2022-04-14 | Merge pull request #975 from plctlab/plct-code-style | Andrew Waterman | 5 | -299/+321 | |
add macro support for instructions with overlapping encodings and fix partial style problems | |||||
2022-04-14 | add support for overlap instructions | Weiwei Li | 4 | -6/+25 | |
* add DECLARE_OVERLAP_INSN to bind instructions with extension * add overlap_list.h to contain the declare of all overlapping instructions * make func function for overlapping instruction return NULL when the coresponding extension(s) is not supported. | |||||
2022-04-14 | fix style problems in decode.h and processor.cc | Weiwei Li | 2 | -293/+296 | |
2022-04-13 | Merge pull request #954 from rswarbrick/more-cfg | Andrew Waterman | 3 | -28/+29 | |
Move a few more configuration arguments into cfg_t | |||||
2022-04-13 | Adjust indentation in store_slow_path and store_func | Ryan Buchner | 2 | -18/+18 | |
Didn't want to make change in previous commit to isolate the change. | |||||
2022-04-13 | Skip storing in store_func if actually_store is false, add a fake store at ↵ | Ryan Buchner | 2 | -1/+8 | |
start of AMO. This includes skipping store in store_slow_path. Is okay to skip the mmio_store part too, since the access_fault for mmio_failure will be caught on the actual store. The ordering for the mmio_access fault is irrelevant since it will occur after the TW faults, and load faults are converted to store faults. Will catch any faults from the access but won't perform a store. Since store permissions can only be granted if read permissions exist, any store faults will occur before or at the same time as a load fault. Thus this store permissions check is sufficient for properly catching the faults in an Amo access TW. | |||||
2022-04-12 | Add actually_store tag to store_func and store_slow_path | Ryan Buchner | 2 | -4/+4 | |
Will be used to check store attributes without actually performing the store. Needed to AMO bug fix. | |||||
2022-04-12 | Move real_time_clint into cfg_t | Rupert Swarbrick | 3 | -5/+8 | |
2022-04-12 | Move varch into cfg_t | Rupert Swarbrick | 3 | -3/+6 | |
2022-04-12 | Remove nprocs from cfg_t | Rupert Swarbrick | 2 | -5/+3 | |
Now we have hartids, we can remove nprocs so that we have a single source of truth. | |||||
2022-04-12 | Move hartids into cfg_t | Rupert Swarbrick | 3 | -7/+11 | |
The only slightly difficult thing here is that hartids will always be considered "overridden" by the time we get to sim_t::sim_t (either overridden by a command line argument, or overridden when we set default hartids just before the constructor). To allow downstream code to distinguish between "I picked IDs 0, 1, 2, 3 because the user asked for 4 processors" and "The user explicitly asked for IDs 0, 1, 2, 3", we have an extra explicit_hartids field. | |||||
2022-04-12 | Move the "default hartids" logic from sim.cc into spike.cc | Rupert Swarbrick | 1 | -10/+3 | |
This moves another part of the "configuration" out of the generic sim.cc code. | |||||
2022-04-12 | Move start_pc into cfg_t | Rupert Swarbrick | 3 | -5/+5 | |
2022-04-12 | Fix debug messages about invalid pmpregions/mmu-types | Rupert Swarbrick | 1 | -2/+2 | |
This was using the number of CPUs in total, rather than the CPU whose PMP regions / MMU type it was actually parsing. | |||||
2022-04-11 | Change processor_t to hold a pointer to an isa_parser_t (#973) | Rupert Swarbrick | 3 | -17/+17 | |
Before, it had another copy, which is a little unnecessary. | |||||
2022-04-11 | Split mem layout computation in spike.cc (#957) | Rupert Swarbrick | 1 | -2/+29 | |
The motivation here is mostly to enable a refactoring where the memory layout (sans allocated memory) gets passed to DTS/DTB code before we ever allocate anything. But it turns out to make merge_overlapping_memory_regions a bit simpler, which is an added bonus. | |||||
2022-04-11 | Merge pull request #944 from riscv-software-src/triggers | Scott Johnson | 10 | -229/+389 | |
Refactor trigger code | |||||
2022-04-11 | Fix hgatp CSR write | Anup Patel | 1 | -1/+1 | |
The write mask is incorrectly computed by hgatp_csr_t::unlogged_write() which leads to hgatp.PPN bits not getting updated upon hgatp CSR write. This patch fixes hgatp CSR writes and gets KVM RISC-V working again on Spike. Fixes: 70b7e9ca2d04 ("mmu: support asid/vmid (#928)") Signed-off-by: Anup Patel <anup@brainfault.org> | |||||
2022-04-11 | Merge pull request #968 from 4vtomat/master | Andrew Waterman | 1 | -84/+20 | |
[NFC] Clean up the redundant code by defining macros | |||||
2022-04-10 | Adjust the access index of vs2 to zero in vmv_x_s.h (#969) | Brandon Wu | 1 | -21/+17 | |
2022-04-09 | Replaced vector loop compare body with newly defined macro | 4vtomat | 1 | -90/+11 | |
This commit uses new macro to replace loop compare body to enhance code reuse. | |||||
2022-04-09 | Adding new macro to replace repetitive code | 4vtomat | 1 | -0/+15 | |
2022-04-07 | Merge pull request #966 from riscv-software-src/fix-riscv-build | Andrew Waterman | 9 | -11/+11 | |
Rename processor_t::set_csr to put_csr to fix build on RISC-V | |||||
2022-04-07 | Rename processor_t::set_csr to put_csr to fix build on RISC-V | Andrew Waterman | 9 | -11/+11 | |
The alternative would be to #undef set_csr after including encoding.h, but this solution strikes me as cleaner. Part of the reason is that set_csr was not a great name: it sounds like it implements the CSRRS (read & set) instruction, rather than impelementing a simple write. | |||||
2022-04-07 | Pass ref instead of pointer to trigger_updated() | Tim Newsome | 3 | -5/+5 | |
2022-04-07 | Add const to pointers where possible. | Tim Newsome | 2 | -27/+27 | |
2022-04-07 | Add module_t::~module_t() | Tim Newsome | 2 | -0/+9 | |
Also add virtual destructor trigger_t. | |||||
2022-04-06 | mmu: support asid/vmid (#928) | Chih-Min Chao | 3 | -3/+13 | |
The change makes [v]satp.asid and hgatp.vmid writtable and supports maximum length for rv32 and rv64. Software could write and read the satp.asid to get the valid length or check if the core supports asid/vmid or not. However, there is no official way to describe this hardware capability (device tree or something else). Two implementation flags are also added for future use and enabled by default. Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com> | |||||
2022-04-05 | Merge pull request #960 from marcfedorow/upstream | Andrew Waterman | 3 | -6/+15 | |
Change misa CSR in associate with priv spec. | |||||
2022-04-05 | Make triggers a vector of trigger_t. | Tim Newsome | 3 | -3/+3 | |
Not just mcontrol_t. |