| #
f1cec17a |
| 25-Nov-2024 |
Pascal Paillet <p.paillet@foss.st.com> |
drivers: scmi-msg: support performance domains for DVFS
Implement some of the SCMI performance domain management messages in scmi-msg drivers to support basic DVFS scenario.
Co-developed-by: Etienn
drivers: scmi-msg: support performance domains for DVFS
Implement some of the SCMI performance domain management messages in scmi-msg drivers to support basic DVFS scenario.
Co-developed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Pascal Paillet <p.paillet@foss.st.com> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
a286b03f |
| 19-Apr-2021 |
Etienne Carriere <etienne.carriere@foss.st.com> |
scmi-msg: fix voltage domains inline comment header file
Fix voltage domains inline comment header file.
Reviewed-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Signed-off-by: Etienne Carrie
scmi-msg: fix voltage domains inline comment header file
Fix voltage domains inline comment header file.
Reviewed-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
fbe66cf8 |
| 16-Oct-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: fix header file guard names
Fixes header file guards macro name prefix (mostly missing occurrences) that should reflect the file base directory sub-path where applicable.
Reviewed-by: Jens Wi
core: fix header file guard names
Fixes header file guards macro name prefix (mostly missing occurrences) that should reflect the file base directory sub-path where applicable.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
e80130f6 |
| 18-Jun-2021 |
Clément Léger <clement.leger@bootlin.com> |
drivers: scmi-msg: add support for clock using generic clock framework
Integrating the clock framework with SCMI allows to avoid boilerplate code to do so in platform specific files. This patch adds
drivers: scmi-msg: add support for clock using generic clock framework
Integrating the clock framework with SCMI allows to avoid boilerplate code to do so in platform specific files. This patch adds a generic layer that uses the generic clock framework to access and expose clocks. SCMI clocks can be added from platform code using scmi_clk_add(). A new CFG_SCMI_MSG_USE_CLK configuration option is added to enable this generic clock support.
Signed-off-by: Clément Léger <clement.leger@bootlin.com> Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
4afbdbdd |
| 01-Aug-2022 |
Anton Eliasson <anton.eliasson@axis.com> |
drivers: scmi-msg: Propagate errors from platform voltd_get_level
plat_scmi_voltd_get_level is refactored to return an SCMI error code and retrieve the voltage via an out parameter. This allows erro
drivers: scmi-msg: Propagate errors from platform voltd_get_level
plat_scmi_voltd_get_level is refactored to return an SCMI error code and retrieve the voltage via an out parameter. This allows errors from the platform SCMI server implementation to be propagated to the REE.
The implementation for stm32mp1 is updated to handle at least some possible errors.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Anton Eliasson <anton.eliasson@axis.com>
show more ...
|
| #
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 ...
|
| #
0c43202e |
| 25-Apr-2022 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: correct inline description
Fixes inline description comment of plat_scmi_clock_rates_array() and scmi_smt_init_agent_channel().
Acked-by: Jens Wiklander <jens.wiklander@linaro.or
drivers: scmi-msg: correct inline description
Fixes inline description comment of plat_scmi_clock_rates_array() and scmi_smt_init_agent_channel().
Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
b4bfc9a9 |
| 30-Apr-2021 |
Jens Wiklander <jens.wiklander@linaro.org> |
core/include/*/*.h: use U() for unsigned constants
Updates with the U() macro as described in the recently updated coding guidelines.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Je
core/include/*/*.h: use U() for unsigned constants
Updates with the U() macro as described in the recently updated coding guidelines.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
3e530666 |
| 25-Apr-2021 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: introduce scmi_smt_channel_handle()
New API function for scmi-msg drivers: sub channel ID to handle conversion for consistency in SCMI PTA.
Signed-off-by: Etienne Carriere <etien
drivers: scmi-msg: introduce scmi_smt_channel_handle()
New API function for scmi-msg drivers: sub channel ID to handle conversion for consistency in SCMI PTA.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
48f04743 |
| 07-Apr-2021 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: add scmi_smt_set_shared_buffer()
Dynamically set/release SCMI SMT shared buffer reference. This can be used when the caller passes the SCMI SMT shared memory reference as part of
drivers: scmi-msg: add scmi_smt_set_shared_buffer()
Dynamically set/release SCMI SMT shared buffer reference. This can be used when the caller passes the SCMI SMT shared memory reference as part of OP-TEE invocation parameters instead of using a statically allocated buffer.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
9ed56ecd |
| 05-Apr-2021 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: stub exported API functions
Stub exported API functions from SCMI message drivers to make the implementation more flexible.
Signed-off-by: Etienne Carriere <etienne.carriere@lina
drivers: scmi-msg: stub exported API functions
Stub exported API functions from SCMI message drivers to make the implementation more flexible.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
e9700cf1 |
| 11-Mar-2021 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: remove unused SCMI channel agent name
Remove field agent_name from struct scmi_msg_channel since unused.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by
drivers: scmi-msg: remove unused SCMI channel agent name
Remove field agent_name from struct scmi_msg_channel since unused.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
ec8c2914 |
| 09-Mar-2021 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: fix header file inline comments
Fix inline comments for scmi-msg API functions description.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Fori
drivers: scmi-msg: fix header file inline comments
Fix inline comments for scmi-msg API functions description.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.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 ...
|
| #
c22983c9 |
| 08-Oct-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
plat-stm32mp1: scmi: prepare platform SCMI voltage regulators
Define generic resources for stm32mp1 platform to support voltage regulators exposed to SCMI agents through the voltage domain protocol.
plat-stm32mp1: scmi: prepare platform SCMI voltage regulators
Define generic resources for stm32mp1 platform to support voltage regulators exposed to SCMI agents through the voltage domain protocol.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.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 ...
|
| #
d9be1b35 |
| 02-Oct-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: scmi-msg: fix clock rates query
Fix implementation of the clock rate query platform functions to consider rates start index which was missing.
Fixes: a7a9e3ba71dd ("drivers/scmi-msg: suppo
drivers: scmi-msg: fix clock rates query
Fix implementation of the clock rate query platform functions to consider rates start index which was missing.
Fixes: a7a9e3ba71dd ("drivers/scmi-msg: support for clock protocol") Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Acked-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
064bf8dc |
| 27-Apr-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: scmi-msg: minor cleanup
Remove useless local headers file inclusion as "common.h" is included. Remove a useless inclusion of speculation_barrier.h. Use BIT() in clock.h. Refine inline descript
core: scmi-msg: minor cleanup
Remove useless local headers file inclusion as "common.h" is included. Remove a useless inclusion of speculation_barrier.h. Use BIT() in clock.h. Refine inline description of scmi_msg_channel::agent_name in scmi-msg.h. Fix typo in scmi_smt_fastcall_smc_entry() description inline comment.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
a58c4d70 |
| 16-Dec-2019 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers/scmi-msg: smt entry points for incoming messages
This change implements SCMI channels for reading a SCMI message from a shared memory and call the SCMI message drivers to route the message t
drivers/scmi-msg: smt entry points for incoming messages
This change implements SCMI channels for reading a SCMI message from a shared memory and call the SCMI message drivers to route the message to the target platform services.
SMT refers to the shared memory management protocol which is used to get/put message/response in shared memory. SMT is a 28byte header stating shared memory state and exchanged protocol data.
The processing entry for a SCMI message can be a secure interrupt (CFG_SCMI_MSG_SMT_INTERRUPT_ENTRY=y), and fastcall SMC (CFG_SCMI_MSG_SMT_FASTCALL_ENTRY=y) or a threaded execution context entry (CFG_SCMI_MSG_SMT_THREAD_ENTRY=y).
SMT description in this implementation is based on the SCP-firmware implementation [1].
Link: [1] 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 ...
|
| #
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 ...
|