All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@oss.nxp.com>
To: Hiago De Franco <hiagofranco@gmail.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	linux-pm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Bjorn Andersson <andersson@kernel.org>,
	Hiago De Franco <hiago.franco@toradex.com>,
	imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, daniel.baluta@nxp.com,
	iuliana.prodan@oss.nxp.com, Fabio Estevam <festevam@gmail.com>,
	Pengutronix Kernel Team <kernel@pengutronix.de>
Subject: Re: [PATCH 3/3] remoteproc: imx_rproc: add power mode check for remote core attachment
Date: Tue, 6 May 2025 12:53:35 +0800	[thread overview]
Message-ID: <20250506045335.GD24259@nxa18884-linux> (raw)
In-Reply-To: <20250505154849.64889-4-hiagofranco@gmail.com>

On Mon, May 05, 2025 at 12:48:49PM -0300, Hiago De Franco wrote:
>From: Hiago De Franco <hiago.franco@toradex.com>
>
>When the remote core is started before Linux boots (e.g., by the
>bootloader), the driver currently is not able to attach because it only
>checks for cores running in different partitions. If the core was kicked
>by the bootloader, it is in the same partition as Linux and it is
>already up and running.
>
>This adds power mode verification through the SCU interface, enabling
>the driver to detect when the remote core is already running and
>properly attach to it.
>
>Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
>Suggested-by: Peng Fan <peng.fan@oss.nxp.com>
>---
> drivers/remoteproc/imx_rproc.c | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
>diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
>index 627e57a88db2..86541d9d8640 100644
>--- a/drivers/remoteproc/imx_rproc.c
>+++ b/drivers/remoteproc/imx_rproc.c
>@@ -8,6 +8,7 @@
> #include <linux/clk.h>
> #include <linux/err.h>
> #include <linux/firmware/imx/sci.h>
>+#include <linux/firmware/imx/svc/misc.h>

Drop this line.

> #include <linux/interrupt.h>
> #include <linux/kernel.h>
> #include <linux/mailbox_client.h>
>@@ -906,6 +907,21 @@ static int imx_rproc_attach_pd(struct imx_rproc *priv)
> 	return ret < 0 ? ret : 0;
> }
> 
>+static bool imx_rproc_is_on(struct device *dev, struct imx_sc_ipc *ipc,
>+			    u32 resource)
>+{
>+	int ret;
>+
>+	ret = imx_sc_pm_get_resource_power_mode(ipc, resource);
>+	if (ret < 0) {
>+		dev_err(dev, "failed to get power resource %d mode, ret %d\n",
>+			resource, ret);
>+		return false;
>+	}
>+
>+	return ret == IMX_SC_PM_PW_MODE_ON;
>+}
>+
> static int imx_rproc_detect_mode(struct imx_rproc *priv)
> {
> 	struct regmap_config config = { .name = "imx-rproc" };
>@@ -949,6 +965,13 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv)
> 			if (of_property_read_u32(dev->of_node, "fsl,entry-address", &priv->entry))
> 				return -EINVAL;
> 
>+			/*
>+			 * If remote core is already running (e.g. kicked by
>+			 * the bootloader), attach to it.
>+			 */
>+			if (imx_rproc_is_on(dev, priv->ipc_handle, priv->rsrc_id))

I prefer "xyz == IMX_SC_PM_PW_MODE_ON"
But anyway, up to you. I not have strong opinion on this.

Regards,
Peng

>+				priv->rproc->state = RPROC_DETACHED;
>+
> 			return imx_rproc_attach_pd(priv);
> 		}
> 
>-- 
>2.39.5
>

      reply	other threads:[~2025-05-06  3:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-05 15:48 [PATCH 0/3] remoteproc: imx_rproc: allow attaching to running core kicked by the bootloader Hiago De Franco
2025-05-05 15:48 ` [PATCH 1/3] remoteproc: imx_rproc: skip clock enable when M-core is managed by the SCU Hiago De Franco
2025-05-06  4:38   ` Peng Fan
2025-05-06 12:36     ` Hiago De Franco
2025-05-06 15:21       ` Mathieu Poirier
2025-05-05 15:48 ` [PATCH 2/3] firmware: imx: move get power mode function from scu-pd.c to misc.c Hiago De Franco
2025-05-06  4:46   ` Peng Fan
2025-05-07 15:52     ` Hiago De Franco
2025-05-05 15:48 ` [PATCH 3/3] remoteproc: imx_rproc: add power mode check for remote core attachment Hiago De Franco
2025-05-06  4:53   ` Peng Fan [this message]

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=20250506045335.GD24259@nxa18884-linux \
    --to=peng.fan@oss.nxp.com \
    --cc=andersson@kernel.org \
    --cc=daniel.baluta@nxp.com \
    --cc=festevam@gmail.com \
    --cc=hiago.franco@toradex.com \
    --cc=hiagofranco@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=iuliana.prodan@oss.nxp.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=ulf.hansson@linaro.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.