Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH ] firmware: qcom: scm: Disable SDI and write no dump to download mode register
@ 2024-07-05 12:06 Mukesh Ojha
  2024-07-05 18:55 ` Elliot Berman
  0 siblings, 1 reply; 3+ messages in thread
From: Mukesh Ojha @ 2024-07-05 12:06 UTC (permalink / raw)
  To: andersson, konrad.dybcio; +Cc: linux-arm-msm, linux-kernel, Mukesh Ojha

SDI is enabled for most of the Qualcomm SoCs and as per commit
ff4aa3bc9825 ("firmware: qcom_scm: disable SDI if required")
it was recommended to disable SDI by mentioning it in device tree

However, for some cases download mode tcsr register already configured
from boot firmware to collect dumps and in such cases if download
mode is set to zero(nodump mode) from kernel side and SDI is disabled
via means of mentioning it in device tree we could end up with dump
collection.

To disable complete dump collection mode, SDI and dload mode register
need to be set no dump mode.

Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
 drivers/firmware/qcom/qcom_scm.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 00c379a3cceb..2e10f75a9cfd 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -1954,14 +1954,12 @@ static int qcom_scm_probe(struct platform_device *pdev)
 	 * 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);
-
+	qcom_scm_set_download_mode(download_mode ? true : false);
 
 	/*
 	 * Disable SDI if indicated by DT that it is enabled by default.
 	 */
-	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled"))
+	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled") || !download_mode)
 		qcom_scm_disable_sdi();
 
 	ret = of_reserved_mem_device_init(__scm->dev);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH ] firmware: qcom: scm: Disable SDI and write no dump to download mode register
  2024-07-05 12:06 [PATCH ] firmware: qcom: scm: Disable SDI and write no dump to download mode register Mukesh Ojha
@ 2024-07-05 18:55 ` Elliot Berman
  2024-07-08 12:51   ` Mukesh Ojha
  0 siblings, 1 reply; 3+ messages in thread
From: Elliot Berman @ 2024-07-05 18:55 UTC (permalink / raw)
  To: Mukesh Ojha; +Cc: andersson, konrad.dybcio, linux-arm-msm, linux-kernel

On Fri, Jul 05, 2024 at 05:36:23PM +0530, Mukesh Ojha wrote:
> SDI is enabled for most of the Qualcomm SoCs and as per commit
> ff4aa3bc9825 ("firmware: qcom_scm: disable SDI if required")
> it was recommended to disable SDI by mentioning it in device tree
> 
> However, for some cases download mode tcsr register already configured
> from boot firmware to collect dumps and in such cases if download
> mode is set to zero(nodump mode) from kernel side and SDI is disabled
                     ^^^^^^^^^^^^^
that's not what download_mode=0 does currently, but it's what you're
proposing it should be doing. I think that proposal is reasonable, but
can you call out in the commit text that the current behavior of
download_mode=0 is nop.

> via means of mentioning it in device tree we could end up with dump
> collection.
> 
> To disable complete dump collection mode, SDI and dload mode register
> need to be set no dump mode.
> 
> Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>

Should this be?

Fixes: ff4aa3bc9825 ("firmware: qcom_scm: disable SDI if required")

> ---
>  drivers/firmware/qcom/qcom_scm.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
> index 00c379a3cceb..2e10f75a9cfd 100644
> --- a/drivers/firmware/qcom/qcom_scm.c
> +++ b/drivers/firmware/qcom/qcom_scm.c
> @@ -1954,14 +1954,12 @@ static int qcom_scm_probe(struct platform_device *pdev)
>  	 * 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);
> -
> +	qcom_scm_set_download_mode(download_mode ? true : false);

Just: qcom_scm_set_download_mode(download_mode);

>  
>  	/*
>  	 * Disable SDI if indicated by DT that it is enabled by default.
>  	 */
> -	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled"))
> +	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled") || !download_mode)


>  		qcom_scm_disable_sdi();
>  
>  	ret = of_reserved_mem_device_init(__scm->dev);
> -- 
> 2.34.1
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH ] firmware: qcom: scm: Disable SDI and write no dump to download mode register
  2024-07-05 18:55 ` Elliot Berman
@ 2024-07-08 12:51   ` Mukesh Ojha
  0 siblings, 0 replies; 3+ messages in thread
From: Mukesh Ojha @ 2024-07-08 12:51 UTC (permalink / raw)
  To: Elliot Berman; +Cc: andersson, konrad.dybcio, linux-arm-msm, linux-kernel

On Fri, Jul 05, 2024 at 11:55:52AM -0700, Elliot Berman wrote:
> On Fri, Jul 05, 2024 at 05:36:23PM +0530, Mukesh Ojha wrote:
> > SDI is enabled for most of the Qualcomm SoCs and as per commit
> > ff4aa3bc9825 ("firmware: qcom_scm: disable SDI if required")
> > it was recommended to disable SDI by mentioning it in device tree
> > 
> > However, for some cases download mode tcsr register already configured
> > from boot firmware to collect dumps and in such cases if download
> > mode is set to zero(nodump mode) from kernel side and SDI is disabled
>                      ^^^^^^^^^^^^^
> that's not what download_mode=0 does currently, but it's what you're
> proposing it should be doing. I think that proposal is reasonable, but
> can you call out in the commit text that the current behavior of
> download_mode=0 is nop.

Correct..

> 
> > via means of mentioning it in device tree we could end up with dump
> > collection.
> > 
> > To disable complete dump collection mode, SDI and dload mode register
> > need to be set no dump mode.
> > 
> > Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
> 
> Should this be?
> 
> Fixes: ff4aa3bc9825 ("firmware: qcom_scm: disable SDI if required")

Yes, SDI disablement can still result in dump collection and can cause
a hang.

> 
> > ---
> >  drivers/firmware/qcom/qcom_scm.c | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
> > index 00c379a3cceb..2e10f75a9cfd 100644
> > --- a/drivers/firmware/qcom/qcom_scm.c
> > +++ b/drivers/firmware/qcom/qcom_scm.c
> > @@ -1954,14 +1954,12 @@ static int qcom_scm_probe(struct platform_device *pdev)
> >  	 * 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);
> > -
> > +	qcom_scm_set_download_mode(download_mode ? true : false);
> 
> Just: qcom_scm_set_download_mode(download_mode);

Sure.

-Mukesh

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-07-08 12:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-05 12:06 [PATCH ] firmware: qcom: scm: Disable SDI and write no dump to download mode register Mukesh Ojha
2024-07-05 18:55 ` Elliot Berman
2024-07-08 12:51   ` Mukesh Ojha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox