From patchwork Wed Mar 1 09:55:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 13155813 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC245C64EC7 for ; Wed, 1 Mar 2023 10:31:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229659AbjCAKbp (ORCPT ); Wed, 1 Mar 2023 05:31:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229793AbjCAKbk (ORCPT ); Wed, 1 Mar 2023 05:31:40 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3ABAA3BD84; Wed, 1 Mar 2023 02:31:33 -0800 (PST) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3212nIJV023915; Wed, 1 Mar 2023 09:57:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=NB0Aduk84/3OmNQrNgR+C215mUZdU6JD2zPgP4V56jM=; b=fYJzNcou9ZKtwIMSyuSM2FEVyawmwz4rXPoj3zfIPi31h+/NK1qDfGCjhcQJ/umSRige 7b+0kdPHBHVXxmGf/mrK8SyJ7e1vDKZXm4sg88F+AP1U6ihKCD//zoHYHI2Yhezj41wH FR8cIxmD0q6h2ORfpjR5lZQC3aRMfKQEswdmvz7hwjcef8C5tOYo0442QIkckzyPfyvp 8ufz++J5jmSfg9G6AYUipSUcYPqqgfJYoAjmJOgxxBqVIX4WkifxMAlkA/7f3UDkLwAW CwnrH8BfZWQQTFMkLxDAzm+54gmcf0r4qnnA1qX0zcSP0T1ggyv6D0fQAu0eebJ5pZUb bg== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p1n0tjjxd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:00 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3219uxBV007188 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:56:59 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 1 Mar 2023 01:56:56 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 1/4] firmware: qcom_scm: Clear download bit during reboot Date: Wed, 1 Mar 2023 15:25:52 +0530 Message-ID: <1677664555-30191-2-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: IZs5N6I4OA1XxAP578gFv9GRGzT02Cs3 X-Proofpoint-GUID: IZs5N6I4OA1XxAP578gFv9GRGzT02Cs3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 bulkscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org During normal restart of a system download bit should be cleared irrespective of whether download mode is set or not. Signed-off-by: Mukesh Ojha --- Changes in v2: - No change drivers/firmware/qcom_scm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index cdbfe54..51eb853 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -1418,8 +1418,7 @@ static int qcom_scm_probe(struct platform_device *pdev) static void qcom_scm_shutdown(struct platform_device *pdev) { /* Clean shutdown, disable download mode to allow normal restart */ - if (download_mode) - qcom_scm_set_download_mode(false); + qcom_scm_set_download_mode(false); } static const struct of_device_id qcom_scm_dt_match[] = { From patchwork Wed Mar 1 09:55:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 13155812 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D904C64ED6 for ; Wed, 1 Mar 2023 10:30:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229752AbjCAKaE (ORCPT ); Wed, 1 Mar 2023 05:30:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229486AbjCAKaD (ORCPT ); Wed, 1 Mar 2023 05:30:03 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46A8B2CC47; Wed, 1 Mar 2023 02:30:00 -0800 (PST) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3215PqaM032331; Wed, 1 Mar 2023 09:57:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=cJOvygwa3MxthitwhxT0SKDN9LAhp1SoHdP0PoFL/28=; b=lEFxQ+vpnSxlzX9V92IV5Z9Bwemz/pNe2aG0b8RNuBqtJx7XJ7TA/9VCeBzkB1+KCYuu yI8spWnoEiKy2M9LCQqCdXzGq0E934NDT/gRDtpuo/5Nr4xmY80c68z3DLt/yUjtAxdP KOlAN+PPFnxz+sFanaP/ELMEZ/eX7T2jOR2SEWVnpdCGJS5CQysyg9h/Gsz0RMSCtvNt nQcAkYrtpvBFN+SI2/GmZ0y9nW5C3S5Ld+unJA+LBUAg+bnIqIxyLoffKqGDmhHqj+Ed rRf6GLBx5kBP5aBqeglH3SwBrDasROfIk7FHmk6SMEetADutacLbX8Ewwt3QZ+8P4eu9 gg== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p20j2gw32-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:02 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3219v1nS002591 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:57:01 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 1 Mar 2023 01:56:59 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 2/4] firmware: scm: Modify only the DLOAD bit in TCSR register for download mode Date: Wed, 1 Mar 2023 15:25:53 +0530 Message-ID: <1677664555-30191-3-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Dj_aXoQqxv6q8YRs2SB2RLK0SUdS_Yah X-Proofpoint-GUID: Dj_aXoQqxv6q8YRs2SB2RLK0SUdS_Yah X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 spamscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org CrashDump collection is based on the DLOAD bit of TCSR register. To retain other bits, we read the register and modify only the DLOAD bit as the other bits have their own significance. Originally-by: Poovendhan Selvaraj Signed-off-by: Mukesh Ojha --- Changes in v2: - Addressed comment made by Bjorn. - Added download mask from patch 3 to this. drivers/firmware/qcom_scm.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 51eb853..c9f1fad 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -27,6 +27,8 @@ module_param(download_mode, bool, 0); #define SCM_HAS_IFACE_CLK BIT(1) #define SCM_HAS_BUS_CLK BIT(2) +#define QCOM_DOWNLOAD_MODE_MASK 0x30 + struct qcom_scm { struct device *dev; struct clk *core_clk; @@ -419,6 +421,7 @@ static void qcom_scm_set_download_mode(bool enable) { bool avail; int ret = 0; + u32 val; avail = __qcom_scm_is_call_available(__scm->dev, QCOM_SCM_SVC_BOOT, @@ -426,8 +429,18 @@ static void qcom_scm_set_download_mode(bool enable) if (avail) { ret = __qcom_scm_set_dload_mode(__scm->dev, enable); } else if (__scm->dload_mode_addr) { - ret = qcom_scm_io_writel(__scm->dload_mode_addr, - enable ? QCOM_SCM_BOOT_SET_DLOAD_MODE : 0); + ret = qcom_scm_io_readl(__scm->dload_mode_addr, &val); + if (ret) { + dev_err(__scm->dev, + "failed to read dload mode address value: %d\n", ret); + return; + } + + val &= ~QCOM_DOWNLOAD_MODE_MASK; + if (enable) + val |= QCOM_SCM_BOOT_SET_DLOAD_MODE; + + ret = qcom_scm_io_writel(__scm->dload_mode_addr, val); } else { dev_err(__scm->dev, "No available mechanism for setting download mode\n"); From patchwork Wed Mar 1 09:55:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 13155729 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84A55C64ED6 for ; Wed, 1 Mar 2023 09:58:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229861AbjCAJ6o (ORCPT ); Wed, 1 Mar 2023 04:58:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229963AbjCAJ6e (ORCPT ); Wed, 1 Mar 2023 04:58:34 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6817A24C9D; Wed, 1 Mar 2023 01:58:09 -0800 (PST) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3216cMNk023643; Wed, 1 Mar 2023 09:57:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=+FZpNfLkdDyqzXjB0eX1M8JOxdfTOmA1cb8JAzLa99k=; b=WuIgQgno2nNL01qXMDjmXqPbspQIqvsBlPe9THAHNlNvvQw2uWmGKFViEBi7nPHXITyM 5NcYfmppbS7vntS8UdFwDyZUdepCwTL2DpNuvjv3UMvg0LOSwx79tA1SNfIh5ZAEw+fZ knCYz5Il10YPWtty90pv4FLUSemA3qTcNglVmmAS3TuZ1VKn+V/U3J60vGmnIPzkAxV2 5rK5vHFNX50pS8OBwstu1UTNdQ4X8n6BPEdVx+YKQbIvuH+l+bkKmZUxmDzDDxHJTg0z xamArhkQOha+ANpTuXBqiSR+2jFfhNACTdqlp0ZLKj+n8TEmGTmEjAbkiciPlYfCeDXv 0Q== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p1mwxaj2t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:05 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3219v4oO016400 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:57:04 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 1 Mar 2023 01:57:02 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 3/4] firmware: qcom_scm: Refactor code to support multiple download mode Date: Wed, 1 Mar 2023 15:25:54 +0530 Message-ID: <1677664555-30191-4-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Ny4qEyvpBspzvwLmvwo7XbcKuNe-Ky78 X-Proofpoint-GUID: Ny4qEyvpBspzvwLmvwo7XbcKuNe-Ky78 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 mlxscore=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 priorityscore=1501 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Currently on Qualcomm SoC, download_mode is enabled if CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is selected. Refactor the code such that it supports multiple download modes and drop CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT config instead, give interface to set the download mode from module parameter. Signed-off-by: Mukesh Ojha --- Changes in v2: - Passed download mode as parameter - Accept human accepatable download mode string. - enable = !!dload_mode - Shifted module param callback to somewhere down in the file so that it no longer need to know the prototype of qcom_scm_set_download_mode() - updated commit text. drivers/firmware/Kconfig | 11 -------- drivers/firmware/qcom_scm.c | 65 ++++++++++++++++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index b59e304..ff7e9f3 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -215,17 +215,6 @@ config MTK_ADSP_IPC config QCOM_SCM tristate -config QCOM_SCM_DOWNLOAD_MODE_DEFAULT - bool "Qualcomm download mode enabled by default" - depends on QCOM_SCM - help - A device with "download mode" enabled will upon an unexpected - warm-restart enter a special debug mode that allows the user to - "download" memory content over USB for offline postmortem analysis. - The feature can be enabled/disabled on the kernel command line. - - Say Y here to enable "download mode" by default. - config SYSFB bool select BOOT_VESA_SUPPORT diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index c9f1fad..ca07208 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -17,17 +17,22 @@ #include #include #include +#include #include "qcom_scm.h" -static bool download_mode = IS_ENABLED(CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT); -module_param(download_mode, bool, 0); - #define SCM_HAS_CORE_CLK BIT(0) #define SCM_HAS_IFACE_CLK BIT(1) #define SCM_HAS_BUS_CLK BIT(2) #define QCOM_DOWNLOAD_MODE_MASK 0x30 +#define QCOM_DOWNLOAD_FULLDUMP 0x10 +#define QCOM_DOWNLOAD_NODUMP 0x0 + +#define MAX_DLOAD_LEN 8 + +static char download_mode[] = "off"; +static u32 dload_mode; struct qcom_scm { struct device *dev; @@ -417,8 +422,9 @@ static int __qcom_scm_set_dload_mode(struct device *dev, bool enable) return qcom_scm_call_atomic(__scm->dev, &desc, NULL); } -static void qcom_scm_set_download_mode(bool enable) +static void qcom_scm_set_download_mode(u32 dload_mode) { + bool enable = !!dload_mode; bool avail; int ret = 0; u32 val; @@ -438,7 +444,7 @@ static void qcom_scm_set_download_mode(bool enable) val &= ~QCOM_DOWNLOAD_MODE_MASK; if (enable) - val |= QCOM_SCM_BOOT_SET_DLOAD_MODE; + val |= dload_mode; ret = qcom_scm_io_writel(__scm->dload_mode_addr, val); } else { @@ -1338,6 +1344,47 @@ bool qcom_scm_is_available(void) } EXPORT_SYMBOL(qcom_scm_is_available); +static int set_dload_mode(const char *val, const struct kernel_param *kp) +{ + int ret; + + if (!strncmp(val, "full", strlen("full"))) { + dload_mode = QCOM_DOWNLOAD_FULLDUMP; + } else if (!strncmp(val, "off", strlen("off"))) { + dload_mode = QCOM_DOWNLOAD_NODUMP; + } else { + if (kstrtouint(val, 0, &dload_mode) || + !(dload_mode == 0 || dload_mode == 1)) { + pr_err("unknown download mode\n"); + return -EINVAL; + } + + } + + ret = param_set_copystring(val, kp); + if (ret) + return ret; + + if (__scm) + qcom_scm_set_download_mode(dload_mode); + + return 0; +} + +static const struct kernel_param_ops dload_mode_param_ops = { + .set = set_dload_mode, + .get = param_get_string, +}; + +static struct kparam_string dload_mode_param = { + .string = download_mode, + .maxlen = MAX_DLOAD_LEN, +}; + +module_param_cb(download_mode, &dload_mode_param_ops, &dload_mode_param, 0644); +MODULE_PARM_DESC(download_mode, + "Download mode: off/full or 0/1/off/on for existing users"); + static int qcom_scm_probe(struct platform_device *pdev) { struct qcom_scm *scm; @@ -1418,12 +1465,12 @@ static int qcom_scm_probe(struct platform_device *pdev) __get_convention(); /* - * If requested enable "download mode", from this point on warmboot + * If download mode is requested, from this point on warmboot * will cause the boot stages to enter download mode, unless * disabled below by a clean shutdown/reboot. */ - if (download_mode) - qcom_scm_set_download_mode(true); + if (dload_mode) + qcom_scm_set_download_mode(dload_mode); return 0; } @@ -1431,7 +1478,7 @@ static int qcom_scm_probe(struct platform_device *pdev) static void qcom_scm_shutdown(struct platform_device *pdev) { /* Clean shutdown, disable download mode to allow normal restart */ - qcom_scm_set_download_mode(false); + qcom_scm_set_download_mode(QCOM_DOWNLOAD_NODUMP); } static const struct of_device_id qcom_scm_dt_match[] = { From patchwork Wed Mar 1 09:55:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 13155811 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FD1BC64ED6 for ; Wed, 1 Mar 2023 10:29:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229652AbjCAK3u (ORCPT ); Wed, 1 Mar 2023 05:29:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229777AbjCAK3t (ORCPT ); Wed, 1 Mar 2023 05:29:49 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 946E22A6F3; Wed, 1 Mar 2023 02:29:47 -0800 (PST) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3212wTt7022351; Wed, 1 Mar 2023 09:57:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=ISrDjq0Ha+uMnwpC23DHqi+F/2UqrQtb9WTbLZDU0/U=; b=eygTnG7ELDW+Nze3h2K5GDlvOzaBBR9mr2l8Lo/9Xb1kLVdrdxALUvsKlHNdKcxEbr/5 TQriZ/I3JZX+/a5bIIEe2ZcF+pCykqJhbA851wHdnIIXBLdINtQZwMKXhnMRkJuIR7MM HORnBDmRfOD+Wp3L3i1r4wh27hYZNKb2A1WBtQDGWHUw0IuWDD73B8xVra9UPWSr5G9a 4A5d/PdNJGZ0FNvlYAtAc1NeQZNoGD6450Eyxmgx38IO/A615T4hZU2en1g+mlxKJ42t g37Z9ZL8dBDN1rwFwgN/du3q8BAIC2ubf0PN3valcpVk9N4tp82H6rPqHuKxrx18FGyf ug== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p1p8h29qr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:07 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3219v6Pp021308 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:57:06 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 1 Mar 2023 01:57:04 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 4/4] firmware: qcom_scm: Add multiple download mode support Date: Wed, 1 Mar 2023 15:25:55 +0530 Message-ID: <1677664555-30191-5-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: JY9-77q6ci4Ji-_D774m5f-k1B8-gaVk X-Proofpoint-GUID: JY9-77q6ci4Ji-_D774m5f-k1B8-gaVk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 clxscore=1015 impostorscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Currently, scm driver only supports full dump when download mode is selected. Add support to enable minidump as well both dump(full dump + minidump). Signed-off-by: Mukesh Ojha --- Changes in v2: - Accept mini/both as acceptable output. drivers/firmware/qcom_scm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index ca07208..39e071a 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -27,6 +27,8 @@ #define QCOM_DOWNLOAD_MODE_MASK 0x30 #define QCOM_DOWNLOAD_FULLDUMP 0x10 +#define QCOM_DOWNLOAD_MINIDUMP 0x20 +#define QCOM_DOWNLOAD_BOTHDUMP (QCOM_DOWNLOAD_FULLDUMP | QCOM_DOWNLOAD_MINIDUMP) #define QCOM_DOWNLOAD_NODUMP 0x0 #define MAX_DLOAD_LEN 8 @@ -1350,6 +1352,10 @@ static int set_dload_mode(const char *val, const struct kernel_param *kp) if (!strncmp(val, "full", strlen("full"))) { dload_mode = QCOM_DOWNLOAD_FULLDUMP; + } else if (!strncmp(val, "mini", strlen("mini"))) { + dload_mode = QCOM_DOWNLOAD_MINIDUMP; + } else if (!strncmp(val, "both", strlen("both"))) { + dload_mode = QCOM_DOWNLOAD_BOTHDUMP; } else if (!strncmp(val, "off", strlen("off"))) { dload_mode = QCOM_DOWNLOAD_NODUMP; } else { @@ -1383,7 +1389,7 @@ static struct kparam_string dload_mode_param = { module_param_cb(download_mode, &dload_mode_param_ops, &dload_mode_param, 0644); MODULE_PARM_DESC(download_mode, - "Download mode: off/full or 0/1/off/on for existing users"); + "download mode: off/full/mini/both(full+mini) or 0/1/off/on for existing users"); static int qcom_scm_probe(struct platform_device *pdev) {