I am working on an Apalis iMX8QM platform and trying to understand the FIT image generation and loading process. I created an .its file that only contains a kernel image, a specific DTB, and the configurations I expect. However, when inspecting the FIT image that is actually being loaded, I see additional nodes that are not explicitly defined in my .its file, such as an initramfs node, extra .dtb entries, and some .dtbo overlay entries.
I would like to understand where these additional nodes are coming from. Are they being automatically added during the Yocto build process, by U-Boot FIT generation scripts, or by Toradex-specific classes/recipes? Could someone point me to the part of the build system responsible for augmenting the FIT image beyond what is specified in the original .its file?
One thing that confuses me is that if these additional nodes are coming from an Easy Installer FIT image, why are they appearing in my image? I checked the FIT image located in the deploy directory and it appears to be correct. I used mkimage -l to inspect its contents, and it only contains the entries that I expect from my .its file. This makes me think that the FIT image generated during the build is correct, but at some point a different FIT image may be getting loaded or substituted.
Any guidance on how to trace the generation and selection of the final FIT image used at boot would be greatly appreciated.
these are u-boot outputs and my .its file
images {
kernel-1 {
description = “Linux kernel”;
data = /incbin/(“linux.bin”);
type = “kernel”;
arch = “arm64”;
os = “linux”;
compression = “gzip”;
load = <0x96000000>;
entry = <0x96000000>;
hash-1 {
algo = “sha256”;
};
};
fdt-freescale_imx8qm-apalis-v1.1-ixora-v1.2.dtb {
description = “Flattened Device Tree blob”;
data = /incbin/(“arch/arm64/boot/dts/freescale/imx8qm-apalis-v1.1-ixora-v1.2.dtb”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83000000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_ar0521_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_ar0521_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_disable_can_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_disable_can_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_disable-cm40-uart_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_disable-cm40-uart_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_hdmi_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_hdmi_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_hmp_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_hmp_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_mezzanine_can_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_mezzanine_can_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_mezzanine_ov5640_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_mezzanine_ov5640_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_nau8822-btl_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_nau8822-btl_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_ov5640_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_ov5640_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_panel-lvds-dual-channel-1080p_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_panel-lvds-dual-channel-1080p_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_resistive-touch_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_resistive-touch_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_riverdi.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_riverdi.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_spi1_spidev_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_spi1_spidev_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_spi2_spidev_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_spi2_spidev_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
fdt-apalis-imx8_spi_to_gpio_overlay.dtbo {
description = “Flattened Device Tree blob”;
data = /incbin/(“/home/anas/Downloads/Mohamed_Anas_PFE/pixii_os/build/tmp/work/apalis_imx8-tdx-linux/linux-toradex/5.15.148+gitAUTOINC+bfdbfb2c85-r0/recipe-sysroot/boot/devicetree/apalis-imx8_spi_to_gpio_overlay.dtbo”);
type = “flat_dt”;
arch = “arm64”;
compression = “none”;
load = <0x83100000>;
hash-1 {
algo = “sha256”;
};
};
};
configurations {
default = "conf-freescale_imx8qm-apalis-v1.1-ixora-v1.2.dtb";
conf-freescale_imx8qm-apalis-v1.1-ixora-v1.2.dtb {
description = "1 Linux kernel, FDT blob";
kernel = "kernel-1";
fdt = "fdt-freescale_imx8qm-apalis-v1.1-ixora-v1.2.dtb";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "kernel", "fdt";
};
};
conf-apalis-imx8_ar0521_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_ar0521_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_disable_can_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_disable_can_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_disable-cm40-uart_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_disable-cm40-uart_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_hdmi_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_hdmi_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_hmp_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_hmp_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_mezzanine_can_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_mezzanine_can_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_mezzanine_ov5640_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_mezzanine_ov5640_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_nau8822-btl_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_nau8822-btl_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_ov5640_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_ov5640_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_panel-lvds-dual-channel-1080p_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_panel-lvds-dual-channel-1080p_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_resistive-touch_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_resistive-touch_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_riverdi.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_riverdi.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_spi1_spidev_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_spi1_spidev_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_spi2_spidev_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_spi2_spidev_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
conf-apalis-imx8_spi_to_gpio_overlay.dtbo {
description = "0 FDT blob";
fdt = "fdt-apalis-imx8_spi_to_gpio_overlay.dtbo";
hash-1 {
algo = "sha256";
};
signature-1 {
algo = "sha256,rsa2048";
key-name-hint = "fit_key";
padding = "pkcs-1.5";
sign-images = "fdt";
};
};
};

