| /Linux-v5.15/Documentation/staging/ |
| D | rpmsg.rst | 2 Remote Processor Messaging (rpmsg) Framework 7 This document describes the rpmsg bus and how to write rpmsg drivers. 8 To learn how to add rpmsg support for new platforms, check out remoteproc.txt 14 Modern SoCs typically employ heterogeneous remote processor devices in 17 flavor of real-time OS. 19 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. 20 Typically, the dual cortex-A9 is running Linux in a SMP configuration, 22 its own instance of RTOS in an AMP configuration. 25 hardware accelerators, and therefore are often used to offload CPU-intensive 28 These remote processors could also be used to control latency-sensitive [all …]
|
| D | remoteproc.rst | 8 Modern SoCs typically have heterogeneous remote processor devices in asymmetric 10 of operating system, whether it's Linux or any other flavor of real-time OS. 12 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. 13 In a typical configuration, the dual cortex-A9 is running Linux in a SMP 15 is running its own instance of RTOS in an AMP configuration. 20 duplicated. In addition, this framework also adds rpmsg virtio devices 22 platform-specific remoteproc drivers only need to provide a few low-level 23 handlers, and then all rpmsg drivers will then just work 24 (for more information about the virtio-based rpmsg bus and its drivers, 25 please read Documentation/staging/rpmsg.rst). [all …]
|
| /Linux-v5.15/Documentation/ABI/testing/ |
| D | sysfs-bus-rpmsg | 1 What: /sys/bus/rpmsg/devices/.../name 4 Contact: Ohad Ben-Cohen <ohad@wizery.com> 6 Every rpmsg device is a communication channel with a remote 8 which is maximum 32 bytes long (defined as RPMSG_NAME_SIZE in 9 rpmsg.h). 13 What: /sys/bus/rpmsg/devices/.../src 16 Contact: Ohad Ben-Cohen <ohad@wizery.com> 18 Every rpmsg device is a communication channel with a remote 19 processor. Channels have a local ("source") rpmsg address, 20 and remote ("destination") rpmsg address. When an entity [all …]
|
| /Linux-v5.15/drivers/rpmsg/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 3 menu "Rpmsg drivers" 5 # RPMSG always gets selected by whoever wants it 6 config RPMSG config 10 tristate "RPMSG device interface" 11 depends on RPMSG 14 Say Y here to export rpmsg endpoints as device files, usually found 15 in /dev. They make it possible for user-space programs to send and 16 receive rpmsg packets. 19 tristate "RPMSG name service announcement" [all …]
|
| D | rpmsg_core.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * Ohad Ben-Cohen <ohad@wizery.com> 16 #include <linux/rpmsg.h> 24 * rpmsg_create_channel() - create a new rpmsg channel 26 * @rpdev: rpmsg device 29 * Returns a pointer to the new rpmsg device on success, or NULL on error. 36 if (!rpdev->ops || !rpdev->ops->create_channel) { in rpmsg_create_channel() 37 dev_err(&rpdev->dev, "no create_channel ops found\n"); in rpmsg_create_channel() 41 return rpdev->ops->create_channel(rpdev, chinfo); in rpmsg_create_channel() 46 * rpmsg_release_channel() - release a rpmsg channel [all …]
|
| D | virtio_rpmsg_bus.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Virtio-based remote processor messaging bus 8 * Ohad Ben-Cohen <ohad@wizery.com> 14 #include <linux/dma-mapping.h> 21 #include <linux/rpmsg.h> 22 #include <linux/rpmsg/byteorder.h> 23 #include <linux/rpmsg/ns.h> 35 * struct virtproc_info - virtual remote processor state 53 * This structure stores the rpmsg state of a given virtio remote processor 72 /* The feature bitmap for virtio rpmsg */ [all …]
|
| D | rpmsg_char.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * Based on rpmsg performance statistics driver by Michal Simek, which in turn 10 * was based on TI & Google OMX rpmsg driver. 19 #include <linux/rpmsg.h> 23 #include <uapi/linux/rpmsg.h> 43 * struct rpmsg_ctrldev - control device for instantiating endpoint devices 44 * @rpdev: underlaying rpmsg device 55 * struct rpmsg_eptdev - endpoint device context 58 * @rpdev: underlaying rpmsg device 61 * @ept: rpmsg endpoint reference, when open [all …]
|
| D | mtk_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/rpmsg/mtk_rpmsg.h> 36 * struct rpmsg_ns_msg - dynamic name service announcement message 41 * messages, an appropriate rpmsg channel (i.e device) is created. In turn, the 42 * ->probe() handler of the appropriate rpmsg driver will be invoked 43 * (if/as-soon-as one is registered). 75 struct rpmsg_endpoint *ept = &mept->ept; in mtk_rpmsg_ipi_handler() 78 ret = (*ept->cb)(ept->rpdev, data, len, ept->priv, ept->addr); in mtk_rpmsg_ipi_handler() 80 dev_warn(&ept->rpdev->dev, "rpmsg handler return error = %d", in mtk_rpmsg_ipi_handler() 91 struct platform_device *pdev = mtk_subdev->pdev; in __mtk_create_ept() [all …]
|
| D | rpmsg_internal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * Ohad Ben-Cohen <ohad@wizery.com> 15 #include <linux/rpmsg.h> 22 * struct rpmsg_device_ops - indirection table for the rpmsg_device operations 23 * @create_channel: create backend-specific channel, optional 24 * @release_channel: release backend-specific channel, optional 25 * @create_ept: create backend-specific endpoint, required 29 * Indirection table for the operations that a rpmsg backend should implement. 47 * struct rpmsg_endpoint_ops - indirection table for rpmsg_endpoint operations 57 * Indirection table for the operations that a rpmsg backend should implement. [all …]
|
| /Linux-v5.15/Documentation/devicetree/bindings/sound/ |
| D | fsl,rpmsg.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/fsl,rpmsg.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: NXP Audio RPMSG CPU DAI Controller 10 - Shengjiu Wang <shengjiu.wang@nxp.com> 15 side is a device which provides audio service by rpmsg channel. 20 - fsl,imx7ulp-rpmsg-audio 21 - fsl,imx8mn-rpmsg-audio 22 - fsl,imx8mm-rpmsg-audio [all …]
|
| /Linux-v5.15/include/linux/ |
| D | rpmsg.h | 1 /* SPDX-License-Identifier: BSD-3-Clause */ 20 #include <linux/rpmsg/byteorder.h> 21 #include <uapi/linux/rpmsg.h> 29 * struct rpmsg_channel_info - channel info representation 41 * rpmsg_device - device that belong to the rpmsg bus 43 * @id: device id (used to match between rpmsg drivers and devices) 47 * @ept: the rpmsg endpoint of this channel 48 * @announce: if set, rpmsg will announce the creation/removal of this channel 67 * struct rpmsg_endpoint - binds a local rpmsg address to its user 68 * @rpdev: rpmsg channel device [all …]
|
| /Linux-v5.15/Documentation/devicetree/bindings/mfd/ |
| D | google,cros-ec.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Benson Leung <bleung@chromium.org> 11 - Enric Balletbo i Serra <enric.balletbo@collabora.com> 12 - Guenter Roeck <groeck@chromium.org> 23 - description: 25 const: google,cros-ec-i2c 26 - description: [all …]
|
| /Linux-v5.15/sound/soc/fsl/ |
| D | imx-rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2020 NXP 16 #include <sound/soc-dapm.h> 17 #include "imx-pcm-rpmsg.h" 34 struct device *dev = pdev->dev.parent; in imx_rpmsg_probe() 35 /* rpmsg_pdev is the platform device for the rpmsg node that probed us */ in imx_rpmsg_probe() 37 struct device_node *np = rpmsg_pdev->dev.of_node; in imx_rpmsg_probe() 42 dlc = devm_kzalloc(&pdev->dev, 3 * sizeof(*dlc), GFP_KERNEL); in imx_rpmsg_probe() 44 return -ENOMEM; in imx_rpmsg_probe() 46 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in imx_rpmsg_probe() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 This option is only useful for out-of-tree drivers since 15 in-tree drivers select it automatically. 25 This option is only useful for out-of-tree drivers since 26 in-tree drivers select it automatically. 35 This option is only useful for out-of-tree drivers since 36 in-tree drivers select it automatically. 53 This option is only useful for out-of-tree drivers since 54 in-tree drivers select it automatically. 65 This option is only useful for out-of-tree drivers since [all …]
|
| D | imx-pcm-rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2021 NXP 4 #include <linux/dma-mapping.h> 8 #include <linux/rpmsg.h> 15 #include "imx-pcm.h" 17 #include "imx-pcm-rpmsg.h" 38 struct rpmsg_device *rpdev = info->rpdev; in imx_rpmsg_pcm_send_message() 41 mutex_lock(&info->msg_lock); in imx_rpmsg_pcm_send_message() 43 dev_err(info->dev, "rpmsg channel not ready\n"); in imx_rpmsg_pcm_send_message() 44 mutex_unlock(&info->msg_lock); in imx_rpmsg_pcm_send_message() [all …]
|
| D | imx-pcm-rpmsg.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 3 * Copyright 2017-2021 NXP 6 * Communication stack of audio with rpmsg 11 * +---------------+-------------------------------+ 13 * +---------------+-------------------------------+ 15 * +---------------+---+---+---+---+---+---+---+---+ 17 * +---------------+---+---+---+---+---+---+---+---+ 19 * +---------------+---+---+---+---+---+---+---+---+ 21 * +---------------+---+---+---+---+---+---+---+---+ 23 * +---------------+---+---+---+---+---+---+---+---+ [all …]
|
| /Linux-v5.15/include/linux/rpmsg/ |
| D | ns.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 7 #include <linux/rpmsg.h> 8 #include <linux/rpmsg/byteorder.h> 12 * struct rpmsg_ns_msg - dynamic name service announcement message 19 * rpmsg channel (i.e device) is created/destroyed. In turn, the ->probe() 20 * or ->remove() handler of the appropriate rpmsg driver will be invoked 21 * (if/as-soon-as one is registered). 30 * enum rpmsg_ns_flags - dynamic name service announcement flags
|
| D | mtk_rpmsg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 15 * struct mtk_rpmsg_info - IPI functions tied to the rpmsg device. 18 * @send_ipi: send IPI to an IPI id. wait is the timeout (in msecs) to wait 20 * @ns_ipi_id: the IPI id used for name service, or -1 if name service isn't
|
| /Linux-v5.15/drivers/net/wwan/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 29 tristate "MHI WWAN control driver for QCOM-based PCIe modems" 32 MHI WWAN CTRL allows QCOM-based PCIe modems to expose different modem 42 tristate "MHI WWAN MBIM network driver for QCOM-based PCIe modems" 45 MHI WWAN MBIM is a WWAN network driver for QCOM-based PCIe modems. 54 tristate "RPMSG WWAN control driver" 55 depends on RPMSG 57 RPMSG WWAN CTRL allows modems available via RPMSG channels to expose 77 If you have one of those Intel M.2 WWAN Modules and wish to use it in
|
| /Linux-v5.15/samples/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 tristate "Build trace_events examples -- loadable modules only" 20 tristate "Build trace_printk module - tests various trace_printk formats" 48 If in doubt, say "N" here. 51 tristate "Build kprobes examples -- loadable modules only" 57 tristate "Build kretprobes example -- loadable modules only" 62 tristate "Build kernel hardware breakpoint examples -- loadable module only" 68 tristate "Build kfifo examples -- loadable modules only" 75 If in doubt, say "N" here. 78 tristate "Build kdb command example -- loadable modules only" [all …]
|
| /Linux-v5.15/drivers/media/platform/sti/delta/ |
| D | delta-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 7 #include <linux/rpmsg.h> 10 #include "delta-ipc.h" 11 #include "delta-mem.h" 38 #define msg_to_ctx(msg) ((struct delta_ipc_ctx *)(msg)->header.host_hdl) 39 #define msg_to_copro_hdl(msg) ((msg)->header.copro_hdl) 43 return (ctx->ipc_buf->paddr + (vaddr - ctx->ipc_buf->vaddr)); in to_paddr() 49 return ((data >= ctx->ipc_buf->vaddr) && in is_valid_data() 50 ((data + size) <= (ctx->ipc_buf->vaddr + ctx->ipc_buf->size))); in is_valid_data() 58 * this IPC shared memory, avoiding de-facto recopies inside delta-ipc. [all …]
|
| /Linux-v5.15/net/qrtr/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 10 hardware blocks in the system. 12 In order to do service lookups, a userspace daemon is required to 19 depends on RPMSG || (COMPILE_TEST && RPMSG=n)
|
| /Linux-v5.15/drivers/soc/qcom/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 15 the low-power state for resources related to the remoteproc 26 resource on a RPM-hardened platform must use this database to get 43 be called qcom-cpr 52 Engines present in the QUP. 105 purpose of exchanging sector-data between the remote filesystem 111 tristate "Qualcomm RPM-Hardened (RPMH) Communication" 115 Support for communication with the hardened-RPM blocks in 125 QCOM RPMh Power domain driver to support power-domains with 134 QCOM RPM Power domain driver to support power-domains with [all …]
|
| /Linux-v5.15/drivers/platform/chrome/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 If you say N, all options in this submenu will be skipped and disabled. 36 The range of memory used is 0xf00000-0x1000000, traditionally 72 EC through an I2C bus. This uses a simple byte-level protocol with 77 tristate "ChromeOS Embedded Controller (rpmsg)" 78 depends on CROS_EC && RPMSG && OF 81 through rpmsg. This uses a simple byte-level protocol with a 82 checksum. Also since there's no addition EC-to-host interrupt, this 83 use a byte in message to distinguish host event from host command. 95 ISH Transport protocol (ISH-TP). This uses a simple byte-level [all …]
|
| /Linux-v5.15/drivers/remoteproc/ |
| D | qcom_sysmon.c | 1 // SPDX-License-Identifier: GPL-2.0 15 #include <linux/rpmsg.h> 76 * sysmon_send_event() - send notification of other remote's SSR event 87 len = snprintf(req, sizeof(req), "ssr:%s:%s", event->subsys_name, in sysmon_send_event() 88 sysmon_state_string[event->ssr_event]); in sysmon_send_event() 92 mutex_lock(&sysmon->lock); in sysmon_send_event() 93 reinit_completion(&sysmon->comp); in sysmon_send_event() 94 sysmon->ssr_ack = false; in sysmon_send_event() 96 ret = rpmsg_send(sysmon->ept, req, len); in sysmon_send_event() 98 dev_err(sysmon->dev, "failed to send sysmon event\n"); in sysmon_send_event() [all …]
|