remoteproc/keystone: Add a remoteproc driver for Keystone 2 DSPs
authorSuman Anna <s-anna@ti.com>
Tue, 13 Jun 2017 23:45:12 +0000 (18:45 -0500)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 26 Jun 2017 20:02:38 +0000 (13:02 -0700)
commite88bb8f7a12c1325e312c214f157109d56b06f76
tree3d4e0a932784e70b4ddc7a677a76e37a6e83d371
parentfd7c7041a4c0b284fab2509aed4dc1151b4ca700
remoteproc/keystone: Add a remoteproc driver for Keystone 2 DSPs

The Texas Instrument's Keystone 2 family of SoCs has 1 or more
TMS320C66x DSP Core Subsystems (C66x CorePacs). Each subsystem has
a C66x Fixed/Floating-Point DSP Core, with 32KB of L1P and L1D SRAMs,
that can be configured and partitioned as either RAM and/or Cache,
and 1 MB of L2 SRAM. The CorePac also includes an Internal DMA (IDMA),
External Memory Controller (EMC), Extended Memory Controller (XMC)
with a Memory Protection and Address Extension (MPAX) unit, a Bandwidth
Management (BWM) unit, an Interrupt Controller (INTC) and a Powerdown
Controller (PDC).

A new remoteproc module is added to perform the device management of
these DSP devices. The driver expects the firmware names to be of the
form "keystone-dsp<X>-fw", where X is the corresponding DSP number, and
uses the standard remoteproc core ELF loader. The support is limited
to images only using the DSP internal memories at the moment. This
remoteproc driver is also designed to work with virtio, and uses the
IPC Generation registers for performing the virtio signalling and
getting notified of exceptions.

The driver currently supports the 66AK2H/66AK2K, 66AK2L and 66AK2E
SoCs.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Sam Nelson <sam.nelson@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/Kconfig
drivers/remoteproc/Makefile
drivers/remoteproc/keystone_remoteproc.c [new file with mode: 0644]