History log of /optee_os/core/drivers/scmi-msg/entry.c (Results 1 – 13 of 13)
Revision Date Author Comments
# 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 ...


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


# 7b49ff33 25-Apr-2022 Etienne Carriere <etienne.carriere@linaro.org>

drivers: scmi-msg: relax constraint on output buffer size

Changes scmi_write_response() implementation to not assert the output
buffer size against target payload but return a protocol error instead

drivers: scmi-msg: relax constraint on output buffer size

Changes scmi_write_response() implementation to not assert the output
buffer size against target payload but return a protocol error instead
since we expect shared memory size where agreed on before communication.

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


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


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


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