6683fc49 | 25-Apr-2025 |
Zhaoyang You <[email protected]> |
fix(csr): filter out Read-Only CSR in regOut (#4412) |
00c6a8aa | 25-Apr-2025 |
Guanghui Cheng <[email protected]> |
fix(criticalError): Stop counting `wfi_cycles` when disable `wfiResume` (#4623)
* The precondition for `commitStuck_overflow` to trigger a critical error is that `WFI` resumes after 1M(2^20) cycles. |
1191982f | 24-Apr-2025 |
Zhaoyang You <[email protected]> |
fix(intr,difftest): add interrupt delegate (#4516) |
6e51c65d | 16-Apr-2025 |
sinceforYy <[email protected]> |
fix(vstopi): fix vstopi result selection
* AIA Spec: * Ties in nominal priority are broken as usual by the default priority * order from Table 8, unless hvictl fields VTI = 1 and IID ≠ 9 * (last ite
fix(vstopi): fix vstopi result selection
* AIA Spec: * Ties in nominal priority are broken as usual by the default priority * order from Table 8, unless hvictl fields VTI = 1 and IID ≠ 9 * (last item in the candidate list above), in which case * default priority order is determined solely by hvictl.DPR.
* If bit IPRIOM (IPRIO Mode) of hvictl is zero, IPRIO in vstopi is 1; * else, if the priority number for the highest-priority candidate * is within the range 1 to 255, IPRIO is that value; else, IPRIO * is set to either 0 or 255 in the manner documented for stopi * in Section 5.4.2.
show more ...
|
ece71978 | 15-Apr-2025 |
sinceforYy <[email protected]> |
fix(xtopi): fix m/stopi.IRPIO generation conditions
* If all bytes of the supervisor-level iprio array are read-only zeros, * a simplified implementation of field IPRIO is allowed in which * its val
fix(xtopi): fix m/stopi.IRPIO generation conditions
* If all bytes of the supervisor-level iprio array are read-only zeros, * a simplified implementation of field IPRIO is allowed in which * its value is always 1 whenever stopi is not zero. * * We are configurable and do not need to simplify the implementation.
show more ...
|
f9ed852f | 22-Apr-2025 |
NewPaulWalker <[email protected]> |
fix(xiselect): set the minimum range for xiselect (#4594)
The miselect register implements at least enough bits to support all implemented miselect values. The siselect register will support the val
fix(xiselect): set the minimum range for xiselect (#4594)
The miselect register implements at least enough bits to support all implemented miselect values. The siselect register will support the value range 0..0xFFF at a minimum. The vsiselect register will support the value range 0..0xFFF at a minimum.
show more ...
|
51ad03b0 | 21-Apr-2025 |
Zhaoyang You <[email protected]> |
fix(rename): fix Csrr format (#4605) |
bcc5f81f | 18-Apr-2025 |
Zhaoyang You <[email protected]> |
fix(csr): fix trap handle bundle format (#4579) |
c01e75b5 | 16-Apr-2025 |
Ziyue Zhang <[email protected]> |
fix(exceptionGen): clear isEnqExcp when older or curr wb exception coming (#4570) |
011d262c | 15-Apr-2025 |
Zhaoyang You <[email protected]> |
feat(PMA, CSR): support PMA CSR configurable (#4233) |
3933ec0c | 15-Apr-2025 |
Zhaoyang You <[email protected]> |
fix(vstopi): remove SEI from Candidate 4 (#4533)
* if hvictl.VTI = 0: * the highest-priority pending-and-enabled major interrupt indicated * by vsip and vsie other than a supervisor external interru
fix(vstopi): remove SEI from Candidate 4 (#4533)
* if hvictl.VTI = 0: * the highest-priority pending-and-enabled major interrupt indicated * by vsip and vsie other than a supervisor external interrupt(code 9), * using the priority numbers assigned by hviprio1 and hviprio2. * * A hypervisor can choose to employ registers hviprio1 and hviprio2 * when emulating the (virtual) supervisor-level iprio array accessed * indirectly through siselect and sireg (really vsiselect and vsireg) * for a virtual hart. For interrupts not in the subset supported by * hviprio1 and hviprio2, the priority number bytes in the emulated * iprio array can be read-only zeros.
show more ...
|
c38ad5d1 | 15-Apr-2025 |
Guanghui Cheng <[email protected]> |
fix(CSR): remove useless logic of `mIRVec` (#4553) |
30f35717 | 14-Apr-2025 |
cz4e <[email protected]> |
refactor(DFT): refactor `DFT` IO (#4530) |
c9c4960f | 10-Apr-2025 |
Ziyue Zhang <[email protected]> |
fix(decode): block the vector decode until vsetvl has committed (#4535) |
4ec1f462 | 09-Apr-2025 |
cz4e <[email protected]> |
timing(StoreMisalignBuffer): fix misalign buffer enq timing (#4493)
* a misalign store will enqueue misalign buffer at s1, and revoke if it needs at s2 |
736dee70 | 09-Apr-2025 |
NewPaulWalker <[email protected]> |
fix(Svinval): remove assert related to Svinval extension in ROB (#4519)
The RISC-V manual says that: > In typical usage, software will invalidate a range of virtual > addresses in the addresstransla
fix(Svinval): remove assert related to Svinval extension in ROB (#4519)
The RISC-V manual says that: > In typical usage, software will invalidate a range of virtual > addresses in the addresstranslation caches by executing an > SFENCE.W.INVAL instruction, executing a series of SINVAL.VMA, > HINVAL.VVMA, or HINVAL.GVMA instructions to the addresses (and > optionally ASIDs or VMIDs) in question, and then executing an > SFENCE.INVAL.IR instruction.
Some additional information was obtained through https://github.com/riscv/riscv-isa-manual/issues/1936
However, other instructions may still appear between SFENCE.W.INVAL and SFENCE.INVAL.IR. > Translation of any memory accesses during that sequence are subject to > the usual uncertainty as to which translation (among old and new ones) > is used.
Moreover, these memory accesses are not entirely unpredictable either. > Each subsequent memory access will unpredictably use either the old > translation or the new translation. Other behaviors can't occur.
show more ...
|
6127035c | 09-Apr-2025 |
Zhaoyang You <[email protected]> |
fix(difftest): fix sync aia event valid (#4517) |
7768a97d | 08-Apr-2025 |
Tang Haojin <[email protected]> |
fix(CSR): use GEILEN from IMSICParams (#4520) |
1592abd1 | 08-Apr-2025 |
Yan Xu <[email protected]> |
feat: support inst lifetime trace (#4007)
PerfCCT(performance counter commit trace) is a Instruction-level granularity perfCounter like GEM5 How to use this: 1. Make with "WITH_CHISELDB=1" argument
feat: support inst lifetime trace (#4007)
PerfCCT(performance counter commit trace) is a Instruction-level granularity perfCounter like GEM5 How to use this: 1. Make with "WITH_CHISELDB=1" argument 2. Run with "--dump-db --dump-select-db lifetime", then get the database 3. Instruction lifetime visualize run "python3 scripts/perfcct.py "the-db-file-path" -p 1 -v | less" 4. Analysis script now is in XS-GEM5 repo, see https://github.com/OpenXiangShan/GEM5/blob/xs-dev/util/ClockAnalysis.py
How it works: 1. Allocate one unique tag "seqNum" like GEM5 for each instruction at fetch stage 2. Passing the "seqNum" in each pipeline 3. Recording perf data through the DPIC interface
show more ...
|
8cfc24b2 | 07-Apr-2025 |
Tang Haojin <[email protected]> |
feat(AIA): integrate ChiselAIA again (#4509) |
4c0658ae | 04-Apr-2025 |
Tang Haojin <[email protected]> |
feat(backend): make wfi timeout configurable (#4491) |
602aa9f1 | 02-Apr-2025 |
cz4e <[email protected]> |
feat(Sram): add `SRAM_CTL` interface (#4474)
* add `SRAM_CTL` interface for SRAMTemplate * use `SRAM_WITH_CTL` to enable, e.g. `make sim-verilog CONFIG=KunminghuV2Config RELEASE=1 SRAM_WITH_CTL=
feat(Sram): add `SRAM_CTL` interface (#4474)
* add `SRAM_CTL` interface for SRAMTemplate * use `SRAM_WITH_CTL` to enable, e.g. `make sim-verilog CONFIG=KunminghuV2Config RELEASE=1 SRAM_WITH_CTL=1`
show more ...
|
f9daee66 | 29-Mar-2025 |
Zifei Zhang <[email protected]> |
fix(topdown): when instr fused, take it as NoStall (#4475) |
bbb50258 | 25-Mar-2025 |
Tang Haojin <[email protected]> |
fix(FusionDecoder): tie output to false when disabled (#4456) |
69e67bbf | 22-Mar-2025 |
Tang Haojin <[email protected]> |
fix(difftest, CSR): sync non-reg interrupt pending right after reset (#4449) |