summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorYe.Li <B37916@freescale.com>2014-06-11 15:34:49 +0800
committerPeng Fan <Peng.Fan@freescale.com>2015-04-29 14:43:08 +0800
commitc0e9828414fd7292ec5a84cf890d76ed675e56f0 (patch)
treef8e82425ed721f2657d083f712d0985ceef7795d /arch
parentb5e1b393192099e91c5cb75b69291c87eacb9f60 (diff)
downloadu-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.c12
-rw-r--r--arch/arm/include/asm/arch-mx6/imx-regs.h13
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 */