Skip to content

Commit 6b291e8

Browse files
tnmyshmathieupoirier
authored andcommitted
drivers: remoteproc: Add Xilinx r5 remoteproc driver
This driver enables r5f dual core Real time Processing Unit subsystem available on Xilinx Zynq Ultrascale MPSoC Platform. RPU subsystem (cluster) can be configured in different modes e.g. split mode in which two r5f cores work independent of each other and lock-step mode in which both r5f cores execute same code clock-for-clock and notify if the result is different. The Xilinx r5 Remoteproc Driver boots the RPU cores via calls to the Xilinx Platform Management Unit that handles the R5 configuration, memory access and R5 lifecycle management. The interface to this manager is done in this driver via zynqmp_pm_* function calls. Signed-off-by: Ben Levinsky <[email protected]> Signed-off-by: Tanmay Shah <[email protected]> Reported-by: kernel test robot <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent a5e5698 commit 6b291e8

File tree

3 files changed

+1081
-0
lines changed

3 files changed

+1081
-0
lines changed

drivers/remoteproc/Kconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,19 @@ config TI_K3_R5_REMOTEPROC
352352
It's safe to say N here if you're not interested in utilizing
353353
a slave processor.
354354

355+
config XLNX_R5_REMOTEPROC
356+
tristate "Xilinx R5 remoteproc support"
357+
depends on PM && ARCH_ZYNQMP
358+
select ZYNQMP_FIRMWARE
359+
select RPMSG_VIRTIO
360+
select MAILBOX
361+
select ZYNQMP_IPI_MBOX
362+
help
363+
Say y or m here to support Xilinx R5 remote processors via the remote
364+
processor framework.
365+
366+
It's safe to say N if not interested in using RPU r5f cores.
367+
355368
endif # REMOTEPROC
356369

357370
endmenu

drivers/remoteproc/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ obj-$(CONFIG_ST_SLIM_REMOTEPROC) += st_slim_rproc.o
3838
obj-$(CONFIG_STM32_RPROC) += stm32_rproc.o
3939
obj-$(CONFIG_TI_K3_DSP_REMOTEPROC) += ti_k3_dsp_remoteproc.o
4040
obj-$(CONFIG_TI_K3_R5_REMOTEPROC) += ti_k3_r5_remoteproc.o
41+
obj-$(CONFIG_XLNX_R5_REMOTEPROC) += xlnx_r5_remoteproc.o

0 commit comments

Comments
 (0)