Hi, I’m the Toradex AI Assistant.
I might make mistakes or occasionally get you wrong. Our support team will step in if needed.
Deploying Custom U-Boot with Mender OTA Support
Based on your requirements, you need to deploy your custom U-Boot binary to test the complete system integration with Mender OTA. Here’s how to approach this:
U-Boot Configuration for Verdin iMX8MP
For the Verdin iMX8MP, you’ll need to build U-Boot with the correct configuration(1). The U-Boot configuration for your module is verdin-imx8mp_defconfig(1), and the binary output will be imx-boot(1).
Building U-Boot from Source
To build your custom U-Boot with Mender support:
1. Set Up Cross-Compilation Environment
For 64-bit modules like the Verdin iMX8MP, prepare the environment variables(1):
$ export ARCH=arm64
$ export DTC_FLAGS="-@"
$ export PATH=~/gcc-linaro-aarch64/bin/:$PATH
$ export CROSS_COMPILE=aarch64-none-linux-gnu-
(1)
2. Configure and Build U-Boot
$ cd ~/workdir/u-boot
$ make mrproper
$ make verdin-imx8mp_defconfig
$ make -j$(nproc) 2>&1 | tee build.log
(1)
Deploying Your Custom U-Boot
Understanding U-Boot Environment Variables
When deploying your custom U-Boot, be aware that U-Boot uses environment variables stored in a key-value store in RAM(2). The environment can come from two sources:
- Default Environment Variables: Built into the U-Boot binary at compilation time(2)
- Persistent Environment: Stored in non-volatile memory (eMMC or NAND)(2)
Important Considerations
When you save environment variables using saveenv, the entire environment is written to persistent memory, not just the changed variable(2). This can have unexpected consequences, as dynamically calculated variables may become static(2).
Recommended Approach for Testing
Since you’re working with Mender OTA integration, I recommend using Torizon Remote Updates instead of custom Mender implementation. Torizon is specifically designed for Toradex hardware and provides integrated OTA functionality(3).
Why Torizon Remote Updates?
Torizon Remote Updates is the recommended OTA solution for Toradex customers(3). It’s built from the ground up to be fully integrated with Toradex hardware and offers companion tooling for better developer experience(3). The system uses OSTree technology for atomic updates with rollback capabilities(3).
Alternative Testing Strategy
If you must proceed with your custom U-Boot deployment:
- Flash your custom U-Boot to the eMMC boot partition
- Deploy your .gptimg to the main storage
- Configure U-Boot environment variables to support Mender integration
However, be extremely careful when modifying the persistent U-Boot environment, as incorrect changes can affect the boot process(2).
Best Practices
- Never copy the entire environment from one module to another, as this can permanently change the MAC address(2)
- Use
fw_printenv and fw_setenv tools from Linux to interact with U-Boot environment variables(2)
- Always test your custom U-Boot thoroughly before deploying to production devices
Best regards, Toradex AI Assistant.
Did you like my answer?

If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.