2018-06-01 01:10:59 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
2012-10-03 02:18:50 +08:00
|
|
|
menu "Rpmsg drivers"
|
2011-12-14 19:03:55 +08:00
|
|
|
|
2011-10-21 03:10:55 +08:00
|
|
|
# RPMSG always gets selected by whoever wants it
|
|
|
|
config RPMSG
|
|
|
|
tristate
|
2016-09-02 06:27:59 +08:00
|
|
|
|
rpmsg: Driver for user space endpoint interface
This driver allows rpmsg instances to expose access to rpmsg endpoints
to user space processes. It provides a control interface, allowing
userspace to export endpoints and an endpoint interface for each exposed
endpoint.
The implementation is based on prior art by Texas Instrument, Google,
PetaLogix and was derived from a FreeRTOS performance statistics driver
written by Michal Simek.
The control interface provides a "create endpoint" ioctl, which is fed a
name, source and destination address. The three values are used to
create the endpoint, in a backend-specific way, and a rpmsg endpoint
device is created - with the three parameters are available in sysfs for
udev usage.
E.g. to create an endpoint device for one of the Qualcomm SMD channel
related to DIAG one would issue:
struct rpmsg_endpoint_info info = { "DIAG_CNTL", 0, 0 };
int fd = open("/dev/rpmsg_ctrl0", O_RDWR);
ioctl(fd, RPMSG_CREATE_EPT_IOCTL, &info);
Each created endpoint device shows up as an individual character device
in /dev, allowing permission to be controlled on a per-endpoint basis.
The rpmsg endpoint will be created and destroyed following the opening
and closing of the endpoint device, allowing rpmsg backends to open and
close the physical channel, if supported by the wire protocol.
Cc: Marek Novak <marek.novak@nxp.com>
Cc: Matteo Sartori <matteo.sartori@t3lab.it>
Cc: Michal Simek <monstr@monstr.eu>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2017-01-11 22:35:12 +08:00
|
|
|
config RPMSG_CHAR
|
|
|
|
tristate "RPMSG device interface"
|
|
|
|
depends on RPMSG
|
2017-01-19 22:54:55 +08:00
|
|
|
depends on NET
|
rpmsg: Driver for user space endpoint interface
This driver allows rpmsg instances to expose access to rpmsg endpoints
to user space processes. It provides a control interface, allowing
userspace to export endpoints and an endpoint interface for each exposed
endpoint.
The implementation is based on prior art by Texas Instrument, Google,
PetaLogix and was derived from a FreeRTOS performance statistics driver
written by Michal Simek.
The control interface provides a "create endpoint" ioctl, which is fed a
name, source and destination address. The three values are used to
create the endpoint, in a backend-specific way, and a rpmsg endpoint
device is created - with the three parameters are available in sysfs for
udev usage.
E.g. to create an endpoint device for one of the Qualcomm SMD channel
related to DIAG one would issue:
struct rpmsg_endpoint_info info = { "DIAG_CNTL", 0, 0 };
int fd = open("/dev/rpmsg_ctrl0", O_RDWR);
ioctl(fd, RPMSG_CREATE_EPT_IOCTL, &info);
Each created endpoint device shows up as an individual character device
in /dev, allowing permission to be controlled on a per-endpoint basis.
The rpmsg endpoint will be created and destroyed following the opening
and closing of the endpoint device, allowing rpmsg backends to open and
close the physical channel, if supported by the wire protocol.
Cc: Marek Novak <marek.novak@nxp.com>
Cc: Matteo Sartori <matteo.sartori@t3lab.it>
Cc: Michal Simek <monstr@monstr.eu>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2017-01-11 22:35:12 +08:00
|
|
|
help
|
|
|
|
Say Y here to export rpmsg endpoints as device files, usually found
|
|
|
|
in /dev. They make it possible for user-space programs to send and
|
|
|
|
receive rpmsg packets.
|
|
|
|
|
2019-11-12 19:03:26 +08:00
|
|
|
config RPMSG_MTK_SCP
|
|
|
|
tristate "MediaTek SCP"
|
|
|
|
depends on MTK_SCP
|
|
|
|
select RPMSG
|
|
|
|
help
|
|
|
|
Say y here to enable support providing communication channels to
|
|
|
|
remote processors in MediaTek platforms.
|
|
|
|
This use IPI and IPC to communicate with remote processors.
|
|
|
|
|
2017-08-24 15:21:26 +08:00
|
|
|
config RPMSG_QCOM_GLINK_NATIVE
|
|
|
|
tristate
|
|
|
|
select RPMSG
|
|
|
|
|
2017-05-28 07:23:35 +08:00
|
|
|
config RPMSG_QCOM_GLINK_RPM
|
|
|
|
tristate "Qualcomm RPM Glink driver"
|
2019-11-20 21:39:44 +08:00
|
|
|
select RPMSG_QCOM_GLINK_NATIVE
|
2017-05-28 07:23:35 +08:00
|
|
|
depends on HAS_IOMEM
|
|
|
|
depends on MAILBOX
|
|
|
|
help
|
|
|
|
Say y here to enable support for the GLINK RPM communication driver,
|
|
|
|
which serves as a channel for communication with the RPM in GLINK
|
|
|
|
enabled systems.
|
|
|
|
|
2017-08-24 15:21:30 +08:00
|
|
|
config RPMSG_QCOM_GLINK_SMEM
|
|
|
|
tristate "Qualcomm SMEM Glink driver"
|
|
|
|
select RPMSG_QCOM_GLINK_NATIVE
|
|
|
|
depends on MAILBOX
|
|
|
|
depends on QCOM_SMEM
|
|
|
|
help
|
|
|
|
Say y here to enable support for the GLINK SMEM communication driver,
|
|
|
|
which provides support for using the GLINK communication protocol
|
|
|
|
over SMEM.
|
|
|
|
|
2016-09-02 06:28:09 +08:00
|
|
|
config RPMSG_QCOM_SMD
|
|
|
|
tristate "Qualcomm Shared Memory Driver (SMD)"
|
2018-04-20 09:17:57 +08:00
|
|
|
depends on MAILBOX
|
2016-09-02 06:28:09 +08:00
|
|
|
depends on QCOM_SMEM
|
|
|
|
select RPMSG
|
|
|
|
help
|
|
|
|
Say y here to enable support for the Qualcomm Shared Memory Driver
|
|
|
|
providing communication channels to remote processors in Qualcomm
|
|
|
|
platforms.
|
|
|
|
|
2016-09-02 06:27:59 +08:00
|
|
|
config RPMSG_VIRTIO
|
2017-10-06 00:43:20 +08:00
|
|
|
tristate "Virtio RPMSG bus driver"
|
|
|
|
depends on HAS_DMA
|
2016-09-02 06:27:59 +08:00
|
|
|
select RPMSG
|
2011-10-21 03:10:55 +08:00
|
|
|
select VIRTIO
|
2011-12-14 19:03:55 +08:00
|
|
|
|
|
|
|
endmenu
|