qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Baptiste Reynal <b.reynal@virtualopensystems.com>
To: qemu-devel@nongnu.org
Cc: b.reynal@virtualopensystems.com, Jani.Kokkonen@huawei.com,
	tech@virtualopensystems.com, Claudio.Fontana@huawei.com
Subject: [Qemu-devel] [RFC v2 0/6] SDM Interface
Date: Fri, 18 Mar 2016 10:12:59 +0100	[thread overview]
Message-ID: <1458292385-13802-1-git-send-email-b.reynal@virtualopensystems.com> (raw)

This patch series introduces a new device to QEMU, the SDM (Signal Distribution Module),
intended to route inter-processor signals intra and inter QEMU instances.

To be as modular as possible, the device is split between the interface
(virtio/platform) and the communication channel (local/socket).

A platform interface has been implemented to allow non-linux operating
system (FreeRTOS for example) to use the SDM.

Also, various signals can be defined with hardware operations.

Those signals can be used, for example, to route interrupts or to
trigger the boot of another QEMU instance.

When a signal is received on a SDM, it will check if the signal
ID is associate to a hardware action that will be executed if found.
The hardware action allows the signal to perform some actions (e.g
triggering boot) before being forwarded to the operating system.

You can test thoses patches using modules and test application
available on https://git.virtualopensystems.com/dev/qemu-het-tools :

- Platform module on branch sdm_test_mod_v1
- Virtio module on branch sdm_test_virtio_mod_v1
- Test application on branch sdm_test_app

QEMU code is avalaible here https://git.virtualopensystems.com/dev/qemu on branch rfc_v2.


Run QEMU instance:
./qemu-system-arm -nographic \
        -kernel zImage \
        -M virt -m 512M \
        -initrd busybox.cpio \
        -object sdm-communication-local,id=localcomm \
        -object sdm-signal,id=interrupt \
        -device sdm-platform,comm=localcomm,master,num-slaves=1,len-signals=1,signals[0]="interrupt" \
        -device sdm-platform,comm=localcomm,len-signals=1,len-signals=1,signals[0]="interrupt"

After loading the corresponding module (insmod sdm_test_mod.ko), you can send signal
accross instances using the sdm-test application:
./sdm-test -s 0 0 0x0 0x0 0x0

This patch serie is a follow-up to "[RFC PATCH 0/8] Towards an Heterogeneous QEMU":
https://lists.gnu.org/archive/html/qemu-devel/2015-10/msg00171.html

This work has been sponsored by Huawei Technologies Duesseldorf GmbH.

Baptiste Reynal (6):
  hw/misc: sdm interface
  hw/misc: sdm platform device
  hw/arm: sysbus-fdt
  hw/misc: sdm virtio device
  hw/misc: sdm communication local
  hw/misc: sdm communication socket

 default-configs/arm-softmmu.mak            |   1 +
 hw/arm/sysbus-fdt.c                        |  62 +++++++
 hw/misc/Makefile.objs                      |   7 +
 hw/misc/sdm-communication-local.c          |  89 ++++++++++
 hw/misc/sdm-communication-socket.c         | 140 +++++++++++++++
 hw/misc/sdm-communication.c                |  55 ++++++
 hw/misc/sdm-device.c                       |  66 ++++++++
 hw/misc/sdm-platform.c                     | 236 ++++++++++++++++++++++++++
 hw/misc/sdm-signal.c                       |  52 ++++++
 hw/virtio/Makefile.objs                    |   1 +
 hw/virtio/virtio-sdm.c                     | 262 +++++++++++++++++++++++++++++
 include/hw/misc/sdm-communication-local.h  |  35 ++++
 include/hw/misc/sdm-communication-socket.h |  42 +++++
 include/hw/misc/sdm-communication.h        |  54 ++++++
 include/hw/misc/sdm-device.h               |  58 +++++++
 include/hw/misc/sdm-platform.h             |  65 +++++++
 include/hw/misc/sdm-signal.h               |  60 +++++++
 include/hw/virtio/virtio-sdm.h             |  60 +++++++
 linux-headers/linux/virtio_sdm.h           |  52 ++++++
 19 files changed, 1397 insertions(+)
 create mode 100644 hw/misc/sdm-communication-local.c
 create mode 100644 hw/misc/sdm-communication-socket.c
 create mode 100644 hw/misc/sdm-communication.c
 create mode 100644 hw/misc/sdm-device.c
 create mode 100644 hw/misc/sdm-platform.c
 create mode 100644 hw/misc/sdm-signal.c
 create mode 100644 hw/virtio/virtio-sdm.c
 create mode 100644 include/hw/misc/sdm-communication-local.h
 create mode 100644 include/hw/misc/sdm-communication-socket.h
 create mode 100644 include/hw/misc/sdm-communication.h
 create mode 100644 include/hw/misc/sdm-device.h
 create mode 100644 include/hw/misc/sdm-platform.h
 create mode 100644 include/hw/misc/sdm-signal.h
 create mode 100644 include/hw/virtio/virtio-sdm.h
 create mode 100644 linux-headers/linux/virtio_sdm.h

-- 
2.7.3

             reply	other threads:[~2016-03-18  9:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-18  9:12 Baptiste Reynal [this message]
2016-03-18  9:13 ` [Qemu-devel] [RFC v2 1/6] hw/misc: sdm interface Baptiste Reynal
2016-03-18  9:13 ` [Qemu-devel] [RFC v2 2/6] hw/misc: sdm platform device Baptiste Reynal
2016-03-18  9:13 ` [Qemu-devel] [RFC v2 3/6] hw/arm: sysbus-fdt Baptiste Reynal
2016-03-18  9:13 ` [Qemu-devel] [RFC v2 4/6] hw/misc: sdm virtio device Baptiste Reynal
2016-03-31  9:12   ` Stefan Hajnoczi
2016-04-05 12:54     ` Baptiste Reynal
2016-04-06  8:55       ` Stefan Hajnoczi
2016-03-18  9:13 ` [Qemu-devel] [RFC v2 5/6] hw/misc: sdm communication local Baptiste Reynal
2016-03-18  9:13 ` [Qemu-devel] [RFC v2 6/6] hw/misc: sdm communication socket Baptiste Reynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1458292385-13802-1-git-send-email-b.reynal@virtualopensystems.com \
    --to=b.reynal@virtualopensystems.com \
    --cc=Claudio.Fontana@huawei.com \
    --cc=Jani.Kokkonen@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=tech@virtualopensystems.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).