[PATCH v5 0/5] remoteproc: Add zynqmp_r5 driver

From: Ben Levinsky
Date: Wed Jun 03 2020 - 10:51:30 EST

Provide basic driver to control Arm R5 co-processor found on
Xilinx ZynqMP UltraScale+ and Versal MPSoC's.

Currently it is able to start, stop and load elf on to the

The driver was tested on Xilinx ZynqMP and Versal.

- remove domain struct as per review from Mathieu
- add xilinx-related platform mgmt fn's instead of wrapping around
function pointer in xilinx eemi ops struct
- update zynqmp_r5 yaml parsing to not raise warnings for extra
information in children of R5 node. The warning "node has a unit
name, but no reg or ranges property" will still be raised though
as this particular node is needed to describe the
'#address-cells' and '#size-cells' information.
- add default values for enums
- fix formatting as per checkpatch.pl --strict. Note that 1 warning and 1 check
are still raised as each is due to fixing the warning results in that
particular line going over 80 characters.
- remove warning '/example-0/rpu@ff9a0000/r5@0:
node has a unit name, but no reg or ranges property'
by adding reg to r5 node.
- update device tree sample and yaml parsing to not raise any warnings
- description for memory-region in yaml parsing
- compatible string in yaml parsing for TCM
- parse_fw change from use of rproc_of_resm_mem_entry_init to rproc_mem_entry_init and use of alloc/release
- var's of type zynqmp_r5_pdata all have same local variable name
- use dev_dbg instead of dev_info

Ben Levinsky (5):
firmware: xilinx: Add ZynqMP firmware ioctl enums for RPU
firmware: xilinx: Add shutdown/wakeup APIs
firmware: xilinx: Add RPU configuration APIs
dt-bindings: remoteproc: Add documentation for ZynqMP R5 rproc
remoteproc: Add initial zynqmp R5 remoteproc driver

.../remoteproc/xilinx,zynqmp-r5-remoteproc.yaml | 126 +++
drivers/firmware/xilinx/zynqmp.c | 134 +++
drivers/remoteproc/Kconfig | 10 +
drivers/remoteproc/Makefile | 1 +
drivers/remoteproc/zynqmp_r5_remoteproc.c | 902 +++++++++++++++++++++
include/linux/firmware/xlnx-zynqmp.h | 75 ++
6 files changed, 1248 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/xilinx,zynqmp-r5-remoteproc.yaml
create mode 100644 drivers/remoteproc/zynqmp_r5_remoteproc.c