[PATCH 0/5] firmware: scmi/imx: Add i.MX95 LMM/CPU Protocol

Peng Fan (OSS) posted 5 patches 11 months ago
There is a newer version of this series
drivers/firmware/arm_scmi/vendors/imx/Kconfig      |  22 +
drivers/firmware/arm_scmi/vendors/imx/Makefile     |   2 +
drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c | 283 +++++++++
drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c | 235 +++++++
drivers/firmware/arm_scmi/vendors/imx/imx95.rst    | 692 +++++++++++++++++++++
drivers/firmware/imx/Kconfig                       |  22 +
drivers/firmware/imx/Makefile                      |   2 +
drivers/firmware/imx/sm-cpu.c                      |  91 +++
drivers/firmware/imx/sm-lmm.c                      |  89 +++
include/linux/firmware/imx/sm.h                    |  56 ++
include/linux/scmi_imx_protocol.h                  |  39 ++
11 files changed, 1533 insertions(+)
[PATCH 0/5] firmware: scmi/imx: Add i.MX95 LMM/CPU Protocol
Posted by Peng Fan (OSS) 11 months ago
i.MX95 System Manager(SM) implements Logical Machine Management(LMM) and
CPU protocol to manage Logical Machine(LM) and CPUs(eg, M7).

To manage M7 in a separate LM or in same LM as Linux itself. LMM APIs
and CPU APIs are needed.

When M7 is in LM 'lm-m7', and this LM is managable by 'linux-lm',
linux could use LMM_BOOT, LMM_SHUTDOWN and etc to manage 'lm-m7'.

If in same LM, use CPU_START, CPU_STOP, CPU_RESET_VECTOR_SET and etc to
manage M7.

Both LMM/CPU APIs will be used by remoteproc driver. The remoteproc
patchset will be posted out after this patchset gets reviewed or in
good shape per Maitainer's view.

Build pass with COMPILE_TEST
Tested with remoteproc on i.MX95

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Peng Fan (5):
      firmware: arm_scmi: imx: Add i.MX95 LMM protocol
      firmware: arm_scmi: imx: Add i.MX95 CPU Protocol
      firmware: arm_scmi: imx: Add LMM and CPU documentation
      firmware: imx: Add i.MX95 SCMI LMM driver
      firmware: imx: Add i.MX95 SCMI CPU driver

 drivers/firmware/arm_scmi/vendors/imx/Kconfig      |  22 +
 drivers/firmware/arm_scmi/vendors/imx/Makefile     |   2 +
 drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c | 283 +++++++++
 drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c | 235 +++++++
 drivers/firmware/arm_scmi/vendors/imx/imx95.rst    | 692 +++++++++++++++++++++
 drivers/firmware/imx/Kconfig                       |  22 +
 drivers/firmware/imx/Makefile                      |   2 +
 drivers/firmware/imx/sm-cpu.c                      |  91 +++
 drivers/firmware/imx/sm-lmm.c                      |  89 +++
 include/linux/firmware/imx/sm.h                    |  56 ++
 include/linux/scmi_imx_protocol.h                  |  39 ++
 11 files changed, 1533 insertions(+)
---
base-commit: 0907e7fb35756464aa34c35d6abb02998418164b
change-id: 20250120-imx-lmm-cpu-418daaa257e2

Best regards,
-- 
Peng Fan <peng.fan@nxp.com>
Re: [PATCH 0/5] firmware: scmi/imx: Add i.MX95 LMM/CPU Protocol
Posted by Cristian Marussi 11 months ago
On Tue, Jan 21, 2025 at 11:08:10PM +0800, Peng Fan (OSS) wrote:
> i.MX95 System Manager(SM) implements Logical Machine Management(LMM) and
> CPU protocol to manage Logical Machine(LM) and CPUs(eg, M7).
> 
> To manage M7 in a separate LM or in same LM as Linux itself. LMM APIs
> and CPU APIs are needed.
> 

Hi Peng,

I see that you are really starting to like vendor extensions
capabilities :P ... jokes apart I'll have a deeper look at this in the
next days (togetehr with your other pending patches...), BUT in the
meantime a quick one...where are the bindings for these additional
vendor protocols...seems like a patch is missing to add those in

 Documentation/devicetree/bindings/firmware/nxp,imx95-scmi.yaml

...even if bare simple protocol numbers (like existing protocol@81)
currently these are needed for the protocol to be initialized by the
core.

Thanks,
Cristian