diff options
author | David Hendricks <dhendrix@chromium.org> | 2013-01-10 15:05:22 -0800 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2013-01-11 01:45:12 +0100 |
commit | eb5e252ce16acd80e5374a351d49e9d90cfed982 (patch) | |
tree | cf51e25bfb1270bdb1928903df0fc9daac564214 /src/cpu | |
parent | b9fb213f85b9a6c76253c21504c6bfe838670de7 (diff) | |
download | coreboot-eb5e252ce16acd80e5374a351d49e9d90cfed982.tar.xz |
exynos5250: Hacked up lowlevel_init_c
This is the first lowlevel init routine that gets called in romstage.
It's fugly and needs a lot of clean-up, but does the job for now.
Change-Id: Id54bf4f1c3753bcbed5f6b5eeb4b48bc3b41ce93
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/2133
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/samsung/exynos5250/lowlevel_init_c.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/cpu/samsung/exynos5250/lowlevel_init_c.c b/src/cpu/samsung/exynos5250/lowlevel_init_c.c index 2215fb7a95..848ebee4a8 100644 --- a/src/cpu/samsung/exynos5250/lowlevel_init_c.c +++ b/src/cpu/samsung/exynos5250/lowlevel_init_c.c @@ -36,6 +36,7 @@ #include <cpu/samsung/exynos5250/tzpc.h> #include "setup.h" +#include <console/console.h> void do_barriers(void); /* FIXME: make gcc shut up about "no previous prototype" */ @@ -70,14 +71,15 @@ enum { int lowlevel_init_subsystems(void) { - uint32_t reset_status; +// uint32_t reset_status; int actions = 0; - do_barriers(); +// do_barriers(); /* Setup cpu info which is needed to select correct register offsets */ cpu_info_init(); +#if 0 reset_status = power_read_reset_status(); switch (reset_status) { @@ -91,24 +93,28 @@ int lowlevel_init_subsystems(void) /* This is a normal boot (not a wake from sleep) */ actions = DO_UART | DO_CLOCKS | DO_POWER; } +#endif + actions = DO_UART | DO_CLOCKS | DO_POWER; if (actions & DO_POWER) power_init(); if (actions & DO_CLOCKS) system_clock_init(); if (actions & DO_UART) { + /* Set up serial UART so we can printf() */ -// exynos_pinmux_config(EXYNOS_UART, PINMUX_FLAG_NONE); /* FIXME(dhendrix): add a function for mapping CONFIG_CONSOLE_SERIAL_UART_ADDRESS to PERIPH_ID_UARTn */ +// exynos_pinmux_config(EXYNOS_UART, PINMUX_FLAG_NONE); exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE); - /* FIXME(dhendrix): serial_init() does not seem to - actually do anything !?!? */ -// serial_init(); - init_timer(); /* FIXME(dhendrix): was timer_init() */ + + console_init(); + while (1) { + console_tx_byte('C'); + } } + init_timer(); /* FIXME(dhendrix): was timer_init() */ -/* FIXME(dhendrix): place this somewhere for ramstage... */ #if 0 if (actions & DO_CLOCKS) { mem_ctrl_init(); @@ -116,5 +122,6 @@ int lowlevel_init_subsystems(void) } #endif - return actions & DO_WAKEUP; +// return actions & DO_WAKEUP; + return 0; } |