diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 6ce62be91f4907a0d980887367720a775b7c8fbb..981ffc50005f463fb18dff08107f271be3dbfba3 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -973,6 +973,10 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 		do_reset (cmdtp, flag, argc, argv);
 	}
 #endif
+#ifdef CONFIG_OF_BOARD_SETUP
+	/* Call the board-specific fixup routine */
+	ft_board_setup(fdt, gd->bd);
+#endif
 #endif /* CONFIG_OF_LIBFDT */
 #if defined(CONFIG_OF_FLAT_TREE)
 	/* move of_flat_tree if needed */
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 824088c911284a5f1fc2b6cecb2fbd037232a16a..9ddec47706ce5cd6124f3329baa0978f10fcd6be 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -44,13 +44,6 @@
  */
 DECLARE_GLOBAL_DATA_PTR;
 
-/*
- * Function prototypes/declarations.
- */
-#ifdef CONFIG_OF_BOARD_SETUP
-void ft_board_setup(void *blob, bd_t *bd);
-#endif
-
 static int fdt_valid(void);
 static int fdt_parse_prop(char *pathp, char *prop, char *newval,
 	char *data, int *len);
diff --git a/include/fdt_support.h b/include/fdt_support.h
index a276834740a2cb8aab0f83c1ee4e4fdce3630700..60fa423b334ead6a60eb26fce036617f1a72b7ff 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -38,5 +38,11 @@ int fdt_env(void *fdt);
 int fdt_bd_t(void *fdt);
 #endif
 
+#ifdef CONFIG_OF_BOARD_SETUP
+void ft_board_setup(void *blob, bd_t *bd);
+void ft_cpu_setup(void *blob, bd_t *bd);
+void ft_pci_setup(void *blob, bd_t *bd);
+#endif
+
 #endif /* ifdef CONFIG_OF_LIBFDT */
 #endif /* ifndef __FDT_SUPPORT_H */