devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/7] firmware: scmi/imx: Add i.MX95 LMM/CPU Protocol
@ 2025-03-03  2:53 Peng Fan (OSS)
  2025-03-03  2:53 ` [PATCH v3 1/7] firmware: arm_scmi: imx: Add LMM and CPU documentation Peng Fan (OSS)
                   ` (7 more replies)
  0 siblings, 8 replies; 23+ messages in thread
From: Peng Fan (OSS) @ 2025-03-03  2:53 UTC (permalink / raw)
  To: Sudeep Holla, Cristian Marussi, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Dan Carpenter, linux-kernel, arm-scmi, linux-arm-kernel, imx,
	devicetree, Peng Fan

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>
---
Changes in v3:
Patch 1: Correct LMM_ATTRIBUTE return values
        Update the return status of LM_BOOT/RESET/SHUTDOWN/WAKE
        clarify sync/async in the Introduction chapter of LMM
        Update the Origin entry in LMM_RESET_REASON
        Clarify CPU run/sleep mode
        Add note for CPU protocol to indicate AP using PSCI, non-AP use OS.
        Specify mandatory for each command in LMM/CPU per firmware owner.
        For BBM/MISC which have optional command, I will update doc in separate patch later
Patch 2: Add description in binding doc
Patch 3: Unify scmi_imx_lmm_[boot,power_on], Use le32_get_bits
Patch 4: Unify scmi_imx_cpu_[start,stop], Use le32_encode_bits
	 Add pointer check in scmi_imx_cpu_started
	 correct nr_cpus calculation
Patch 5: Unify lmm shutdown,boot/power_on, update kconfig to avoid build bot issue
         Add R-b
Patch 6: Unity cpu start/stop, update Kconfig to avoid build bot issue.
         Add R-b

Ran smatch as below, no issue found.
~/smatch/smatch_scripts/kchecker drivers/firmware/arm_scmi/vendors/imx/
~/smatch/smatch_scripts/kchecker drivers/firmware/imx/

- Link to v2: https://lore.kernel.org/r/20250212-imx-lmm-cpu-v2-0-3aee005968c1@nxp.com

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@nxp.com

---
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          |  23 +
 MAINTAINERS                                        |   9 +
 drivers/firmware/arm_scmi/vendors/imx/Kconfig      |  24 +
 drivers/firmware/arm_scmi/vendors/imx/Makefile     |   2 +
 drivers/firmware/arm_scmi/vendors/imx/imx-sm-cpu.c | 276 +++++++
 drivers/firmware/arm_scmi/vendors/imx/imx-sm-lmm.c | 257 +++++++
 drivers/firmware/arm_scmi/vendors/imx/imx95.rst    | 801 +++++++++++++++++++++
 drivers/firmware/imx/Kconfig                       |  22 +
 drivers/firmware/imx/Makefile                      |   2 +
 drivers/firmware/imx/sm-cpu.c                      |  85 +++
 drivers/firmware/imx/sm-lmm.c                      |  91 +++
 include/linux/firmware/imx/sm.h                    |  19 +
 include/linux/scmi_imx_protocol.h                  |  42 ++
 13 files changed, 1653 insertions(+)
---
base-commit: fb2b3e3bd74b8a3f742eaade06f6565323cf4bdf
change-id: 20250120-imx-lmm-cpu-418daaa257e2

Best regards,
-- 
Peng Fan <peng.fan@nxp.com>


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2025-04-02 15:30 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-03  2:53 [PATCH v3 0/7] firmware: scmi/imx: Add i.MX95 LMM/CPU Protocol Peng Fan (OSS)
2025-03-03  2:53 ` [PATCH v3 1/7] firmware: arm_scmi: imx: Add LMM and CPU documentation Peng Fan (OSS)
2025-04-01 14:15   ` Sudeep Holla
2025-04-02 12:35     ` Peng Fan
2025-04-02 11:46       ` Sudeep Holla
2025-04-02 16:10         ` Peng Fan
2025-04-02 15:30           ` Sudeep Holla
2025-04-01 14:51   ` Cristian Marussi
2025-04-02 12:42     ` Peng Fan
2025-03-03  2:53 ` [PATCH v3 2/7] dt-bindings: firmware: Add i.MX95 SCMI LMM and CPU protocol Peng Fan (OSS)
2025-04-01 22:21   ` Rob Herring (Arm)
2025-03-03  2:53 ` [PATCH v3 3/7] firmware: arm_scmi: imx: Add i.MX95 LMM protocol Peng Fan (OSS)
2025-03-03  8:03   ` Dan Carpenter
2025-04-01 14:21   ` Sudeep Holla
2025-04-01 14:36     ` Cristian Marussi
2025-04-01 14:48       ` Sudeep Holla
2025-04-01 15:00   ` Cristian Marussi
2025-03-03  2:53 ` [PATCH v3 4/7] firmware: arm_scmi: imx: Add i.MX95 CPU Protocol Peng Fan (OSS)
2025-03-03  2:53 ` [PATCH v3 5/7] firmware: imx: Add i.MX95 SCMI LMM driver Peng Fan (OSS)
2025-03-03  2:53 ` [PATCH v3 6/7] firmware: imx: Add i.MX95 SCMI CPU driver Peng Fan (OSS)
2025-03-03  2:53 ` [PATCH v3 7/7] MAINTAINERS: add entry for i.MX SCMI extensions Peng Fan (OSS)
2025-03-18  8:28 ` [PATCH v3 0/7] firmware: scmi/imx: Add i.MX95 LMM/CPU Protocol Peng Fan
2025-03-19  9:54   ` Sudeep Holla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).