[PATCH v3 4/9] platform: generic: add nanscent_init to platform_override

Chao-ying Fu icebergfu at gmail.com
Thu Apr 10 15:45:30 PDT 2025


This allows generic platforms to override nascent_init.

Signed-off-by: Chao-ying Fu <cfu at mips.com>
---
 platform/generic/include/platform_override.h | 1 +
 platform/generic/platform.c                  | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/platform/generic/include/platform_override.h b/platform/generic/include/platform_override.h
index 946fb8f..8d63837 100644
--- a/platform/generic/include/platform_override.h
+++ b/platform/generic/include/platform_override.h
@@ -21,6 +21,7 @@ struct platform_override {
 	u64 (*tlbr_flush_limit)(const struct fdt_match *match);
 	u32 (*tlb_num_entries)(const struct fdt_match *match);
 	bool (*cold_boot_allowed)(u32 hartid, const struct fdt_match *match);
+	int (*nascent_init)(const struct fdt_match *match);
 	int (*early_init)(bool cold_boot, const void *fdt, const struct fdt_match *match);
 	int (*final_init)(bool cold_boot, void *fdt, const struct fdt_match *match);
 	void (*early_exit)(const struct fdt_match *match);
diff --git a/platform/generic/platform.c b/platform/generic/platform.c
index b2f29e8..b7e744b 100644
--- a/platform/generic/platform.c
+++ b/platform/generic/platform.c
@@ -238,7 +238,11 @@ static int generic_nascent_init(void)
 {
 	if (platform_has_mlevel_imsic)
 		imsic_local_irqchip_init();
-	return 0;
+
+	if (!generic_plat || !generic_plat->nascent_init)
+		return 0;
+
+	return generic_plat->nascent_init(generic_plat_match);
 }
 
 static int generic_early_init(bool cold_boot)
-- 
2.47.1




More information about the opensbi mailing list