History log of /XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala (Results 1 – 25 of 44)
Revision Date Author Comments
# 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 ...


# 6c106319 30-Dec-2024 xu_zh <[email protected]>

feat(ICache): ECC error injection (#4044)

This PR is part of *RAS(Reliability, Accessibility, Serviceability)* error recovery features.

- Add a series of mmio-mapped CSR to control ICache ECC check

feat(ICache): ECC error injection (#4044)

This PR is part of *RAS(Reliability, Accessibility, Serviceability)* error recovery features.

- Add a series of mmio-mapped CSR to control ICache ECC check & ECC inject features
- Implement ICache ECC injection
- M-state software can write `eccctrl` to trigger error injection to meta/dataArray, next read can trigger auto-recovery (implemented in #3899)
- Remove custom CSR `Sfetchctl`

# Details
## CSR
The base address of the added mmio-mapped CSR is `0x38022080` and the registers is defined as below:
```
64 10 7 4 2 1 0
0x00 eccctrl | WARL | ierror | istatus | itarget | inject | enable |

64 PAddrBits-1 0
0x08 ecciaddr | WARL | paddr |
```
| CSR | field | desp |
| --- | --- | --- |
| eccctrl | enable | ECC check enable |
| eccctrl | inject | ECC inject enable (write 1 to trigger injection, read always 0) |
| eccctrl | itarget | ECC inject target<br>0: metaArray<br>1: rsvd<br>2: dataArray<br>3: rsvd |
| eccctrl | istatus | ECC inject status (read-only)<br>0: idle: inject controller idle, goes to working when received a inject request (i.e. write 1 to eccctrl.inject)<br>1: working: inject controller working, goes to injected when finished / error when failed<br>2: injected, goes to idle after read<br>3: rsvd<br>4: rsvd<br>5: rsvd<br>6: rsvd<br>7: error: inject failed (check eccctl.ierror for reason), goes to idle after read |
| eccctrl | ierror | ECC error reason (read-only, valid only if `eccctrl.istatus==error`)<br>0: ECC check is not enabled (i.e. `!eccctrl.enable`)<br>1: inject target invalid (i.e. `eccctrl.itarget==rsvd`)<br>2: inject addr (i.e. `ecciaddr.paddr`) not in ICache<br>3: rsvd<br>4: rsvd<br>5: rsvd<br>6: rsvd<br>7: rsvd |
| ecciaddr | paddr | Physical address of the inject target |

## Inject method
```asm
$INJECT_ADDR:
# maybe do something else
ret

test:
la t0, $BASE_ADDR # load icache control base addr
la t1, $INJECT_ADDR # load inject addr
jalr ra, 0(t1) # jump to injected addr to load it i
sd t1, 8(t0) # set inject addr
la t2, (target << 2 | 1 << 1 | 1 << 0) # load inject target & inject enable & ecc enable
sd t1, 0(t0) # set inject enable & ecc enable
loop:
ld t1, 0(t0) # get ecc control state
andi t1, t1, (0b11 << (4+1)) # get high bits of inject state
beqz t1, loop # if is idle, or working, loop

addi t1, t1, -1 # t1 = inject_state[2:1] - 1
bnez t1, error # if is not injected, error or rsvd

jalr ra, 0(t1) # jump to injected addr to trigger error
j finish

error:
# handle error
finish:
# finish
```
Or, checkout https://github.com/OpenXiangShan/nexus-am/pull/48

show more ...


# a9becb0d 01-Sep-2024 Junxiong Ji <[email protected]>

accelerate read only csrr by pipelining


# c2a2229d 05-Sep-2024 lewislzh <[email protected]>

feat(riscv64): support RISC-V Smrnmi extension (#3480)


# a7a6d0a6 23-May-2024 chengguanghui <[email protected]>

NewCSR: Refactor CSR about Debug

* add CSR: trigger csr & debug csr

* add CSR event: TrapEntryDEvent & DretEvent

* fixed trigger's comparison func between Consecutive pc and tdada2


# 039cdc35 08-Mar-2024 Xuan Hu <[email protected]>

NewCSR: modulized implementation

NewCSR: add Hypervisor CSRs

NewCSR: optimize dump fields using chisel3.reflect.DataMirror

NewCSR: add VirtualSupervisor CSRs

NewCSR: refactor VirtualSupervisor an

NewCSR: modulized implementation

NewCSR: add Hypervisor CSRs

NewCSR: optimize dump fields using chisel3.reflect.DataMirror

NewCSR: add VirtualSupervisor CSRs

NewCSR: refactor VirtualSupervisor and Hypervisor CSRs

* Make sure ValidIO etc function return CSREnumType not EnumType
* TODO: AIA for vs

NewCSR: add MachineLevel CSRs

NewCSR: fix alias relationship between hip, hvip and vsip

NewCSR: add SupervisorLevel CSRs

show more ...


# 006b878b 15-May-2024 ceba <[email protected]>

CSR: remove useless sdsid custom-CSR (#2980)

Custom-CSR sdsid is a legacy from labeled XiangShan, which is no longer
in use. Remove this Custom-CSR.

This patch fixes OpenXiangShan/NEMU#329


# e25e4d90 11-Apr-2024 Xuan Hu <[email protected]>

Merge remote-tracking branch 'upstream/master' into tmp-master

TODO: add gpaddr data path from frontend to backend


# a1d4b4bf 27-Oct-2023 peixiaokun <[email protected]>

CSR: modify the write logic of satp, vsatp and hgatp; PageCache: fix some bugs about sfence


# d61cd5ee 06-Sep-2023 peixiaokun <[email protected]>

RVH: fix some syntax problems


# d0de7e4a 26-Aug-2023 peixiaokun <[email protected]>

RVH: finish the desigh of H extention


# 0ffeff0d 07-Apr-2024 Xuan Hu <[email protected]>

Merge remote-tracking branch 'upstream/master' into tmp-master


# 5b0f0029 30-Mar-2024 Xuan Hu <[email protected]>

CSR: Correct the behavior of `ebreak` when hart not in debug mode

* `ebreak` instruction will raise breakpoint exception when hart not in debug mode.
* Use the signals renamed with "has*" to specify

CSR: Correct the behavior of `ebreak` when hart not in debug mode

* `ebreak` instruction will raise breakpoint exception when hart not in debug mode.
* Use the signals renamed with "has*" to specify the traps(exceptions/interrupts) are to be handled which were transported from ROB, while the signals renamed with "raise*" are being transported to ROB.

This commit is cherry-pick from nanhu and new-backend.

show more ...


# 6ade72d9 29-Mar-2024 xuzefan <[email protected]>

CSR: add menvcfg and senvcfg CSR without function

The CSRs menvcfg and senvcfg are required by ISA and openSBI. To run openSBI, we merely include them without any functionality. The functionality ar

CSR: add menvcfg and senvcfg CSR without function

The CSRs menvcfg and senvcfg are required by ISA and openSBI. To run openSBI, we merely include them without any functionality. The functionality around these should be added in the feature.

show more ...


# 8241cb85 17-Dec-2023 Xuan Hu <[email protected]>

Merge remote-tracking branch 'upstream/master' into backendq


# f7af4c74 17-Nov-2023 chengguanghui <[email protected]>

Debug Module: cherry-pick debug module from nanhu


# 43171c7a 15-Nov-2023 wakafa <[email protected]>

csr: fix interrupt priority (#2480)


# c157cf71 21-Oct-2023 Guokai Chen <[email protected]>

ICache: fix ICache ECC function (#2401)


# b6c99e8e 29-Dec-2022 ZhangZifei <[email protected]>

Merge remote-tracking branch 'origin/master' into rf-after-issue


# 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


# 0ba52110 08-Dec-2022 Ziyue Zhang <[email protected]>

CSR: support vcsr


# ecccf78f 29-Dec-2021 Jay <[email protected]>

ICache: add parity check enable and prefetch enable control registers (#1406)

* Add Prefetch and Parity enable register for ICache

* Add ICache parity enable control for pipe


# 705cbec3 08-Dec-2021 Lemover <[email protected]>

csr: add write mask to satp.ppn & xstatus.xs (#1323)

* csr.satp: add r/w mask of ppn part

* ci: add unit test, satp should concern PADDRBITS

* csr.xstatus: XS field is ready-only

* bump rea

csr: add write mask to satp.ppn & xstatus.xs (#1323)

* csr.satp: add r/w mask of ppn part

* ci: add unit test, satp should concern PADDRBITS

* csr.xstatus: XS field is ready-only

* bump ready-to-run

* bump ready-to-run, update nemu so

* fix typo

show more ...


# 7d9edc86 06-Dec-2021 Lemover <[email protected]>

Updated to priv 1.12 (#1301)

* csr: clear mstatus.mprv when mstatus.mpp != ModeM at xret

* csr: add mconfigptr, but hardwire to 0 now

* csr: add *BE to mstatusStruct which are hardwired to 0

Updated to priv 1.12 (#1301)

* csr: clear mstatus.mprv when mstatus.mpp != ModeM at xret

* csr: add mconfigptr, but hardwire to 0 now

* csr: add *BE to mstatusStruct which are hardwired to 0

* csr: fix bug of xret clear mprv

* ci: add unit test, xret clear mstatus.mprv when xpp is not M

* bump ready-to-run

show more ...


12