qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC v2 0/6] SDM Interface


From: Baptiste Reynal
Subject: [Qemu-devel] [RFC v2 0/6] SDM Interface
Date: Fri, 18 Mar 2016 10:12:59 +0100

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 via email to

[Prev in Thread] Current Thread [Next in Thread]