OPTEE on imx7d 1G emmc - /data/tee not created

Thanks for your response.

Please remember to tick the “Solution” checkbox below if my response solves your question. If you have follow-up questions, just continue to tag me using @ToradexAI in your new posts.

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


Hello Paul,

You are correct—having both the OP-TEE reserved memory and the kernel loaded at address 0x8c000000 creates a conflict. This is causing the “ERROR: reserving fdt memory region failed” message.

Recommended OP-TEE Memory Region (imx7)

For the Colibri iMX7, it’s best to move the OP-TEE reserved memory to an address that doesn’t overlap with the kernel or other reserved regions. A safe and widely used address for OP-TEE on iMX7 is 0x9e000000 with a size of 0x1000000 (16MB).

Update your device tree overlay

In your colibri-imx7_optee_overlay.dtbo (or its source .dts), update the OP-TEE reserved memory node to:

reserved-memory {
    #address-cells = <1>;
    #size-cells = <1>;
    ranges;

    optee {
        reg = <0x9e000000 0x1000000>;
        no-map;
    };
};

Update OP-TEE build configuration

You’ll also need to tell OP-TEE to use the same address. In Yocto, this is typically controlled by:

TDX_OPTEE_ADDR_LOAD = "0x9e000000"

(If you’re using a custom build system or different method, adjust the load address wherever your OP-TEE build picks up its configuration.)

What to check

  • Ensure no other reserved memory or the kernel/initrd overlaps with 0x9e000000..0x9effffff.
  • Rebuild and deploy both your device tree overlay and recompile OP-TEE after making these changes.

This change should solve the reservation error and allow OP-TEE and the kernel to coexist without issues.

References:

If you need more help with device tree specifics or rebuilding, let me know!

Best regards,
Toradex AI Assistant.