#define DSS_OFFSET_PANIC_STAT (0x500)
#define DSS_OFFSET_CORE_LAST_PC (0x600)
+/* S5P_VA_SS_BASE + 0x700 -- 0x8FF is reserved */
+#define DSS_OFFSET_LINUX_BANNER (0x700)
+
+#define DSS_OFFSET_KERNEL_LOG (0x900)
+#define DSS_OFFSET_PLATFORM_LOG (0x904)
+#define DSS_OFFSET_KERNEL_EVENT (0x908)
+
/* S5P_VA_SS_BASE + 0xC00 -- 0xFFF is reserved */
#define DSS_OFFSET_PANIC_STRING (0xC00)
#define DSS_OFFSET_SPARE_BASE (DSS_HEADER_TOTAL_SZ)
static int __init dbg_snapshot_init_value(void)
{
int val = dbg_snapshot_get_debug_level_reg();
+ struct dbg_snapshot_item *item;
dbg_snapshot_set_debug_level(val);
dbg_snapshot_scratch_reg(DSS_SIGN_SCRATCH);
+ /* copy linux_banner, physical address of
+ * kernel log / platform log / kevents to DSS header */
+ strncpy(dbg_snapshot_get_base_vaddr() + DSS_OFFSET_LINUX_BANNER,
+ linux_banner, strlen(linux_banner));
+
+ item = &dss_items[dss_desc.log_kernel_num];
+ __raw_writel(item->entry.paddr,
+ dbg_snapshot_get_base_vaddr() + DSS_OFFSET_KERNEL_LOG);
+
+ item = &dss_items[dss_desc.log_platform_num];
+ __raw_writel(item->entry.paddr,
+ dbg_snapshot_get_base_vaddr() + DSS_OFFSET_PLATFORM_LOG);
+
+ item = &dss_items[dss_desc.kevents_num];
+ __raw_writel(item->entry.paddr,
+ dbg_snapshot_get_base_vaddr() + DSS_OFFSET_KERNEL_EVENT);
+
return 0;
}