diff --git a/board/Marvell/guruplug/guruplug.c b/board/Marvell/guruplug/guruplug.c
index 4df4e9b260482f49caab002473a2ea24713c3219..1f0e67a7fe7c2db8ef619e8e387be76210555750 100644
--- a/board/Marvell/guruplug/guruplug.c
+++ b/board/Marvell/guruplug/guruplug.c
@@ -30,7 +30,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	/*
 	 * default gpio configuration
@@ -96,7 +96,11 @@ int board_init(void)
 		0
 	};
 	kirkwood_mpp_conf(kwmpp_config);
+	return 0;
+}
 
+int board_init(void)
+{
 	/*
 	 * arch number of board
 	 */
diff --git a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
index 93d1400be49d469fbdb04248617cf0523fa44ef9..80fd20b7f4b03027faeb519e13d047133fa79130 100644
--- a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
+++ b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
@@ -32,7 +32,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	/*
 	 * default gpio configuration
@@ -98,7 +98,11 @@ int board_init(void)
 		0
 	};
 	kirkwood_mpp_conf(kwmpp_config);
+	return 0;
+}
 
+int board_init(void)
+{
 	/*
 	 * arch number of board
 	 */
diff --git a/board/Marvell/openrd_base/openrd_base.c b/board/Marvell/openrd_base/openrd_base.c
index d006b2ddf7d3abece1524b7e94b99ed6555fed12..10109c1322a496b241469bb248b68e2337deecff 100644
--- a/board/Marvell/openrd_base/openrd_base.c
+++ b/board/Marvell/openrd_base/openrd_base.c
@@ -35,7 +35,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	/*
 	 * default gpio configuration
@@ -102,7 +102,11 @@ int board_init(void)
 	};
 
 	kirkwood_mpp_conf(kwmpp_config);
+	return 0;
+}
 
+int board_init(void)
+{
 	/*
 	 * arch number of board
 	 */
diff --git a/board/Marvell/rd6281a/rd6281a.c b/board/Marvell/rd6281a/rd6281a.c
index 0d76146b658069e44e54ec98a64057ac9421bf6c..e69e035308bdbcec164e788f14b58968764e6f51 100644
--- a/board/Marvell/rd6281a/rd6281a.c
+++ b/board/Marvell/rd6281a/rd6281a.c
@@ -31,7 +31,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	/*
 	 * default gpio configuration
@@ -97,7 +97,11 @@ int board_init(void)
 		0
 	};
 	kirkwood_mpp_conf(kwmpp_config);
+	return 0;
+}
 
+int board_init(void)
+{
 	/*
 	 * arch number of board
 	 */
diff --git a/board/Marvell/sheevaplug/sheevaplug.c b/board/Marvell/sheevaplug/sheevaplug.c
index 173a7b809df33f9b2072e5d9e43597f30548db9a..d7dc80c1ba2980792cc1a720ab36c22d7d752422 100644
--- a/board/Marvell/sheevaplug/sheevaplug.c
+++ b/board/Marvell/sheevaplug/sheevaplug.c
@@ -30,7 +30,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int board_init(void)
+int board_early_init_f(void)
 {
 	/*
 	 * default gpio configuration
@@ -96,7 +96,11 @@ int board_init(void)
 		0
 	};
 	kirkwood_mpp_conf(kwmpp_config);
+	return 0;
+}
 
+int board_init(void)
+{
 	/*
 	 * arch number of board
 	 */
diff --git a/include/configs/mv-common.h b/include/configs/mv-common.h
index bdcebd3b5dec128461e114e1a6dc9e3df3993561..2b19a34bb28a6098e3be2c6030bbddda452dc678 100644
--- a/include/configs/mv-common.h
+++ b/include/configs/mv-common.h
@@ -142,6 +142,7 @@
 #define CONFIG_CONSOLE_INFO_QUIET	/* some code reduction */
 #define CONFIG_ARCH_CPU_INIT	/* call arch_cpu_init() */
 #define CONFIG_ARCH_MISC_INIT	/* call arch_misc_init() */
+#define CONFIG_BOARD_EARLY_INIT_F /* call board_init_f for early inits */ 
 #define CONFIG_DISPLAY_CPUINFO	/* Display cpu info */
 #define CONFIG_NR_DRAM_BANKS	4
 #define CONFIG_STACKSIZE	0x00100000	/* regular stack- 1M */