]> git.karo-electronics.de Git - karo-tx-linux.git/commit
remoteproc: add framework for controlling remote processors
authorOhad Ben-Cohen <ohad@wizery.com>
Thu, 20 Oct 2011 14:52:46 +0000 (16:52 +0200)
committerOhad Ben-Cohen <ohad@wizery.com>
Wed, 7 Dec 2011 14:32:44 +0000 (16:32 +0200)
commitb5fad14e9b70b478f91abfd639e067d8f912279f
treea2d322d5dd8affee3cb55d26556c013d2d13486f
parent5611cc4572e889b62a7b4c72a413536bf6a9c416
remoteproc: add framework for controlling remote processors

Modern SoCs typically employ a central symmetric multiprocessing (SMP)
application processor running Linux, with several other asymmetric
multiprocessing (AMP) heterogeneous processors running different instances
of operating system, whether Linux or any other flavor of real-time OS.

Booting a remote processor in an AMP configuration typically involves:
- Loading a firmware which contains the OS image
- Allocating and providing it required system resources (e.g. memory)
- Programming an IOMMU (when relevant)
- Powering on the device

This patch introduces a generic framework that allows drivers to do
that. In the future, this framework will also include runtime power
management and error recovery.

Based on (but now quite far from) work done by Fernando Guzman Lugo
<fernando.lugo@ti.com>.

ELF loader was written by Mark Grosen <mgrosen@ti.com>, based on
msm's Peripheral Image Loader (PIL) by Stephen Boyd <sboyd@codeaurora.org>.

Designed with Brian Swetland <swetland@google.com>.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Brian Swetland <swetland@google.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Documentation/remoteproc.txt [new file with mode: 0644]
MAINTAINERS
drivers/Kconfig
drivers/Makefile
drivers/remoteproc/Kconfig [new file with mode: 0644]
drivers/remoteproc/Makefile [new file with mode: 0644]
drivers/remoteproc/remoteproc_core.c [new file with mode: 0644]
drivers/remoteproc/remoteproc_internal.h [new file with mode: 0644]
include/linux/remoteproc.h [new file with mode: 0644]