mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 09:34:12 +08:00
c75c9fdac6
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> |
||
---|---|---|
.. | ||
da8xx_remoteproc.c | ||
imx_rproc.c | ||
ingenic_rproc.c | ||
Kconfig | ||
keystone_remoteproc.c | ||
Makefile | ||
mtk_common.h | ||
mtk_scp_ipi.c | ||
mtk_scp.c | ||
omap_remoteproc.c | ||
omap_remoteproc.h | ||
pru_rproc.c | ||
pru_rproc.h | ||
qcom_common.c | ||
qcom_common.h | ||
qcom_pil_info.c | ||
qcom_pil_info.h | ||
qcom_q6v5_adsp.c | ||
qcom_q6v5_mss.c | ||
qcom_q6v5_pas.c | ||
qcom_q6v5_wcss.c | ||
qcom_q6v5.c | ||
qcom_q6v5.h | ||
qcom_sysmon.c | ||
qcom_wcnss_iris.c | ||
qcom_wcnss.c | ||
qcom_wcnss.h | ||
remoteproc_cdev.c | ||
remoteproc_core.c | ||
remoteproc_coredump.c | ||
remoteproc_debugfs.c | ||
remoteproc_elf_helpers.h | ||
remoteproc_elf_loader.c | ||
remoteproc_internal.h | ||
remoteproc_sysfs.c | ||
remoteproc_virtio.c | ||
st_remoteproc.c | ||
st_slim_rproc.c | ||
stm32_rproc.c | ||
ti_k3_dsp_remoteproc.c | ||
ti_k3_r5_remoteproc.c | ||
ti_sci_proc.h | ||
wkup_m3_rproc.c |