]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
target/riscv: Fix size of mseccfg
authorAnton Johansson <anjo@rev.ng>
Wed, 20 May 2026 12:53:59 +0000 (14:53 +0200)
committerAlistair Francis <alistair.francis@wdc.com>
Mon, 15 Jun 2026 03:10:15 +0000 (13:10 +1000)
mseccfg is defined in version 20250508 of the privileged specification
to be 64 bits in size.  Update relevant function arguments.

Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20260520125406.28693-22-anjo@rev.ng>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
target/riscv/cpu.h
target/riscv/machine.c
target/riscv/pmp.c
target/riscv/pmp.h

index 45dc0393f985429abcb3e35820e3ff975fbbe5b6..8726929bd38ae839e326c34c42cf65c66aa56500 100644 (file)
@@ -465,7 +465,7 @@ struct CPUArchState {
 
     /* physical memory protection */
     pmp_table_t pmp_state;
-    target_ulong mseccfg;
+    uint64_t mseccfg;
 
     /* trigger module */
     uint16_t mcontext;
index 78ca607b4811c8e94a45304dc6f548873cbad4c9..dad45f10c39114336c8c1f5e461fa703fb4b3e51 100644 (file)
@@ -439,7 +439,7 @@ static const VMStateDescription vmstate_mseccfg = {
     .minimum_version_id = 1,
     .needed = mseccfg_needed,
     .fields = (const VMStateField[]) {
-        VMSTATE_UINTTL(env.mseccfg, RISCVCPU),
+        VMSTATE_UINT64(env.mseccfg, RISCVCPU),
         VMSTATE_END_OF_LIST()
     }
 };
index 58a8923d0ddcc686a864ce1273ecfc60dfc738d6..211f5b38625ffc3b44d1df3f3ddffddc27dfa78b 100644 (file)
@@ -667,7 +667,7 @@ target_ulong pmpaddr_csr_read(CPURISCVState *env, uint32_t addr_index)
 /*
  * Handle a write to a mseccfg CSR
  */
-void mseccfg_csr_write(CPURISCVState *env, target_ulong val)
+void mseccfg_csr_write(CPURISCVState *env, uint64_t val)
 {
     int i;
     uint64_t mask = MSECCFG_MMWP | MSECCFG_MML;
@@ -713,7 +713,7 @@ void mseccfg_csr_write(CPURISCVState *env, target_ulong val)
 /*
  * Handle a read from a mseccfg CSR
  */
-target_ulong mseccfg_csr_read(CPURISCVState *env)
+uint64_t mseccfg_csr_read(CPURISCVState *env)
 {
     trace_mseccfg_csr_read(env->mhartid, env->mseccfg);
     return env->mseccfg;
index 17307ef88af0273831e66d99ec5f4e4d49ab7e74..91130289d8e2945da40c53200a040e613130ba91 100644 (file)
@@ -71,8 +71,8 @@ void pmpcfg_csr_write(CPURISCVState *env, uint32_t reg_index,
                       target_ulong val);
 target_ulong pmpcfg_csr_read(CPURISCVState *env, uint32_t reg_index);
 
-void mseccfg_csr_write(CPURISCVState *env, target_ulong val);
-target_ulong mseccfg_csr_read(CPURISCVState *env);
+void mseccfg_csr_write(CPURISCVState *env, uint64_t val);
+uint64_t mseccfg_csr_read(CPURISCVState *env);
 
 void pmpaddr_csr_write(CPURISCVState *env, uint32_t addr_index,
                        target_ulong val);