summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-02-24 18:56:00 -0600
committerAaron Durbin <adurbin@chromium.org>2016-02-26 02:16:14 +0100
commitbe7cbdcc9df8028b129dd155400ae0fe8f236351 (patch)
tree8b0124e6a7bbd33f62a2cfe42880241ded45fcf8
parent0aa7d247ae2ca3ac8f9ae2a8dced478fa340c120 (diff)
downloadcoreboot-be7cbdcc9df8028b129dd155400ae0fe8f236351.tar.xz
lib/bootblock: provide SoC callback parity with mainboard
There was no 'early' call into the SoC code prior to console getting initialized. Not having this enforces the mainboard to drive the setup of the console which typically just ends up calling into the SoC code. Provide a SoC early init call to handle this without having to duplicate the same code in mainboards utilizing the same SoC. Change-Id: Ia233dc3ae89a77df284d6d5cf5b2b051ad3be089 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/13791 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) Reviewed-by: Andrey Petrov <andrey.petrov@intel.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-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)) {