diff options
| author | Anshul Dalal <[email protected]> | 2026-07-13 11:07:05 +0530 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-07-16 12:02:48 -0600 |
| commit | 28d09d6ab68c4a3ac3b95c508a79dabbaa9d3e89 (patch) | |
| tree | 4b062cdc39f8e69780fcb10ddafafcdf71389d96 | |
| parent | 246631bdc559fc39e9f434feb18565da3a8a05db (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.c | 2 |
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 |
