MX5: factor out boot cause funciton to common code

factor out boot cause function to common code to avoid
the duplicate code in each board support package

Signed-off-by: Jason Liu <jason.hui@linaro.org>
This commit is contained in:
Jason Liu 2011-04-20 00:47:04 +00:00 committed by Albert ARIBAUD
parent a770975ab6
commit 7517a793f0

View file

@ -77,6 +77,33 @@ u32 get_cpu_rev(void)
return system_rev; return system_rev;
} }
static char *get_reset_cause(void)
{
u32 cause;
struct src *src_regs = (struct src *)SRC_BASE_ADDR;
cause = readl(&src_regs->srsr);
writel(cause, &src_regs->srsr);
switch (cause) {
case 0x00001:
return "POR";
case 0x00004:
return "CSU";
case 0x00008:
return "IPP USER";
case 0x00010:
return "WDOG";
case 0x00020:
return "JTAG HIGH-Z";
case 0x00040:
return "JTAG SW";
case 0x10000:
return "WARM BOOT";
default:
return "unknown reset";
}
}
#if defined(CONFIG_DISPLAY_CPUINFO) #if defined(CONFIG_DISPLAY_CPUINFO)
int print_cpuinfo(void) int print_cpuinfo(void)
@ -89,6 +116,7 @@ int print_cpuinfo(void)
(cpurev & 0x000F0) >> 4, (cpurev & 0x000F0) >> 4,
(cpurev & 0x0000F) >> 0, (cpurev & 0x0000F) >> 0,
mxc_get_clock(MXC_ARM_CLK) / 1000000); mxc_get_clock(MXC_ARM_CLK) / 1000000);
printf("Reset cause: %s\n", get_reset_cause());
return 0; return 0;
} }
#endif #endif