From b82c85fc285a6fb367301de727a2a0c0f6856555 Mon Sep 17 00:00:00 2001 From: Neeraj Upadhyay Date: Mon, 16 Sep 2019 09:59:48 +0530 Subject: [PATCH] soc: qcom: pil: Add property to change minidump ELF format Add a new property, to dump minidump ELF in ELF32 format, as some subsystems do not support the default format, which is ELF64. Change-Id: I87bc46097b4dfc0be44f0904823c5e88c476c86b Signed-off-by: Neeraj Upadhyay Signed-off-by: Mukesh Ojha --- drivers/soc/qcom/peripheral-loader.c | 9 ++++++++- drivers/soc/qcom/peripheral-loader.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/peripheral-loader.c b/drivers/soc/qcom/peripheral-loader.c index 6e15e3bd9f7a..08d1dc3c3f3c 100644 --- a/drivers/soc/qcom/peripheral-loader.c +++ b/drivers/soc/qcom/peripheral-loader.c @@ -412,7 +412,11 @@ static int pil_do_minidump(struct pil_desc *desc, void *ramdump_dev) goto seg_mapping_fail; } - ret = do_minidump(ramdump_dev, ramdump_segs, ss_valid_seg_cnt); + if (desc->minidump_as_elf32) + ret = do_elf_ramdump(ramdump_dev, ramdump_segs, + ss_valid_seg_cnt); + else + ret = do_minidump(ramdump_dev, ramdump_segs, ss_valid_seg_cnt); if (ret) pil_err(desc, "%s: Minidump collection failed for subsys %s rc:%d\n", __func__, desc->name, ret); @@ -1624,6 +1628,9 @@ int pil_desc_init(struct pil_desc *desc) if (!desc->unmap_fw_mem) desc->unmap_fw_mem = unmap_fw_mem; + desc->minidump_as_elf32 = of_property_read_bool( + ofnode, "qcom,minidump-as-elf32"); + return 0; err_parse_dt: ida_simple_remove(&pil_ida, priv->id); diff --git a/drivers/soc/qcom/peripheral-loader.h b/drivers/soc/qcom/peripheral-loader.h index 137341e19409..57180c739f17 100644 --- a/drivers/soc/qcom/peripheral-loader.h +++ b/drivers/soc/qcom/peripheral-loader.h @@ -63,6 +63,7 @@ struct pil_desc { int *aux_minidump_ids; int num_aux_minidump_ids; u32 extra_size; + bool minidump_as_elf32; }; /**