mx6: soc: Switch to cold reset
Disable the warm reset and enable the cold reset for a more reliable restart ('reset'). This is taken from the Linux kernel, see imx_src_init() in arch/arm/mach-imx/src.c. Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
This commit is contained in:
parent
0c1842a01f
commit
9d16c52f62
@ -288,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();
|
||||
@ -322,6 +338,8 @@ int arch_cpu_init(void)
|
||||
mxs_dma_init();
|
||||
#endif
|
||||
|
||||
init_src();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user