From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: rishabhb@codeaurora.org
Cc: Andy Gross <agross@kernel.org>, Ohad Ben-Cohen <ohad@wizery.com>,
Rob Herring <robh+dt@kernel.org>,
linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-remoteproc-owner@vger.kernel.org
Subject: Re: [PATCH v5 3/5] remoteproc: qcom: Update PIL relocation info on load
Date: Tue, 19 May 2020 16:07:59 -0700 [thread overview]
Message-ID: <20200519230759.GA3008945@ripper> (raw)
In-Reply-To: <3ff29ccc94d3097fb39b7df377754af6@codeaurora.org>
On Tue 19 May 11:14 PDT 2020, rishabhb@codeaurora.org wrote:
> On 2020-05-12 22:56, Bjorn Andersson wrote:
> > Update the PIL relocation information in IMEM with information about
> > where the firmware for various remoteprocs are loaded.
> >
> > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> > ---
> >
> > Changes since v4:
> > - Dropped unnecessary comment about ignoring return value.
> >
> > drivers/remoteproc/Kconfig | 3 +++
> > drivers/remoteproc/qcom_q6v5_adsp.c | 16 +++++++++++++---
> > drivers/remoteproc/qcom_q6v5_mss.c | 3 +++
> > drivers/remoteproc/qcom_q6v5_pas.c | 15 ++++++++++++---
> > drivers/remoteproc/qcom_q6v5_wcss.c | 14 +++++++++++---
> > drivers/remoteproc/qcom_wcnss.c | 14 +++++++++++---
> > 6 files changed, 53 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
> > index 8088ca4dd6dc..6bd42a411ca8 100644
> > --- a/drivers/remoteproc/Kconfig
> > +++ b/drivers/remoteproc/Kconfig
> > @@ -126,6 +126,7 @@ config QCOM_Q6V5_ADSP
> > depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
> > depends on QCOM_SYSMON || QCOM_SYSMON=n
> > select MFD_SYSCON
> > + select QCOM_PIL_INFO
> > select QCOM_MDT_LOADER
> > select QCOM_Q6V5_COMMON
> > select QCOM_RPROC_COMMON
> > @@ -158,6 +159,7 @@ config QCOM_Q6V5_PAS
> > depends on RPMSG_QCOM_GLINK_SMEM || RPMSG_QCOM_GLINK_SMEM=n
> > depends on QCOM_SYSMON || QCOM_SYSMON=n
> > select MFD_SYSCON
> > + select QCOM_PIL_INFO
> > select QCOM_MDT_LOADER
> > select QCOM_Q6V5_COMMON
> > select QCOM_RPROC_COMMON
> > @@ -209,6 +211,7 @@ config QCOM_WCNSS_PIL
> > depends on QCOM_SMEM
> > depends on QCOM_SYSMON || QCOM_SYSMON=n
> > select QCOM_MDT_LOADER
> > + select QCOM_PIL_INFO
> > select QCOM_RPROC_COMMON
> > select QCOM_SCM
> > help
> > diff --git a/drivers/remoteproc/qcom_q6v5_adsp.c
> > b/drivers/remoteproc/qcom_q6v5_adsp.c
> > index d2a2574dcf35..c539e89664cb 100644
> > --- a/drivers/remoteproc/qcom_q6v5_adsp.c
> > +++ b/drivers/remoteproc/qcom_q6v5_adsp.c
> > @@ -26,6 +26,7 @@
> > #include <linux/soc/qcom/smem_state.h>
> >
> > #include "qcom_common.h"
> > +#include "qcom_pil_info.h"
> > #include "qcom_q6v5.h"
> > #include "remoteproc_internal.h"
> >
> > @@ -82,6 +83,7 @@ struct qcom_adsp {
> > unsigned int halt_lpass;
> >
> > int crash_reason_smem;
> > + const char *info_name;
> >
> > struct completion start_done;
> > struct completion stop_done;
> > @@ -164,10 +166,17 @@ static int qcom_adsp_shutdown(struct qcom_adsp
> > *adsp)
> > static int adsp_load(struct rproc *rproc, const struct firmware *fw)
> > {
> > struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv;
> > + int ret;
> > +
> > + ret = qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, 0,
> > + adsp->mem_region, adsp->mem_phys,
> > + adsp->mem_size, &adsp->mem_reloc);
> > + if (ret)
> > + return ret;
> > +
> > + qcom_pil_info_store(adsp->info_name, adsp->mem_reloc, adsp->mem_size);
> >
> > - return qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, 0,
> > - adsp->mem_region, adsp->mem_phys, adsp->mem_size,
> > - &adsp->mem_reloc);
> > + return 0;
> > }
> >
> > static int adsp_start(struct rproc *rproc)
> > @@ -436,6 +445,7 @@ static int adsp_probe(struct platform_device *pdev)
> > adsp = (struct qcom_adsp *)rproc->priv;
> > adsp->dev = &pdev->dev;
> > adsp->rproc = rproc;
> > + adsp->info_name = desc->sysmon_name;
> > platform_set_drvdata(pdev, adsp);
> >
> > ret = adsp_alloc_memory_region(adsp);
> > diff --git a/drivers/remoteproc/qcom_q6v5_mss.c
> > b/drivers/remoteproc/qcom_q6v5_mss.c
> > index c4936f4d1e80..fdbcae11ae64 100644
> > --- a/drivers/remoteproc/qcom_q6v5_mss.c
> > +++ b/drivers/remoteproc/qcom_q6v5_mss.c
> > @@ -29,6 +29,7 @@
> >
> > #include "remoteproc_internal.h"
> > #include "qcom_common.h"
> > +#include "qcom_pil_info.h"
> > #include "qcom_q6v5.h"
> >
> > #include <linux/qcom_scm.h>
> > @@ -1221,6 +1222,8 @@ static int q6v5_mpss_load(struct q6v5 *qproc)
> > else if (ret < 0)
> > dev_err(qproc->dev, "MPSS authentication failed: %d\n", ret);
> >
> > + qcom_pil_info_store("modem", mpss_reloc, qproc->mpss_size);
> > +
> > release_firmware:
> > release_firmware(fw);
> > out:
> > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c
> > b/drivers/remoteproc/qcom_q6v5_pas.c
> > index 3bb69f58e086..84cb19231c35 100644
> > --- a/drivers/remoteproc/qcom_q6v5_pas.c
> > +++ b/drivers/remoteproc/qcom_q6v5_pas.c
> > @@ -25,6 +25,7 @@
> > #include <linux/soc/qcom/smem_state.h>
> >
> > #include "qcom_common.h"
> > +#include "qcom_pil_info.h"
> > #include "qcom_q6v5.h"
> > #include "remoteproc_internal.h"
> >
> > @@ -64,6 +65,7 @@ struct qcom_adsp {
> > int pas_id;
> > int crash_reason_smem;
> > bool has_aggre2_clk;
> > + const char *info_name;
> >
> > struct completion start_done;
> > struct completion stop_done;
> > @@ -117,11 +119,17 @@ static void adsp_pds_disable(struct qcom_adsp
> > *adsp, struct device **pds,
> > static int adsp_load(struct rproc *rproc, const struct firmware *fw)
> > {
> > struct qcom_adsp *adsp = (struct qcom_adsp *)rproc->priv;
> > + int ret;
> >
> > - return qcom_mdt_load(adsp->dev, fw, rproc->firmware, adsp->pas_id,
> > - adsp->mem_region, adsp->mem_phys, adsp->mem_size,
> > - &adsp->mem_reloc);
> > + ret = qcom_mdt_load(adsp->dev, fw, rproc->firmware, adsp->pas_id,
> > + adsp->mem_region, adsp->mem_phys, adsp->mem_size,
> > + &adsp->mem_reloc);
> > + if (ret)
> > + return ret;
> >
> > + qcom_pil_info_store(adsp->info_name, adsp->mem_reloc, adsp->mem_size);
> mem_reloc is used to calculate offset and then we again add that offset to
> the
> ioremapped region base. So we should pass adsp->mem_phys as start here?
You're correct, I will respin this.
Thanks,
Bjorn
next prev parent reply other threads:[~2020-05-19 23:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-13 5:56 [PATCH v5 0/5] remoteproc: qcom: PIL info support Bjorn Andersson
2020-05-13 5:56 ` [PATCH v5 1/5] dt-bindings: remoteproc: Add Qualcomm PIL info binding Bjorn Andersson
2020-05-20 17:59 ` Mathieu Poirier
2020-05-26 22:32 ` Rob Herring
2020-05-13 5:56 ` [PATCH v5 2/5] remoteproc: qcom: Introduce helper to store pil info in IMEM Bjorn Andersson
2020-05-20 18:00 ` Mathieu Poirier
2020-05-13 5:56 ` [PATCH v5 3/5] remoteproc: qcom: Update PIL relocation info on load Bjorn Andersson
2020-05-14 18:48 ` kbuild test robot
2020-05-14 18:48 ` kbuild test robot
2020-05-19 18:14 ` rishabhb
2020-05-19 23:07 ` Bjorn Andersson [this message]
2020-05-13 5:56 ` [PATCH v5 4/5] arm64: dts: qcom: qcs404: Add IMEM and PIL info region Bjorn Andersson
2020-05-13 5:56 ` [PATCH v5 5/5] arm64: dts: qcom: sdm845: " Bjorn Andersson
2020-05-14 16:53 ` [PATCH v5 0/5] remoteproc: qcom: PIL info support Vinod Koul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200519230759.GA3008945@ripper \
--to=bjorn.andersson@linaro.org \
--cc=agross@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc-owner@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=ohad@wizery.com \
--cc=rishabhb@codeaurora.org \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.