mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-12 22:33:18 +00:00
48108f3a6a
This change implements an SCMI transport for agent interfacing the OP-TEE SCMI service. OP-TEE provides an SCMI PTA (Pseudo-TA) for non-secure world to send SCMI messages over an identified channel. The driver implemented here uses a SMT shared memory for passing messages between client and server. The implementation opens and releases channel resources for each passed SCMI message so that resources allocated (sessions) or registered (shared memory areas) in OP-TEE firmware are released for example before relocation as the driver will likely allocate/register them back when probed after relocation. The integration of the driver using dedicated config switch CONFIG_SCMI_AGENT_OPTEE is designed on the model posted to the U-Boot ML by Patrick Delaunay [1]. Link: [1] https://lore.kernel.org/all/20211028191222.v3.4.Ib2e58ee67f4d023823d8b5404332dc4d7e847277@changeid/ Cc: Patrick Delaunay <patrick.delaunay@foss.st.com> Cc: Wolfgang Denk <wd@denx.de> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
43 lines
1.5 KiB
Text
43 lines
1.5 KiB
Text
config SCMI_FIRMWARE
|
|
bool "Enable SCMI support"
|
|
select FIRMWARE
|
|
select OF_TRANSLATE
|
|
depends on SANDBOX || DM_MAILBOX || ARM_SMCCC || OPTEE
|
|
help
|
|
System Control and Management Interface (SCMI) is a communication
|
|
protocol that defines standard interfaces for power, performance
|
|
and system management. The SCMI specification is available at
|
|
https://developer.arm.com/architectures/system-architectures/software-standards/scmi
|
|
|
|
An SCMI agent communicates with a related SCMI server firmware
|
|
located in another sub-system, as a companion micro controller
|
|
or a companion host in the CPU system.
|
|
|
|
Communications between agent (client) and the SCMI server are
|
|
based on message exchange. Messages can be exchanged over transport
|
|
channels as a mailbox device or an Arm SMCCC service with some
|
|
piece of identified shared memory.
|
|
|
|
config SCMI_AGENT_MAILBOX
|
|
bool "Enable SCMI agent mailbox"
|
|
depends on SCMI_FIRMWARE && DM_MAILBOX
|
|
default y
|
|
help
|
|
Enable the SCMI communication channel based on mailbox
|
|
for compatible "arm,scmi".
|
|
|
|
config SCMI_AGENT_SMCCC
|
|
bool "Enable SCMI agent SMCCC"
|
|
depends on SCMI_FIRMWARE && ARM_SMCCC
|
|
default y
|
|
help
|
|
Enable the SCMI communication channel based on Arm SMCCC service for
|
|
compatible "arm,scmi-smc".
|
|
|
|
config SCMI_AGENT_OPTEE
|
|
bool "Enable SCMI agent OP-TEE"
|
|
depends on SCMI_FIRMWARE && OPTEE
|
|
default y
|
|
help
|
|
Enable the SCMI communication channel based on OP-TEE transport
|
|
for compatible "linaro,scmi-optee".
|