linux/drivers/remoteproc
Grzegorz Jaszczyk c75c9fdac6 remoteproc: pru: Add support for PRU specific interrupt configuration
The firmware blob can contain optional ELF sections: .resource_table
section and .pru_irq_map one. The second one contains the PRUSS
interrupt mapping description, which needs to be setup before powering
on the PRU core. To avoid RAM wastage this ELF section is not mapped to
any ELF segment (by the firmware linker) and therefore is not loaded to
PRU memory.

The PRU interrupt configuration is handled within the PRUSS INTC irqchip
driver and leverages the system events to interrupt channels and host
interrupts mapping configuration. Relevant irq routing information is
passed through a special .pru_irq_map ELF section (for interrupts routed
to and used by PRU cores) or via the PRU application's device tree node
(for interrupts routed to and used by the main CPU). The mappings are
currently programmed during the booting/shutdown of the PRU.

The interrupt configuration passed through .pru_irq_map ELF section is
optional. It varies on specific firmware functionality and therefore
have to be unwinded during PRU stop and performed again during
PRU start.

Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Co-developed-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org>
Link: https://lore.kernel.org/r/20201208141002.17777-4-grzegorz.jaszczyk@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2020-12-10 10:56:01 -06: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: Use size_t type for len in da_to_va 2020-03-25 22:29:38 -07:00
ingenic_rproc.c remoteproc: ingenic: Constify ingenic_rproc_ops 2020-11-17 21:46:49 -06:00
Kconfig remoteproc: pru: Add a PRU remoteproc driver 2020-12-10 10:55:55 -06:00
keystone_remoteproc.c remoteproc: Use size_t type for len in da_to_va 2020-03-25 22:29:38 -07:00
Makefile remoteproc: pru: Add a PRU remoteproc driver 2020-12-10 10:55:55 -06:00
mtk_common.h remoteproc/mediatek: fix sparse errors on dma_alloc and dma_free 2020-11-20 21:45:10 -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/mediatek: skip if filesz is 0 2020-11-20 21:45:42 -06:00
omap_remoteproc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -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 PRU specific interrupt configuration 2020-12-10 10:56:01 -06: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 missing slab.h 2020-07-13 11:54:27 -07:00
qcom_common.h remoteproc: sysmon: Expose the shutdown result 2020-11-25 18:03:30 -06:00
qcom_pil_info.c remoteproc: qcom: pil-info: Fix shift overflow 2020-07-16 21:30:35 -07: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: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5_mss.c remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5_pas.c remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5_wcss.c remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5.c remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5.h remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_sysmon.c remoteproc: sysmon: fix shutdown_acked state 2020-12-04 16:40:52 -06:00
qcom_wcnss_iris.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
qcom_wcnss.c remoteproc: qcom_wcnss: Allow replacing regulators with power domains 2020-10-26 10:23:11 -05:00
qcom_wcnss.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
remoteproc_cdev.c remoteproc: Add remoteproc character device interface 2020-08-04 20:16:37 -07:00
remoteproc_core.c remoteproc: Add a rproc_set_firmware() API 2020-11-25 23:05:24 -06:00
remoteproc_coredump.c remoteproc: Change default dump configuration to "disabled" 2020-10-13 19:20:54 -05:00
remoteproc_debugfs.c remoteproc: Change default dump configuration to "disabled" 2020-10-13 19:20:54 -05:00
remoteproc_elf_helpers.h remoteproc: Add elf helpers to access elf64 and elf32 fields 2020-03-25 22:29:39 -07:00
remoteproc_elf_loader.c remoteproc: remove rproc_elf32_sanity_check 2020-04-22 21:57:26 -07:00
remoteproc_internal.h remoteproc: Add remoteproc character device interface 2020-08-04 20:16:37 -07:00
remoteproc_sysfs.c remoteproc: Add a rproc_set_firmware() API 2020-11-25 23:05:24 -06:00
remoteproc_virtio.c dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
st_remoteproc.c remoteproc: remove rproc_elf32_sanity_check 2020-04-22 21:57:26 -07:00
st_slim_rproc.c remoteproc: remove rproc_elf32_sanity_check 2020-04-22 21:57:26 -07:00
stm32_rproc.c remoteproc: stm32: Constify st_rproc_ops 2020-11-17 21:47:03 -06:00
ti_k3_dsp_remoteproc.c remoteproc: k3-dsp: Add support for C71x DSPs 2020-07-28 17:08:32 -07:00
ti_k3_r5_remoteproc.c remoteproc: k3-r5: Adjust TCM sizes in Split-mode on J7200 SoCs 2020-11-25 23:05:25 -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: Use size_t type for len in da_to_va 2020-03-25 22:29:38 -07:00