Re: [PATCH v5 0/3] remoteproc: imx_rproc: allow attaching to running core kicked by the bootloader
From: Mathieu Poirier
Date: Mon Jun 23 2025 - 11:35:26 EST
On Tue, Jun 17, 2025 at 04:34:47PM -0300, Hiago De Franco wrote:
> From: Hiago De Franco <hiago.franco@xxxxxxxxxxx>
>
> This patch series depends on Ulf's patches that are currently under
> review, "pmdomain: Add generic ->sync_state() support to genpd" [1].
> Without them, this series is not going to work.
Please resend this patchset when [1] and the work in patch 1/3 have been merged.
Thanks,
Mathieu
>
> For the i.MX8X and i.MX8 family SoCs, currently when the remotecore is
> started by the bootloader and the M core and A core are in the same
> partition, the driver is not capable to detect the remote core and
> report the correct state of it.
>
> This patch series implement a new function, dev_pm_genpd_is_on(), which
> returns the power status of a given power domain (M core power domains
> IMX_SC_R_M4_0_PID0 and IMX_SC_R_M4_0_MU_1A in this case). If it is
> already powered on, the driver will attach to it.
>
> Finally, the imx_rproc_clk_enable() function was also changed to make it
> return before dev_clk_get() is called, as it currently generates an SCU
> fault reset if the remote core is already running and the kernel tries
> to enable the clock again. These changes are a follow up from a v1 sent
> to imx_rproc [2] and from a reported regression [3].
>
> [1] https://lore.kernel.org/all/20250523134025.75130-1-ulf.hansson@xxxxxxxxxx/
> [2] https://lore.kernel.org/lkml/20250423155131.101473-1-hiagofranco@xxxxxxxxx/
> [3] https://lore.kernel.org/lkml/20250404141713.ac2ntcsjsf7epdfa@hiago-nb/
>
> v5:
> - pm_runtime_get_sync() removed in favor of pm_runtime_resume_and_get(),
> checking the return value of it.
> - Added pm_runtime_disable() and pm_runtime_put() to imx_rproc_remove().
> - Fixed missing "()" in dev_pm_genpd_is_on description.
> - Updated dev_pm_genpd_is_on() function description to be explicit the
> function reflects the current power status of the device and that this
> might change after the function returns, especially if the genpd is
> shared.
>
> v4:
> - https://lore.kernel.org/lkml/20250602131906.25751-1-hiagofranco@xxxxxxxxx/
>
> v3:
> - https://lore.kernel.org/all/20250519171514.61974-1-hiagofranco@xxxxxxxxx/
>
> v2:
> - https://lore.kernel.org/lkml/20250507160056.11876-1-hiagofranco@xxxxxxxxx/
>
> v1:
> - https://lore.kernel.org/lkml/20250505154849.64889-1-hiagofranco@xxxxxxxxx/
>
> Hiago De Franco (3):
> pmdomain: core: introduce dev_pm_genpd_is_on()
> remoteproc: imx_rproc: skip clock enable when M-core is managed by the
> SCU
> remoteproc: imx_rproc: detect and attach to pre-booted remote cores
>
> drivers/pmdomain/core.c | 33 +++++++++++++++++++++++++++
> drivers/remoteproc/imx_rproc.c | 41 ++++++++++++++++++++++++++++------
> include/linux/pm_domain.h | 6 +++++
> 3 files changed, 73 insertions(+), 7 deletions(-)
>
> --
> 2.39.5
>