- Jan 07, 2022
-
-
Jiuyang Liu authored
-
Kevin Läufer authored
-
- Dec 28, 2021
-
-
Andrew Waterman authored
This PR implements v0.6.2 of the RISC-V Hypervisor Extension. The implementation was inspired by José Martins' and colleagues' work described in [1]. Much of the microarchitecture and essentially all of the code is new, but their implementation served as our baseline. We thank them for trailblazing hypervisor support in rocket-chip. Note that this PR only includes the mechanisms to virtualize the hart itself. Virtualized interrupt controllers, IOMMUs, etc. are future work. Lots of future work. Note also that some features are (legally) not implemented. Currently, misa.H is not writable, something we may or may not choose to fix. The mtinst and htinst CSRs are hardwired to 0, placing additional onus on hypervisor software to use the HLVX instruction. [1] "A First Look at RISC-V Virtualization from an Embedded Systems Perspective", https://arxiv.org/abs/2103.14951 Co-authored-by:
John Ingalls <john.ingalls@sifive.com>
-
- Dec 24, 2021
-
-
John Ingalls authored
-
- Dec 16, 2021
-
-
John Ingalls authored
-
- Nov 30, 2021
-
-
John Ingalls authored
-
- Nov 12, 2021
-
-
John Ingalls authored
* Removed UNMI * Added new mnie bit to mnstatus * Fix read value of mnstatus.mpp Co-authored-by:Ernie Edgar <ernie.edgar@sifive.com>
-
- Nov 05, 2021
-
-
Andrew Waterman authored
Bumping hardfloat for fixed .gitmodules.
-
- Nov 04, 2021
-
-
James Dunn authored
-
- Nov 03, 2021
-
-
Andrew Waterman authored
Bumping torture for https:// riscv-test-env submodule.
-
dunn authored
-
- Sep 23, 2021
-
-
Andrew Waterman authored
Attempt to switch CI from ubuntu-16.04 to ubuntu-latest
-
Andrew Waterman authored
-
- Sep 16, 2021
-
-
Jiuyang Liu authored
Bump Hardfloat in Preparation for Chisel 3.5
-
David Biancolin authored
-
- Aug 25, 2021
-
-
Jiuyang Liu authored
fix build errors with mill
-
Zihao Yu authored
* see https://github.com/com-lihaoyi/mill/discussions/1396#discussioncomment-969512 for more information
-
Zihao Yu authored
-
- Aug 19, 2021
-
-
John Ingalls authored
* PTW: timing L2TLB valid select write way * Reg:=Wire instead of Wire:=Reg
-
- Jul 23, 2021
-
-
John Ingalls authored
-
- Jun 25, 2021
-
-
Jiuyang Liu authored
-
- Jun 23, 2021
-
-
Jiuyang Liu authored
-
- Jun 11, 2021
-
-
Jiuyang Liu authored
-
- May 11, 2021
-
-
Jerry Zhao authored
-
Henry Cook authored
Add instructions for signing the Chips Alliance CLA
-
- May 07, 2021
-
-
Jiuyang Liu authored
-
Jiuyang Liu authored
* convert TestHarness to chisel3, work around compatibility mode naming issue. * explicit tieoff in axi4 bundle. * use DontCare.
-
- May 05, 2021
-
-
John Ingalls authored
-
- May 04, 2021
-
-
John Ingalls authored
* DCache does not block Acquire/ProbeAck by outstanding Release * include more bits in the block_probe_for_pending_release_ack address comparison to eliminate most false positives * tl_out_a block acquire for pending release_ack: include address comparison to eliminate most false positives * tl_out_a block acquire for pending release_ack: use s2_req.addr for address comparison to improve timing
-
- Apr 19, 2021
-
-
John Ingalls authored
* Fix a DTIM X-prop issue Convert PutPartials to PutFulls when the mask is full to avoid RMW. * Rework ScratchpadSlavePort fix, since it dovetails with DTIM fix Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
John Ingalls authored
* Prevent TLWidthWidget from generating X outputs Widening WidthWidgets contain an uninitialized data register. The first transaction through the widget may propagate that register's contents on the bus, which is logically correct but can propagates a X, violating our constraint that we never provide X in the payload of a valid xact. Fix by propagating in.bits.data, rather than the register, until the register has been written at least once. This is cheaper than resetting the register. * Add comments to WidthWidget X fix Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
John Ingalls authored
Since the state transitions in the divider depend on the data values, the in.ready signal becomes X if the input data is X. This fact becomes problematic for speculative instructions, since the state might not yet have been initialized. Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
John Ingalls authored
rs1[4] was being ignored in determining whether the access was a read or a write. Other CSR instructions are unaffected. RV32I/RV64I cores are unaffected. Only Caboose and Rocket with RV32E are affected; Bullet is not. Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
John Ingalls authored
ITIM writes are implemented as RMW operations and so cause ITIM reads. Thus, initializing the ITIM can cause Xs to leak out. But full-word ITIM writes don't need to be RMW, so we can suppress the Xs from leaking out in that special case. Conveniently, we already require that TIMs be initialized with full-word writes for ECC purposes, so preventing the Xs from leaking out only in the full-word write case suffices. Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
John Ingalls authored
* Fix x-prop issue in ScratchpadSlavePort Don't let D$ req.cmd field become X, or else it'll make req.ready become X, which confuses the Rocket core. * Fix regression introduced in fix Wrong D$ command was sent on first slave-port access. Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
John Ingalls authored
* Don't attempt to cover non-existent U-mode counters * Modification in the logic to not cover non-existent U-mode counters Co-authored-by:
Andrew Waterman <andrew@sifive.com> Co-authored-by:
Umer Imran <umerimran@lambda44.internal.sifive.com>
-
John Ingalls authored
Fixes an x-prop issue Co-authored-by:Andrew Waterman <andrew@sifive.com>
-
- Apr 10, 2021
-
-
John Ingalls authored
-
- Apr 01, 2021
-
-
Andrew Waterman authored
Fix a scratchpad ECC bug
-
- Mar 31, 2021
-
-
Andrew Waterman authored
When a store is immediately followed by a load to the same address, and the load detects an ECC error (corresponding to the old contents), the store fails to take effect. Only affects data scratchpads, not D$.
-