From 794986f87fb811ed0c5117fa7d3c84849e9b81d5 Mon Sep 17 00:00:00 2001 From: Anup Patel Date: Tue, 29 Mar 2022 19:55:23 +0530 Subject: [PATCH] lib: sbi: Enable Svpbmt extension in the menvcfg CSR The menvcfg.PBMTE bit is read-only zero when Svpbmt extension is not available so we try to enable menvcfg.PBMTE bit irrespective whether Svpbmt is available or not. Signed-off-by: Anup Patel Reviewed-by: Atish Patra Reviewed-by: Xiang W --- lib/sbi/sbi_hart.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index d2c7aba..6be9286 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -114,6 +114,16 @@ static void mstatus_init(struct sbi_scratch *scratch) */ menvcfg_val |= ENVCFG_CBIE_INV << ENVCFG_CBIE_SHIFT; + /* + * Set menvcfg.PBMTE == 1 for RV64 or RV128 + * + * If Svpbmt extension is not available then menvcfg.PBMTE + * will be read-only zero. + */ +#if __riscv_xlen > 32 + menvcfg_val |= ENVCFG_PBMTE; +#endif + csr_write(CSR_MENVCFG, menvcfg_val); } -- 2.7.4