Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b6493fd authored by Aparna Das's avatar Aparna Das
Browse files

memdump_v2: add support to dump miscellaneous registers



Register for dumping 4KB of memory to which SDI can dump
miscellaneous registers which can be parsed in case of
device crash for memory dump v2.

Change-Id: Ic2f419b8203d4163b7baeae91ea1dd709cf80657
Signed-off-by: default avatarAparna Das <adas@codeaurora.org>
parent 5bd130f8
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -18,6 +18,43 @@
#include <linux/slab.h>
#include <soc/qcom/memory_dump.h>

#define MISC_DUMP_DATA_LEN		4096

void register_misc_dump(void)
{
	void *misc_buf;
	int ret;
	struct msm_dump_entry dump_entry;
	struct msm_dump_data *misc_data;

	if (MSM_DUMP_MAJOR(msm_dump_table_version()) > 1) {
		misc_data = kzalloc(sizeof(struct msm_dump_data), GFP_KERNEL);
		if (!misc_data) {
			pr_err("misc dump data structure allocation failed\n");
			return;
		}
		misc_buf = kzalloc(MISC_DUMP_DATA_LEN, GFP_KERNEL);
		if (!misc_buf) {
			pr_err("misc buffer space allocation failed\n");
			goto err0;
		}
		misc_data->addr = virt_to_phys(misc_buf);
		misc_data->len = MISC_DUMP_DATA_LEN;
		dump_entry.id = MSM_DUMP_DATA_MISC;
		dump_entry.addr = virt_to_phys(misc_data);
		ret = msm_dump_data_register(MSM_DUMP_TABLE_APPS, &dump_entry);
		if (ret) {
			pr_err("Registering misc dump region failed\n");
			goto err1;
		}
		return;
err1:
		kfree(misc_buf);
err0:
		kfree(misc_data);
	}
}

static void __init common_log_register_log_buf(void)
{
	char **log_bufp;
@@ -84,6 +121,7 @@ static void __init common_log_register_log_buf(void)
static int __init msm_common_log_init(void)
{
	common_log_register_log_buf();
	register_misc_dump();
	return 0;
}
late_initcall(msm_common_log_init);
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ enum msm_dump_data_ids {
	MSM_DUMP_DATA_L2_CACHE = 0xC0,
	MSM_DUMP_DATA_L3_CACHE = 0xD0,
	MSM_DUMP_DATA_OCMEM = 0xE0,
	MSM_DUMP_DATA_MISC = 0xE8,
	MSM_DUMP_DATA_TMC_ETF = 0xF0,
	MSM_DUMP_DATA_TMC_REG = 0x100,
	MSM_DUMP_DATA_LOG_BUF = 0x110,