x86: Adjust board_r.c for x86
authorSimon Glass <sjg@chromium.org>
Tue, 5 Mar 2013 14:39:53 +0000 (14:39 +0000)
committerTom Rini <trini@ti.com>
Fri, 15 Mar 2013 20:14:00 +0000 (16:14 -0400)
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>
common/board_r.c

index c57ae5c..63c6936 100644 (file)
@@ -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();