diff options
author | Pali Rohár <pali@kernel.org> | 2022-08-01 15:31:44 +0200 |
---|---|---|
committer | Peng Fan <peng.fan@nxp.com> | 2022-09-06 14:08:33 +0800 |
commit | 27b2bff6eb18dfb5ba58f68b79fdc57d72c6d2a3 (patch) | |
tree | d577b2e3c3c98b5ac26902918adcb796b4c01d47 /arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h | |
parent | 1f90be6f3445f72c526f7396f4f4a53bb7a097aa (diff) |
board: freescale: p1_p2_rdb_pc: Add workaround for non-working watchdog
If watchdog timer was already set to non-disabled value then it means that
watchdog timer was already activated, has already expired and caused CPU
reset. If this happened then due to CPLD firmware bug, writing to wd_cfg
register has no effect and therefore it is not possible to reactivate
watchdog timer again. Watchdog starts working again after CPU reset via
non-watchdog method.
Implement this workaround (reset CPU when it was reset by watchdog) to make
watchdog usable again. Watchdog timer logic on these P1/P2 RDB boards is
connected to CPLD, not to SoC itself.
Note that reset does not occur immediately after calling do_reset(), but
after few ms later as real reset is done by CPLD. So it is normal that
function do_reset() returns. Therefore hangs after calling do_reset() to
prevent CPU execution of the rest U-Boot code.
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.h')
0 files changed, 0 insertions, 0 deletions