[RFC 0/5] remoteproc: Support bi-directional vdev config space.

From: Sjur BrÃndeland
Date: Thu Dec 06 2012 - 14:35:26 EST


From: Sjur BrÃndeland <sjur@xxxxxxxxxxxxxx>

This patch-set adds support for shared resource table between
Linux kernel and remote devices.
Features:
1. dynamically-allocated address of the vrings can be communicated
2. vdev statuses can be communicated
3. virtio config space becomes bi-directional
4. virtio feature negotiation is two-way

This is done by loading firmware once. First pass parsing of the
resource table will allocate carveouts. Then the firmware
is loaded into device memory. After this the address
of the resource table in shared memory is located. This address
is used in the second pass of parsing of the resource
table. This time the virtio devices are created. When the
virtio device are created the virto feature bits, status,
and configuration-space is shared with the remote device.

NOTE: This change will probably break existing device firmware!
The device memory allocation will change. Virtio Rings are no
longer located at start of device memory. But Ring Address in
resource table is supported.

Thanks,
Sjur

Sjur BrÃndeland (5):
remoteproc: Refactor function rproc_elf_find_rsc_table
remoteproc: Add operation to find resource table in memory
remoteproc: Add state RPROC_LOADED
remoteproc: Load firmware to device memory once.
remoteproc: Support virtio config space.

drivers/remoteproc/remoteproc_core.c | 226 ++++++++++++----------------
drivers/remoteproc/remoteproc_debugfs.c | 1 +
drivers/remoteproc/remoteproc_elf_loader.c | 99 ++++++++----
drivers/remoteproc/remoteproc_internal.h | 13 ++
drivers/remoteproc/remoteproc_virtio.c | 30 +++-
drivers/remoteproc/ste_modem_rproc.c | 43 ++++--
include/linux/remoteproc.h | 6 +-
7 files changed, 232 insertions(+), 186 deletions(-)

--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/