]> git.ipfire.org Git - thirdparty/linux.git/commit
remoteproc: imx_rproc: detect and attach to pre-booted remote cores
authorHiago De Franco <hiago.franco@toradex.com>
Wed, 16 Jul 2025 19:46:38 +0000 (16:46 -0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 18 Jul 2025 10:43:46 +0000 (12:43 +0200)
commita876a3aacc434e93154540c7ffafa66da9d5af34
tree9cb11da4a1d1a5b7d0ed4994d97326dc815744f3
parent496deecb020d14ba89ba7084fbc3024f91687023
remoteproc: imx_rproc: detect and attach to pre-booted remote cores

When the Cortex-M remote core is started and already running before
Linux boots (typically by the Cortex-A bootloader using a command like
bootaux), the current driver is unable to attach to it. This is because
the driver only checks for remote cores running in different SCU
partitions. However in this case, the M-core is in the same partition as
Linux and is already powered up and running by the bootloader.

This patch adds a check using dev_pm_genpd_is_on() to verify whether the
M-core's power domains are already on. If all power domain devices are
on, the driver assumes the M-core is running and proceed to attach to
it.

To accomplish this, we need to avoid passing any attach_data or flags to
dev_pm_domain_attach_list(), allowing the platform device become a
consumer of the power domain provider without changing its current
state.

During probe, also enable and sync the device runtime PM to make sure
the power domains are correctly managed when the core is controlled by
the kernel.

Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20250716194638.113115-1-hiagofranco@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/remoteproc/imx_rproc.c