Skip to content
Snippets Groups Projects
Commit 25d8e1bb authored by Fabio Estevam's avatar Fabio Estevam Committed by Albert ARIBAUD
Browse files

MX31: Introduce get_reset_cause()


Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Acked-by: default avatarDetlev Zundel <dzu@denx.de>
parent 4adaf9bf
No related branches found
No related tags found
No related merge requests found
...@@ -132,11 +132,38 @@ char *get_cpu_rev(void) ...@@ -132,11 +132,38 @@ char *get_cpu_rev(void)
return "unknown"; return "unknown";
} }
char *get_reset_cause(void)
{
/* read RCSR register from CCM module */
struct clock_control_regs *ccm =
(struct clock_control_regs *)CCM_BASE;
u32 cause = readl(&ccm->rcsr) & 0x07;
switch (cause) {
case 0x0000:
return "POR";
break;
case 0x0001:
return "RST";
break;
case 0x0002:
return "WDOG";
break;
case 0x0006:
return "JTAG";
break;
default:
return "unknown reset";
}
}
#if defined(CONFIG_DISPLAY_CPUINFO) #if defined(CONFIG_DISPLAY_CPUINFO)
int print_cpuinfo (void) int print_cpuinfo (void)
{ {
printf("CPU: Freescale i.MX31 rev %s at %d MHz\n", printf("CPU: Freescale i.MX31 rev %s at %d MHz.",
get_cpu_rev(), mx31_get_mcu_main_clk() / 1000000); get_cpu_rev(), mx31_get_mcu_main_clk() / 1000000);
printf("Reset cause: %s\n", get_reset_cause());
return 0; return 0;
} }
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment