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 transport 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
- <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.