/openbmc/linux/Documentation/staging/ |
H A 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 …]
|
H A 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 …]
|
/openbmc/linux/drivers/rpmsg/ |
H A 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 control interface" [all …]
|
H A D | rpmsg_core.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * Ohad Ben-Cohen <ohad@wizery.com> 16 #include <linux/rpmsg.h> 27 * rpmsg_create_channel() - create a new rpmsg channel 29 * @rpdev: rpmsg device 32 * Return: a pointer to the new rpmsg device on success, or NULL on error. 39 if (!rpdev->ops || !rpdev->ops->create_channel) { in rpmsg_create_channel() 40 dev_err(&rpdev->dev, "no create_channel ops found\n"); in rpmsg_create_channel() 44 return rpdev->ops->create_channel(rpdev, chinfo); in rpmsg_create_channel() 49 * rpmsg_release_channel() - release a rpmsg channel [all …]
|
H A 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> 20 #include <linux/rpmsg.h> 21 #include <linux/rpmsg/byteorder.h> 22 #include <linux/rpmsg/ns.h> 34 * struct virtproc_info - virtual remote processor state 52 * This structure stores the rpmsg state of a given virtio remote processor 71 /* The feature bitmap for virtio rpmsg */ [all …]
|
H A D | rpmsg_char.c | 1 // SPDX-License-Identifier: GPL-2.0 10 * Based on rpmsg performance statistics driver by Michal Simek, which in turn 11 * was based on TI & Google OMX rpmsg driver. 23 #include <linux/rpmsg.h> 27 #include <uapi/linux/rpmsg.h> 43 * struct rpmsg_eptdev - endpoint device context 46 * @rpdev: underlaying rpmsg device 49 * @ept: rpmsg endpoint reference, when open 53 * @default_ept: set to channel default endpoint if the default endpoint should be re-used 81 mutex_lock(&eptdev->ept_lock); in rpmsg_chrdev_eptdev_destroy() [all …]
|
H A D | rpmsg_ctrl.c | 1 // SPDX-License-Identifier: GPL-2.0 10 * Based on rpmsg performance statistics driver by Michal Simek, which in turn 11 * was based on TI & Google OMX rpmsg driver. 22 #include <linux/rpmsg.h> 26 #include <uapi/linux/rpmsg.h> 42 * struct rpmsg_ctrldev - control device for instantiating endpoint devices 43 * @rpdev: underlaying rpmsg device 57 struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev); in rpmsg_ctrldev_open() 59 get_device(&ctrldev->dev); in rpmsg_ctrldev_open() 60 filp->private_data = ctrldev; in rpmsg_ctrldev_open() [all …]
|
H A 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 …]
|
H A D | rpmsg_internal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * Ohad Ben-Cohen <ohad@wizery.com> 15 #include <linux/rpmsg.h> 24 * struct rpmsg_device_ops - indirection table for the rpmsg_device operations 25 * @create_channel: create backend-specific channel, optional 26 * @release_channel: release backend-specific channel, optional 27 * @create_ept: create backend-specific endpoint, required 31 * Indirection table for the operations that a rpmsg backend should implement. 49 * struct rpmsg_endpoint_ops - indirection table for rpmsg_endpoint operations 61 * Indirection table for the operations that a rpmsg backend should implement. [all …]
|
/openbmc/linux/Documentation/ABI/testing/ |
H A 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 …]
|
/openbmc/linux/Documentation/devicetree/bindings/sound/ |
H A 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 Linux side is a device which provides audio service by rpmsg channel. 17 such as SAI, MICFIL, .etc through building rpmsg channels between 18 Cortex-A and Cortex-M. 21 - $ref: sound-card-common.yaml# [all …]
|
/openbmc/linux/include/linux/ |
H A 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) 49 * @ept: the rpmsg endpoint of this channel 50 * @announce: if set, rpmsg will announce the creation/removal of this channel 70 * struct rpmsg_endpoint - binds a local rpmsg address to its user 71 * @rpdev: rpmsg channel device [all …]
|
/openbmc/linux/sound/soc/fsl/ |
H A 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" 35 struct snd_soc_pcm_runtime *rtd = list_first_entry(&card->rtd_list, in imx_rpmsg_late_probe() 38 struct device *dev = card->dev; in imx_rpmsg_late_probe() 41 if (!data->sysclk) in imx_rpmsg_late_probe() 44 ret = snd_soc_dai_set_sysclk(codec_dai, 0, data->sysclk, SND_SOC_CLOCK_IN); in imx_rpmsg_late_probe() 45 if (ret && ret != -ENOTSUPP) { in imx_rpmsg_late_probe() 46 dev_err(dev, "failed to set sysclk in %s\n", __func__); in imx_rpmsg_late_probe() [all …]
|
H A 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. 26 This option is only useful for out-of-tree drivers since 27 in-tree drivers select it automatically. 36 This option is only useful for out-of-tree drivers since 37 in-tree drivers select it automatically. 54 This option is only useful for out-of-tree drivers since 55 in-tree drivers select it automatically. 67 This option is only useful for out-of-tree drivers since [all …]
|
H A 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" 39 struct rpmsg_device *rpdev = info->rpdev; in imx_rpmsg_pcm_send_message() 42 mutex_lock(&info->msg_lock); in imx_rpmsg_pcm_send_message() 44 dev_err(info->dev, "rpmsg channel not ready\n"); in imx_rpmsg_pcm_send_message() 45 mutex_unlock(&info->msg_lock); in imx_rpmsg_pcm_send_message() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/mfd/ |
H A 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 - Guenter Roeck <groeck@chromium.org> 22 - description: 24 const: google,cros-ec-i2c 25 - description: 27 const: google,cros-ec-spi [all …]
|
/openbmc/linux/drivers/tty/ |
H A D | rpmsg_tty.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2021 STMicroelectronics - All Rights Reserved 5 * The rpmsg tty driver implements serial communication on the RPMsg bus to makes 6 * possible for user-space programs to send and receive rpmsg messages as a standard 9 * The remote processor can instantiate a new tty by requesting a "rpmsg-tty" RPMsg service. 10 * The "rpmsg-tty" service is directly used for data exchange. No flow control is implemented yet. 16 #include <linux/rpmsg.h> 31 int id; /* TTY rpmsg index */ 32 struct rpmsg_device *rpdev; /* rpmsg device */ 37 struct rpmsg_tty_port *cport = dev_get_drvdata(&rpdev->dev); in rpmsg_tty_cb() [all …]
|
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 7 blocks features that require TTY from inclusion in the kernel. 23 one can be used for a text-mode user session, and a third could run 24 an X session, all in parallel. Switching between virtual terminals 25 is done with certain key combinations, usually Alt-<function key>. 35 You need at least one virtual terminal device in order to make use 37 embedded system would want to say N here in order to save some 42 shiny Linux system :-) 47 bool "Enable character translations in console" if EXPERT 58 and warnings and which allows logins in single user mode. If you [all …]
|
/openbmc/linux/include/linux/rpmsg/ |
H A 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
|
/openbmc/linux/drivers/net/wwan/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 27 elements for each WWAN device in a directory that is corresponding to 40 tristate "MHI WWAN control driver for QCOM-based PCIe modems" 43 MHI WWAN CTRL allows QCOM-based PCIe modems to expose different modem 53 tristate "MHI WWAN MBIM network driver for QCOM-based PCIe modems" 56 MHI WWAN MBIM is a WWAN network driver for QCOM-based PCIe modems. 65 tristate "Qualcomm BAM-DMUX WWAN network driver" 78 tristate "RPMSG WWAN control driver" 79 depends on RPMSG 81 RPMSG WWAN CTRL allows modems available via RPMSG channels to expose [all …]
|
/openbmc/linux/drivers/media/platform/st/sti/delta/ |
H A 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 …]
|
/openbmc/linux/net/qrtr/ |
H A 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)
|
/openbmc/linux/samples/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 tristate "Build trace_events examples -- loadable modules only" 20 tristate "Build custom trace event example -- loadable modules only" 26 tristate "Build trace_printk module - tests various trace_printk formats" 70 If in doubt, say "N" here. 73 tristate "Build kprobes examples -- loadable modules only" 79 tristate "Build kretprobes example -- loadable modules only" 84 tristate "Build kernel hardware breakpoint examples -- loadable module only" 90 tristate "Build fprobe examples -- loadable modules only" 97 tristate "Build kfifo examples -- loadable modules only" [all …]
|
/openbmc/linux/drivers/soc/qcom/ |
H A 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. 98 depends on RPMSG 107 USB and battery firmware running on one of the coprocessors in 110 Say yes here to support USB-C and battery status on modern Qualcomm 133 purpose of exchanging sector-data between the remote filesystem 142 The RPM Master sleep stats driver provides detailed per-subsystem [all …]
|
/openbmc/linux/drivers/cdx/controller/ |
H A D | mcdi.h | 1 /* SPDX-License-Identifier: GPL-2.0 3 * Copyright 2008-2013 Solarflare Communications Inc. 4 * Copyright (C) 2022-2023, Advanced Micro Devices, Inc. 12 #include <linux/rpmsg.h> 26 * enum cdx_mcdi_mode - MCDI transaction mode 28 * @MCDI_MODE_FAIL: we think MCDI is dead, so fail-fast all calls 42 * enum cdx_mcdi_cmd_state - State for an individual MCDI command 62 * struct cdx_mcdi - CDX MCDI Firmware interface, to interact 67 * @rpdev: RPMsg device 68 * @ept: RPMsg endpoint [all …]
|