From 91292d8e2db61cd9028e1c2fa02a9151a0e0e98c Mon Sep 17 00:00:00 2001 From: Rohit Agarwal Date: Mon, 29 Jan 2024 12:30:12 +0530 Subject: [PATCH] soc: qcom: msm_minidump: Configurable Encryption support Some regions registered cannot be encrypted in minidump due to some HW limitations on sdxlemur. To work around this, make the encryption of minidump regions configurable. Change-Id: Ibd0899ecaacfda4bd8f05ce0b8eef05c731c18e3 Signed-off-by: Rohit Agarwal Signed-off-by: Sayan Dey --- arch/arm/configs/vendor/sdxlemur.config | 1 + drivers/soc/qcom/Kconfig | 10 ++++++++++ drivers/soc/qcom/msm_minidump.c | 9 +++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/arch/arm/configs/vendor/sdxlemur.config b/arch/arm/configs/vendor/sdxlemur.config index a816f4605758..59549a3b7aae 100644 --- a/arch/arm/configs/vendor/sdxlemur.config +++ b/arch/arm/configs/vendor/sdxlemur.config @@ -513,3 +513,4 @@ CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder" # CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set CONFIG_IPC_LOG_MINIDUMP_BUFFERS=16 +# CONFIG_QCOM_MINIDUMP_ENCRYPT is not set diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 145b60079b23..33674ebaf5da 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -645,6 +645,16 @@ config MINIDUMP_MAX_ENTRIES This defines maximum number of entries to be allocated for application subsytem in Minidump table. +config QCOM_MINIDUMP_ENCRYPT + bool "QCOM Minidump Encryption Required" + depends on QCOM_MINIDUMP + default y + help + This adds a support to decide whether the regions in minidump + table should be encrypted or not. By default, encryption is done + by the boot firmware and the decision for encryption is taken by + the subsystems. + config QCOM_MICRODUMP tristate "Qualcomm Technologies, Inc. Microdump Support" depends on MSM_SUBSYSTEM_RESTART diff --git a/drivers/soc/qcom/msm_minidump.c b/drivers/soc/qcom/msm_minidump.c index 4b4b81647688..0419749a0a17 100644 --- a/drivers/soc/qcom/msm_minidump.c +++ b/drivers/soc/qcom/msm_minidump.c @@ -570,8 +570,13 @@ static int __init msm_minidump_init(void) minidump_table.revision = md_global_toc->md_revision; md_ss_toc = &md_global_toc->md_ss_toc[MD_SS_HLOS_ID]; - md_ss_toc->encryption_status = MD_SS_ENCR_NONE; - md_ss_toc->encryption_required = MD_SS_ENCR_REQ; + if (IS_ENABLED(CONFIG_QCOM_MINIDUMP_ENCRYPT)) { + md_ss_toc->encryption_status = MD_SS_ENCR_NONE; + md_ss_toc->encryption_required = MD_SS_ENCR_REQ; + } else { + md_ss_toc->encryption_status = MD_SS_ENCR_DONE; + md_ss_toc->encryption_required = MD_SS_ENCR_NOTREQ; + } minidump_table.md_ss_toc = md_ss_toc; minidump_table.md_regions = kzalloc((MAX_NUM_ENTRIES *