1. 22 Sep, 2012 1 commit
    • Sjur Brændeland's avatar
      remoteproc: Add STE modem driver · ec4d02d9
      Sjur Brændeland authored
      Add support for the STE modem shared memory driver.
      This driver hooks into the remoteproc framework
      in order to manage configuration and the virtio
      devices.
      
      This driver adds custom firmware handlers, because
      STE modem uses a custom firmware layout.
      Signed-off-by: default avatarSjur Brændeland <sjur.brandeland@stericsson.com>
      cc: Linus Walleij <linus.walleij@linaro.org>
      cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      [ohad: validate mdev->ops, move setup() to probe/remove, trivial style changes]
      Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
      ec4d02d9
  2. 15 Jul, 2012 1 commit
  3. 06 Mar, 2012 1 commit
    • Ohad Ben-Cohen's avatar
      remoteproc: remoteproc_rpmsg -> remoteproc_virtio · 04a9016e
      Ohad Ben-Cohen authored
      At this point remoteproc can only register a single VIRTIO_ID_RPMSG virtio
      device.
      
      This limitation is going away soon: remoteproc is getting support for
      registering any number of virtio devices and of any type (as
      published by the firmware of the remote processor).
      
      Rename remoteproc_rpmsg.c to remoteproc_virtio.c in preparation of
      this generalization work.
      Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
      Cc: Brian Swetland <swetland@google.com>
      Cc: Iliyan Malchev <malchev@google.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Mark Grosen <mgrosen@ti.com>
      Cc: John Williams <john.williams@petalogix.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Loic PALLARDY <loic.pallardy@stericsson.com>
      Cc: Ludovic BARRE <ludovic.barre@stericsson.com>
      Cc: Omar Ramirez Luna <omar.luna@linaro.org>
      Cc: Guzman Lugo Fernando <fernando.lugo@ti.com>
      Cc: Anna Suman <s-anna@ti.com>
      Cc: Clark Rob <rob@ti.com>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: Saravana Kannan <skannan@codeaurora.org>
      Cc: David Brown <davidb@codeaurora.org>
      Cc: Kieran Bingham <kieranbingham@gmail.com>
      Cc: Tony Lindgren <tony@atomide.com>
      04a9016e
  4. 08 Feb, 2012 4 commits
    • Ohad Ben-Cohen's avatar
      remoteproc/omap: add a remoteproc driver for OMAP4 · 34ed5a33
      Ohad Ben-Cohen authored
      Add a remoteproc driver for OMAP4, so we can boot the dual-M3 and
      and DSP subsystems.
      
      Use the omap_device_* API to control the hardware state, and utilize
      the OMAP mailbox to interrupt the remote processor when a new message
      is pending (the mailbox payload is used to tell it which virtqueue was
      the message placed in).
      
      Conversely, when an inbound mailbox message arrives, tell the remoteproc
      core which virtqueue is triggered.
      
      Later we will also use the mailbox payload to signal omap-specific
      events like remote crashes (which will be used to trigger remoteproc
      recovery) and power management transitions. At that point we will also
      extend the remoteproc core to support this.
      
      Based on (but now quite far from) work done by Fernando Guzman Lugo
      <fernando.lugo@ti.com> and Hari Kanigeri <h-kanigeri2@ti.com>.
      
      Designed with Brian Swetland <swetland@google.com>.
      Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Cc: Brian Swetland <swetland@google.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      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>
      34ed5a33
    • Ohad Ben-Cohen's avatar
      remoteproc: create rpmsg virtio device · ac8954a4
      Ohad Ben-Cohen authored
      Create an rpmsg virtio device to allow message-based communication
      with the remote processor (but only if supported by its firmware).
      
      There are several advantages to provide this functionality at
      the remoteproc-level:
      - to support it, platforms only have to provide their own ->kick()
        handler; no need to duplicate the rest of the code.
      - the virtio device is created only when the remote processor is
        registered and ready to go. No need to depend on initcall magic.
        moreover, we only add the virtio device if the firmware really
        supports it, and only after we know the supported virtio device features.
      - correct device model hierarchy can be set, and that is useful
        for natural power management and DMA API behavior.
      - when the remote processor crashes (or removed) we only need
        to remove the virtio device, and the driver core will take care of
        the rest. No need to implement any out-of-bound notifiers.
      - we can now easily bind the virtio device to its rproc handle, and
        this way we don't need any name-based remoteproc ->get() API.
      
      Currently we only support creating a single rpmsg virtio device per
      remote processor, but later this is going to be extended to support
      creating numerous virtio devices of other types too (block, net,
      console...).
      
      Designed with Brian Swetland <swetland@google.com>.
      Signed-off-by: default avatarOhad 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>
      ac8954a4
    • Ohad Ben-Cohen's avatar
      remoteproc: add debugfs entries · 6391a706
      Ohad Ben-Cohen authored
      Expose several remote processor properties (name, state, trace buffer)
      that are helpful for debugging.
      
      This part is extracted to a separate patch just to keep the review load
      down.
      
      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>
      6391a706
    • 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