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.
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.