mbox series

[v3,0/3] remoteproc: imx_rproc: allow attaching to running core kicked by the bootloader

Message ID 20250519171514.61974-1-hiagofranco@gmail.com
Headers show
Series remoteproc: imx_rproc: allow attaching to running core kicked by the bootloader | expand

Message

Hiago De Franco May 19, 2025, 5:15 p.m. UTC
From: Hiago De Franco <hiago.franco@toradex.com>

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 series of patches implement an API call to the SCU which will
return the power mode of a given resource (M core in this case) and if
it is already powered on, the driver will attach to it. This SCU API is
being added to the new file drivers/firmware/imx/power.c, where all PM
related APIs should go.

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 [1] and from a reported regression [2].

[1] https://lore.kernel.org/lkml/20250423155131.101473-1-hiagofranco@gmail.com/
[2] https://lore.kernel.org/lkml/20250404141713.ac2ntcsjsf7epdfa@hiago-nb/

v3:
- New file introduced, drivers/firmware/imx/power.c, to handle the PM
  (Power Management) API functions, as suggested in v2.
- First patch, "firmware: imx: move get power mode function from
  scu-pd.c to misc.c" was dropped to make the reviewing process easier
  and in favor of firmware/imx/power.c file. Moving the power mode
  function from scu-pd.c as proposed will be sent later in a different
  future patch, as suggested.

v2:
- https://lore.kernel.org/lkml/20250507160056.11876-1-hiagofranco@gmail.com/

v1:
- https://lore.kernel.org/lkml/20250505154849.64889-1-hiagofranco@gmail.com/

Hiago De Franco (3):
  firmware: imx: introduce imx_sc_pm_get_resource_power_mode()
  remoteproc: imx_rproc: skip clock enable when M-core is managed by the
    SCU
  remoteproc: imx_rproc: add power mode check for remote core attachment

 drivers/firmware/imx/Makefile       |  2 +-
 drivers/firmware/imx/power.c        | 52 +++++++++++++++++++++++++++++
 drivers/remoteproc/imx_rproc.c      | 17 ++++++++--
 include/linux/firmware/imx/svc/pm.h |  9 +++++
 4 files changed, 77 insertions(+), 3 deletions(-)
 create mode 100644 drivers/firmware/imx/power.c