target/riscv: Restrict mideleg/medeleg/medelegh access to S-mode harts
RISC-V Privileged Spec states: "In harts with S-mode, the medeleg and mideleg registers must exist, and setting a bit in medeleg or mideleg will delegate the corresponding trap , when occurring in S-mode or U-mode, to the S-mode trap handler. In harts without S-mode, the medeleg and mideleg registers should not exist." Add smode predicate to ensure these CSRs are only accessible when S-mode is supported. Reviewed-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Jay Chang <jay.chang@sifive.com> Reviewed-by: Nutty Liu<liujingqi@lanxincomputing.com> Message-ID: <20250701030021.99218-2-jay.chang@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
30ef718423
commit
e443ba0336
1 changed files with 3 additions and 3 deletions
|
|
@ -5862,8 +5862,8 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = {
|
|||
NULL, read_mstatus_i128 },
|
||||
[CSR_MISA] = { "misa", any, read_misa, write_misa,
|
||||
NULL, read_misa_i128 },
|
||||
[CSR_MIDELEG] = { "mideleg", any, NULL, NULL, rmw_mideleg },
|
||||
[CSR_MEDELEG] = { "medeleg", any, read_medeleg, write_medeleg },
|
||||
[CSR_MIDELEG] = { "mideleg", smode, NULL, NULL, rmw_mideleg },
|
||||
[CSR_MEDELEG] = { "medeleg", smode, read_medeleg, write_medeleg },
|
||||
[CSR_MIE] = { "mie", any, NULL, NULL, rmw_mie },
|
||||
[CSR_MTVEC] = { "mtvec", any, read_mtvec, write_mtvec },
|
||||
[CSR_MCOUNTEREN] = { "mcounteren", umode, read_mcounteren,
|
||||
|
|
@ -5871,7 +5871,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = {
|
|||
|
||||
[CSR_MSTATUSH] = { "mstatush", any32, read_mstatush,
|
||||
write_mstatush },
|
||||
[CSR_MEDELEGH] = { "medelegh", any32, read_zero, write_ignore,
|
||||
[CSR_MEDELEGH] = { "medelegh", smode32, read_zero, write_ignore,
|
||||
.min_priv_ver = PRIV_VERSION_1_13_0 },
|
||||
[CSR_HEDELEGH] = { "hedelegh", hmode32, read_hedelegh, write_hedelegh,
|
||||
.min_priv_ver = PRIV_VERSION_1_13_0 },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue