diff --git a/cpu/mpc5xx/config.mk b/cpu/mpc5xx/config.mk
index 64cd60071ad4085ab2ae1b583545ce51bccb68f1..e95b8a1a85514a062eb127b43aed697d56334ecc 100644
--- a/cpu/mpc5xx/config.mk
+++ b/cpu/mpc5xx/config.mk
@@ -28,7 +28,7 @@
 #
 
 
-PLATFORM_RELFLAGS += 	-fPIC -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += 	-fPIC -ffixed-r14 -meabi -mrelocatable
 
 PLATFORM_CPPFLAGS +=	-DCONFIG_5xx -ffixed-r2 -ffixed-r29 -mpowerpc -msoft-float
 
diff --git a/cpu/mpc5xx/u-boot.lds b/cpu/mpc5xx/u-boot.lds
index 5b03fef66c77ddac1bbbe0c032a0525b5752953b..10001b1c1decabc2b05db808fdfef65cf6ee6e68 100644
--- a/cpu/mpc5xx/u-boot.lds
+++ b/cpu/mpc5xx/u-boot.lds
@@ -59,7 +59,6 @@ SECTIONS
     cpu/mpc5xx/start.o	(.text)
 
     *(.text)
-    *(.fixup)
     *(.got1)
   }
   _etext = .;
diff --git a/include/common.h b/include/common.h
index d8b6b469e5f6cd57e2b5c40f7368730be2941ef8..7319c549392b22c4d1dcdce236d719cc1e288971 100644
--- a/include/common.h
+++ b/include/common.h
@@ -63,6 +63,7 @@ typedef volatile unsigned char	vu_char;
 #endif
 #elif defined(CONFIG_5xx)
 #include <asm/5xx_immap.h>
+#define CONFIG_RELOC_FIXUP_WORKS
 #elif defined(CONFIG_MPC5xxx)
 #include <mpc5xxx.h>
 #elif defined(CONFIG_MPC8220)