[PATCH v5 00/16] firmware: scmi: add SCMI base protocol support
AKASHI Takahiro
takahiro.akashi at linaro.org
Tue Sep 26 08:57:34 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.10-rc4.
Patches:
========
Patch#1-#4: refactoring & bug fix
Patch#5-#7,#10-#11: Add SCMI base protocol driver
Patch#8-#9,#12-#13: Add SCMI base protocol device unit test
Patch#14-#16: Add scmi command
Change history:
===============
v5 (sep 26, 2023)
* fix a per_child_auto size (patch#1)
* fix an existing bug (not using a protocol's channel) (patch#2-#4)
v4 (Sep 12, 2023)
* shuffle the patch order (patch#5,6 prior to patch#7)
* several improvements/cleanup thanks to Etienne
(Each commit message has more details.)
v3 (Sep 8, 2023)
* import patch#6 (protocol availability check) from my followup patch
* fix an issue on ST board (reported by Etienne) (patch#1)
* minor code improvements
* fix various typos pointed out by Etienne
* revise function descriptions/comments
(Each commit message has more details.)
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 (16):
scmi: refactor the code to hide a channel from devices
firmware: scmi: use a protocol's own channel if assigned
firmware: scmi: support dummy channels for sandbox agent
test: dm: add protocol-specific channel test
firmware: scmi: implement SCMI base protocol
firmware: scmi: move scmi_bind_protocols() backward
firmware: scmi: framework for installing additional protocols
firmware: scmi: fake base protocol commands on sandbox
test: dm: simplify SCMI unit test on sandbox
firmware: scmi: install base protocol to SCMI agent
firmware: scmi: add a check against availability of protocols
sandbox: remove SCMI base node definition from test.dts
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 | 5 +-
arch/sandbox/include/asm/scmi_test.h | 19 +-
cmd/Kconfig | 9 +
cmd/Makefile | 1 +
cmd/scmi.c | 337 +++++++++++
configs/sandbox_defconfig | 1 +
doc/usage/cmd/scmi.rst | 126 ++++
drivers/clk/clk_scmi.c | 27 +-
drivers/firmware/scmi/Makefile | 1 +
drivers/firmware/scmi/base.c | 657 +++++++++++++++++++++
drivers/firmware/scmi/mailbox_agent.c | 5 +-
drivers/firmware/scmi/optee_agent.c | 5 +-
drivers/firmware/scmi/sandbox-scmi_agent.c | 469 ++++++++++++++-
drivers/firmware/scmi/scmi_agent-uclass.c | 412 +++++++++++--
drivers/firmware/scmi/smccc_agent.c | 5 +-
drivers/power/regulator/scmi_regulator.c | 26 +-
drivers/reset/reset-scmi.c | 19 +-
include/dm/uclass-id.h | 1 +
include/scmi_agent-uclass.h | 89 ++-
include/scmi_agent.h | 29 +-
include/scmi_protocols.h | 351 +++++++++++
test/dm/scmi.c | 248 ++++++--
22 files changed, 2638 insertions(+), 204 deletions(-)
create mode 100644 cmd/scmi.c
create mode 100644 doc/usage/cmd/scmi.rst
create mode 100644 drivers/firmware/scmi/base.c
--
2.34.1
More information about the U-Boot
mailing list