summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTANG Tiancheng <tangtiancheng.ttc@alibaba-inc.com>2024-09-19 13:50:42 +0800
committerAlistair Francis <alistair.francis@wdc.com>2024-10-30 11:22:07 +1000
commitefd29e3398001c764fc9f0066ba1589e6ebc1043 (patch)
tree7fdd01831f8070cad289653bc034490327ccfc4c
parent658384884adc6379dbaf09e11a1f1f74ba46c772 (diff)
downloadfocaccia-qemu-efd29e3398001c764fc9f0066ba1589e6ebc1043.tar.gz
focaccia-qemu-efd29e3398001c764fc9f0066ba1589e6ebc1043.zip
target/riscv: Adjust PMP size for no-MMU RV64 QEMU running RV32
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>
-rw-r--r--target/riscv/pmp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c
index 9eea397e72..5e74b7220f 100644
--- a/target/riscv/pmp.c
+++ b/target/riscv/pmp.c
@@ -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;