| #
916cc52a |
| 29-Apr-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: add SCMI MSG message protocol
Implements MSG header protocol to handle SCMI messages. MSG header protocol was introduced in Linux kernel v5.15 [1]. It relies on normal cached shar
drivers: scmi-msg: add SCMI MSG message protocol
Implements MSG header protocol to handle SCMI messages. MSG header protocol was introduced in Linux kernel v5.15 [1]. It relies on normal cached shared memory buffer using a 32bit header followed by the SCMI message payload.
To support this message interface, the SCMI PTA defines a new capability and a new command. Capability PTA_SCMI_CAPS_MSG_HEADER allows client and service to negotiate the desired transport configuration. Command PTA_SCMI_CMD_PROCESS_MSG_CHANNEL allows client to request processing of a message sent based on that message exchange protocol.
Platforms shall enable configuration switch CFG_SCMI_MSG_SHM_MSG to have their SCMI service supporting that communication protocol.
Link: [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f301bba0ca7392d16a6ea4f1d264a91f1fadea1a Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
4a382700 |
| 29-Apr-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: move entry functions to generic entry
Moves SCMI channel management entry helper functions from smt.c to generic source file entry.c. This change will ease integration of other SC
drivers: scmi-msg: move entry functions to generic entry
Moves SCMI channel management entry helper functions from smt.c to generic source file entry.c. This change will ease integration of other SCMI shared memory message passing protocol.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
d9b0a06d |
| 25-Apr-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: rename secure buffer size macros
Renames macro SCMI_PLAYLOAD_MAX to SCMI_SEC_PAYLOAD_SIZE and SCMI_PLAYLOAD_U32_MAX to SCMI_PAYLOAD_U32_SIZE to fix typo in macro name (play to pay
drivers: scmi-msg: rename secure buffer size macros
Renames macro SCMI_PLAYLOAD_MAX to SCMI_SEC_PAYLOAD_SIZE and SCMI_PLAYLOAD_U32_MAX to SCMI_PAYLOAD_U32_SIZE to fix typo in macro name (play to pay) and make it clear that SCMI_SEC_PAYLOAD_SIZE is the size of the secure buffer used to store a secure copy of the input SCMI message payload, that is expected small.
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
5c34a982 |
| 25-Apr-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: rename channel entry lock functions
Renames scmi_channel_set_busy() and scmi_channel_release_busy() to scmi_msg_claim_channel() and scmi_msg_release_channel(). This change also mo
drivers: scmi-msg: rename channel entry lock functions
Renames scmi_channel_set_busy() and scmi_channel_release_busy() to scmi_msg_claim_channel() and scmi_msg_release_channel(). This change also moves the implementation from smt.c to entry.c in the scmi-msg driver for alternate mailbox memory protocol support.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
659a1f88 |
| 09-Mar-2021 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: rename agent_id to channel_id
Rename agent_id reference to channel_id to avoid confusion with the agent identifiers used in SCMI protocol to identify agent, whereas the drivers on
drivers: scmi-msg: rename agent_id to channel_id
Rename agent_id reference to channel_id to avoid confusion with the agent identifiers used in SCMI protocol to identify agent, whereas the drivers only reference an SCMI channel, whatever the agent ID associated with the channel and knowing that an SCMI agent can have several channels to communicate with the SCMI platform/server.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
60c96f68 |
| 12-Oct-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: refine local header files
Change scmi-msg drivers to define/declare protocol resources in protocol specific local file instead of from local common.h file.
Signed-off-by: Etienne
drivers: scmi-msg: refine local header files
Change scmi-msg drivers to define/declare protocol resources in protocol specific local file instead of from local common.h file.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
c007fb39 |
| 09-Oct-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: Set SCMI version to 3
Update SCMI version to 3 as supported voltage domain protocol is introduced in the version 3 of the specification.
Fixes: 006d89b8f49f ("drivers: scmi-msg:
drivers: scmi-msg: Set SCMI version to 3
Update SCMI version to 3 as supported voltage domain protocol is introduced in the version 3 of the specification.
Fixes: 006d89b8f49f ("drivers: scmi-msg: add SCMI Voltage Domain protocol") Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
006d89b8 |
| 06-Oct-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: add SCMI Voltage Domain protocol
SCMI Voltage Domain protocol in defined in the SCMI specification since its version 3 [1]. This protocol allows a SCMI server to expose voltage re
drivers: scmi-msg: add SCMI Voltage Domain protocol
SCMI Voltage Domain protocol in defined in the SCMI specification since its version 3 [1]. This protocol allows a SCMI server to expose voltage regulator control services. The current specification defines services to discover the exposed regulators, to enable/disable them and to set/get the regulator voltage level.
The protocol driver is embedded upon configuration switch CFG_SCMI_MSG_VOLTAGE_DOMAIN.
Link: [1] https://developer.arm.com/documentation/den0056/c Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
e179489e |
| 02-Oct-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: remove #ifdef in switch/case
Remove #ifdef from scmi_process_message() switch/case block and define stubs for when related SCMI protocol is not embedded.
Signed-off-by: Etienne C
drivers: scmi-msg: remove #ifdef in switch/case
Remove #ifdef from scmi_process_message() switch/case block and define stubs for when related SCMI protocol is not embedded.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
56a1f10e |
| 02-Dec-2019 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers/scmi-msg: support for reset domain protocol
Adds SCMI reset domain protocol support in the SCMI message drivers as defined in SCMI specification v2.0 [1]. Not all the messages defined in the
drivers/scmi-msg: support for reset domain protocol
Adds SCMI reset domain protocol support in the SCMI message drivers as defined in SCMI specification v2.0 [1]. Not all the messages defined in the specification are supported.
Embedded upon CFG_SCMI_MSG_RESET_DOMAIN=y.
scmi_msg_get_rd_handler() sanitizes the message_id value against any speculative use of reset domain ID as a index since by SCMI specification, IDs are indices.
SCMI resource in this implementation are dumped or inspired by the SCP-firmware implementation [2] of the SCMI protocol, server side.
Link: [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf Link: [2] https://github.com/ARM-software/SCP-firmware.git
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
a7a9e3ba |
| 02-Dec-2019 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers/scmi-msg: support for clock protocol
Adds SCMI clock protocol support in the SCMI message drivers as defined in SCMI specification v2.0 [1]. Not all the messages defined in the specification
drivers/scmi-msg: support for clock protocol
Adds SCMI clock protocol support in the SCMI message drivers as defined in SCMI specification v2.0 [1]. Not all the messages defined in the specification are supported.
Embedded upon CFG_SCMI_MSG_CLOCK=y.
Platform can provide one of the plat_scmi_clock_*() handler for the supported operations set/get state/rate and others.
scmi_msg_get_clock_handler() sanitizes the message_id value against any speculative use of clock ID as a index since by SCMI specification, IDs are indices.
SCMI resource in this implementation are dumped or inspired by the SCP-firmware implementation [2] of the SCMI protocol, server side.
Link: [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf Link: [2] https://github.com/ARM-software/SCP-firmware.git
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
ae8c8068 |
| 01-Dec-2019 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers/scmi-msg: driver for processing scmi messages
This change introduces drivers to allow a platform to create a SCMI service and register handlers for client request (SCMI agent) on system reso
drivers/scmi-msg: driver for processing scmi messages
This change introduces drivers to allow a platform to create a SCMI service and register handlers for client request (SCMI agent) on system resources. This is the first piece of the drivers: an entry function, the SCMI base protocol support and helpers for create the response message.
With this change, scmi_process_message() is the entry function to process an incoming SCMI message. The function expect the message is already copied from shared memory into secure memory. The message structure stores message reference and output buffer reference where response message shall be stored.
scmi_process_message() calls the SCMI protocol driver according to the protocol ID in the message. The SCMI protocol driver will call defined platform handlers according to the message content.
This change introduces only the SCMI base protocol as defined in SCMI specification v2.0 [1]. Not all the messages defined in the specification are supported.
SCMI resource in this implementation are dumped or inspired by the SCP-firmware implementation [2] of the SCMI protocol, server side.
Link: [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf Link: [2] https://github.com/ARM-software/SCP-firmware.git
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|