summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajagopala V <rajagopala.v@stericsson.com>2011-12-06 15:58:30 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:02:38 +0200
commitd6aab35148671b30866b978b19a4e958bb918bdd (patch)
tree01d8483ec86e2edbcaa0c29f22f1880620f97f6a
parent96a1f7c598c9d7fdb0effe2ad93ff29250505010 (diff)
u5500: Save prcmu registers on crash
Support for saving u5500 prcmu registers to kernel system memory during crash. ST-Ericsson ID: 367366 ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson Linux next: NA Change-Id: I205e1bd624b9c06dc7e9d070cf92c0e5ae8c428f Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/41159 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Johan BJORNSTEDT <johan.bjornstedt@stericsson.com> Reviewed-by: Vijaya Kumar K-1 <vijay.kilari@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/dbx500_dump.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/arch/arm/mach-ux500/dbx500_dump.c b/arch/arm/mach-ux500/dbx500_dump.c
index ca2691d204b..49d1711f6ff 100644
--- a/arch/arm/mach-ux500/dbx500_dump.c
+++ b/arch/arm/mach-ux500/dbx500_dump.c
@@ -14,6 +14,7 @@
#include <mach/hardware.h>
#include <mach/db8500-regs.h>
+#include <mach/db5500-regs.h>
struct dbx500_dump_info {
char *name;
@@ -57,7 +58,31 @@ static struct dbx500_dump_info db8500_dump[] = {
};
static struct dbx500_dump_info db5500_dump[] = {
- {},
+ {
+ .name = "prcmu_tcdm",
+ .phy_addr = U5500_PRCMU_TCDM_BASE,
+ .size = 0x5000,
+ },
+ {
+ .name = "prcmu_gpio",
+ .phy_addr = U5500_GPIO2_BASE,
+ .size = 0x1000,
+ },
+ {
+ .name = "prcmu_msp1",
+ .phy_addr = U5500_MSP1_BASE,
+ .size = 0x1000,
+ },
+ {
+ .name = "prcmu_sec",
+ .phy_addr = (U5500_PRCMU_BASE + 0x1000),
+ .size = 0x1000,
+ },
+ {
+ .name = "prcmu_unsec",
+ .phy_addr = U5500_PRCMU_BASE,
+ .size = 0x1000,
+ },
};
static struct dbx500_dump_info *dbx500_dump;
@@ -83,7 +108,8 @@ static void __init init_io_addresses(void)
int i;
for (i = 0; i < dbx500_dump_size; i++)
- dbx500_dump[i].io_addr = __io_address(dbx500_dump[i].phy_addr);
+ dbx500_dump[i].io_addr = ioremap(dbx500_dump[i].phy_addr,
+ dbx500_dump[i].size);
}
static struct notifier_block die_notifier = {