• Ohad Ben-Cohen's avatar
    remoteproc: add framework for controlling remote processors · 400e64df
    Ohad Ben-Cohen authored
    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: default avatarOhad Ben-Cohen <ohad@wizery.com>
    Acked-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    Cc: Brian Swetland <swetland@google.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    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>
    400e64df
remoteproc_core.c 39.1 KB