Messages in this thread | | | Date | Wed, 16 Nov 2022 12:46:11 -0800 | Subject | Re: [PATCH v11 0/6] Add Xilinx RPU subsystem support | From | Tanmay Shah <> |
| |
Hi Mathieu,
Thanks for reviews.
On 11/16/22 10:38 AM, Mathieu Poirier wrote: > Hi Tanmay, > > I think this patchset is ready to be merged. Two things are missing though: > > Patches 1 and 2: We are missing a tag from one of the fellow in the DT brigade. > They handle a lot of patches so let's give them time. Sure. > > Patches 4 and 5: Michal's ack. He already reviewed that code in the previous > iteration but it wasn't added to this set, probably because you did some > modification to get the patches to apply. In that case it is usually fine to > carry the tag since there isn't any modification to the code you are > introducing. But you aired on the side of caution and that is also fine. > Please reach out to him again for another review.
Yes, I rebased on latest rproc-next and resolved merge conflict in those patches.
As it wasn't clean rebase, I removed Michal's Ack in case he prefer to review again.
I will reach out to him for reviews.
Thanks,
Tanmay
> > Thanks, > Mathieu > > > On Mon, Nov 14, 2022 at 03:39:34PM -0800, Tanmay Shah 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 v11: >> - rename binding filename to match with compatible string >> - change $id: value accordingly as well >> - Rebase on latest rproc-next branch and resolve merge conflicts >> - remove redundant < 0 check for function of_get_available_child_count() >> - return 'ret' variable rather than masking the real error code when >> parsing "xlnx,cluster-mode" property fails >> - remove redundant use of devm_free() >> - call of_reserved_mem_device_release() to release reserved memory >> in case driver probe fails or driver is removed. >> >> Changes in v10: >> - bindings: rename example node to remoteproc >> - dts: Rename node name to remoteproc >> - switch to AMD email ID >> - fix Kconfig unmet dependecy error reported by kernel test robot >> - fix r5_rproc object mem leak in function zynqmp_r5_add_rproc_core >> - add explanation of hardcoded TCM nodes >> - remove redundant ToDo comment >> - remove redundant check of tcm_bank_count and rmem_count >> - remove explicit free reserved_mem in zynqmp_r5_get_mem_region_node >> - fix leaked reference of child_dev during zynqmp_r5_cluster_init >> Also fix possible crash in exit path release_r5_cores >> - do not remove mem-region and tcm carveouts explicitly in case of failure. >> It will be deleted as part of rproc_del. This also simplifies logic to >> use rproc_add_carveout >> - fix documentation all over the driver >> >> Changes in v9: >> - bindings: remove power-domains property description >> - bindings: fix nitpicks in description of properties >> - dts: remove unused labels >> - replace devm_rproc_alloc with rproc_alloc >> - %s/until/while/r >> - %s/i > -1/i >=0/r >> - fix type of tcm_mode from int to enum rpu_tcm_comb >> - release &child_pdev->dev references >> - remove zynqmp_r5_core_exit() >> - undefined memory-region property isn't failure >> - remove tcm bank count check from ops >> - fix tcm bank turn-off sequence >> - fix parse_fw function documentation >> - do not use rproc_mem_entry_init on vdev0buffers >> - check tcm banks shouldn't be 0 >> - declare variabls in reverse xmas tree order >> - remove extra line >> >> Changes in v8: >> - add 'items:' for sram property >> >> Changes in v7: >> - Add minItems in sram property >> >> Changes in v6: >> - Add maxItems to sram and memory-region property >> >> 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 >> >> .../remoteproc/xlnx,zynqmp-r5fss.yaml | 135 +++ >> arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 33 + >> drivers/firmware/xilinx/zynqmp.c | 97 ++ >> drivers/remoteproc/Kconfig | 13 + >> drivers/remoteproc/Makefile | 1 + >> drivers/remoteproc/xlnx_r5_remoteproc.c | 1067 +++++++++++++++++ >> include/dt-bindings/power/xlnx-zynqmp-power.h | 6 + >> include/linux/firmware/xlnx-zynqmp.h | 60 + >> 8 files changed, 1412 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5fss.yaml >> create mode 100644 drivers/remoteproc/xlnx_r5_remoteproc.c >> >> >> base-commit: 6eed169c7fefd9cdbbccb5ba7a98470cc0c09c63 >> -- >> 2.25.1 >>
| |