diff --git a/doc/README.fdt-control b/doc/README.fdt-control
index 85bda035043497d8d23aed8a436e24d630c60937..8352835ee948b0637a3c4beb9449cf6280a5072f 100644
--- a/doc/README.fdt-control
+++ b/doc/README.fdt-control
@@ -156,6 +156,14 @@ To use this, put something like this in your board header file:
 
 #define CONFIG_EXTRA_ENV_SETTINGS	"fdtcontroladdr=10000\0"
 
+Build:
+
+After board configuration is done, fdt supported u-boot can be build in two ways:
+1)  build the default dts which is defined from CONFIG_DEFAULT_DEVICE_TREE
+    $ make
+2)  build the user specified dts file
+    $ make DEVICE_TREE=<dts-file-name>
+
 
 Limitations
 -----------
diff --git a/dts/Makefile b/dts/Makefile
index 6f36153634b5cb082975d0912d6bbd1256a0f6d8..03e163ef0aecaa9af9ab0812e85a781187dfdb13 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -27,9 +27,11 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)libdts.o
 
+ifeq ($(DEVICE_TREE),)
 $(if $(CONFIG_DEFAULT_DEVICE_TREE),,\
 $(error Please define CONFIG_DEFAULT_DEVICE_TREE in your board header file))
 DEVICE_TREE = $(subst ",,$(CONFIG_DEFAULT_DEVICE_TREE))
+endif
 
 $(if $(CONFIG_ARCH_DEVICE_TREE),,\
 $(error Your architecture does not have device tree support enabled. \