msm: board-qrd7627a: Enabling RTB for 7627a and 8625.
Enabling RTB(Register Trace Buffer) will help in taking RTB logs. RTB
implements uncached logging of particular events (like readl/writel,
printk, hotplug etc). RTB is useful because it provides a
rough indication of the last events that occured on each core prior to
a crash/reset.
Change-Id: I7b26e2c2b8d012028beaa3d1ed36f85603ad411f
Signed-off-by: Utsab Bose <ubose@codeaurora.org>
(cherry picked from commit 9a341175190201c02062d789a79aa789cb7544d9)
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-msm7x27a.c b/arch/arm/mach-msm/board-msm7x27a.c
index b67d982..91f1aae 100644
--- a/arch/arm/mach-msm/board-msm7x27a.c
+++ b/arch/arm/mach-msm/board-msm7x27a.c
@@ -726,6 +726,30 @@
},
};
+#ifdef CONFIG_MSM_RTB
+static struct msm_rtb_platform_data msm7x27a_rtb_pdata = {
+ .size = SZ_1M,
+};
+
+static int __init msm_rtb_set_buffer_size(char *p)
+{
+ int s;
+
+ s = memparse(p, NULL);
+ msm7x27a_rtb_pdata.size = ALIGN(s, SZ_4K);
+ return 0;
+}
+early_param("msm_rtb_size", msm_rtb_set_buffer_size);
+
+struct platform_device msm7x27a_rtb_device = {
+ .name = "msm_rtb",
+ .id = -1,
+ .dev = {
+ .platform_data = &msm7x27a_rtb_pdata,
+ },
+};
+#endif
+
#define ETH_FIFO_SEL_GPIO 49
static void msm7x27a_cfg_smsc911x(void)
{
@@ -820,6 +844,9 @@
&asoc_msm_dai1,
&msm_batt_device,
&msm_adc_device,
+#ifdef CONFIG_MSM_RTB
+ &msm7x27a_rtb_device,
+#endif
#ifdef CONFIG_ION_MSM
&ion_dev,
#endif
@@ -938,6 +965,17 @@
},
};
+#ifdef CONFIG_MSM_RTB
+static void __init reserve_rtb_memory(void)
+{
+ msm7x27a_reserve_table[MEMTYPE_EBI1].size += msm7x27a_rtb_pdata.size;
+}
+#else
+static void __init reserve_rtb_memory(void)
+{
+}
+#endif
+
#ifdef CONFIG_ANDROID_PMEM
#ifndef CONFIG_MSM_MULTIMEDIA_USE_ION
static struct android_pmem_platform_data *pmem_pdata_array[] __initdata = {
@@ -1007,6 +1045,7 @@
reserve_pmem_memory();
size_ion_devices();
reserve_ion_memory();
+ reserve_rtb_memory();
}
static int msm7x27a_paddr_to_memtype(unsigned int paddr)