remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3
authorDave Gerlach <d-gerlach@ti.com>
Fri, 22 May 2015 20:45:30 +0000 (15:45 -0500)
committerOhad Ben-Cohen <ohad@wizery.com>
Wed, 17 Jun 2015 06:58:08 +0000 (09:58 +0300)
commita01bc0d5f557bd8becd0ba75d09c39192004697e
treea91c592b18f56241b568f3b83d9d247a3863bcc3
parentccbbb9faac946ce61c241ce9f08b3486fabf031d
remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3

Add a remoteproc driver to load the firmware and boot a small
Wakeup M3 processor present on TI AM33xx and AM43xx SoCs. This
Wakeup M3 remote processor is an integrated Cortex M3 that allows
the SoC to enter the lowest possible power state by taking control
from the MPU after it has gone into its own low power state and
shutting off any additional peripherals.

The Wakeup M3 processor has two internal memory regions - 16 kB of
unified instruction memory called UMEM used to store executable
code, and 8 kB of data memory called DMEM used for all data sections.
The Wakeup M3 processor executes its code entirely from within the
UMEM and uses the DMEM for any data. It does not use any external
memory or any other external resources. The device address view has
the UMEM at address 0x0 and DMEM at address 0x80000, and these are
computed automatically within the driver based on relative address
calculation from the corresponding device tree IOMEM resources.
These device addresses are used to aid the core remoteproc ELF
loader code to properly translate and load the firmware segments
through the .rproc_da_to_va ops.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
drivers/remoteproc/Kconfig
drivers/remoteproc/Makefile
drivers/remoteproc/wkup_m3_rproc.c [new file with mode: 0644]
include/linux/platform_data/wkup_m3.h [new file with mode: 0644]