Missing device tree in fitimage on yocto dunfell

Hello all,

We are having trouble creating fitimages with the kernel-fitimage class since we use BSP 5.0.
We are using a colibri-imx6ull and build a core-image-minimal.
When we try to build a fitImage by adding
KERNEL_CLASSES_append = “kernel-fitimage”
KERNEL_IMAGETYPES_append = " fitImage"
it does build a fitImage, also including the kernel and initramfs but it lacks the device trees for the colibri-imx6ull. Even if we explicitely state KERNEL_DEVICETREE = “imx6ull-colibri-wifi-eval-v3.dtb”, it does not include it.

The fitimage *.its always includes the same devicetree overlays:

/dts-v1/;

/ {
        description = "U-Boot fitImage for Poky (Yocto Project Reference Distro)/5.4.47+gitAUTOINC+3f945d0d10/colibri-imx6ull";
        #address-cells = <1>;

        images {
                kernel@1 {
                        description = "Linux kernel";
                        data = /incbin/("linux.bin");
                        type = "kernel";
                        arch = "arm";
                        os = "linux";
                        compression = "none";
                        load = <0x81000000>;
                        entry = <0x81000000>;
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@apalis-imx6_adv7280_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/apalis-imx6_adv7280_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@apalis-imx6_atmel-mxt_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/apalis-imx6_atmel-mxt_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@apalis-imx6_lvds_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/apalis-imx6_lvds_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@apalis-imx6_ov5640_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/apalis-imx6_ov5640_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@apalis-imx6_ov5640_v11a_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/apalis-imx6_ov5640_v11a_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@apalis-imx6_parallel-rgb_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/apalis-imx6_parallel-rgb_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@colibri-imx6-aster_atmel-mxt_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/colibri-imx6-aster_atmel-mxt_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@colibri-imx6-eval_atmel-mxt_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/colibri-imx6-eval_atmel-mxt_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@colibri-imx7-aster_atmel-mxt_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/colibri-imx7-aster_atmel-mxt_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@colibri-imx7-eval_atmel-mxt_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/colibri-imx7-eval_atmel-mxt_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@display-edt5.7_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/display-edt5.7_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@display-edt7_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/display-edt7_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@display-lt161010_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/display-lt161010_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                fdt@display-lt170410_overlay.dtbo {
                        description = "Flattened Device Tree blob";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/tmp/work/colibri_imx6ull-poky-linux-musleabi/linux-toradex/5.4.47+gitAUTOINC+3f945d0d10-r0/recipe-sysroot/boot/devicetree/display-lt170410_overlay.dtbo");
                        type = "flat_dt";
                        arch = "arm";
                        compression = "none";
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
                ramdisk@1 {
                        description = "core-image-minimal";
                        data = /incbin/("/home/corinna/yocto-toradex-dunfell/build/deploy/images/colibri-imx6ull/core-image-minimal-colibri-imx6ull.cpio.gz");
                        type = "ramdisk";
                        arch = "arm";
                        os = "linux";
                        compression = "none";
                        
                        
                        hash@1 {
                                algo = "sha256";
                        };
                };
	};

        configurations {
                default = "conf@apalis-imx6_adv7280_overlay.dtbo";
                conf@apalis-imx6_adv7280_overlay.dtbo {
			description = "1 FDT blob";
			
			fdt = "fdt@apalis-imx6_adv7280_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@apalis-imx6_atmel-mxt_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@apalis-imx6_atmel-mxt_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@apalis-imx6_lvds_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@apalis-imx6_lvds_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@apalis-imx6_ov5640_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@apalis-imx6_ov5640_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@apalis-imx6_ov5640_v11a_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@apalis-imx6_ov5640_v11a_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@apalis-imx6_parallel-rgb_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@apalis-imx6_parallel-rgb_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@colibri-imx6-aster_atmel-mxt_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@colibri-imx6-aster_atmel-mxt_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@colibri-imx6-eval_atmel-mxt_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@colibri-imx6-eval_atmel-mxt_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@colibri-imx7-aster_atmel-mxt_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@colibri-imx7-aster_atmel-mxt_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@colibri-imx7-eval_atmel-mxt_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@colibri-imx7-eval_atmel-mxt_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@display-edt5.7_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@display-edt5.7_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@display-edt7_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@display-edt7_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@display-lt161010_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@display-lt161010_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
                
                conf@display-lt170410_overlay.dtbo {
			description = "0 FDT blob";
			
			fdt = "fdt@display-lt170410_overlay.dtbo";
			
			
                        hash@1 {
                                algo = "sha256";
                        };
                };
	};
};

We are unsure were those come from and why the colibri-imx6ull device trees are missing.
It would be great if someone could point us in the right direction!

Thank you and best regards!

So apparently the issue is caused by using device tree overlays.
Adding PREFERRED_PROVIDER_virtual/dtb_colibri-imx6ull = "" to the local.conf or distro definition solves the problem.

Greetings @developer!

Glad that this solves it for you. Please reach out if you have any further questions.

This should be a design issue of OE, it has been fixed by: https://git.openembedded.org/openembedded-core/commit/?h=master-next&id=8ad4f010313617edf502ac3124f491731aa240aa

which supposes to be merged in hardknott branch.

For Toradex BSP 5.0 which is based on dunfell, please use toradex-fitimage instead:

KERNEL_CLASSES_append = " toradex-fitimage"

Yes, we meanwhile fixed it upstream. Downstream integration is still pending if it can/will even be done.