target/riscv: Add support to access ctrsource, ctrtarget, ctrdata regs.
authorRajnesh Kanwal <rkanwal@rivosinc.com>
Wed, 12 Feb 2025 10:18:49 +0000 (10:18 +0000)
committerAlistair Francis <alistair.francis@wdc.com>
Tue, 4 Mar 2025 05:42:54 +0000 (15:42 +1000)
commit8b65852196650417532ff924c8a2cb0117e2be19
tree1bdca070f1da1d4c6e5481f2b8e66d4f1e947faf
parentcb0c4760263d418ea47afa9e6d88944e96e128f1
target/riscv: Add support to access ctrsource, ctrtarget, ctrdata regs.

CTR entries are accessed using ctrsource, ctrtarget and ctrdata
registers using smcsrind/sscsrind extension. This commits extends
the csrind extension to support CTR registers.

ctrsource is accessible through xireg CSR, ctrtarget is accessible
through xireg1 and ctrdata is accessible through xireg2 CSR.

CTR supports maximum depth of 256 entries which are accessed using
xiselect range 0x200 to 0x2ff.

This commits also adds properties to enable CTR extension. CTR can be
enabled using smctr=true and ssctr=true now.

Signed-off-by: Rajnesh Kanwal <rkanwal@rivosinc.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20250212-b4-ctr_upstream_v6-v7-1-4e8159ea33bf@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
target/riscv/cpu.c
target/riscv/csr.c
target/riscv/tcg/tcg-cpu.c