Merge branch 'rproc-linux-5.4.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-5.4.y
Pull in the updated remoteproc feature branch that adds new platform
drivers for the PRUSS subsystem on OMAP-architecture based AM33xx,
AM437x, and AM57xx SoCs; Keystone-architecture based 66AK2G SoCs; and
K3 architecture based AM65x and J721E SoCs. 66AK2G is the first SoC in
the Keystone 2 family to have PRUSS IPs. The AM65x and J721E SoCs have
the next version of the IP called ICSSG. The drivers include a PRUSS
platform driver, a PRUSS INTC irqchip driver, and a PRU remoteproc driver
to load and boot the PRU cores within the PRU-ICSS subsystem. The new
modules that will be built are pruss.ko, irq-pruss-intc.ko and
pru_rproc.ko respectively. The PRU remoteproc driver follows a
no auto-boot architecture, and requires a client driver/application
to trigger a PRU boot.
The OMAP-architecture based support is built on top of new ti-sysc
interconnect driver and omap-prm reset driver. The merge also pulls
in the necessary foundation support for these using couple of different
upstream pull requests for 5.5 kernel. The ti-sysc bus driver is
also enhanced to deal with the unique PRUSS SYSC type.
Supported instances include the single PRU-ICSS on AM335x; both the
regular PRU-ICSS1 and the smaller PRU-ICSS0 instances on AM437x SoCs;
both the PRU-ICSS1 and PRU-ICSS2 instances on AM57xx SoCs; both the
PRU-ICSS0 and PRU-ICSS1 instances on 66AK2G SoCs; all the three ICSSG0,
ICSSG1 and ICSSG2 instances on AM65x SoCs; and both the ICSSG0 and
ICSSG1 instances on J721E SoCs. Supported platforms include all the
TI supported AM33xx and AM437x boards, the AM57xx BeagleBoard-X15 boards,
AM57xx GP EVMs, all three of the AM571x, AM572x and AM574x IDKS, both
the K2G-EVM and K2G-ICE boards, the AM65x EVM and IDK boards, and the
J721E EVM and IDK boards.
The support required some enhancements to the remoteproc core. These
include an enhancement to handle new vendor resource types supporting
custom resource processing both before and after loading, a public
rproc_set_firmware() API to be able to configure the firmware name at
runtime (reused by sysfs code as well), and a state-machine fix for
the sysfs path for the no auto-boot remoteprocs.
The RPMsg stack is supported for the PRU remoteproc devices through
the usage of PRU system events (instead of OMAP mailboxes). This is
done to align on a common interrupt mechanism for PRUSS support on
all ICSS instances (AM437x does not have enough mailboxes) on the
OMAP architecture (AM33xx/AM43xx/AM57xx) and Keystone architecture
(66AK2G) SoCs and K3 architecture (AM65x/J721E SoCs. The PRU remoteproc
will be leveraging the Linux default CMA pools for virtio ring buffers
and control data.
* 'rproc-linux-5.4.y' of git://git.ti.com/rpmsg/remoteproc: (107 commits)
TEMP: irqchip/irq-pruss-intc: Allow setting irq affinity for PRU events
arm64: dts: ti: k3-j721e-main: Add PRU system events for virtio
arm64: dts: ti: k3-j721e-main: Add ICSSG MDIO nodes
arm64: dts: ti: k3-j721e-main: Add ICSSG nodes
remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs
soc: ti: pruss: Enable support for ICSSG subsystems on K3 J721E SoCs
arm64: dts: ti: k3-am65-main: Add input clock to IEP nodes
dt-bindings: soc: ti: pruss: Update IEP node bindings
TEMP: arm64: dts: ti: k3-am65-main: Add IEP and CORE clock muxes
TEMP: soc: ti: pruss: support CORECLK_MUX and IEPCLK_MUX
TEMP: dt-bindings: soc: ti: pruss: Add IEP and CORE clock mux
arm64: dts: ti: k3-am65-main: Add PRU system events for virtio
arm64: dts: ti: k3-am65-main: Add ICSSG MDIO nodes
arm64: dts: ti: k3-am65-main: Add ICSSG nodes
remoteproc/pru: Add support for various PRU cores on K3 AM65x SoCs
remoteproc/pru: Introduce new vendor interrupt resource for K3 SoCs
dt-bindings: remoteproc: pru: Update bindings for K3 AM65x & J721E SoCs
soc: ti: pruss: enable support for ICSSG subsystems on K3 AM65x SoCs
dt-bindings: soc: ti: pruss: Update bindings for K3 AM65x & J721E SoCs
ARM: dts: keystone-k2g: Add PRU system events for virtio
...
Signed-off-by: Suman Anna <s-anna@ti.com>