• Fabio Estevam's avatar
    ls102xa: Fix reset hang · f861f51c
    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
Name
Last commit
Last update
..
bios_emulator Loading commit data...
block Loading commit data...
bootcount Loading commit data...
clk Loading commit data...
core Loading commit data...
cpu Loading commit data...
crypto Loading commit data...
ddr Loading commit data...
demo Loading commit data...
dfu Loading commit data...
dma Loading commit data...
fpga Loading commit data...
gpio Loading commit data...
hwmon Loading commit data...
i2c Loading commit data...
input Loading commit data...
led Loading commit data...
memory Loading commit data...
misc Loading commit data...
mmc Loading commit data...
mtd Loading commit data...
net Loading commit data...
pci Loading commit data...
pcmcia Loading commit data...
pinctrl Loading commit data...
power Loading commit data...
pwm Loading commit data...
qe Loading commit data...
ram Loading commit data...
rtc Loading commit data...
serial Loading commit data...
soc Loading commit data...
sound Loading commit data...
spi Loading commit data...
thermal Loading commit data...
tpm Loading commit data...
twserial Loading commit data...
usb Loading commit data...
video Loading commit data...
watchdog Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...