From: Liu Hui-R64343 <r64...@freescale.com> factor out boot cause funciton to common code to avoid the duplicate code in each board support package
Signed-off-by: Jason Liu <r64...@freescale.com> --- arch/arm/cpu/armv7/mx5/soc.c | 18 ++++++++++++++++++ arch/arm/include/asm/arch-mx5/sys_proto.h | 1 + 2 files changed, 19 insertions(+), 0 deletions(-) diff --git a/arch/arm/cpu/armv7/mx5/soc.c b/arch/arm/cpu/armv7/mx5/soc.c index 09500b3..dddda08 100644 --- a/arch/arm/cpu/armv7/mx5/soc.c +++ b/arch/arm/cpu/armv7/mx5/soc.c @@ -77,6 +77,24 @@ u32 get_cpu_rev(void) return system_rev; } +char *get_reset_cause(void) +{ + u32 cause; + struct src *src_regs = (struct src *)SRC_BASE_ADDR; + + cause = readl(&src_regs->srsr); + switch (cause) { + case 0x0001: + return "POR"; + case 0x0009: + return "RST"; + case 0x0010: + case 0x0011: + return "WDOG"; + default: + return "unknown reset"; + } +} #if defined(CONFIG_DISPLAY_CPUINFO) int print_cpuinfo(void) diff --git a/arch/arm/include/asm/arch-mx5/sys_proto.h b/arch/arm/include/asm/arch-mx5/sys_proto.h index f687503..00c2c5d 100644 --- a/arch/arm/include/asm/arch-mx5/sys_proto.h +++ b/arch/arm/include/asm/arch-mx5/sys_proto.h @@ -27,5 +27,6 @@ u32 get_cpu_rev(void); #define is_soc_rev(rev) ((get_cpu_rev() & 0xFF) - rev) void sdelay(unsigned long); +char *get_reset_cause(void); #endif -- 1.7.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot