124 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2menu "SCMI Transport Drivers"3 4config ARM_SCMI_HAVE_TRANSPORT5 bool6 help7 This declares whether at least one SCMI transport has been configured.8 Used to trigger a build bug when trying to build SCMI without any9 configured transport.10 11config ARM_SCMI_HAVE_SHMEM12 bool13 help14 This declares whether a shared memory based transport for SCMI is15 available.16 17config ARM_SCMI_HAVE_MSG18 bool19 help20 This declares whether a message passing based transport for SCMI is21 available.22 23config ARM_SCMI_TRANSPORT_MAILBOX24 tristate "SCMI transport based on Mailbox"25 depends on MAILBOX26 select ARM_SCMI_HAVE_TRANSPORT27 select ARM_SCMI_HAVE_SHMEM28 default y29 help30 Enable mailbox based transport for SCMI.31 32 If you want the ARM SCMI PROTOCOL stack to include support for a33 transport based on mailboxes, answer Y.34 This driver can also be built as a module. If so, the module35 will be called scmi_transport_mailbox.36 37config ARM_SCMI_TRANSPORT_SMC38 tristate "SCMI transport based on SMC"39 depends on HAVE_ARM_SMCCC_DISCOVERY40 select ARM_SCMI_HAVE_TRANSPORT41 select ARM_SCMI_HAVE_SHMEM42 default y43 help44 Enable SMC based transport for SCMI.45 46 If you want the ARM SCMI PROTOCOL stack to include support for a47 transport based on SMC, answer Y.48 This driver can also be built as a module. If so, the module49 will be called scmi_transport_smc.50 51config ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE52 bool "Enable atomic mode support for SCMI SMC transport"53 depends on ARM_SCMI_TRANSPORT_SMC54 help55 Enable support of atomic operation for SCMI SMC based transport.56 57 If you want the SCMI SMC based transport to operate in atomic58 mode, avoiding any kind of sleeping behaviour for selected59 transactions on the TX path, answer Y.60 Enabling atomic mode operations allows any SCMI driver using this61 transport to optionally ask for atomic SCMI transactions and operate62 in atomic context too, at the price of using a number of busy-waiting63 primitives all over instead. If unsure say N.64 65config ARM_SCMI_TRANSPORT_OPTEE66 tristate "SCMI transport based on OP-TEE service"67 depends on OPTEE68 select ARM_SCMI_HAVE_TRANSPORT69 select ARM_SCMI_HAVE_SHMEM70 select ARM_SCMI_HAVE_MSG71 default y72 help73 This enables the OP-TEE service based transport for SCMI.74 75 If you want the ARM SCMI PROTOCOL stack to include support for a76 transport based on OP-TEE SCMI service, answer Y.77 This driver can also be built as a module. If so, the module78 will be called scmi_transport_optee.79 80config ARM_SCMI_TRANSPORT_VIRTIO81 tristate "SCMI transport based on VirtIO"82 depends on VIRTIO83 select ARM_SCMI_HAVE_TRANSPORT84 select ARM_SCMI_HAVE_MSG85 help86 This enables the virtio based transport for SCMI.87 88 If you want the ARM SCMI PROTOCOL stack to include support for a89 transport based on VirtIO, answer Y.90 This driver can also be built as a module. If so, the module91 will be called scmi_transport_virtio.92 93config ARM_SCMI_TRANSPORT_VIRTIO_VERSION1_COMPLIANCE94 bool "SCMI VirtIO transport Version 1 compliance"95 depends on ARM_SCMI_TRANSPORT_VIRTIO96 default y97 help98 This enforces strict compliance with VirtIO Version 1 specification.99 100 If you want the ARM SCMI VirtIO transport layer to refuse to work101 with Legacy VirtIO backends and instead support only VirtIO Version 1102 devices (or above), answer Y.103 104 If you want instead to support also old Legacy VirtIO backends (like105 the ones implemented by kvmtool) and let the core Kernel VirtIO layer106 take care of the needed conversions, say N.107 108config ARM_SCMI_TRANSPORT_VIRTIO_ATOMIC_ENABLE109 bool "Enable atomic mode for SCMI VirtIO transport"110 depends on ARM_SCMI_TRANSPORT_VIRTIO111 help112 Enable support of atomic operation for SCMI VirtIO based transport.113 114 If you want the SCMI VirtIO based transport to operate in atomic115 mode, avoiding any kind of sleeping behaviour for selected116 transactions on the TX path, answer Y.117 118 Enabling atomic mode operations allows any SCMI driver using this119 transport to optionally ask for atomic SCMI transactions and operate120 in atomic context too, at the price of using a number of busy-waiting121 primitives all over instead. If unsure say N.122 123endmenu124