diff --git a/board/ti/common/Kconfig b/board/ti/common/Kconfig
index c21eb8c2d2..f5bd9160b3 100644
--- a/board/ti/common/Kconfig
+++ b/board/ti/common/Kconfig
@@ -21,6 +21,7 @@ config TI_COMMON_CMD_OPTIONS
 	imply CRC32_VERIFY if ARCH_KEYSTONE
 	imply CMD_DFU if USB_GADGET_DOWNLOAD
 	imply CMD_DHCP
+	imply CMD_DTIMG
 	imply CMD_EEPROM
 	imply CMD_EXT2
 	imply CMD_EXT4
diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
index 6b11b3476c..7198542d9e 100644
--- a/configs/am57xx_evm_defconfig
+++ b/configs/am57xx_evm_defconfig
@@ -78,3 +78,4 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0451
 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/am57xx_hs_evm_defconfig b/configs/am57xx_hs_evm_defconfig
index ca9742f118..e4948d549b 100644
--- a/configs/am57xx_hs_evm_defconfig
+++ b/configs/am57xx_hs_evm_defconfig
@@ -81,3 +81,4 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0451
 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
index e17135c8f6..4ce687fbda 100644
--- a/configs/dra7xx_evm_defconfig
+++ b/configs/dra7xx_evm_defconfig
@@ -96,3 +96,4 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0451
 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/dra7xx_hs_evm_defconfig b/configs/dra7xx_hs_evm_defconfig
index 606f99938c..6546daa080 100644
--- a/configs/dra7xx_hs_evm_defconfig
+++ b/configs/dra7xx_hs_evm_defconfig
@@ -95,3 +95,4 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0451
 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
index 4771e74940..4340b5188f 100644
--- a/include/configs/ti_armv7_common.h
+++ b/include/configs/ti_armv7_common.h
@@ -43,6 +43,7 @@
 	"loadaddr=0x82000000\0" \
 	"kernel_addr_r=0x82000000\0" \
 	"fdtaddr=0x88000000\0" \
+	"dtboaddr=0x89000000\0" \
 	"fdt_addr_r=0x88000000\0" \
 	"rdaddr=0x88080000\0" \
 	"ramdisk_addr_r=0x88080000\0" \
diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
index f2d91f5298..52c9f129ed 100644
--- a/include/environment/ti/boot.h
+++ b/include/environment/ti/boot.h
@@ -65,15 +65,41 @@
 		"run eval_bootargs; " \
 		"setenv mmcdev 1; " \
 		"setenv machid fe6; " \
+		"setenv dtbaddr $fdtaddr; " \
+		"setenv dtb_size 0x100000; " \
 		"mmc dev $mmcdev; " \
 		"mmc rescan; " \
-		"part start mmc ${mmcdev} dtb fdt_start; " \
-		"part size mmc ${mmcdev} dtb fdt_size; " \
-		"part start mmc ${mmcdev} boot boot_start; " \
-		"part size mmc ${mmcdev} boot boot_size; " \
-		"mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; " \
-		"mmc read ${loadaddr} ${boot_start} ${boot_size}; " \
-		"bootm $loadaddr $loadaddr $fdtaddr;\0"
+		"part start mmc ${mmcdev} dtb p_dtb_start; " \
+		"part size mmc ${mmcdev} dtb p_dtb_size; " \
+		"part start mmc ${mmcdev} dtbo p_dtbo_start; " \
+		"part size mmc ${mmcdev} dtbo p_dtbo_size; " \
+		"part start mmc ${mmcdev} boot p_boot_start; " \
+		"part size mmc ${mmcdev} boot p_boot_size; " \
+		"mmc read ${dtbaddr} ${p_dtb_start} ${p_dtb_size}; " \
+		"mmc read ${dtboaddr} ${p_dtbo_start} ${p_dtbo_size}; " \
+		"mmc read ${loadaddr} ${p_boot_start} ${p_boot_size}; " \
+		"if test $board_name = am57xx_evm; then " \
+			"dtimg start ${dtbaddr} 0 dtb_addr; " \
+			"fdt addr $dtb_addr $dtb_size; " \
+			"dtimg start ${dtboaddr} 0 dtbo_addr; " \
+			"fdt apply $dtbo_addr; " \
+			"dtimg start ${dtboaddr} 3 dtbo_addr; " \
+			"fdt apply $dtbo_addr; " \
+		"elif test $board_name = am57xx_evm_reva3; then " \
+			"dtimg start ${dtbaddr} 1 dtb_addr; " \
+			"fdt addr $dtb_addr $dtb_size; " \
+			"dtimg start ${dtboaddr} 0 dtbo_addr; " \
+			"fdt apply $dtbo_addr; " \
+			"dtimg start ${dtboaddr} 4 dtbo_addr; " \
+			"fdt apply $dtbo_addr; " \
+		"elif test $board_name = beagle_x15; then " \
+			"dtimg start ${dtbaddr} 0 dtb_addr; " \
+		"elif test $board_name = beagle_x15_revc; then " \
+			"dtimg start ${dtbaddr} 1 dtb_addr; " \
+		"else " \
+			"dtimg start ${dtbaddr} 0 dtb_addr; " \
+		"fi; " \
+		"bootm $loadaddr $loadaddr $dtb_addr;\0"
 
 #ifdef CONFIG_OMAP54XX
 
