linux/drivers/remoteproc
Martin Blumenstingl 6cb58ea897 remoteproc: meson-mx-ao-arc: Add a driver for the AO ARC remote procesor
Amlogic Meson6, Meson8, Meson8b and Meson8m2 embed an ARC core in the
Always-On (AO) power-domain. This is typically used for waking up the
ARM cores after system suspend.

The configuration is spread across three different registers:
- AO_REMAP_REG0 which must be programmed to zero, it's actual purpose
  is unknown. There is a second remap register which is not used in the
  vendor kernel (which served as reference for this driver).
- AO_CPU_CNTL is used to start and stop the ARC core.
- AO_SECURE_REG0 in the SECBUS2 register area with unknown purpose.

To boot the ARC core we also need to enable it's gate clock and trigger
a reset.

The actual code for this ARC core can come from an ELF binary, for
example by building the Zephyr RTOS for an ARC EM4 core and then taking
"zephyr.elf" as firmware. This executable does not have any "rsc table"
so we are skipping rproc_elf_load_rsc_table (rproc_ops.parse_fw) and
rproc_elf_find_loaded_rsc_table (rproc_ops.find_loaded_rsc_table).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://lore.kernel.org/r/20210921192557.1610709-3-martin.blumenstingl@googlemail.com
[Fixed header file order]
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-09-27 18:37:13 -05:00
..
da8xx_remoteproc.c remoteproc: Remove dev_err() usage after platform_get_irq() 2019-08-26 21:59:58 -07:00
imx_rproc.c remoteproc: imx_rproc: Change to ioremap_wc for dram 2021-09-27 18:37:10 -05:00
ingenic_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Kconfig remoteproc: meson-mx-ao-arc: Add a driver for the AO ARC remote procesor 2021-09-27 18:37:13 -05:00
keystone_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Makefile remoteproc: meson-mx-ao-arc: Add a driver for the AO ARC remote procesor 2021-09-27 18:37:13 -05:00
meson_mx_ao_arc.c remoteproc: meson-mx-ao-arc: Add a driver for the AO ARC remote procesor 2021-09-27 18:37:13 -05:00
mtk_common.h remoteproc/mediatek: support L1TCM 2021-02-09 09:08:47 -06:00
mtk_scp_ipi.c remoteproc/mediatek: Add support for mt8192 SCP 2020-09-25 23:37:42 -05:00
mtk_scp.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
omap_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06: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: avoid 64-bit division 2021-03-08 10:49:36 -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: q6v5: Use qmp_send to update co-processor load state 2021-09-27 15:43:29 -05:00
qcom_q6v5_mss.c remoteproc: qcom: q6v5: Use qmp_send to update co-processor load state 2021-09-27 15:43:29 -05:00
qcom_q6v5_pas.c remoteproc: qcom: q6v5: Use qmp_send to update co-processor load state 2021-09-27 15:43:29 -05: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: Use qmp_send to update co-processor load state 2021-09-27 15:43:29 -05:00
qcom_q6v5.h remoteproc: qcom: q6v5: Use qmp_send to update co-processor load state 2021-09-27 15:43:29 -05: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: Drop unused smd include 2021-09-13 10:24:05 -05:00
qcom_wcnss.h remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
remoteproc_cdev.c remoteproc: core: Fix cdev remove and rproc del 2021-06-23 13:41:44 -05:00
remoteproc_core.c remoteproc: use freezable workqueue for crash notifications 2021-07-28 14:57:36 -05:00
remoteproc_coredump.c remoteproc: Fix the wrong default value of is_iomem 2021-09-27 18:37:04 -05:00
remoteproc_debugfs.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -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: Add new get_loaded_rsc_table() to rproc_ops 2021-03-18 07:54:53 -05:00
remoteproc_sysfs.c remoteproc: Properly deal with a detach request when attached 2021-03-18 08:02:10 -05:00
remoteproc_virtio.c remoteproc: Fix various kernel-doc warnings 2021-05-27 22:07:43 -05:00
st_remoteproc.c remoteproc: remove rproc_elf32_sanity_check 2020-04-22 21:57:26 -07:00
st_slim_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
stm32_rproc.c remoteproc: stm32: fix mbox_send_message call 2021-06-23 13:45:20 -05:00
ti_k3_dsp_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
ti_k3_r5_remoteproc.c remoteproc: k3-r5: Fix an error message 2021-05-27 22:36:55 -05: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: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00