summaryrefslogtreecommitdiff
path: root/arch/arm/cpu
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2015-03-18 07:07:43 -0400
committerTom Rini <trini@konsulko.com>2015-03-18 07:07:43 -0400
commita538ae997ae4cb375ba5362b50ba3f5b35f9519b (patch)
tree3f709a9137f1af222c125e17a0075290dfe740f8 /arch/arm/cpu
parent8c8dc4c61518124eb35f4dd9d8466378ba247e9c (diff)
parentd5eb6dcf44f5c889dd80c81cf3b06385a27f8baf (diff)
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
Diffstat (limited to 'arch/arm/cpu')
-rw-r--r--arch/arm/cpu/armv7/mx6/soc.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
index ef029722b4..dd34138896 100644
--- a/arch/arm/cpu/armv7/mx6/soc.c
+++ b/arch/arm/cpu/armv7/mx6/soc.c
@@ -21,7 +21,6 @@
#include <stdbool.h>
#include <asm/arch/mxc_hdmi.h>
#include <asm/arch/crm_regs.h>
-#include <asm/bootm.h>
#include <dm.h>
#include <imx_thermal.h>
@@ -289,6 +288,22 @@ static void set_preclk_from_osc(void)
}
#endif
+#define SRC_SCR_WARM_RESET_ENABLE 0
+
+static void init_src(void)
+{
+ struct src *src_regs = (struct src *)SRC_BASE_ADDR;
+ u32 val;
+
+ /*
+ * force warm reset sources to generate cold reset
+ * for a more reliable restart
+ */
+ val = readl(&src_regs->scr);
+ val &= ~(1 << SRC_SCR_WARM_RESET_ENABLE);
+ writel(val, &src_regs->scr);
+}
+
int arch_cpu_init(void)
{
init_aips();
@@ -323,6 +338,8 @@ int arch_cpu_init(void)
mxs_dma_init();
#endif
+ init_src();
+
return 0;
}