• 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
..
arc Loading commit data...
arm Loading commit data...
avr32 Loading commit data...
blackfin Loading commit data...
m68k Loading commit data...
microblaze Loading commit data...
mips Loading commit data...
nds32 Loading commit data...
nios2 Loading commit data...
openrisc Loading commit data...
powerpc Loading commit data...
sandbox Loading commit data...
sh Loading commit data...
sparc Loading commit data...
x86 Loading commit data...
.gitignore Loading commit data...
Kconfig Loading commit data...