summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/google/snow/Makefile.inc4
-rw-r--r--src/mainboard/google/snow/bootblock.c20
-rw-r--r--src/mainboard/google/snow/romstage.c9
3 files changed, 14 insertions, 19 deletions
diff --git a/src/mainboard/google/snow/Makefile.inc b/src/mainboard/google/snow/Makefile.inc
index 04bf543d40..b56a1a42cf 100644
--- a/src/mainboard/google/snow/Makefile.inc
+++ b/src/mainboard/google/snow/Makefile.inc
@@ -17,10 +17,6 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
-# needed for system_clock_init()
-bootblock-y += mainboard.c
-bootblock-y += memory.c
-
romstage-y += mainboard.c
romstage-y += memory.c
romstage-y += romstage.c
diff --git a/src/mainboard/google/snow/bootblock.c b/src/mainboard/google/snow/bootblock.c
index 00e97c1674..9725af3dae 100644
--- a/src/mainboard/google/snow/bootblock.c
+++ b/src/mainboard/google/snow/bootblock.c
@@ -19,28 +19,20 @@
#include <types.h>
#include <arch/io.h>
-#include <device/i2c.h>
-#include <cpu/samsung/exynos5250/clk.h>
-#include <cpu/samsung/exynos5250/dmc.h>
-#include <cpu/samsung/exynos5250/periph.h>
-#include <cpu/samsung/exynos5250/clock_init.h>
-#include <src/cpu/samsung/exynos5250/power.h>
-#include <drivers/maxim/max77686/max77686.h>
+#include <cbfs.h>
+#include <uart.h>
#include <console/console.h>
+#include <cpu/samsung/exynos5250/periph.h>
+#include <cpu/samsung/exynos5250/pinmux.h>
#define I2C0_BASE 0x12c60000
void bootblock_mainboard_init(void);
void bootblock_mainboard_init(void)
{
- struct mem_timings *mem;
- struct arm_clk_ratios *arm_ratios;
-
- mem = get_mem_timings();
- arm_ratios = get_arm_clk_ratios();
- system_clock_init(mem, arm_ratios);
+#if CONFIG_EARLY_CONSOLE
exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE);
-
console_init();
printk(BIOS_INFO, "\n\n\n%s: UART initialized\n", __func__);
+#endif
}
diff --git a/src/mainboard/google/snow/romstage.c b/src/mainboard/google/snow/romstage.c
index b8e5116b22..c0bb6f4be0 100644
--- a/src/mainboard/google/snow/romstage.c
+++ b/src/mainboard/google/snow/romstage.c
@@ -26,6 +26,7 @@
#include <cpu/samsung/exynos5250/dmc.h>
#include <cpu/samsung/exynos5250/setup.h>
+#include <cpu/samsung/exynos5250/clock_init.h>
#include <console/console.h>
#include <arch/stages.h>
@@ -48,13 +49,19 @@ static int board_wakeup_permitted(void)
void main(void)
{
struct mem_timings *mem;
+ struct arm_clk_ratios *arm_ratios;
int ret;
void *entry;
+ /* Clock must be initialized before console_init, otherwise you may need
+ * to re-initialize serial console drivers again. */
+ mem = get_mem_timings();
+ arm_ratios = get_arm_clk_ratios();
+ system_clock_init(mem, arm_ratios);
+
console_init();
printk(BIOS_INFO, "hello from romstage\n");
- mem = get_mem_timings();
if (!mem) {
printk(BIOS_CRIT, "Unable to auto-detect memory timings\n");
while(1);