Merge branch 'topic/4.19/dra7-late-attach' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-4.19.y
Pull in a dedicated remoteproc topic branch that adds the infrastructure
support to allow "late-attach" of the IPU1 and IPU2 remote processors on
DRA7xx/AM57xx SoCs. The late-attach feature is the kernel counterpart to
the early-boot of these processors from U-Boot/SPL to achieve key system
response time goals.
The support is provided through temporary HACKs or workarounds to various
subsystems that includes the DMA API layers, remoteproc core, OMAP IOMMU,
OMAP DMTimer and OMAP remoteproc drivers. The early-booted remoteproc
devices need couple of DT modifications, and these are provided through
a common dtsi file. This common dtsi file needs to be included in the
desired target DRA7/AM57xx board dts files (not merged but available on
the above topic branch).
The following are the main HACKs and needs further rework:
- Introduce new non-zeroing DMA API to allow the remoteproc core to
still process the RSC_CARVEOUTs but not zero them (This will need to
be replaced with static carveout support)
- The new "late_attach" field added to remoteproc core needs to be
replaced with equivalent fields already present that supports the
K3 IPC-only mode and Keystone 2 Multi Proc Manager (MPM) stack.
- The .device_is_enabled() logic is only temporary and applicable only
with hwmod layers, this will need to be replaced with logic around
reset status from OMAP PRM reset driver (next LTS).
- The reserved memory regions used should actually be carveouts (DMA
pools), and this needs some resource table RSC_CARVEOUT entries split
on all the existing firmwares.
- The addition of the DT modifications needs to be evaluated if it can
be moved into U-Boot itself. The current logic requires that both
U-Boot and kernel configs are matched, without which kernel crashes
are seen.
* 'topic/4.19/dra7-late-attach' of git://git.ti.com/rpmsg/remoteproc:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
Signed-off-by: Suman Anna <s-anna@ti.com>