include conf/machine/include/fsl-default-settings.inc
 include conf/machine/include/fsl-default-versions.inc
 
+require conf/machine/include/utilities.inc
+
 # Set specific make target and binary suffix
 PREFERRED_PROVIDER_u-boot ??= "u-boot-fslc"
 PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot-fslc"
 
 IMAGE_BOOT_FILES ?= " \
     ${KERNEL_IMAGETYPE} \
-    ${KERNEL_DEVICETREE} \
+    ${@make_dtb_boot_files(d)} \
 "
 
 ### wic default support
 
--- /dev/null
+### Machine definition file utilities
+
+def make_dtb_boot_files(d):
+    # Generate IMAGE_BOOT_FILES entries for device tree files listed in
+    # KERNEL_DEVICETREE.
+    # Use only the basename for dtb files:
+    alldtbs = d.getVar('KERNEL_DEVICETREE')
+
+    def transform(dtb):
+        if dtb.endswith('dtb') or dtb.endswith('dtbo'):
+            # eg: whatever/bcm2708-rpi-b.dtb has:
+            #     DEPLOYDIR file: bcm2708-rpi-b.dtb
+            #     destination: bcm2708-rpi-b.dtb
+            return os.path.basename(dtb)
+
+    return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb])