[RFC PATCH 2/3] lib: sbi_init: Call hart init before platform early init
Yu-Chien Peter Lin
peter.lin at sifive.com
Mon Feb 23 19:17:32 PST 2026
To allow the platform early_init hook to use the
sbi_hart_has_extension() helper, reorder the
initialization sequence to call sbi_hart_init()
prior to sbi_platform_early_init() during both
cold and warm boot paths.
Reviewed-by: Greentime Hu <greentime.hu at sifive.com>
Reviewed-by: Zong Li <zong.li at sifive.com>
Signed-off-by: Yu-Chien Peter Lin <peter.lin at sifive.com>
---
lib/sbi/sbi_init.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c
index 5259064b1..aed2b96f8 100644
--- a/lib/sbi/sbi_init.c
+++ b/lib/sbi/sbi_init.c
@@ -265,11 +265,11 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid)
*/
wake_coldboot_harts(scratch);
- rc = sbi_platform_early_init(plat, true);
+ rc = sbi_hart_init(scratch, true);
if (rc)
sbi_hart_hang();
- rc = sbi_hart_init(scratch, true);
+ rc = sbi_platform_early_init(plat, true);
if (rc)
sbi_hart_hang();
@@ -424,11 +424,11 @@ static void __noreturn init_warm_startup(struct sbi_scratch *scratch,
if (rc)
sbi_hart_hang();
- rc = sbi_platform_early_init(plat, false);
+ rc = sbi_hart_init(scratch, false);
if (rc)
sbi_hart_hang();
- rc = sbi_hart_init(scratch, false);
+ rc = sbi_platform_early_init(plat, false);
if (rc)
sbi_hart_hang();
--
2.43.7
More information about the opensbi
mailing list