From: Anup Patel Date: Sun, 10 May 2020 05:43:00 +0000 (+0530) Subject: lib: sbi: detect features before everything else in sbi_hart_init() X-Git-Tag: v1.3~716 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=28b40528499755ec19a6f8a06dc47e65619fb96c;p=platform%2Fkernel%2Fopensbi-spacemit.git lib: sbi: detect features before everything else in sbi_hart_init() We should detect HART features in sbi_hart_init() before mstatus_init(), delegate_traps() and pmp_init(). Signed-off-by: Anup Patel Reviewed-by: Atish Patra --- diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 28cfeaa..2a284fd 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -247,7 +247,7 @@ static inline char *sbi_hart_feature_id2string(unsigned long feature) fstr = "pmp"; break; case SBI_HART_HAS_SCOUNTEREN: - fstr = "scountern"; + fstr = "scounteren"; break; case SBI_HART_HAS_MCOUNTEREN: fstr = "mcounteren"; @@ -371,8 +371,10 @@ int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot) if (!hart_features_offset) return SBI_ENOMEM; } + hart_features = sbi_scratch_offset_ptr(scratch, hart_features_offset); *hart_features = 0; + sbi_hart_detect_features(hartid); mstatus_init(scratch, hartid); @@ -384,8 +386,6 @@ int sbi_hart_init(struct sbi_scratch *scratch, u32 hartid, bool cold_boot) if (rc) return rc; - sbi_hart_detect_features(hartid); - return pmp_init(scratch, hartid); }