[RFC PATCH v3 5/6] lib: sbi: sbi_init: call sbi_hart_init() earlier
Yu-Chien Peter Lin
peter.lin at sifive.com
Sun Nov 30 03:16:42 PST 2025
Move sbi_hart_init() earlier in the initialization
sequence, the function initializes reserved PMP regions
before platform-specific early initialization. This
allows platforms to call reserved_pmp_alloc() in their
early_init hooks.
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 bb449d49..88c2720e 100644
--- a/lib/sbi/sbi_init.c
+++ b/lib/sbi/sbi_init.c
@@ -262,11 +262,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();
@@ -421,11 +421,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.39.3
More information about the opensbi
mailing list