On Fri, Jan 09, 2026 at 08:08:00PM +0800, Peng Fan (OSS) 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/[email protected]/
> 
> 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 <[email protected]>
> ---
> Changes in v6:
> Added R-b from Frank for patch 4
> Following Mathieu's suggestions for patch 4
>  - Renamed IMX_RPROC_FLAGS_SM_LMM_AVAIL to IMX_RPROC_FLAGS_SM_LMM_CTRL
>  - Added comment in imx_rproc_sm_lmm_start and add comment for
>    imx_rproc_sm_lmm_check, and update comment to use "M7"
>  - Following the suggested code snippets, update imx_rproc_sm_lmm_prepare
>    and imx_rproc_sm_lmm_check
>  - With above done, separate the CPU API support into a separate patch,
>    no other changes.
> 
> Changes in v5:
> - Add R-b from Daniel for patch 4
> - Patch 4, per Mathieu's comments:
>   Move imx_rproc_ops_sm_lmm and imx_rproc_ops_sm_cpu to bottom of the file.
>   Set IMX_RPROC_FLAGS_SM_LMM_AVAIL when scmi_imx_lmm_operation(shutdown)
>   pass or m7 is started before Linux.
> - Link to v4: 
> https://lore.kernel.org/r/[email protected]
> 
> Changes in V4:
> - Rebased to 6.19-rc1 to resolve conflicts.
> - Address Frank's comment patch 4 regarding "if (ret != 0)" -> "if (ret)"
> - Link to v3: 
> https://lore.kernel.org/linux-remoteproc/[email protected]/#t
> 
> 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/[email protected]/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/[email protected]
> 
> ---
> Peng Fan (6):
>       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 LMM API
>       remoteproc: imx_rproc: Add support for System Manager CPU 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                     | 249 
> +++++++++++++++++++--
>  drivers/remoteproc/imx_rproc.h                     |   4 +
>  4 files changed, 243 insertions(+), 13 deletions(-)

I have applied this set.

Thanks,
Mathieu

> ---
> base-commit: fc4e91c639c0af93d63c3d5bc0ee45515dd7504a
> change-id: 20260108-imx95-rproc-2026-1-8-04f759890742
> 
> Best regards,
> -- 
> Peng Fan <[email protected]>
> 

Reply via email to