aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/lib
diff options
context:
space:
mode:
authorGraeme Russ2011-12-27 22:46:42 +1100
committerGraeme Russ2012-01-04 22:25:53 +1100
commit98f1fa9fd4f468c67b5f4d16077898992d6bae0b (patch)
treed788d10fc755106b436d5e14595e4cb75af19d59 /arch/x86/lib
parentd653244b12dbc4a954e1bdfd04222bbbaf67329c (diff)
x86: Allow cache before copy to RAM
-- Changes for v2: - None
Diffstat (limited to 'arch/x86/lib')
-rw-r--r--arch/x86/lib/board.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/x86/lib/board.c b/arch/x86/lib/board.c
index 56acf356370..a240d261716 100644
--- a/arch/x86/lib/board.c
+++ b/arch/x86/lib/board.c
@@ -131,16 +131,11 @@ init_fnc_t *init_sequence_f[] = {
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[] = {
- copy_gd_to_ram,
- init_cache,
cpu_init_r, /* basic cpu dependent setup */
board_early_init_r, /* basic board dependent setup */
dram_init, /* configure available RAM banks */
@@ -269,6 +264,16 @@ void board_init_f(ulong boot_flags)
void board_init_f_r(void)
{
+ if (copy_gd_to_ram() != 0)
+ hang();
+
+ if (init_cache() != 0)
+ hang();
+
+ copy_uboot_to_ram();
+ clear_bss();
+ do_elf_reloc_fixups();
+
/*
* Transfer execution from Flash to RAM by calculating the address
* of the in-RAM copy of board_init_r() and calling it