|
@@ -13,6 +13,7 @@
|
|
|
|
|
|
#include <mach/regs-ost.h>
|
|
|
#include <mach/reset.h>
|
|
|
+#include <mach/smemc.h>
|
|
|
|
|
|
unsigned int reset_status;
|
|
|
EXPORT_SYMBOL(reset_status);
|
|
@@ -81,6 +82,12 @@ static void do_hw_reset(void)
|
|
|
writel_relaxed(OSSR_M3, OSSR);
|
|
|
/* ... in 100 ms */
|
|
|
writel_relaxed(readl_relaxed(OSCR) + 368640, OSMR3);
|
|
|
+ /*
|
|
|
+ * SDRAM hangs on watchdog reset on Marvell PXA270 (erratum 71)
|
|
|
+ * we put SDRAM into self-refresh to prevent that
|
|
|
+ */
|
|
|
+ while (1)
|
|
|
+ writel_relaxed(MDREFR_SLFRSH, MDREFR);
|
|
|
}
|
|
|
|
|
|
void pxa_restart(enum reboot_mode mode, const char *cmd)
|
|
@@ -104,4 +111,3 @@ void pxa_restart(enum reboot_mode mode, const char *cmd)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-
|