I’m designing a redundant boot to overcome failure of booting due to damage on booting image.
i.mx6 dual will be used and AI board will be referenced.
1. redundant boot feature of i.mx6 is used and
2. there is a support of external microcontroller to assert warm reset signal.
To make secondary boot image be used when primary image is damaged;
1. boot code sets PERSIST_SECONDARY_BOOT & SRC_SCR[warm_reset_enable] to 1 at initial time.
2. after checking integrity, boot code resets those bits and confirm it to microcontroller.
3. if a specific time passed without confirmation (primary image may be damaged)
microcontroller asserts warm reset signal to cause warm reset and booting with secondary boot image.
IMX6DQRM - i.MX 6Dual_6Quad Applications Processor Reference Manual
1. External microcontroller would assert SRC_ONOFF to cause warm reset.
Is it appropriate to reset but preserve PERSIST_SECONDARY_BOOT so that ROM code would use secondary boot image?
2. To use this way, boot code should set PERSIST_SECONDARY_BOOT & SRC_SCR[warm_reset_enable].
If those initial code is damaged there is no way to inform ROM code to use secondary image.
Is there any way to set PERSIST_SECONDARY_BOOT & SRC_SCR[warm_reset_enable] before boot code starts.