|
@@ -644,13 +644,16 @@ static int setup_reloc(void)
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_SYS_TEXT_BASE
|
|
#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
|
|
* On all ColdFire arch cpu, monitor code starts always
|
|
* just after the default vector table location, so at 0x400
|
|
* just after the default vector table location, so at 0x400
|
|
*/
|
|
*/
|
|
gd->reloc_off = gd->relocaddr - (CONFIG_SYS_TEXT_BASE + 0x400);
|
|
gd->reloc_off = gd->relocaddr - (CONFIG_SYS_TEXT_BASE + 0x400);
|
|
|
|
+#else
|
|
|
|
+ gd->reloc_off = gd->relocaddr - CONFIG_SYS_TEXT_BASE;
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));
|
|
memcpy(gd->new_gd, (char *)gd, sizeof(gd_t));
|