u-boot/drivers
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
..
adc adc: Drop dm.h header file 2020-08-03 22:19:54 -04:00
ata ata: dwc-ahci: change trace level for phy errors managed by uclass 2020-09-08 08:46:32 -04:00
axi common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
bios_emulator common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
block xen: pvblock: Add initial support for para-virtualized block driver 2020-08-14 15:18:30 -04:00
board common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
bootcount bootcount_ext: Add Ext4 build dependency 2020-06-02 17:27:04 -04:00
bus bus: uniphier-system-bus: move hardware init from board files 2020-07-11 21:30:21 +09:00
button dm: button: add a driver for button driven by gpio 2020-07-28 19:30:39 -06:00
cache common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
clk riscv: clk: Add CLINT clock to kendryte clock driver 2020-09-30 08:54:46 +08:00
core regmap: Add support for regmap fields 2020-09-30 11:55:23 -04:00
cpu timer: Add a test for timer_timebase_fallback 2020-09-30 08:54:45 +08:00
crypto crypto/fsl: add RNG support 2020-07-27 14:16:29 +05:30
ddr imx8m: ddrphy_utils: Improve coding style 2020-07-27 14:02:28 +02:00
demo common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
dfu dfu: fix dfu tftp on sandbox 2020-09-01 14:47:43 +02:00
dma treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
fastboot fastboot: getvar: fix partition-size return value 2020-09-01 14:47:43 +02:00
firmware firmware: add SCMI agent uclass 2020-09-30 11:55:23 -04:00
fpga fpga: zynqmp: Protect zynqmp_loads() for SPL 2020-09-23 10:31:41 +02:00
gpio drivers: gpio: Add a managed API to get a GPIO from the device-tree 2020-09-30 11:55:22 -04:00
hwspinlock common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
i2c i2c: mxc: Fix dev_err being called on a nonexistant variable 2020-09-30 08:52:30 -04:00
input treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
led led: led_cortina: Add CAxxx LED support 2020-08-07 22:31:32 -04:00
mailbox mailbox: k3: Fix not calling dev_err with a device 2020-09-30 08:52:54 -04:00
memory memory: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver 2020-08-13 09:53:34 +02:00
misc i2c: eeprom: Use reg property instead of offset and size 2020-08-20 09:49:20 +02:00
mmc mmc: mtk-sd: Fix not calling dev_err with a device 2020-09-30 08:52:52 -04:00
mtd nand: vybrid: Re-introduce vf610_nfc.dev 2020-09-30 08:53:01 -04:00
net net: ti: cpsw: Fix not calling dev_dbg with a device 2020-09-30 08:53:26 -04:00
nvme nvme: Invalidate dcache before submitting admin cmd 2020-06-23 14:43:23 -04:00
pch common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
pci PCI: mediatek: Release the resource when PCIe enable port fail 2020-09-10 15:32:09 -04:00
pci_endpoint Merge https://gitlab.denx.de/u-boot/custodians/u-boot-fsl-qoriq 2020-07-27 15:18:15 -04:00
phy phy: usbphyc: Fix not calling dev_err with a device 2020-09-30 08:53:36 -04:00
pinctrl powerpc, qe: add DTS support for parallel I/O ports 2020-09-17 06:09:53 +02:00
power power: Tidy up inclusion of regulator_common.h 2020-08-03 22:19:54 -04:00
pwm treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
qe net, qe: add DM support for QE UEC ethernet 2020-09-17 06:09:53 +02:00
ram ram: sifive: Remove regmap dependency 2020-09-30 08:54:38 +08:00
remoteproc remoteproc: k3: Fix not calling dev_xxx with a device 2020-09-30 08:53:42 -04:00
reset test: reset: Add tests for the managed API 2020-09-30 11:55:22 -04:00
rng rng: stm32mp1: use log() instead of printf() 2020-09-18 22:23:58 +02:00
rtc treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
scsi common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
serial serial: uartlite: Add support to work with any endianness 2020-09-23 10:31:40 +02:00
smem soc: qualcomm: Fix not calling dev_err with a device 2020-09-30 08:53:43 -04:00
soc soc: soc_ti_k3: Add device identification for J7200 SoC 2020-08-11 20:34:46 +05:30
sound dm: acpi: Use correct GPIO polarity type in acpi_dp_add_gpio() 2020-09-25 11:27:14 +08:00
spi spi: zynqmp_gqspi: Fix not calling dev_err with a device 2020-09-30 08:53:47 -04:00
spmi treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
sysreset sysreset: ti: Fix not calling dev_err with a device 2020-09-30 08:53:48 -04:00
tee drivers: tee: broadcom: add optee based bnxt fw load driver 2020-07-29 10:37:11 -04:00
thermal thermal: imx_scu_thermal: prevent boot hang with zero pdata 2020-05-22 13:29:25 +02:00
timer timer: Add a test for timer_timebase_fallback 2020-09-30 08:54:45 +08:00
tpm tpm: cr50: Add ACPI support 2020-09-25 11:27:21 +08:00
ufs ufs: Drop dm.h header file 2020-08-03 22:19:54 -04:00
usb usb: musb-new: sunxi: Fix not calling dev_err with a device 2020-09-30 08:54:01 -04:00
video video: stm32: Fix not calling dev_xxx with a device 2020-09-30 08:54:03 -04:00
virtio virtio_blk: set log2blksz correctly 2020-08-24 14:11:31 -04:00
w1 treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
w1-eeprom common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
watchdog watchdog: Add reset support for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
xen xen: Code style conformity 2020-08-24 14:11:31 -04:00
Kconfig xen: pvblock: Add initial support for para-virtualized block driver 2020-08-14 15:18:30 -04:00
Makefile fpga: kconfig: Rename SPL_FPGA_SUPPORT to SPL_FPGA 2020-09-23 10:31:41 +02:00