diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index 57358b8a49dcb69640e30cf2a47be7ccc7e40078..eb4d8e4e2b61f97586643e2a7c15f4585cf32dc6 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -60,7 +60,6 @@ SECTIONS
     lib_generic/crc32.o		(.text)
     lib_generic/zlib.o		(.text)
 
-    *(.fixup)
     *(.got1)
     . = ALIGN(16);
     *(.rodata)
diff --git a/cpu/mpc824x/config.mk b/cpu/mpc824x/config.mk
index 66207f4354dfac4b59089ff895f5b2bfc1248d4e..17fdb21d35a170b2c98472a507a2a7b6380e0472 100644
--- a/cpu/mpc824x/config.mk
+++ b/cpu/mpc824x/config.mk
@@ -21,7 +21,7 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi -fno-strict-aliasing
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi -fno-strict-aliasing -mrelocatable
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC824X -ffixed-r2 -ffixed-r29 -mstring -mcpu=603e -msoft-float
 
diff --git a/cpu/mpc824x/u-boot.lds b/cpu/mpc824x/u-boot.lds
index c90d1e9457e80a065bb77208cf022a7b456ca958..8cbef4aed43805f406743d79d7d7f7f5bb50f2db 100644
--- a/cpu/mpc824x/u-boot.lds
+++ b/cpu/mpc824x/u-boot.lds
@@ -55,7 +55,6 @@ SECTIONS
   {
     cpu/mpc824x/start.o		(.text)
     *(.text)
-    *(.fixup)
     *(.got1)
     . = ALIGN(16);
     *(.rodata)
diff --git a/include/common.h b/include/common.h
index 93ddfb85eabec3f2f521ff3d0ec785ca2d8033c8..4c50053c021becece72b5109723a113c37dc775a 100644
--- a/include/common.h
+++ b/include/common.h
@@ -70,6 +70,8 @@ typedef volatile unsigned char	vu_char;
 #elif defined(CONFIG_MPC8220)
 #include <asm/immap_8220.h>
 #define CONFIG_RELOC_FIXUP_WORKS
+#elif defined(CONFIG_824X)
+#define CONFIG_RELOC_FIXUP_WORKS
 #elif defined(CONFIG_8260)
 #if   defined(CONFIG_MPC8247) \
    || defined(CONFIG_MPC8248) \