mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-19 00:18:51 +09:00
![Etienne Carriere](/assets/img/avatar_default.png)
This change introduces SCMI agent uclass to interact with a firmware using the SCMI protocols [1]. SCMI agent uclass currently supports a single method to request processing of the SCMI message by an identified server. A SCMI message is made of a byte payload associated to a protocol ID and a message ID, all defined by the SCMI specification [1]. On return from process_msg() method, the caller gets the service response. SCMI agent uclass defines a post bind generic sequence for all devices. The sequence binds all the SCMI protocols listed in the FDT for that SCMI agent device. Currently none, but later change will introduce protocols. This change implements a simple sandbox device for the SCMI agent uclass. The sandbox nicely answers SCMI_NOT_SUPPORTED to SCMI messages. To prepare for further test support, the sandbox exposes a architecture function for test application to read the sandbox emulated devices state. Currently supports 2 SCMI agents, identified by an ID in the FDT device name. The simplistic DM test does nothing yet. SCMI agent uclass is designed for platforms that embed a SCMI server in a firmware hosted somewhere, for example in a companion co-processor or in the secure world of the executing processor. SCMI protocols allow an SCMI agent to discover and access external resources as clock, reset controllers and more. SCMI agent and server communicate following the SCMI specification [1]. This SCMI agent implementation complies with the DT bindings defined in the Linux kernel source tree regarding SCMI agent description since v5.8. Links: [1] https://developer.arm.com/architectures/system-architectures/software-standards/scmi Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Cc: Simon Glass <sjg@chromium.org> Cc: Peng Fan <peng.fan@nxp.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Reviewed-by: Simon Glass <sjg@chromium.org>
41 lines
1.1 KiB
Plaintext
41 lines
1.1 KiB
Plaintext
config FIRMWARE
|
|
bool "Enable Firmware driver support"
|
|
|
|
config SPL_FIRMWARE
|
|
bool "Enable Firmware driver support in SPL"
|
|
depends on FIRMWARE
|
|
|
|
config SPL_ARM_PSCI_FW
|
|
bool
|
|
select SPL_FIRMWARE
|
|
|
|
config ARM_PSCI_FW
|
|
bool
|
|
select FIRMWARE
|
|
|
|
config TI_SCI_PROTOCOL
|
|
tristate "TI System Control Interface (TISCI) Message Protocol"
|
|
depends on K3_SEC_PROXY
|
|
select FIRMWARE
|
|
select SPL_FIRMWARE if SPL
|
|
help
|
|
TI System Control Interface (TISCI) Message Protocol is used to manage
|
|
compute systems such as ARM, DSP etc with the system controller in
|
|
complex System on Chip (SoC) such as those found on certain K3
|
|
generation SoC from TI.
|
|
|
|
This protocol library is used by client drivers to use the features
|
|
provided by the system controller.
|
|
|
|
config ZYNQMP_FIRMWARE
|
|
bool "ZynqMP Firmware interface"
|
|
select FIRMWARE
|
|
help
|
|
Firmware interface driver is used by different
|
|
drivers to communicate with the firmware for
|
|
various platform management services.
|
|
Say yes to enable ZynqMP firmware interface driver.
|
|
If in doubt, say N.
|
|
|
|
source "drivers/firmware/scmi/Kconfig"
|