linux-stable/drivers/remoteproc
Suman Anna b843192039 remoteproc: k3-dsp: Add support for IPC-only mode for all K3 DSPs
Add support to the K3 DSP remoteproc driver to configure all the C66x
and C71x cores on J721E SoCs to be either in IPC-only mode or the
traditional remoteproc mode. The IPC-only mode expects that the remote
processors are already booted by the bootloader, and only perform the
minimum steps required to initialize and deinitialize the virtio IPC
transports. The remoteproc mode allows the kernel remoteproc driver to
do the regular load and boot and other device management operations for
a DSP.

The IPC-only mode for a DSP is detected and configured at driver probe
time by querying the System Firmware for the DSP power and reset state
and/or status and making sure that the DSP is indeed started by the
bootloaders, otherwise the device is configured for remoteproc mode.

Support for IPC-only mode is achieved through .attach(), .detach() and
.get_loaded_rsc_table() callback ops and zeroing out the regular rproc
ops .prepare(), .unprepare(), .start() and .stop(). The resource table
follows a design-by-contract approach and is expected to be at the base
of the DDR firmware region reserved for each remoteproc, it is mostly
expected to contain only the virtio device and trace resource entries.

NOTE:
The driver cannot configure a DSP core for remoteproc mode by any
means without rebooting the kernel if that DSP core has been started
by a bootloader.  This is the current desired behavior and can be
enhanced in the future if the feature is needed.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220213201246.25952-6-s-anna@ti.com
2022-03-11 14:31:56 -06:00
..
da8xx_remoteproc.c remoteproc: Remove dev_err() usage after platform_get_irq() 2019-08-26 21:59:58 -07:00
imx_dsp_rproc.c remoteproc: imx_dsp_rproc: mark PM functions as __maybe_unused 2021-10-14 10:05:21 -06:00
imx_rproc.c remoteproc: imx_rproc: correct firmware reload 2021-12-13 16:58:05 -06:00
imx_rproc.h remoteproc: imx_rproc: Add IMX_RPROC_SCU_API method 2021-10-12 09:16:13 -06:00
ingenic_rproc.c remoteproc: ingenic: Request IRQ disabled 2021-12-06 10:17:44 -07:00
Kconfig remoteproc: qcom: q6v5: fix service routines build errors 2022-01-17 16:44:26 -06:00
keystone_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Makefile remoteproc: Add Renesas rcar driver 2021-12-13 11:30:55 -07:00
meson_mx_ao_arc.c remoteproc: meson-mx-ao-arc: fix a bit test 2021-10-04 10:40:29 -05:00
mtk_common.h remoteproc: mediatek: Support mt8186 scp 2022-03-11 14:21:43 -06:00
mtk_scp_ipi.c remoteproc: Fix remaining wrong return formatting in documentation 2021-12-08 10:09:40 -07:00
mtk_scp.c remoteproc: mediatek: Support mt8186 scp 2022-03-11 14:21:43 -06:00
omap_remoteproc.c remoteproc: omap_remoteproc: simplify getting .driver_data 2021-10-15 09:49:55 -05:00
omap_remoteproc.h remoteproc/omap: Switch to SPDX license identifiers 2020-03-25 22:29:51 -07:00
pru_rproc.c remoteproc: pru: Add support for various PRU cores on K3 AM64x SoCs 2021-06-23 13:39:20 -05:00
pru_rproc.h remoteproc: pru: Add support for PRU specific interrupt configuration 2020-12-10 10:56:01 -06:00
qcom_common.c remoteproc: qcom: Add capability to collect minidumps 2020-12-10 13:16:54 -06:00
qcom_common.h remoteproc: qcom: Add capability to collect minidumps 2020-12-10 13:16:54 -06:00
qcom_pil_info.c remoteproc: qcom: pil_info: Don't memcpy_toio more than is provided 2021-12-13 16:58:05 -06:00
qcom_pil_info.h remoteproc: qcom: Introduce helper to store pil info in IMEM 2020-07-01 22:10:18 -07:00
qcom_q6v5_adsp.c remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region 2022-03-11 14:01:54 -06:00
qcom_q6v5_mss.c remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region 2022-03-11 14:03:41 -06:00
qcom_q6v5_pas.c remoteproc: qcom: pas: Add SM6350 CDSP support 2021-12-13 17:02:07 -06:00
qcom_q6v5_wcss.c remoteproc: qcom: q6v5: Use qmp_send to update co-processor load state 2021-09-27 15:43:29 -05:00
qcom_q6v5.c remoteproc: qcom: q6v5: Add interconnect path proxy vote 2022-03-11 14:22:03 -06:00
qcom_q6v5.h remoteproc: qcom: q6v5: Add interconnect path proxy vote 2022-03-11 14:22:03 -06:00
qcom_sysmon.c remoteproc: sysmon: fix shutdown_acked state 2020-12-04 16:40:52 -06:00
qcom_wcnss_iris.c remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
qcom_wcnss.c remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region 2022-03-11 14:02:14 -06:00
qcom_wcnss.h remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
rcar_rproc.c remoteproc: rcar_rproc: Remove trailing semicolon 2021-12-20 09:33:59 -07:00
remoteproc_cdev.c remoteproc: Change rproc_shutdown() to return a status 2022-03-11 14:31:55 -06:00
remoteproc_core.c remoteproc: Change rproc_shutdown() to return a status 2022-03-11 14:31:55 -06:00
remoteproc_coredump.c remoteproc: coredump: Correct argument 2 type for memcpy_fromio 2021-11-17 09:37:31 -07:00
remoteproc_debugfs.c remoteproc: Fix count check in rproc_coredump_write() 2022-02-18 18:15:05 -06:00
remoteproc_elf_helpers.h remoteproc: fix an typo in fw_elf_get_class code comments 2021-07-28 14:57:30 -05:00
remoteproc_elf_loader.c remoteproc: Fix the wrong default value of is_iomem 2021-09-27 18:37:04 -05:00
remoteproc_internal.h remoteproc: move rproc_da_to_va declaration to remoteproc.h 2022-03-11 12:08:09 -06:00
remoteproc_sysfs.c remoteproc: Change rproc_shutdown() to return a status 2022-03-11 14:31:55 -06:00
remoteproc_virtio.c remoteproc: Remove vdev_to_rvdev and vdev_to_rproc from remoteproc API 2021-10-15 09:49:55 -05:00
st_remoteproc.c remoteproc: remove rproc_elf32_sanity_check 2020-04-22 21:57:26 -07:00
st_slim_rproc.c remoteproc: Fix remaining wrong return formatting in documentation 2021-12-08 10:09:40 -07:00
stm32_rproc.c remoteproc: stm32: Improve crash recovery time 2022-01-03 11:40:45 -07:00
ti_k3_dsp_remoteproc.c remoteproc: k3-dsp: Add support for IPC-only mode for all K3 DSPs 2022-03-11 14:31:56 -06:00
ti_k3_r5_remoteproc.c remoteproc: k3-r5: Add support for IPC-only mode for all R5Fs 2022-03-11 14:31:55 -06:00
ti_sci_proc.h remoteproc: k3: Add TI-SCI processor control helper functions 2020-07-28 17:06:43 -07:00
wkup_m3_rproc.c remoteproc: wkup_m3: Set sysfs_read_only flag 2022-03-04 09:28:32 -07:00