remoteproc: pru: Add support for various PRU cores on K3 AM65x SoCs
authorKeerthy <j-keerthy@ti.com>
Tue, 22 Jun 2021 06:34:28 +0000 (12:04 +0530)
committerLokesh Vutla <lokeshvutla@ti.com>
Thu, 15 Jul 2021 12:26:04 +0000 (17:56 +0530)
commit02bfcc5c3ad6c3b79e4525763778595f9a60f8b0
tree12266bbb7e07e0b9472b6632dd2cd1ceb3d7fecf
parent7bafe886200803d155eef0e3b9adecc7e346a73e
remoteproc: pru: Add support for various PRU cores on K3 AM65x SoCs

The K3 AM65x family of SoCs have the next generation of the PRU-ICSS
processor subsystem, commonly referred to as ICSSG. Each ICSSG processor
subsystem on AM65x SR1.0 contains two primary PRU cores and two new
auxiliary PRU cores called RTUs. The AM65x SR2.0 SoCs have a revised
ICSSG IP that is based off the subsequent IP revision used on J721E
SoCs. This IP instance has two new custom auxiliary PRU cores called
Transmit PRUs (Tx_PRUs) in addition to the existing PRUs and RTUs.

Each RTU and Tx_PRU cores have their own dedicated IRAM (smaller than
a PRU), Control and debug feature sets, but is different in terms of
sub-modules integrated around it and does not have the full capabilities
associated with a PRU core. The RTU core is typically used to aid a
PRU core in accelerating data transfers, while the Tx_PRU cores is
normally used to control the TX L2 FIFO if enabled in Ethernet
applications. Both can also be used to run independent applications.
The RTU and Tx_PRU cores though share the same Data RAMs as the PRU
cores, so the memories have to be partitioned carefully between different
applications. The new cores also support a new sub-module called Task
Manager to support two different context thread executions.
The driver currently supports the AM65xx SoC

Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Link: https://lore.kernel.org/r/20210622063431.3151-3-lokeshvutla@ti.com
MAINTAINERS
drivers/remoteproc/Kconfig
drivers/remoteproc/Makefile
drivers/remoteproc/pru_rproc.c [new file with mode: 0644]