summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnshul Dalal <[email protected]>2026-07-13 11:07:05 +0530
committerTom Rini <[email protected]>2026-07-16 12:02:48 -0600
commit28d09d6ab68c4a3ac3b95c508a79dabbaa9d3e89 (patch)
tree4b062cdc39f8e69780fcb10ddafafcdf71389d96
parent246631bdc559fc39e9f434feb18565da3a8a05db (diff)
mach-k3: am64x: clear MCU_RST_SRC before reset
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 <[email protected]>
-rw-r--r--arch/arm/mach-k3/am64x/am642_init.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/am64x/am642_init.c b/arch/arm/mach-k3/am64x/am642_init.c
index d6cc7a85aae..94c006aa350 100644
--- a/arch/arm/mach-k3/am64x/am642_init.c
+++ b/arch/arm/mach-k3/am64x/am642_init.c
@@ -255,6 +255,8 @@ void board_init_f(ulong dummy)
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