diff --git a/CHANGELOG b/CHANGELOG
index 2bdaa0cbc054d5f2a47c5c9e9829df837ecd4335..a2c01fbb38ba3fd892b82a003ef6acbaf9fc064f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,10 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Allow board code to fixup the flat device tree before booting a
+  kernel
+  Patch by Kumar Gala 11 Jan 2006
+
 * Added CONFIG_ options for bd_t and env in flat dev tree
 
 	CONFIG_OF_HAS_BD_T will put a copy of the bd_t
diff --git a/README b/README
index 21f5bf049e1206bbbeef79eff81527fee7aa41c8..3b64fe20a1004b52bc1105ff0f5db8e70c4f1b16 100644
--- a/README
+++ b/README
@@ -423,6 +423,11 @@ The following options need to be configured:
 		The resulting flat device tree will have a copy of u-boot's
 		environment variables
 
+		CONFIG_OF_BOARD_SETUP
+
+		Board code has addition modification that it wants to make
+		to the flat device tree before handing it off to the kernel
+
 - Serial Ports:
 		CFG_PL010_SERIAL
 
diff --git a/common/ft_build.c b/common/ft_build.c
index 57194581a10e64980349a61b8f013757766bc0dc..2cecbcf9664518f140d6828b11ef62dc74b1c41c 100644
--- a/common/ft_build.c
+++ b/common/ft_build.c
@@ -698,9 +698,12 @@ void ft_setup(void *blob, int size, bd_t * bd)
 	if (p != NULL)
 		*p = cpu_to_be32(clock);
 #endif
-
 #endif				/* __powerpc__ */
 
+#ifdef CONFIG_OF_BOARD_SETUP
+	ft_board_setup(blob, bd);
+#endif
+
 	/*
 	   printf("final OF-tree\n");
 	   ft_dump_blob(blob);
diff --git a/include/ft_build.h b/include/ft_build.h
index 9104b1a55508de8335bd721e790bc19e2cac4be8..a276867c5d4fa45bfea30b190a2db8d61e2f1c5c 100644
--- a/include/ft_build.h
+++ b/include/ft_build.h
@@ -63,4 +63,6 @@ void ft_dump_blob(const void *bphp);
 void ft_merge_blob(struct ft_cxt *cxt, void *blob);
 void *ft_get_prop(void *bphp, const char *propname, int *szp);
 
+void ft_board_setup(void *blob, bd_t *bd);
+
 #endif