x86: Defer setup of final stack
diff --git a/arch/i386/lib/board.c b/arch/i386/lib/board.c
index d716232..60fa982 100644
--- a/arch/i386/lib/board.c
+++ b/arch/i386/lib/board.c
@@ -189,6 +189,7 @@
 	ulong *src_addr;
 	ulong *end_addr;
 
+	void *addr_sp;
 	void *dest_addr;
 	ulong rel_offset;
 	Elf32_Rel *re_src;
@@ -198,6 +199,7 @@
 
 	/* Calculate destination RAM Address and relocation offset */
 	dest_addr = (void *)gd->ram_size;
+	addr_sp = dest_addr;
 	dest_addr -= CONFIG_SYS_STACK_SIZE;
 	dest_addr -= (bss_end - text_start);
 	rel_offset = text_start - dest_addr;
@@ -242,9 +244,9 @@
 	gd->flags |= GD_FLG_RELOC;
 
 	/* Enter the relocated U-Boot! */
-	(board_init_r - rel_offset)(gd, (ulong)dest_addr);
+	relocate_code((ulong)addr_sp, gd, (ulong)dest_addr);
 
-	/* NOTREACHED - board_init_f() does not return */
+	/* NOTREACHED - relocate_code() does not return */
 	while(1);
 }