[U-Boot] [ANN] U-Boot v2015.10-rc4 released

Fabio Estevam festevam at gmail.com
Wed Sep 30 20:56:19 CEST 2015


On Wed, Sep 30, 2015 at 3:33 PM, Sinan Akman <sinan at writeme.com> wrote:

>   Nope, AFAICS it doesn't make any difference.

Ok, the issue is due to endianness: on LS1021 the watchdog is
big-endian, so that's why we can't use clrsetbits_le16().

Please check:
http://git.freescale.com/git/cgit.cgi/layerscape/ls1021a/linux.git/commit/?id=b53a344d20f6ffdc383d990a9636efb53ce272a9

What about this?

--- a/drivers/watchdog/imx_watchdog.c
+++ b/drivers/watchdog/imx_watchdog.c
@@ -54,8 +54,11 @@ void hw_watchdog_init(void)
 void reset_cpu(ulong addr)
 {
        struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
+       int reg;

-       clrsetbits_le16(&wdog->wcr, 0, WCR_WDE);
+       reg = readw(&wdog->wcr);
+       reg |= WCR_WDE;
+       writew(reg, &wdog->wcr);

        writew(0x5555, &wdog->wsr);
        writew(0xaaaa, &wdog->wsr);     /* load minimum 1/2 second timeout */


More information about the U-Boot mailing list