ARM: pxa: prevent PXA270 occasional reboot freezes
authorSergei Ianovich <ynvich@gmail.com>
Tue, 17 Dec 2013 01:03:40 +0000 (05:03 +0400)
committerMarek Vasut <marex@denx.de>
Wed, 18 Dec 2013 15:00:37 +0000 (16:00 +0100)
Erratum 71 of PXA270M Processor Family Specification Update
(April 19, 2010) explains that watchdog reset time is just
8us insead of 10ms in EMTS.

If SDRAM is not reset, it causes memory bus congestion and
the device hangs.

We put SDRAM in selfresh mode before watchdog reset, removing
potential freezes.

Signed-off-by: Sergei Ianovich <ynvich@gmail.com>
CC: Marek Vasut <marex@denx.de>
arch/arm/cpu/pxa/pxa2xx.c

index c9a7d45392f3cb92f299a6d3cb6f62261d308656..7e861e26dba7e1baa009e0bf85459ae068eb47b1 100644 (file)
@@ -279,6 +279,7 @@ void reset_cpu(ulong ignored)
        tmp = readl(OSCR);
        tmp += 0x1000;
        writel(tmp, OSMR3);
+       writel(MDREFR_SLFRSH, MDREFR);
 
        for (;;)
                ;