diff --git a/board/freescale/mx31pdk/mx31pdk.c b/board/freescale/mx31pdk/mx31pdk.c
index 2756e5acd53787c54d4e2c4e8522e767a6cdf358..a9f0fb477a48dac668cee1d700070118e41eb1fc 100644
--- a/board/freescale/mx31pdk/mx31pdk.c
+++ b/board/freescale/mx31pdk/mx31pdk.c
@@ -45,7 +45,7 @@ void dram_init_banksize(void)
 	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
 }
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	/* CS5: CPLD incl. network controller */
 	__REG(CSCR_U(5)) = 0x0000d843;
@@ -56,6 +56,11 @@ int board_init(void)
 	mx31_uart1_hw_init();
 	mx31_spi2_hw_init();
 
+	return 0;
+}
+
+int board_init(void)
+{
 	gd->bd->bi_arch_number = MACH_TYPE_MX31_3DS; /* board id for linux */
 	/* adress of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
diff --git a/include/configs/mx31pdk.h b/include/configs/mx31pdk.h
index d7286c04bee281c0fc4df5bd064b0c41b59d4d9f..86c758f2ae76a81268e1f891cbfb6e3372281487 100644
--- a/include/configs/mx31pdk.h
+++ b/include/configs/mx31pdk.h
@@ -154,6 +154,7 @@
 #define CONFIG_NR_DRAM_BANKS	1
 #define PHYS_SDRAM_1		CSD0_BASE
 #define PHYS_SDRAM_1_SIZE	(128 * 1024 * 1024)
+#define CONFIG_BOARD_EARLY_INIT_F	1
 
 #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
 #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR