
--- arch/i386/lib/board.c | 68 +++++++++++++++++++++--------------------------- 1 files changed, 30 insertions(+), 38 deletions(-)
diff --git a/arch/i386/lib/board.c b/arch/i386/lib/board.c index 35d7afd..6888d53 100644 --- a/arch/i386/lib/board.c +++ b/arch/i386/lib/board.c @@ -156,7 +156,29 @@ static void display_flash_config (ulong size) */ typedef int (init_fnc_t) (void);
-init_fnc_t *init_sequence[] = { +int dram_init_f(void); +static int calculate_relocation_address(void); +static int copy_uboot_to_ram(void); +static int clear_bss(void); +static int do_elf_reloc_fixups(void); + +init_fnc_t *init_sequence_f[] = { + cpu_init_f, + board_early_init_f, + env_init, + init_baudrate, + serial_init, + console_init_f, + dram_init_f, + calculate_relocation_address, + copy_uboot_to_ram, + clear_bss, + do_elf_reloc_fixups, + + NULL, +}; + +init_fnc_t *init_sequence_r[] = { cpu_init_r, /* basic cpu dependent setup */ board_early_init_r, /* basic board dependent setup */ dram_init, /* configure available RAM banks */ @@ -170,8 +192,6 @@ init_fnc_t *init_sequence[] = {
gd_t *gd;
-int dram_init_f(void); - static int calculate_relocation_address(void) { void *text_start = &__text_start; @@ -237,41 +257,13 @@ static int do_elf_reloc_fixups(void) */ void board_init_f (ulong boot_flags) { - /* First stage CPU initialization */ - if (cpu_init_f() != 0) - hang(); - - /* First stage Board initialization */ - if (board_early_init_f() != 0) - hang(); - - if (env_init() != 0) - hang(); - - if (init_baudrate() != 0) - hang(); - - if (serial_init() != 0) - hang(); - - if (console_init_f() != 0) - hang(); - - if (dram_init_f() != 0) - hang(); - - if (calculate_relocation_address() != 0) - hang(); - - /* Copy U-Boot into RAM */ - if (copy_uboot_to_ram() != 0) - hang(); - - if (clear_bss() != 0) - hang(); + init_fnc_t **init_fnc_ptr;
- if (do_elf_reloc_fixups() != 0) - hang(); + for (init_fnc_ptr = init_sequence_f; *init_fnc_ptr; ++init_fnc_ptr) { + if ((*init_fnc_ptr)() != 0) { + hang (); + } + }
gd->flags |= GD_FLG_RELOC;
@@ -309,7 +301,7 @@ void board_init_r(gd_t *id, ulong dest_addr) mem_malloc_init((((ulong)dest_addr - CONFIG_SYS_MALLOC_LEN)+3)&~3, CONFIG_SYS_MALLOC_LEN);
- for (init_fnc_ptr = init_sequence, i=0; *init_fnc_ptr; ++init_fnc_ptr, i++) { + for (init_fnc_ptr = init_sequence_r, i=0; *init_fnc_ptr; ++init_fnc_ptr, i++) { show_boot_progress(0xa130|i);
if ((*init_fnc_ptr)() != 0) { -- 1.7.1.422.g049e9