mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
remoteproc: k3-m4: Add a remoteproc driver for M4F subsystem
The AM62x and AM64x SoCs of the TI K3 family has a Cortex M4F core in the MCU domain. This core is typically used for safety applications in a stand alone mode. However, some application (non safety related) may want to use the M4F core as a generic remote processor with IPC to the host processor. The M4F core has internal IRAM and DRAM memories and are exposed to the system bus for code and data loading. A remote processor driver is added to support this subsystem, including being able to load and boot the M4F core. Loading includes to M4F internal memories and predefined external code/data memories. The carve outs for external contiguous memory is defined in the M4F device node and should match with the external memory declarations in the M4F image binary. The M4F subsystem has two resets. One reset is for the entire subsystem i.e including the internal memories and the other, a local reset is only for the M4F processing core. When loading the image, the driver first releases the subsystem reset, loads the firmware image and then releases the local reset to let the M4F processing core run. Signed-off-by: Martyn Welch <martyn.welch@collabora.com> Signed-off-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Andrew Davis <afd@ti.com> Tested-by: Wadim Egorov <w.egorov@phytec.de> Link: https://lore.kernel.org/r/20240802152109.137243-4-afd@ti.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
committed by
Mathieu Poirier
parent
ce6acb2240
commit
ebcf9008a8
@@ -340,6 +340,19 @@ config TI_K3_DSP_REMOTEPROC
|
||||
It's safe to say N here if you're not interested in utilizing
|
||||
the DSP slave processors.
|
||||
|
||||
config TI_K3_M4_REMOTEPROC
|
||||
tristate "TI K3 M4 remoteproc support"
|
||||
depends on ARCH_K3 || COMPILE_TEST
|
||||
select MAILBOX
|
||||
select OMAP2PLUS_MBOX
|
||||
help
|
||||
Say m here to support TI's M4 remote processor subsystems
|
||||
on various TI K3 family of SoCs through the remote processor
|
||||
framework.
|
||||
|
||||
It's safe to say N here if you're not interested in utilizing
|
||||
a remote processor.
|
||||
|
||||
config TI_K3_R5_REMOTEPROC
|
||||
tristate "TI K3 R5 remoteproc support"
|
||||
depends on ARCH_K3
|
||||
|
||||
@@ -37,5 +37,6 @@ obj-$(CONFIG_ST_REMOTEPROC) += st_remoteproc.o
|
||||
obj-$(CONFIG_ST_SLIM_REMOTEPROC) += st_slim_rproc.o
|
||||
obj-$(CONFIG_STM32_RPROC) += stm32_rproc.o
|
||||
obj-$(CONFIG_TI_K3_DSP_REMOTEPROC) += ti_k3_dsp_remoteproc.o
|
||||
obj-$(CONFIG_TI_K3_M4_REMOTEPROC) += ti_k3_m4_remoteproc.o
|
||||
obj-$(CONFIG_TI_K3_R5_REMOTEPROC) += ti_k3_r5_remoteproc.o
|
||||
obj-$(CONFIG_XLNX_R5_REMOTEPROC) += xlnx_r5_remoteproc.o
|
||||
|
||||
667
drivers/remoteproc/ti_k3_m4_remoteproc.c
Normal file
667
drivers/remoteproc/ti_k3_m4_remoteproc.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user