}
 #endif
 
+#ifdef CONFIG_SKIP_RELOCATE_UBOOT
+/*
+ * This routine sets the relocation done flag, because even if
+ * relocation is skipped, the flag is used by other generic code.
+ */
+static int reloc_init(void)
+{
+       gd->flags |= GD_FLG_RELOC;
+       return 0;
+}
+#endif
+
 /*
  * Breathe some life into the board...
  *
 
 init_fnc_t *init_sequence[] = {
        cpu_init,               /* basic cpu dependent setup */
+#if defined(CONFIG_SKIP_RELOCATE_UBOOT)
+       reloc_init,             /* Set the relocation done flag, must
+                                  do this AFTER cpu_init(), but as soon
+                                  as possible */
+#endif
        board_init,             /* basic board dependent setup */
        interrupt_init,         /* set up exceptions */
        env_init,               /* initialize environment */