History log of /XiangShan/src/main/scala/xiangshan/backend/fu/NewCSR/CSRCustom.scala (Results 1 – 14 of 14)
Revision Date Author Comments
# 881e32f5 22-Jan-2025 Zifei Zhang <[email protected]>

submodule(CoupledL2, OpenLLC): bump L2 and LLC (#4189)

This pull request includes:
- add compilation support for CHI Issue C (but not yet verified)
- enable DataCheck and Poison
- add requirement fo

submodule(CoupledL2, OpenLLC): bump L2 and LLC (#4189)

This pull request includes:
- add compilation support for CHI Issue C (but not yet verified)
- enable DataCheck and Poison
- add requirement for CHI port width check
- add prefetch control by custom csr
- optimize timing in CoupledL2, mainly paths from SRAM to ICG
- add clock gate to each of the splitted SRAMs in CoupledL2
- fix several bugs concerning WriteEvictOrEvict, SnpQuery,
SnpCleanShared, SnpStash*, etc

---------

Co-authored-by: zhanglinjuan <[email protected]>
Co-authored-by: Ma-YX <[email protected]>
Co-authored-by: Yanqin Li <[email protected]>

show more ...


# b7a63495 16-Jan-2025 NewPaulWalker <[email protected]>

feat(custom, csr): add two custom CSRs mcorepwr and mflushpwr to control power (#4164)

Co-authored-by: Zhu Yu <[email protected]>


# 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 ...


# 41d8d239 21-Aug-2024 happy-lx <[email protected]>

RVA23: Support Zicclsm & Zama16b (Handling Unaligned Load Store by Hardware) (#3320)

This PR supports handling load store unaligned exceptions by hardware
and provides CSR-controlled switches

--

RVA23: Support Zicclsm & Zama16b (Handling Unaligned Load Store by Hardware) (#3320)

This PR supports handling load store unaligned exceptions by hardware
and provides CSR-controlled switches

---------

Co-authored-by: xiaofeibao <[email protected]>

show more ...


# 94895e77 07-Jun-2024 Xuan Hu <[email protected]>

NewCSR: fix rdata when VS mode access VS CSRs by address of S mode


# 6306fe33 23-May-2024 Xuan Hu <[email protected]>

CSR: remove the enable bit for `svinval` extension

* Since `svinval` extension has been merged into the risc-v specification, there is no need to use custom config to disable it.


# 8aa89407 20-May-2024 Xuan Hu <[email protected]>

NewCSR: change the type of rdata to UInt in CSRModule

* Since the rdata bundle is used to get CSR read value, we change the type of rdata to UInt(64.W) and do all needed expansions before the value

NewCSR: change the type of rdata to UInt in CSRModule

* Since the rdata bundle is used to get CSR read value, we change the type of rdata to UInt(64.W) and do all needed expansions before the value assigned to rdata bundles.

show more ...


# a5ff509b 13-May-2024 Xuan Hu <[email protected]>

NewCSR: remove sdsid


# 8419d406 28-Apr-2024 Xuan Hu <[email protected]>

NewCSR: fix bundle connection


# 1a610887 25-Apr-2024 sinceforYy <[email protected]>

NewCSR: fix Debug and Custom CSR


# 4016eee8 23-Apr-2024 sinceforYy <[email protected]>

NewCSR: fix InterruptFilter and unprivileege, AIA, Custom CSRs

* fix mtopi, stopi, vstopi


# 01cdded8 22-Apr-2024 Xuan Hu <[email protected]>

NewCSR: fix unprivileged CSRs and permission check

* Add commit vstart
* Fix commit connection
* Fix permission check
* Fix mstatus.VS/FS initial with off
* Add fp/vec.off bundle to decode
* Flush w

NewCSR: fix unprivileged CSRs and permission check

* Add commit vstart
* Fix commit connection
* Fix permission check
* Fix mstatus.VS/FS initial with off
* Add fp/vec.off bundle to decode
* Flush when change vxrm
* Add more skip condition for mip and hip

show more ...


# 25dc4a82 22-Apr-2024 Xuan Hu <[email protected]>

NewCSR: add reset in CSR apply method


# 94c2cc17 18-Apr-2024 sinceforYy <[email protected]>

NewCSR: fix tlb IO bundle