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@xxxxxxx> --- Changes in v2: - Add dt-bindings patch 2 - Add a maintainer entry with patch 7 - Update doc to address various questions and make it clear - Use strscpy to use scmi server returned string - Drop extra blank line - Shrink scmi_imx_cpu_attributes_get function args. - Typo fixes - Add LMM_RESET_VECTOR_SET - Link to v1: https://lore.kernel.org/r/20250121-imx-lmm-cpu-v1-0-0eab7e073e4e@xxxxxxx --- Peng Fan (7): firmware: arm_scmi: imx: Add LMM and CPU documentation dt-bindings: firmware: Add i.MX95 SCMI LMM and CPU protocol firmware: arm_scmi: imx: Add i.MX95 LMM protocol firmware: arm_scmi: imx: Add i.MX95 CPU Protocol firmware: imx: Add i.MX95 SCMI LMM driver firmware: imx: Add i.MX95 SCMI CPU driver MAINTAINERS: add entry for i.MX SCMI extensions .../bindings/firmware/nxp,imx95-scmi.yaml | 16 + MAINTAINERS | 9 + 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 | 287 ++++++++ drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c | 270 ++++++++ drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 737 +++++++++++++++++++++ drivers/firmware/imx/Kconfig | 22 + drivers/firmware/imx/Makefile | 2 + drivers/firmware/imx/sm-cpu.c | 91 +++ drivers/firmware/imx/sm-lmm.c | 98 +++ include/linux/firmware/imx/sm.h | 62 ++ include/linux/scmi_imx_protocol.h | 41 ++ 13 files changed, 1659 insertions(+) --- base-commit: c4661e026ccea82ebec71e4b9013c9a4f9f4e232 change-id: 20250120-imx-lmm-cpu-418daaa257e2 Best regards, -- Peng Fan <peng.fan@xxxxxxx>