← Prev in month ← Prev in thread

Re: [Qemu-devel][RFC v3 0/6] SDM Interface

From
Christian Pinto <>
Date
2016-06-30T08:27:18+00:00
ID
Thread
Re: [Qemu-devel][RFC v3 0/6] SDM Interface
Ping...

are there any comments?

Thanks,

Christian

On Fri, Jun 17, 2016 at 5:54 PM, Christian Pinto <> wrote:

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-dev-v3

- Test application on branch sdm_test_app

QEMU code is avalaible here on :dev/qemu-het.git

branch sdm-dev-v3.

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 series is a follow-up of "[Qemu-devel] [RFC v2 0/6]

SDM Interface":

https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg04492.html

This work has been sponsored by Huawei Technologies Duesseldorf GmbH.

---

Changes since v2:

- added virtio device configuration space

- added configuration accessory methods

- fixed bug in local communication channel

- aligned virto device ID with specification RFC

---

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          | 116 +++++++++++

 hw/misc/sdm-communication-socket.c         | 160 +++++++++++++++

 hw/misc/sdm-communication.c                |  68 +++++++

 hw/misc/sdm-device.c                       |  78 ++++++++

 hw/misc/sdm-platform.c                     | 231 ++++++++++++++++++++++

 hw/misc/sdm-signal.c                       |  52 +++++

 hw/virtio/Makefile.objs                    |   1 +

 hw/virtio/virtio-sdm.c                     | 303 +++++++++++++++++++++++++++++

 include/hw/misc/sdm-communication-local.h  |  35 ++++

 include/hw/misc/sdm-communication-socket.h |  42 ++++

 include/hw/misc/sdm-communication.h        |  60 ++++++

 include/hw/misc/sdm-device.h               |  61 ++++++

 include/hw/misc/sdm-platform.h             |  65 +++++++

 include/hw/misc/sdm-signal.h               |  61 ++++++

 include/hw/virtio/virtio-sdm.h             |  58 ++++++

 linux-headers/linux/virtio_sdm.h           |  58 ++++++

 19 files changed, 1519 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

--

1.9.1
← Prev in month ← Prev in thread