diff --git a/Config.in b/Config.in
index bf1e139f2e666d4b1de31a76ecf846c1f233b019..5607e55d4d1979f7421eb35bf7c1d15b47ec75fd 100644
--- a/Config.in
+++ b/Config.in
@@ -204,7 +204,7 @@ menu "Target Images"
 
 	config TARGET_ROOTFS_INCLUDE_DTB
 		bool "Include DTB in root filesystem"
-		depends on TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS
+		depends on USES_DEVICETREE && (TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS)
 		default n if USES_UBIFS
 		help
 		  Include the device tree blob file(s) in the rootfs. Typically the DTBs
diff --git a/include/target.mk b/include/target.mk
index 467ef357666f4bedd6f1b84d4d586bc1c7c4b0cc..acb9adf584e27690a232b1a01a930dd48306609f 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -167,6 +167,9 @@ ifeq ($(DUMP),1)
     .SILENT: $(TMP_CONFIG)
     .PRECIOUS: $(TMP_CONFIG)
 
+    ifneq ($(CONFIG_OF),)
+      FEATURES += dt
+    endif
     ifneq ($(CONFIG_GENERIC_GPIO)$(CONFIG_GPIOLIB),)
       FEATURES += gpio
     endif
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index ddcf50bf32a3b9a1e0ab4770b4a97443787e109e..135ec9a9389c00f185ed7424767f203d08a3a7fb 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -158,6 +158,7 @@ sub target_config_features(@) {
 		/broken/ and $ret .= "\tdepends on BROKEN\n";
 		/audio/ and $ret .= "\tselect AUDIO_SUPPORT\n";
 		/display/ and $ret .= "\tselect DISPLAY_SUPPORT\n";
+		/dt/ and $ret .= "\tselect USES_DEVICETREE\n";
 		/gpio/ and $ret .= "\tselect GPIO_SUPPORT\n";
 		/pci/ and $ret .= "\tselect PCI_SUPPORT\n";
 		/pcie/ and $ret .= "\tselect PCIE_SUPPORT\n";
diff --git a/target/Config.in b/target/Config.in
index 7f694e4c8badc436bc76d4d124322d9cecee9818..bb442025f54e71d407ac87499d3e9ffec4a161f6 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -39,6 +39,9 @@ config RTC_SUPPORT
 config BIG_ENDIAN
 	bool
 
+config USES_DEVICETREE
+	bool
+
 config USES_INITRAMFS
 	bool