From e1a5b737ef1eab8b7ada2f091548355949341315 Mon Sep 17 00:00:00 2001 From: Sören Tempel <tempel@uni-bremen.de> Date: Sun, 8 Mar 2020 10:35:32 +0530 Subject: platform: sifive: fu540: allow sv32 as an mmu-type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There has already been a commit to master which added 32-bit specific fdt/payload addresses for the sifive/fu540 platform [0]. This commit introduces another change for using sifive/fu540 as a 32-bit platform. On 32-bit platforms, cores with the SV32 MMU type should not be disabled. For this reason, this commit also allows using this MMU type on the sifive/fu540 platform. Alternatively it would also be possible to only allow SV39 and SV48 if `__riscv_xlen == 64` and SV32 if `__riscv_xlen == 32`. Removing the check entirely would also be an option. [0]: 66fb729a1e46a9a46e809f3b7867fef91477e494 Signed-off-by: Sören Tempel <tempel@uni-bremen.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> --- platform/sifive/fu540/platform.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'platform') diff --git a/platform/sifive/fu540/platform.c b/platform/sifive/fu540/platform.c index 48bcf54..5f3d3ce 100644 --- a/platform/sifive/fu540/platform.c +++ b/platform/sifive/fu540/platform.c @@ -75,7 +75,8 @@ static void fu540_modify_dt(void *fdt) sbi_sprintf(cpu_node, "/cpus/cpu@%d", i); cpu_offset = fdt_path_offset(fdt, cpu_node); mmu_type = fdt_getprop(fdt, cpu_offset, "mmu-type", NULL); - if (mmu_type && (!strcmp(mmu_type, "riscv,sv39") || + if (mmu_type && (!strcmp(mmu_type, "riscv,sv32") || + !strcmp(mmu_type, "riscv,sv39") || !strcmp(mmu_type, "riscv,sv48"))) continue; else -- cgit v1.2.3