#
8882eb68 |
| 21-Feb-2025 |
Xin Tian <[email protected]> |
feat(bitmap/memenc): support memory isolation by bitmap checking and memory encrpty used SM4-XTS (#3980)
- Add bitmap module in MMU for memory isolation - Add memory encryption module based on AXI p
feat(bitmap/memenc): support memory isolation by bitmap checking and memory encrpty used SM4-XTS (#3980)
- Add bitmap module in MMU for memory isolation - Add memory encryption module based on AXI protoco - Can don't using these modules by setting the option `HasMEMencryption` & `HasBitmapCheck` to false
show more ...
|
#
075d4937 |
| 30-Dec-2024 |
junxiong-ji <[email protected]> |
feat(CSR): allow most CSRR can be out-of-order issued and executed
* Add some comment on rdata in NewCSR. * Allow CSRR not to block backward instruction. * Here is **Inorder** CSRR list, * fflags,
feat(CSR): allow most CSRR can be out-of-order issued and executed
* Add some comment on rdata in NewCSR. * Allow CSRR not to block backward instruction. * Here is **Inorder** CSRR list, * fflags, fcsr, * vxsat, vcsr, vstart, * mstatus, sstatus, hstatus, vsstatus, mnstatus, * dcsr. * The reason for Inorder CSRR executed is that these CSR will be changed by Use-Level instruction without any fence, and executing OoO would get wrong result. * Since there must be FENCE before reading any PMC CSRs, there is no need to let reading PMC CSRs inorder.
show more ...
|
#
e3da8bad |
| 22-Jul-2024 |
Tang Haojin <[email protected]> |
build: purge chisel 3 and add deprecation check (#3250)
|
#
06490c40 |
| 24-Oct-2023 |
peixiaokun <[email protected]> |
PMP: initialize pmpaddr to zero; CSR: add menvcfg csr
|
#
672c4648 |
| 30-Mar-2024 |
ceba <[email protected]> |
CSR: initialize pmpaddr with 0 for difftest (#2825)
pmpaddr CSRs could be uninitialized, but for difftesting with NEMU, we opt to initialize them.
However, pmp and pma CSRs are not checked in difft
CSR: initialize pmpaddr with 0 for difftest (#2825)
pmpaddr CSRs could be uninitialized, but for difftesting with NEMU, we opt to initialize them.
However, pmp and pma CSRs are not checked in difftest, which should be fixed in feature.
show more ...
|
#
aa438b8e |
| 16-Nov-2023 |
Haoyuan Feng <[email protected]> |
PMP: Writing to pmpicfg should be ignored when locked (#2478)
|
#
8891a219 |
| 08-Oct-2023 |
Yinan Xu <[email protected]> |
Bump rocket-chip (#2353)
|
#
935edac4 |
| 21-Sep-2023 |
Tang Haojin <[email protected]> |
chore: remove deprecated brackets, APIs, etc. (#2321)
|
#
67ba96b4 |
| 02-Jan-2023 |
Yinan Xu <[email protected]> |
Switch to asynchronous reset for all modules (#1867)
This commit changes the reset of all modules to asynchronous style,
including changes on the initialization values of some registers.
For async
Switch to asynchronous reset for all modules (#1867)
This commit changes the reset of all modules to asynchronous style,
including changes on the initialization values of some registers.
For async registers, they must have constant reset values.
show more ...
|
#
3c02ee8f |
| 25-Dec-2022 |
wakafa <[email protected]> |
Separate Utility submodule from XiangShan (#1861)
* misc: add utility submodule
* misc: adjust to new utility framework
* bump utility: revert resetgen
* bump huancun
|
#
37225120 |
| 07-Dec-2022 |
sfencevma <[email protected]> |
Uncache: optimize write operation (#1844)
This commit adds an uncache write buffer to accelerate uncache write
For uncacheable address range, now we use atomic bit in PMA to indicate
uncache wri
Uncache: optimize write operation (#1844)
This commit adds an uncache write buffer to accelerate uncache write
For uncacheable address range, now we use atomic bit in PMA to indicate
uncache write in this range should not use uncache write buffer.
Note that XiangShan does not support atomic insts in uncacheable address range.
* uncache: optimize write operation
* pma: add atomic config
* uncache: assign hartId
* remove some pma atomic
* extend peripheral id width
Co-authored-by: Lyn <[email protected]>
show more ...
|
#
0fedb24c |
| 18-Nov-2022 |
William Wang <[email protected]> |
Fix atom inst pmp inplementation (#1813)
* atom: fix atom inst storeAccessFault gen logic
* atom, pmp: atom access !r addr should raise SAF
* atom: lr should raise load access fault
|
#
005e809b |
| 26-May-2022 |
Jiuyang Liu <[email protected]> |
fix for chipsalliance/chisel3#2496 (#1563)
|
#
9658ce50 |
| 25-Mar-2022 |
LinJiawei <[email protected]> |
Bump chisel to 3.5.0
|
#
ff1b5dbb |
| 23-Jan-2022 |
Lemover <[email protected]> |
pmp: fix bug of l locks cfg's modification (#1438)
|
#
5b7ef044 |
| 17-Dec-2021 |
Lemover <[email protected]> |
pmp: add static pmp check that stored in tlb entries (#1366)
* memblock: regnext ptw's resp
* pmp: timing optimization from tlb.sram.ppn to pmp, add static pmp check
long latency: tlb's sram m
pmp: add static pmp check that stored in tlb entries (#1366)
* memblock: regnext ptw's resp
* pmp: timing optimization from tlb.sram.ppn to pmp, add static pmp check
long latency: tlb's sram may be slow to gen ppn, ppn to pmp may be
long latency.
Solution: add static pmp check.
Fatal problem: pmp grain is smalled than TLB pages(4KB, 2MB, 1GB)
Solution: increase pmp'grain to 4K, for 4K entries, pre-check pmp and
store the result into tlb storage. For super pages, still dynamic check
that translation and check.
* pmp: change pmp grain to 4KB, change pma relative init config
* bump ready-to-run, update nemu so for pmp grain
* bump ready-to-run, update nemu so for pmp grain again
update pmp unit test. The old test assumes that pmp grain is less than 512bit.
show more ...
|
#
98c71602 |
| 06-Dec-2021 |
Jiawei Lin <[email protected]> |
Add pma checker for I/O device (#1300)
* SoC: add axi4spliter
* pmp: add apply method to reduce loc
* pma: add PMA used in axi4's spliter
* Fix package import
* pma: re-write tl-pma, put
Add pma checker for I/O device (#1300)
* SoC: add axi4spliter
* pmp: add apply method to reduce loc
* pma: add PMA used in axi4's spliter
* Fix package import
* pma: re-write tl-pma, put tl-pma into AXI4Spliter
* pma: add memory mapped pma
* soc: rm dma port, rm axi4spliter, mv mmpma out of spliter
* Remove unused files
* update dma pma check port at SimTop.scala; update pll lock defalt value to 1
Co-authored-by: ZhangZifei <[email protected]>
Co-authored-by: rvcoresjw <[email protected]>
show more ...
|
#
5cf62c1a |
| 11-Nov-2021 |
Lemover <[email protected]> |
tlb: timing optimization in 'genPPN', 'pmp check' and 'data out when nWays is 1' (#1210)
* tlb: timing optimization, when nWays is 1, divide hit and data(rm hitMux)
* pmp: add param to control leav
tlb: timing optimization in 'genPPN', 'pmp check' and 'data out when nWays is 1' (#1210)
* tlb: timing optimization, when nWays is 1, divide hit and data(rm hitMux)
* pmp: add param to control leave ParallelMux into next cycle, default n.
The whole pmp match logic seems too long and takes more than a half cycle. Add this param and set it default false.
* tlb: timing optimization, when level enable, move ppn gen to first cycle
* tlb: fix bug of saveLevel and add it to TLBParameters
show more ...
|
#
a15116bd |
| 02-Nov-2021 |
Lemover <[email protected]> |
pmp: timing optimization, from mux chain to ParallelPriorityMux (#1193)
* pmp: add sifive license for match and align logick, thanks rocket.
* pmp: change mux chain to ParallelPriorityMux
|
#
ca2f90a6 |
| 25-Oct-2021 |
Lemover <[email protected]> |
pma: add pmp-like pma, software can read and write (#1169)
remove the old hard-wired pma and turn to pmp-like csr registers. the pma config is writen in pma register.
1. pma are m-priv csr, so only
pma: add pmp-like pma, software can read and write (#1169)
remove the old hard-wired pma and turn to pmp-like csr registers. the pma config is writen in pma register.
1. pma are m-priv csr, so only m-mode csrrw can change pma
2. even in m-mode, pma should be always checked, no matter lock or not
3. so carefully write pma, make sure not to "suicide"
* pma: add pmp-like pma, just module/bundle added, not to circuit
use reserved 2 bits as atomic and cached
* pma: add pmp-like pma into pmp module
pma have two more attribute than pmp
1. atmoic;
2. c/cache, if false, go to mmio.
pma uses 16+4 machine-level custom ready write csr.
pma will always be checked even in m-mode.
* pma: remove the old MemMap in tlb, mmio arrives next cycle
* pma: ptw raise af when mmio
* pma: fix bug of match's zip with last entry
* pma: fix bug of pass reset signal through method's parameter
strange bug, want to reset, pass reset signal to a method, does not
work.
import chisel3.Module.reset, the method can access reset it's self.
* pma: move some method to trait and fix bug of pma_init value
* pma: fix bug of pma init value assign way
* tlb: fix stupid bug that pf.ld not & fault_valid
* loadunit: fix bug that uop is flushed, pmp's dcache kill failed also
* ifu: mmio access needs f2_valid now
* loadunit: if mmio and have sent fastUop, flush pipe when commit
* storeunit: stu->lsq at stage1 and re-in lsq at stage2 to update mmio
show more ...
|
#
b6982e83 |
| 11-Oct-2021 |
Lemover <[email protected]> |
pmp: add pmp support (#1092)
* [WIP] PMP: add pmp to tlb & csr(ptw part is not added)
* pmp: add pmp, unified
* pmp: add pmp, distributed but same cycle
* pmp: pmp resp next cycle
* [WIP
pmp: add pmp support (#1092)
* [WIP] PMP: add pmp to tlb & csr(ptw part is not added)
* pmp: add pmp, unified
* pmp: add pmp, distributed but same cycle
* pmp: pmp resp next cycle
* [WIP] PMP: add l2tlb missqueue pmp support
* pmp: add pmp to ptw and regnext pmp for frontend
* pmp: fix bug of napot-match
* pmp: fix bug of method aligned
* pmp: when write cfg, update mask
* pmp: fix bug of store af getting in store unit
* tlb: fix bug, add af check(access fault from ptw)
* tlb: af may have higher priority than pf when ptw has af
* ptw: fix bug of sending paddr to pmp and recv af
* ci: add pmp unit test
* pmp: change PMPPlatformGrain to 6 (512bits)
* pmp: fix bug of read_addr
* ci: re-add pmp unit test
* l2tlb: lazymodule couldn't use @chiselName
* l2tlb: fix bug of l2tlb missqueue duplicate req's logic
filt the duplicate req:
old: when enq, change enq state to different state
new: enq + mem.req.fire, more robust
* pmp: pmp checker now supports samecycle & regenable
show more ...
|