drivers: Introduce a simplified remoteproc framework
authorNishanth Menon <nm@ti.com>
Thu, 17 Sep 2015 20:42:39 +0000 (15:42 -0500)
committerTom Rini <trini@konsulko.com>
Thu, 22 Oct 2015 18:18:38 +0000 (14:18 -0400)
commitddf56bc7e3ef43920b4a23320e70c1998f1ef843
tree1ff8b54e491fb4c2c3e3f2c293694e32bea57b2a
parent0da3f2e69557a4d14e7cdd3677ee012ff1292059
drivers: Introduce a simplified remoteproc framework

Many System on Chip(SoC) solutions are complex with multiple processors
on the same die dedicated to either general purpose of specialized
functions. Many examples do exist in today's SoCs from various vendors.
Typical examples are micro controllers such as an ARM M3/M0 doing a
offload of specific function such as event integration or power
management or controlling camera etc.

Traditionally, the responsibility of loading up such a processor with a
firmware and communication has been with a High Level Operating
System(HLOS) such as Linux. However, there exists classes of products
where Linux would need to expect services from such a processor or the
delay of Linux and operating system being able to load up such a
firmware is unacceptable.

To address these needs, we need some minimal capability to load such a
system and ensure it is started prior to an Operating System(Linux or
any other) is started up.

NOTE: This is NOT meant to be a solve-all solution, instead, it tries to
address certain class of SoCs and products that need such a solution.

A very simple model is introduced here as part of the initial support
that supports microcontrollers with internal memory (no MMU, no
execution from external memory, or specific image format needs). This
basic framework can then (hopefully) be extensible to other complex SoC
processor support as need be.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
Acked-by: Simon Glass <sjg@chromium.org>
12 files changed:
common/Kconfig
common/Makefile
common/cmd_remoteproc.c [new file with mode: 0644]
doc/device-tree-bindings/remoteproc/remoteproc.txt [new file with mode: 0644]
doc/driver-model/remoteproc-framework.txt [new file with mode: 0644]
drivers/Kconfig
drivers/Makefile
drivers/remoteproc/Kconfig [new file with mode: 0644]
drivers/remoteproc/Makefile [new file with mode: 0644]
drivers/remoteproc/rproc-uclass.c [new file with mode: 0644]
include/dm/uclass-id.h
include/remoteproc.h [new file with mode: 0644]