]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - common/board_f.c
board_f: fix calculation of reloc_off
[people/ms/u-boot.git] / common / board_f.c
index f5054985d012ea1295d4c6166d727cae173f0637..8bf9acca48b4e9eaf7e8172c17558b48096cfe79 100644 (file)
@@ -644,13 +644,16 @@ static int setup_reloc(void)
        }
 
 #ifdef CONFIG_SYS_TEXT_BASE
-       gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
-#ifdef CONFIG_M68K
+#ifdef ARM
+       gd->reloc_off = gd->relocaddr - (unsigned long)__image_copy_start;
+#elif defined(CONFIG_M68K)
        /*
         * On all ColdFire arch cpu, monitor code starts always
         * just after the default vector table location, so at 0x400
         */
        gd->reloc_off = gd->relocaddr - (CONFIG_SYS_TEXT_BASE + 0x400);
+#else
+       gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
 #endif
 #endif
        memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));