Merge branch 'rproc-linux-4.19.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-4.19.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 and Keystone-architecture based 66AK2G SoCs.
66AK2G is the first SoC in the Keystone 2 family to have PRUSS IPs.
The drivers include a PRUSS SoC bus driver, 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_soc_bus.ko, 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 PRUSS SoC bus driver and PRUSS platform drivers are moved to
drivers/soc/ti folder, and the PRUSS INTC irqchip driver is moved
to drivers/irqchip folder for 4.19 kernel following initial feedback
from upstream maintainers.
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, and both
the PRU-ICSS0 and PRU-ICSS1 instances on 66AK2G 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, and both the K2G-EVM and K2G-ICE
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 both
OMAP architecture (AM33xx/AM43xx/AM57xx) and Keystone architecture
(66AK2G) SoCs. The PRU remoteproc will be leveraging the Linux
default CMA pools for virtio ring buffers and control data.
* rproc-linux-4.19.y: (53 commits)
ARM: dts: keystone-k2g: Add PRU system events for virtio
ARM: dts: DRA7: Add PRU system events for virtio
ARM: dts: AM4372: Add PRU system events for virtio
ARM: dts: AM33xx: Add PRU system events for virtio
remoteproc/pru: Add support for virtio rpmsg stack
dt-bindings: remoteproc: pru: Update bindings for supporting rpmsg
ARM: dts: keystone-k2g: Add PRUSS GPIO controller nodes
ARM: dts: keystone-k2g: Add PRUSS MDIO controller nodes
ARM: dts: keystone-k2g: Add the PRU-ICSS nodes
ARM: dts: am57xx-idk-common: Enable PRU-ICSS nodes
ARM: dts: beagle-x15-common: Enable PRU-ICSS nodes
ARM: DRA7: hwmod_data: Add PRU-ICSS data for AM57xx variants
ARM: dts: DRA7: Add PRUSS MDIO controller nodes
ARM: dts: DRA7: Add the PRU-ICSS nodes
ARM: dts: am437x-idk: Enable PRU-ICSS nodes
ARM: dts: am437x-sk: Enable PRU-ICSS nodes
ARM: dts: am437x-gp-evm: Enable PRU-ICSS nodes
ARM: OMAP2+: extend pruss pdata-quirks to AM437x SoCs
ARM: dts: AM4372: Add PRUSS MDIO controller node
ARM: dts: AM4372: Add the PRU-ICSS0 DT node
...
Signed-off-by: Suman Anna <s-anna@ti.com>