Hi all,
We’re building a PoC for A/B OTA updates using the open-source Mender client on a Toradex SMARC i.MX8M Plus module.
Environment:
- Yocto 5.0.14 (Scarthgap), official Toradex BSP (
meta-toradex-nxp) - Machine:
toradex-smarc-imx8mp meta-mender(scarthgap branch) +meta-mender-community(scarthgap branch) added tobblayers.conf
The gap:
meta-mender-nxp (inside meta-mender-community) doesn’t currently have a machine config or U-Boot integration for Toradex boards. The only board-specific reference in that layer targets the Olimex i.MX8MP EVB:
find meta-mender-community/meta-mender-nxp -iname "*smarc*" -o -iname "*imx8mp*"
returns only olimex-imx8mp-evb paths — nothing for Toradex/SMARC/Verdin.
We reviewed Toradex’s own boot script (their standard distro-boot script) and confirmed it has no A/B, bootcount, or rollback logic — it defaults to a single hardcoded root_part = 2, selected via PARTUUID. We’d rather not directly patch Toradex’s validated U-Boot source the way the Olimex patch does for its own board, since we don’t want to disrupt hardware init they’ve already validated.
Questions:
- Has anyone integrated Mender (bootcount/A-B rollback) on a Toradex i.MX8M Plus board — SMARC or Verdin — and can share their approach?
- Is chainloading a secondary U-Boot (to handle Mender’s logic ahead of Toradex’s own boot script) the right approach here, or is there a lighter way to inject
mender_boot_part/bootcount handling via boot script hooks (boot.scr/env) without touching Toradex’s U-Boot source directly? - Is the Olimex
meta-mender-nxppatch a reasonable reference for the general pattern (which U-Boot config flags to enable, e.g. Boot Count Limit), even though it’s not board-specific to us?
Happy to share our findings back here once we have something working, in case it helps future Toradex i.MX8M Plus integrations.
Thanks,
Aleena