summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2013-03-05 14:39:53 +0000
committerTom Rini <trini@ti.com>2013-03-15 16:14:00 -0400
commitbe274b99abd5d8ef3b57aa16a3443b0950002c94 (patch)
tree85b03a03756f82dc21194b0ef603cf5e923a5ad0
parent48a3380675f4759fd63609d03f5cffc33274f96b (diff)
downloadu-boot-be274b99abd5d8ef3b57aa16a3443b0950002c94.tar.gz
u-boot-be274b99abd5d8ef3b57aa16a3443b0950002c94.tar.bz2
u-boot-be274b99abd5d8ef3b57aa16a3443b0950002c94.zip
x86: Adjust board_r.c for x86
For x86 the global_data is managed entirely by the start.S code so we do not need to touch it. However, we do have some more initcalls to add. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--common/board_r.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/common/board_r.c b/common/board_r.c
index c57ae5cace..63c69365b1 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -63,6 +63,9 @@
#include <asm/mmu.h>
#endif
#include <asm/sections.h>
+#ifdef CONFIG_X86
+#include <asm/init_helpers.h>
+#endif
#include <linux/compiler.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -717,6 +720,9 @@ init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_CLOCKS
set_cpu_clk_info, /* Setup clock information */
#endif
+#ifdef CONFIG_X86
+ init_bd_struct_r,
+#endif
initr_reloc_global_data,
initr_serial,
initr_announce,
@@ -764,11 +770,16 @@ init_fnc_t init_sequence_r[] = {
initr_flash,
#endif
INIT_FUNC_WATCHDOG_RESET
-#ifdef CONFIG_PPC
+#if defined(CONFIG_PPC) || defined(CONFIG_X86)
/* initialize higher level parts of CPU like time base and timers */
cpu_init_r,
+#endif
+#ifdef CONFIG_PPC
initr_spi,
#endif
+#if defined(CONFIG_X86) && defined(CONFIG_SPI)
+ init_func_spi,
+#endif
#ifdef CONFIG_CMD_NAND
initr_nand,
#endif
@@ -822,10 +833,16 @@ init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_CMD_KGDB
initr_kgdb,
#endif
+#ifdef CONFIG_X86
+ board_early_init_r,
+#endif
interrupt_init,
-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_x86)
initr_enable_interrupts,
#endif
+#ifdef CONFIG_X86
+ timer_init, /* initialize timer */
+#endif
#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
initr_status_led,
#endif
@@ -887,7 +904,9 @@ init_fnc_t init_sequence_r[] = {
void board_init_r(gd_t *new_gd, ulong dest_addr)
{
+#ifndef CONFIG_X86
gd = new_gd;
+#endif
if (initcall_run_list(init_sequence_r))
hang();