Skip to content
Commit 27b2bff6 authored by This contributor prefers not to receive mails's avatar This contributor prefers not to receive mails Committed by Peng Fan
Browse files

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: default avatarPali Rohár <pali@kernel.org>
Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
parent 1f90be6f
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment