x86: Move ECC initialisation outside RAM initialisation

To allow for 'load anywhere' images, the %ebp return pointer 'hack' must
be removed, so we cannot have two 'calls' to get_mem_size
diff --git a/arch/i386/cpu/start.S b/arch/i386/cpu/start.S
index cb47ce7..819274f 100644
--- a/arch/i386/cpu/start.S
+++ b/arch/i386/cpu/start.S
@@ -93,6 +93,17 @@
 	jmp	get_mem_size
 get_mem_size_ret:
 
+#if CONFIG_SYS_SDRAM_ECC_ENABLE
+	/* Skip ECC initialization if not starting from cold-reset */
+	movl	%ebx, %ecx
+	andl	$GD_FLG_COLD_BOOT, %ecx
+	jz	init_ecc_ret
+	mov	$init_ecc_ret, %ebp
+	jmp	init_ecc
+
+init_ecc_ret:
+#endif
+
 	/* Check we have enough memory for stack */
 	movl	$CONFIG_SYS_STACK_SIZE, %ecx
 	cmpl	%ecx, %eax