Thanks,
Mathieu.
On Wed, 18 May 2022 at 20:46, Tanmay Shah <tanmay.shah@xxxxxxxxxx>
wrote:
>
> This patch series adds bindings document for RPU subsystem found on
Xilinx
> ZynqMP platforms. It also adds device nodes and driver to enable RPU
> subsystem in split mode and lockstep mode.
>
> Xilinx ZynqMP platform contains Remote Processing Unit(RPU). RPU
subsystem
> contains two arm cortex r5f cores. RPU subsystem can be configured in
> split mode, lockstep mode and single-cpu mode.
>
> RPU subsystem also contains 4 Tightly Coupled Memory(TCM) banks.
> In lockstep mode, all 4 banks are combined and total of 256KB
memory is
> made available to r5 core0. In split mode, both cores can access two
> TCM banks i.e. 128 KB.
>
> RPU can also fetch data and execute instructions from DDR memory
along with
> TCM memory.
> ---
>
> Changes in v5:
> - Add constraints of the possible values of xlnx,cluster-mode
property
> - fix description of power-domains property for r5 core
> - Remove reg, address-cells and size-cells properties as it is
not required
> - Fix description of mboxes property
> - Add description of each memory-region and remove old .txt
binding link
> reference in the description
> - Remove optional reg property from r5fss node
> - Move r5fss node out of axi node
>
> Changes in v4:
> - Add memory-region, mboxes and mbox-names properties in
dt-bindings example
> - Add reserved memory region node and use it in Xilinx dt RPU
subsystem node
> - Remove redundant header files
> - use dev_err_probe() to report errors during probe
> - Fix missing check on error code returned by
zynqmp_r5_add_rproc_core()
> - Fix memory leaks all over the driver when resource allocation
fails for any core
> - make cluster mode check only at one place
> - remove redundant initialization of variable
> - remove redundant use of of_node_put()
> - Fix Comment format problem
> - Assign offset of zynqmp_tcm_banks instead of duplicating it
> - Add tcm and memory regions rproc carveouts during prepare
instead of parse_fw
> - Remove rproc_mem_entry object from r5_core
> - Use put_device() and rproc_del() APIs to fix memory leaks
> - Replace pr_* with dev_*. This was missed in v3, fix now.
> - Use "GPL" instead of "GPL v2" in MODULE_LICENSE macro. This
was reported by checkpatch script.
>
> Changes in v3:
> - Fix checkpatch script indentation warning
> - Remove unused variable from xilinx remoteproc driver
> - use C style comments, i.e /*...*/
> - Remove redundant debug information which can be derived using
/proc/device-tree
> - Fix multiline comment format
> - s/"final fot TCM"/"final for TCM"
> - Function devm_kzalloc() does not return an code on error, just
NULL.
> Remove redundant error check for this function throughout the
driver.
> - Fix RPU mode configuration and add documentation accordingly
> - Get rid of the indentations to match function documentation
style with rest of the driver
> - Fix memory leak by only using r5_rproc->priv and not replace
it with new instance
> - Use 'i' for the outer loop and 'j' for the inner one as per
convention
> - Remove redundant error and NULL checks throughout the driver
> - Use devm_kcalloc() when more than one element is required
> - Add memory-regions carveouts during driver probe instead of
parse_fw call
> This removes redundant copy of reserved_mem object in r5_core
structure.
> - Fix memory leak by using of_node_put()
> - Fix indentation of tcm_mem_map function args
> - Remove redundant init of variables
> - Initialize tcm bank size variable for lockstep mode
> - Replace u32 with phys_addr_t for variable stroing memory bank
address
> - Add documentation of TCM behavior in lockstep mode
> - Use dev_get_drvdata instead of platform driver API
> - Remove info level messages
> - Fix checkpatch.pl warnings
> - Add documentation for the Xilinx r5f platform to understand
driver design
>
> Changes in v2:
> - Remove proprietary copyright footer from cover letter
>
>
> Ben Levinsky (3):
> firmware: xilinx: Add ZynqMP firmware ioctl enums for RPU
> configuration.
> firmware: xilinx: Add shutdown/wakeup APIs
> firmware: xilinx: Add RPU configuration APIs
>
> Tanmay Shah (3):
> dt-bindings: remoteproc: Add Xilinx RPU subsystem bindings
> arm64: dts: xilinx: zynqmp: Add RPU subsystem device node
> drivers: remoteproc: Add Xilinx r5 remoteproc driver
>
> .../bindings/remoteproc/xlnx,r5f-rproc.yaml | 128 ++
> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 33 +
> drivers/firmware/xilinx/zynqmp.c | 97 ++
> drivers/remoteproc/Kconfig | 12 +
> drivers/remoteproc/Makefile | 1 +
> drivers/remoteproc/xlnx_r5_remoteproc.c | 1045
+++++++++++++++++
> include/dt-bindings/power/xlnx-zynqmp-power.h | 6 +
> include/linux/firmware/xlnx-zynqmp.h | 60 +
> 8 files changed, 1382 insertions(+)
> create mode 100644
Documentation/devicetree/bindings/remoteproc/xlnx,r5f-rproc.yaml
> create mode 100644 drivers/remoteproc/xlnx_r5_remoteproc.c
>
>
> base-commit: 01a1a0c8d456b11f2f6b9b822414481beaa44d6f
> --
> 2.25.1
>