We are planning on using eMMC 5 for booting our i.MX7 custom board. The software is field-upgradable, but must be able to fall back to the previous version if the upgrade is somehow nonfunctional.
What's the best way to implement this functionality?
- I see there's PERSIST_SECONDARY_BOOT (IMX7DRM section 126.96.36.199.5), but this seems tricky to use, as it is persistent. Is there a way to enable the secondary boot behavior *once*, and have it revert for the next boot?
- MMC has boot0 and boot1 partitions, and the ROM seems to read the ext_csd registers to determine which to boot from (per "Figure 6-32. Expansion Device (MMC) Boot Flow (2 of 6)"). However, as above, this is a persistent setting in the eMMC, right? (I actually can't find confirmation of this anywhere.)
I'd love to hear some guidance as to the most fail-proof booting strategy for software upgrades. Thanks!