]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
target/riscv: Adjust PMP size for no-MMU RV64 QEMU running RV32
authorTANG Tiancheng <tangtiancheng.ttc@alibaba-inc.com>
Thu, 19 Sep 2024 05:50:42 +0000 (13:50 +0800)
committerAlistair Francis <alistair.francis@wdc.com>
Wed, 30 Oct 2024 01:22:07 +0000 (11:22 +1000)
Ensure pmp_size is correctly determined using mxl for RV32
in RV64 QEMU.

Signed-off-by: TANG Tiancheng <tangtiancheng.ttc@alibaba-inc.com>
Reviewed-by: Liu Zhiwei <zhiwei_liu@linux.alibaba.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20240919055048.562-3-zhiwei_liu@linux.alibaba.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
target/riscv/pmp.c

index 9eea397e72c6cc7a9347014195be5a7b6295f6d1..5e74b7220f39a07680f079f443d8bec7e412fdae 100644 (file)
@@ -326,7 +326,7 @@ bool pmp_hart_has_privs(CPURISCVState *env, hwaddr addr,
              */
             pmp_size = -(addr | TARGET_PAGE_MASK);
         } else {
-            pmp_size = sizeof(target_ulong);
+            pmp_size = 2 << riscv_cpu_mxl(env);
         }
     } else {
         pmp_size = size;