In warm reset, the value of CTRLMMR_MCU_RST_SRC was not being reset.
This leads to a reset-loop boot failure when a warm reset is triggered
from the MAIN domain (by writing 0x2006 to MCU_RST_CTRL).
Signed-off-by: Anshul Dalal <anshuld@ti.com>
if (rst_src == COLD_BOOT || rst_src & (SW_POR_MCU | SW_POR_MAIN)) {
printf("Resetting on cold boot to workaround ErrataID:i2331\n");
printf("Please resend tiboot3.bin in case of UART/DFU boot\n");
+ /* clear MCU_RST_SRC register before reset */
+ writel(0xFFFFFFFF, CTRLMMR_MCU_RST_SRC);
do_reset(NULL, 0, 0, NULL);
}
#endif