Hi all, This patch series proposes the specification of a new virtio device on which we are working on, namely the Signal Distribution Module (SDM). The SDM routes inter-processor signals using a user-defined communication channel. A possible use-case of the SDM is an AMP system where the vairous processors need to exhange signals (e.g., interrupts) to implement inter-processor communication patterns. An example are RPMSG and remoteproc, both using interrupts to kick the virtio queues used for communication (RPMSG), and a boot signal to start the execution of a slave processor (remoteproc).
However the SDM is not limited to those use-cases and can be easily extended to support user-defined signals and communication channels. In addition to the virtio version, a platform device version is available as well to be used for cases where a processor is not running Linux but another OS/firmware that does not support virtio. This patch series is related to : [Qemu-devel][RFC v3 0/6] SDM Interface https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg05121.html where you can find the latest RFC patch set for the QEMU code of the virtio SDM device. Kernel code is publicly accessible from: https://git.virtualopensystems.com/dev/qemu-het-tools branch sdm_test_virtio_mod_v2. QEMU code is accessible from: https://git.virtualopensystems.com/dev/qemu-het-tools branch sdm-dev-v3 At the current state the SDM is implemented as a QEMU device and provides a local channel, for intra-QEMU signals, and a channel based on sockets (UNIX or TCP) to exchange signals between processors in different instances of QEMU. Each communication channel exports a common interface for the sake of ease of extension and integration of new channels. Thanks, Christian --- Changes since v1: - Fixed some typos - Removed dependencies from QEMU - Added explanation on how SDM can be used in AMP systems - Explained semantics of payload field in SDMSignalData struct --- Christian Pinto (2): content: reserve virtio device ID virtio-sdm: new device specification content.tex | 4 ++ virtio-sdm.tex | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 virtio-sdm.tex -- 1.9.1