u-boot/include/dm
Etienne Carriere 358599efd8 firmware: add SCMI agent uclass
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>
2020-09-30 11:55:23 -04:00
..
platform_data arm: pxa: mmc: add driver model support 2020-06-30 11:13:11 -04:00
acpi.h dm: acpi: Add support for the NHLT table 2020-07-17 14:32:24 +08:00
device-internal.h core: drop const for struct driver_info 2020-07-09 22:00:29 -06:00
device.h core: improve of_match_ptr with OF_PLATDATA 2020-09-22 12:50:43 -06:00
device_compat.h dm: Print device name in dev_xxx like Linux 2020-09-30 08:54:07 -04:00
devres.h dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
fdtaddr.h dm: core: Use const device for the devfdt...() interface 2020-02-05 19:33:45 -07:00
lists.h dm: Correct pre_reloc_only parameter description in several APIs' comments 2018-11-14 09:16:27 -08:00
of.h dm: Fix default address cells return value 2019-10-15 08:40:02 -06:00
of_access.h dm: add cells_count parameter in live DT APIs of_parse_phandle_with_args 2020-09-22 12:54:13 -06:00
of_addr.h dm: core: Introduce xxx_translate_dma_address() 2019-07-22 09:21:28 +02:00
of_extra.h dm: core: Update ofnode to read binman-style flash entry 2018-10-09 04:40:27 -06:00
ofnode.h dm: remove superfluous comment for union ofnode_union 2020-07-28 19:30:39 -06:00
pci.h dm: pci: Move pci_get_devfn() into a common file 2019-12-15 08:52:29 +08:00
pinctrl.h pinctrol: dm: remove the function pinctrl_decode_pin_config 2019-11-14 07:09:34 -06:00
platdata.h core: extend struct driver_info to point to device 2020-07-09 22:00:29 -06:00
read.h dm: core: Add API to read PCI bus-range property 2020-08-25 05:41:09 +02:00
root.h dm: Correct pre_reloc_only parameter description in several APIs' comments 2018-11-14 09:16:27 -08:00
test.h dm: Rename DM test flags to make them more generic 2020-08-07 22:31:32 -04:00
uclass-id.h firmware: add SCMI agent uclass 2020-09-30 11:55:23 -04:00
uclass-internal.h dm: core: Correct the return value for uclass_find_first_device() 2019-10-08 13:57:38 +08:00
uclass.h dm: core: Correct comment on uclass_id_foreach_dev() 2020-07-09 18:57:22 -06:00
util.h cmd: dm: Fixed/Added DM driver listing subcommands 2020-07-07 15:37:13 -04:00