
From: AKASHI Takahiro takahiro.akashi@linaro.org Sent: Wednesday, July 26, 2023 10:38 This is a help text for scmi command.
Signed-off-by: AKASHI Takahiro takahiro.akashi@linaro.org
v2
- add more descriptions about SCMI
Reviewed-by: Etienne Carriere etienne.carriere@foss.st.com
doc/usage/cmd/scmi.rst | 126 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 doc/usage/cmd/scmi.rst
diff --git a/doc/usage/cmd/scmi.rst b/doc/usage/cmd/scmi.rst new file mode 100644 index 000000000000..aebcfe95101d --- /dev/null +++ b/doc/usage/cmd/scmi.rst @@ -0,0 +1,126 @@ +.. SPDX-License-Identifier: GPL-2.0+:
+scmi command +============
+Synopsis +--------
+::
+ scmi info + scmi perm_dev <agent id> <device id> <flags> + scmi perm_proto <agent id> <device id> <protocol id> <flags> + scmi reset <agent id> <flags>
+Description +-----------
+Arm System Control and Management Interface (SCMI hereafter) is a set of +standardised interfaces to manage system resources, like clocks, power +domains, pin controls, reset and so on, in a system-wide manner.
+An entity which provides those services is called a SCMI firmware (or +SCMI server if you like) may be placed/implemented by EL3 software or +by a dedicated system control processor (SCP) or else.
+A user of SCMI interfaces, including U-Boot, is called a SCMI agent and +may issues commands, which are defined in each protocol for specific system +resources, to SCMI server via a communication channel, called a transport. +Those interfaces are independent from the server's implementation thanks to +a tranport layer.
+For more details, see the `SCMI specification`_.
+While most of system resources managed under SCMI protocols are implemented +and handled as standard U-Boot devices, for example clk_scmi, scmi command +provides additional management functionality against SCMI server.
+scmi info +~~~~~~~~~ + Show base information about SCMI server and supported protocols
+scmi perm_dev +~~~~~~~~~~~~~ + Allow or deny access permission to the device
+scmi perm_proto +~~~~~~~~~~~~~~~ + Allow or deny access to the protocol on the device
+scmi reset +~~~~~~~~~~ + Reset the already-configured permissions against the device
+Parameters are used as follows:
+<agent id> + SCMI Agent ID, hex value
By the way, this documentation states hexadecimal value are awaited but not the embedded doc (patch v2 10/12). Would it be worth it?
+<device id> + SCMI Device ID, hex value
+ Please note that what a device means is not defined + in the specification.
+<protocol id> + SCMI Protocol ID, hex value
+ It must not be 0x10 (base protocol)
+<flags> + Flags to control the action, hex value
+ 0 to deny, 1 to allow. The other values are reserved and allowed + values may depend on the implemented version of SCMI server in + the future. See SCMI specification for more details.
+Example +-------
+Obtain basic information about SCMI server:
+::
+ => scmi info + SCMI device: scmi + protocol version: 0x20000 + # of agents: 3 + 0: platform + > 1: OSPM + 2: PSCI + # of protocols: 4 + Power domain management + Performance domain management + Clock management + Sensor management + vendor: Linaro + sub vendor: PMWG + impl version: 0x20b0000
+Ask for access permission to device#0:
+::
+ => scmi perm_dev 1 0 1
+Reset configurations with all access permission settings retained:
+::
+ => scmi reset 1 0
+Configuration +-------------
+The scmi command is only available if CONFIG_CMD_SCMI=y. +Default n because this command is mainly for debug purpose.
+Return value +------------
+The return value ($?) is set to 0 if the operation succeeded, +1 if the operation failed or -1 if the operation failed due to +a syntax error.
+.. _`SCMI specification`: https://developer.arm.com/documentation/den0056/e/?lang=en
2.41.0