summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadim Krčmář <[email protected]>2025-04-29 16:25:48 +0200
committerAnup Patel <[email protected]>2025-04-30 10:14:26 +0530
commitdac15cb91058f324df909dba4bfcb52f42ff9224 (patch)
tree86efee5228a8070b2e36349fd8a6919360836528
parent8c814b5c9b03aac0d6bb2366e3c8fbce132ca4d9 (diff)
lib: sbi_hart: reset mstateen0
The current logic clears some bits based on SBI known extensions. Be safe and do not leave enabled anything that SBI doesn't control. This is not a breaking change, because the register must be initialized to 0 by the ISA on reset, but it is better to not depend on it when we don't need to. Reviewed-by: Anup Patel <[email protected]> Signed-off-by: Radim Krčmář <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Anup Patel <[email protected]>
-rw-r--r--lib/sbi/sbi_hart.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
index fc37b249..c6a77949 100644
--- a/lib/sbi/sbi_hart.c
+++ b/lib/sbi/sbi_hart.c
@@ -89,7 +89,7 @@ static void mstatus_init(struct sbi_scratch *scratch)
csr_write(CSR_HSTATUS, 0);
if (sbi_hart_has_extension(scratch, SBI_HART_EXT_SMSTATEEN)) {
- mstateen_val = csr_read64(CSR_MSTATEEN0);
+ mstateen_val = 0;
mstateen_val |= SMSTATEEN_STATEN;
mstateen_val |= SMSTATEEN0_CONTEXT;
mstateen_val |= SMSTATEEN0_HSENVCFG;