[PATCH v2 00/12] firmware: scmi: add SCMI base protocol support

AKASHI Takahiro takahiro.akashi at linaro.org
Wed Jul 26 10:37:56 CEST 2023


This patch series allows users to access SCMI base protocol provided by
SCMI server (platform). It will also be utilized in separate patches
in the future to add sanity/validity checks for other protocols.
See SCMI specification document v3.2 beta[1] for more details about SCMI
base protocol.

What is currently not implemented is
- SCMI_BASE_NOTIFY_ERRORS command and notification callback mechanism

This feature won't be very useful in the current U-Boot environment.

[1] https://developer.arm.com/documentation/den0056/e/?lang=en


Test
====
The patch series was tested on the following platforms:
* sandbox
* qemu-arm64 with OPTEE as SCMI server


Prerequisite:
=============
* This patch series is based on v2023.07-rc and relies on the following
  patch:

[2] https://lists.denx.de/pipermail/u-boot/2023-June/520083.html


Patches:
========
Patch#1-#5: Add SCMI base protocol driver
Patch#6-#9: Add SCMI base protocol device unit test
Patch#10-#12: Add scmi command


Change history:
===============
v2 (Jul, 26, 2023)
* refactor devm_scmi_of_get_channel()/process_msg(), removing uses of ops
  (patch#1)
* use helper functions, removing uses of ops (patch#2,#9,#10)
* add more descriptions in scmi command doc (patch#11)
* remove 'scmi base' sub-command (patch#10,#12)

v1 (Jun, 28, 2023)
* initial release

AKASHI Takahiro (12):
  scmi: refactor the code to hide a channel from devices
  firmware: scmi: implement SCMI base protocol
  firmware: scmi: move scmi_bind_protocols() backward
  firmware: scmi: framework for installing additional protocols
  firmware: scmi: install base protocol to SCMI agent
  sandbox: remove SCMI base node definition from test.dts
  firmware: scmi: fake base protocol commands on sandbox
  test: dm: simplify SCMI unit test on sandbox
  test: dm: add SCMI base protocol test
  cmd: add scmi command for SCMI firmware
  doc: cmd: add documentation for scmi
  test: dm: add scmi command test

 arch/sandbox/dts/test.dts                  |   4 -
 arch/sandbox/include/asm/scmi_test.h       |   7 +-
 cmd/Kconfig                                |   9 +
 cmd/Makefile                               |   1 +
 cmd/scmi.c                                 | 334 +++++++++++
 doc/usage/cmd/scmi.rst                     | 126 ++++
 drivers/clk/clk_scmi.c                     |  27 +-
 drivers/firmware/scmi/Makefile             |   1 +
 drivers/firmware/scmi/base.c               | 637 +++++++++++++++++++++
 drivers/firmware/scmi/sandbox-scmi_agent.c | 379 +++++++++++-
 drivers/firmware/scmi/scmi_agent-uclass.c  | 367 ++++++++++--
 drivers/power/regulator/scmi_regulator.c   |  27 +-
 drivers/reset/reset-scmi.c                 |  19 +-
 include/dm/uclass-id.h                     |   1 +
 include/scmi_agent-uclass.h                |  81 ++-
 include/scmi_agent.h                       |  29 +-
 include/scmi_protocols.h                   | 345 +++++++++++
 test/dm/scmi.c                             | 226 ++++++--
 18 files changed, 2430 insertions(+), 190 deletions(-)
 create mode 100644 cmd/scmi.c
 create mode 100644 doc/usage/cmd/scmi.rst
 create mode 100644 drivers/firmware/scmi/base.c

-- 
2.41.0



More information about the U-Boot mailing list