Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
19138 commits behind the upstream repository.
user avatar
Fabio Estevam authored
Since commit 623d96e8("imx: wdog: correct wcr register settings")
issuing a 'reset' command causes the system to hang.

Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.

This means that the watchdog on LS1021 has been working by accident as
it does not use the big-endian accessors in drivers/watchdog/imx_watchdog.c.
Commit 623d96e8("imx: wdog: correct wcr register settings") only
revelead the endianness problem on LS102x.

In order to fix the reset hang, introduce a reset_cpu() implementation that
is specific for ls102x, which accesses the watchdog WCR register in big-endian
format. All that is required to reset LS102x is to clear the SRS bit.

This approach is a temporary workaround to avoid a regression for LS102x
in the 2015.10 release. The proper fix is to make the watchdog driver
endian-aware, so that it can work for i.MX, Vybrid and LS102x.

Reported-by: default avatarSinan Akman <sinan@writeme.com>
Tested-by: default avatarSinan Akman <sinan@writeme.com>
Reviewed-by: default avatarWolfgang Denk <wd@denx.de>
Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
f861f51c
History