riscv_csrrw_check() already does the generic privilege level check hence there is no need to do the specific M-mode access check in the mseccfg predicate().
With this change debugger can access the mseccfg CSR anytime. Signed-off-by: Bin Meng <bm...@tinylab.org> --- target/riscv/csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index c6a7745cb2..40aae9e7b3 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -450,7 +450,7 @@ static RISCVException pmp(CPURISCVState *env, int csrno) static RISCVException epmp(CPURISCVState *env, int csrno) { - if (env->priv == PRV_M && riscv_feature(env, RISCV_FEATURE_EPMP)) { + if (riscv_feature(env, RISCV_FEATURE_EPMP)) { return RISCV_EXCP_NONE; } -- 2.25.1