diff options
author | Ye.Li <B37916@freescale.com> | 2014-06-11 15:34:49 +0800 |
---|---|---|
committer | Peng Fan <Peng.Fan@freescale.com> | 2015-04-29 14:43:08 +0800 |
commit | c0e9828414fd7292ec5a84cf890d76ed675e56f0 (patch) | |
tree | f8e82425ed721f2657d083f712d0985ceef7795d /arch | |
parent | b5e1b393192099e91c5cb75b69291c87eacb9f60 (diff) | |
download | u-boot-imx-c0e9828414fd7292ec5a84cf890d76ed675e56f0.zip u-boot-imx-c0e9828414fd7292ec5a84cf890d76ed675e56f0.tar.gz u-boot-imx-c0e9828414fd7292ec5a84cf890d76ed675e56f0.tar.bz2 |
ENGR00315894-55 iMX6SX: add debug monitor support
Debug monitor will print out last failed AXI access info when
system reboot is caused by AXI access failure, only works when
debug monitor is enabled.
Enable this module on i.MX6SX.
Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Ye.Li <B37916@freescale.com>
(cherry picked from commit df6ac8531d498021ed379c74fc1847bd2cec7179)
Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Conflicts:
arch/arm/include/asm/arch-mx6/imx-regs.h
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/imx-common/cpu.c | 12 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-mx6/imx-regs.h | 13 |
2 files changed, 25 insertions, 0 deletions
diff --git a/arch/arm/imx-common/cpu.c b/arch/arm/imx-common/cpu.c index 67c4197..0a7d476 100644 --- a/arch/arm/imx-common/cpu.c +++ b/arch/arm/imx-common/cpu.c @@ -143,6 +143,10 @@ const char *get_imx_type(u32 imxtype) int print_cpuinfo(void) { u32 cpurev; +#if defined(CONFIG_DBG_MONITOR) + struct dbg_monitor_regs *dbg = + (struct dbg_monitor_regs *)DEBUG_MONITOR_BASE_ADDR; +#endif #if defined(CONFIG_MX6) && defined(CONFIG_IMX6_THERMAL) struct udevice *thermal_dev; @@ -171,6 +175,14 @@ int print_cpuinfo(void) } #endif +#if defined(CONFIG_DBG_MONITOR) + if (readl(&dbg->snvs_addr)) + printf("DBG snvs regs addr 0x%x, data 0x%x, info 0x%x\n", + readl(&dbg->snvs_addr), + readl(&dbg->snvs_data), + readl(&dbg->snvs_info)); +#endif + printf("Reset cause: %s\n", get_reset_cause()); return 0; } diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h index ecf4c30..e08253c 100644 --- a/arch/arm/include/asm/arch-mx6/imx-regs.h +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h @@ -867,6 +867,19 @@ struct pwm_regs { u32 cnr; }; +struct dbg_monitor_regs { + u32 ctrl[4]; /* Control */ + u32 master_en[4]; /* Master enable */ + u32 irq[4]; /* IRQ */ + u32 trap_addr_low[4]; /* Trap address low */ + u32 trap_addr_high[4]; /* Trap address high */ + u32 trap_id[4]; /* Trap ID */ + u32 snvs_addr[4]; /* SNVS address */ + u32 snvs_data[4]; /* SNVS data */ + u32 snvs_info[4]; /* SNVS info */ + u32 version[4]; /* Version */ +}; + /* eLCDIF controller registers */ struct mxs_lcdif_regs { u32 hw_lcdif_ctrl; /* 0x00 */ |