Add mainboard hook to bootblock

Change allows to override default bootblock_mainboard_init() with
mainboard-specific code.

If the default bootblock_mainboard_init() handler is replaced, with
one from file BOOTBLOCK_MAINBOARD_INIT, one needs to take care the
replacement calls all the necessary bootblock_x_init() functions.

Change-Id: Ie8c667cdba7cafe9ed2d4b19ab2bd21d941ad4ca
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/1845
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 9bfd368..5f46145 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -70,6 +70,9 @@
 	bool
 	default y
 
+config BOOTBLOCK_MAINBOARD_INIT
+	string
+
 config BOOTBLOCK_NORTHBRIDGE_INIT
 	string
 
diff --git a/src/arch/x86/include/bootblock_common.h b/src/arch/x86/include/bootblock_common.h
index bf325c4..c24b5b0 100644
--- a/src/arch/x86/include/bootblock_common.h
+++ b/src/arch/x86/include/bootblock_common.h
@@ -11,6 +11,9 @@
 #include CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT
 #endif
 
+#ifdef CONFIG_BOOTBLOCK_MAINBOARD_INIT
+#include CONFIG_BOOTBLOCK_MAINBOARD_INIT
+#else
 static void bootblock_mainboard_init(void)
 {
 #ifdef CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT
@@ -23,6 +26,7 @@
 	bootblock_cpu_init();
 #endif
 }
+#endif
 
 #if CONFIG_USE_OPTION_TABLE
 #include <pc80/mc146818rtc.h>