summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/bootblock_common.h7
-rw-r--r--src/lib/bootblock.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/include/bootblock_common.h b/src/include/bootblock_common.h
index c8156d0236..2cecc3b645 100644
--- a/src/include/bootblock_common.h
+++ b/src/include/bootblock_common.h
@@ -18,9 +18,14 @@
#include <main_decl.h>
-/* These are defined as weak no-ops that can be overridden by mainboard/SoC. */
+/*
+ * These are defined as weak no-ops that can be overridden by mainboard/SoC.
+ * The 'early' variants are called prior to console initialization. Also, the
+ * SoC functions are called prior to the mainboard fucntions.
+ */
void bootblock_mainboard_early_init(void);
void bootblock_mainboard_init(void);
+void bootblock_soc_early_init(void);
void bootblock_soc_init(void);
#endif /* __BOOTBLOCK_COMMON_H */
diff --git a/src/lib/bootblock.c b/src/lib/bootblock.c
index 4a36a58f85..658eea45c9 100644
--- a/src/lib/bootblock.c
+++ b/src/lib/bootblock.c
@@ -25,6 +25,7 @@
DECLARE_OPTIONAL_REGION(timestamp);
__attribute__((weak)) void bootblock_mainboard_early_init(void) { /* no-op */ }
+__attribute__((weak)) void bootblock_soc_early_init(void) { /* do nothing */ }
__attribute__((weak)) void bootblock_soc_init(void) { /* do nothing */ }
__attribute__((weak)) void bootblock_mainboard_init(void) { /* do nothing */ }
@@ -36,6 +37,7 @@ void main(void)
if (IS_ENABLED(CONFIG_COLLECT_TIMESTAMPS) && _timestamp_size > 0)
timestamp_init(timestamp_get());
+ bootblock_soc_early_init();
bootblock_mainboard_early_init();
if (IS_ENABLED(CONFIG_BOOTBLOCK_CONSOLE)) {