Can't attach overlay

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Troubleshooting Your Device Tree Overlay Issue

The error failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND indicates that your overlay is trying to reference a device tree node that doesn’t exist in the base device tree(1). This is a common issue when creating custom overlays.

Common Causes and Solutions

1. Check Node References

Your overlay must reference nodes that exist in the base device tree(1). The error suggests your overlay is trying to modify a node that can’t be found.

2. Verify Compatible String

Ensure your overlay’s compatible string matches your hardware platform(2). For Colibri iMX6, it should be:

/ {
    compatible = "toradex,colibri_imx6dl-eval-v3";
};

(2)

3. Check Pin References

Make sure you’re using the correct pin definitions. For Colibri iMX6, you need to include the proper header file(2):

#include "linux/arch/arm/boot/dts/nxp/imx/imx6dl-pinfunc.h"

(2)

Recommended Debugging Steps

  1. Use Existing Overlays as Reference
    Start with a working overlay and modify it gradually(3). You can find compatible overlays using:

    $ torizoncore-builder dto list --device-tree ./linux/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
    

    (3)

  2. Validate Your Overlay Structure
    A proper overlay should follow this template(1):

    /dts-v1/;
    /plugin/;
    
    #include <soc-pinfunc.h>
    
    / {
        compatible = "toradex,colibri_imx6dl-eval-v3";
    };
    
    &iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_my_pins>;
        
        pinctrl_my_pins: my_muxgrp {
            fsl,pins = <
                PIN_NAME_PIN_MUX   PAD_CTRL
            >;
        };
    };
    

    (1)

  3. Check Available Overlays
    For Colibri iMX6, you can see available overlays that work with your device tree(3):

    $ find linux -name "*imx6dl-colibri*.dts"
    

    (3)

Development Workflow

For testing and development, you can use TorizonCore Builder’s dto command for compilation and validation(1):

$ torizoncore-builder dto apply custom-overlay.dts

(1)

For production, use the build command with a tcbuild.yaml configuration(3):

customization:
  device-tree:
    include-dirs:
      - linux/include
    custom: linux/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
    overlays:
      add:
        - device-trees/overlays/colibri-imx6_800x600_overlay.dts

(3)

Next Steps

Since you mentioned you had a working version, I recommend:

  1. Compare your current overlay with the working Toradex-provided overlays(3)
  2. Ensure all referenced nodes exist in the base device tree
  3. Validate the compatible string matches your hardware configuration
  4. Test incrementally by starting with minimal changes

The most common issue is referencing nodes that don’t exist in the target device tree, so focus on verifying all your node references are correct(1).

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.