.../bindings/remoteproc/fsl,imx-rproc.yaml | 1 + drivers/remoteproc/Kconfig | 2 + drivers/remoteproc/imx_rproc.c | 245 +++++++++++++++++++-- drivers/remoteproc/imx_rproc.h | 4 + 4 files changed, 238 insertions(+), 14 deletions(-)
This patchset is pick up a previous patchset [1] with rebased on
next-20251030, and some changes applied.
- Add runtime ops to separate cpu ops and lmm ops
- added more comments
- moved some check imx_sm_rproc_detect_mode() from imx_rproc_sm_prepare().
No changes to the dt-binding patch, so R-b/A-b are kept.
More info could be found in commit message of each patch and below.
[1]https://lore.kernel.org/linux-remoteproc/20250821-imx95-rproc-1-v5-0-e93191dfac51@nxp.com/
i.MX95 features a Cortex-M33 core, six Cortex-A55 cores, and
one Cortex-M7 core. The System Control Management Interface(SCMI)
firmware runs on the M33 core. The i.MX95 SCMI firmware named System
Manager(SM) includes vendor extension protocols, Logical Machine
Management(LMM) protocol and CPU protocol and etc.
There are three cases for M7:
(1) M7 in a separate Logical Machine(LM) that Linux couldn't control it.
(2) M7 in a separate Logical Machine that Linux could control it using
LMM protocol
(3) M7 runs in same Logical Machine as A55, so Linux could control it
using CPU protocol
In patch 3, Use LMM and CPU protocol to manage M7. More info could be
found in the patch commit log
Current setup relies on pre-Linux software(U-Boot) to do
M7 TCM ECC initialization. In future, we could add the support in Linux
Patchset was tested with below boot images when the patchset based on next-20251030:
imx-boot-variant-rpmsg-imx95-19x19-lpddr5-evk-sd.bin-flash_lpboot_sm_a55 (Use LMM protocol)
imx-boot-variant-alt-imx95-19x19-lpddr5-evk-sd.bin-flash_alt (Use CPU protocol)
imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all (M7 not under A55 control)
Also tested i.MX8MP/8ULP-EVK.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Changes in v3:
- Add R-b for patch 2,3,5
- Patch 4:
Rename imx_rproc_ops_sm to imx_rproc_ops_sm_lmm.
Add more comments in code
Simplify if check in imx_rproc_sm_lmm_prepare()
Update commit log
Use dev_err for failure path
- Link to v2: https://lore.kernel.org/linux-remoteproc/20251031-imx95-rproc-2025-10-31-v2-0-758b2e547a55@nxp.com/T/#t
Changes in v2:
- Patch 2: Change to const pointer for ops, update commit log and add R-b from Frank
- Patch 3: New patch, introduce prepare ops
- Patch 4: Rename imx_rproc_sm_prepare to imx_rproc_sm_lmm_prepare
drop IMX_RPROC_FLAGS_SM_CPU_OP and IMX_RPROC_FLAGS_SM_LMM_OP
Add a bool for dcfg->lmid and info->lmid check.
Provide separate plat ops for lmm and cpu setup.
Move LM permission check to a separate function.
- Patch 5: Drop macro IMX95_M7_CPUID and IMX95_M7_LMID
- Link to v1: https://lore.kernel.org/r/20251028-imx95-rproc-2025-10-28-v1-0-ce9e7db9edcb@nxp.com
---
Peng Fan (5):
dt-bindings: remoteproc: fsl,imx-rproc: Add support for i.MX95
remoteproc: imx_rproc: Add runtime ops copy to support dynamic behavior
remoteproc: imx_rproc: Introduce prepare ops for imx_rproc_dcfg
remoteproc: imx_rproc: Add support for System Manager API
remoteproc: imx_rproc: Add support for i.MX95
.../bindings/remoteproc/fsl,imx-rproc.yaml | 1 +
drivers/remoteproc/Kconfig | 2 +
drivers/remoteproc/imx_rproc.c | 245 +++++++++++++++++++--
drivers/remoteproc/imx_rproc.h | 4 +
4 files changed, 238 insertions(+), 14 deletions(-)
---
base-commit: 88cbd8ac379cf5ce68b7efcfd4d1484a6871ee0b
change-id: 20251120-imx95-rproc-2025-11-20-3b9369670d6a
Best regards,
--
Peng Fan <peng.fan@nxp.com>
Good morning, Please note that due to other patchsets that need to be reviewed, Linux Plumbers and the upcoming 2-week December holidays in the western hemisphere, I do not foresee being able to look at this patchset before January. Thanks, Mathieu On Fri, 21 Nov 2025 at 17:58, Peng Fan (OSS) <peng.fan@oss.nxp.com> wrote: > > This patchset is pick up a previous patchset [1] with rebased on > next-20251030, and some changes applied. > - Add runtime ops to separate cpu ops and lmm ops > - added more comments > - moved some check imx_sm_rproc_detect_mode() from imx_rproc_sm_prepare(). > > No changes to the dt-binding patch, so R-b/A-b are kept. > More info could be found in commit message of each patch and below. > > [1]https://lore.kernel.org/linux-remoteproc/20250821-imx95-rproc-1-v5-0-e93191dfac51@nxp.com/ > > i.MX95 features a Cortex-M33 core, six Cortex-A55 cores, and > one Cortex-M7 core. The System Control Management Interface(SCMI) > firmware runs on the M33 core. The i.MX95 SCMI firmware named System > Manager(SM) includes vendor extension protocols, Logical Machine > Management(LMM) protocol and CPU protocol and etc. > > There are three cases for M7: > (1) M7 in a separate Logical Machine(LM) that Linux couldn't control it. > (2) M7 in a separate Logical Machine that Linux could control it using > LMM protocol > (3) M7 runs in same Logical Machine as A55, so Linux could control it > using CPU protocol > > In patch 3, Use LMM and CPU protocol to manage M7. More info could be > found in the patch commit log > Current setup relies on pre-Linux software(U-Boot) to do > M7 TCM ECC initialization. In future, we could add the support in Linux > > Patchset was tested with below boot images when the patchset based on next-20251030: > imx-boot-variant-rpmsg-imx95-19x19-lpddr5-evk-sd.bin-flash_lpboot_sm_a55 (Use LMM protocol) > imx-boot-variant-alt-imx95-19x19-lpddr5-evk-sd.bin-flash_alt (Use CPU protocol) > imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_all (M7 not under A55 control) > > Also tested i.MX8MP/8ULP-EVK. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > Changes in v3: > - Add R-b for patch 2,3,5 > - Patch 4: > Rename imx_rproc_ops_sm to imx_rproc_ops_sm_lmm. > Add more comments in code > Simplify if check in imx_rproc_sm_lmm_prepare() > Update commit log > Use dev_err for failure path > - Link to v2: https://lore.kernel.org/linux-remoteproc/20251031-imx95-rproc-2025-10-31-v2-0-758b2e547a55@nxp.com/T/#t > > Changes in v2: > - Patch 2: Change to const pointer for ops, update commit log and add R-b from Frank > - Patch 3: New patch, introduce prepare ops > - Patch 4: Rename imx_rproc_sm_prepare to imx_rproc_sm_lmm_prepare > drop IMX_RPROC_FLAGS_SM_CPU_OP and IMX_RPROC_FLAGS_SM_LMM_OP > Add a bool for dcfg->lmid and info->lmid check. > Provide separate plat ops for lmm and cpu setup. > Move LM permission check to a separate function. > - Patch 5: Drop macro IMX95_M7_CPUID and IMX95_M7_LMID > - Link to v1: https://lore.kernel.org/r/20251028-imx95-rproc-2025-10-28-v1-0-ce9e7db9edcb@nxp.com > > --- > Peng Fan (5): > dt-bindings: remoteproc: fsl,imx-rproc: Add support for i.MX95 > remoteproc: imx_rproc: Add runtime ops copy to support dynamic behavior > remoteproc: imx_rproc: Introduce prepare ops for imx_rproc_dcfg > remoteproc: imx_rproc: Add support for System Manager API > remoteproc: imx_rproc: Add support for i.MX95 > > .../bindings/remoteproc/fsl,imx-rproc.yaml | 1 + > drivers/remoteproc/Kconfig | 2 + > drivers/remoteproc/imx_rproc.c | 245 +++++++++++++++++++-- > drivers/remoteproc/imx_rproc.h | 4 + > 4 files changed, 238 insertions(+), 14 deletions(-) > --- > base-commit: 88cbd8ac379cf5ce68b7efcfd4d1484a6871ee0b > change-id: 20251120-imx95-rproc-2025-11-20-3b9369670d6a > > Best regards, > -- > Peng Fan <peng.fan@nxp.com> >
© 2016 - 2025 Red Hat, Inc.