[PATCH] firmware: Do not allow harts with different XLEN to boot
Atish Patra
atish.patra at wdc.com
Tue Jun 1 18:42:01 PDT 2021
OpenSBI is built separately for RV32/RV64. Thus, it shouldn't try to boot
harts with a different XLEN compared to what it is compiled with.
This patch fixes the issue observed in beagleV which has two U74(RV64) and
one E24 (RV32) harts.
Signed-off-by: Atish Patra <atish.patra at wdc.com>
---
firmware/fw_base.S | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/firmware/fw_base.S b/firmware/fw_base.S
index a5ce946aa3fe..ae12a126ca66 100644
--- a/firmware/fw_base.S
+++ b/firmware/fw_base.S
@@ -47,6 +47,16 @@
.globl _start
.globl _start_warm
_start:
+ csrr t0, misa
+ slti t1, t0, 0
+ slli t1, t1, 1
+ slli t0, t0, 1
+ slti t0, t0, 0
+ add t2, t0, t1
+ li t3, __riscv_xlen
+ srli t3, t3, 5
+ bne t2, t3, _start_hang
+
/* Find preferred boot HART id */
MOV_3R s0, a0, s1, a1, s2, a2
call fw_boot_hart
--
2.31.1
More information about the opensbi
mailing list