[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bf6aab60-9aea-5c76-60e9-84f409cdb1eb@amd.com>
Date: Wed, 2 Nov 2022 12:58:04 -0700
From: tanmays@....com
To: Mathieu Poirier <mathieu.poirier@...aro.org>,
Tanmay Shah <tanmay.shah@....com>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Michal Simek <michal.simek@....com>,
linux-remoteproc@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v10 0/6] Add Xilinx RPU subsystem support
Hi Mathieu,
Thanks for reviews.
Sure, I will fix yesterday's comments and send new patch rebased on latest rproc-next.
Thanks,
Tanmay
On 11/2/22 12:53 PM, Mathieu Poirier <mathieu.poirier@...aro.org> wrote:
> I am done reviewing this set. Other than the comments from yesterday things
> look good. There is also the fact that this set doesn't apply to the current
> rproc-next.
>
> I hope to see another patchset from you in the coming 2 weeks so that can get
> this in for the v6.2 cycle.
>
> Thanks,
> Mathieu
>
> On Tue, Oct 11, 2022 at 02:24:55PM -0700, 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 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
> >
> > .../bindings/remoteproc/xlnx,r5f-rproc.yaml | 135 +++
> > arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 32 +
> > drivers/firmware/xilinx/zynqmp.c | 97 ++
> > drivers/remoteproc/Kconfig | 13 +
> > drivers/remoteproc/Makefile | 1 +
> > drivers/remoteproc/xlnx_r5_remoteproc.c | 1070 +++++++++++++++++
> > include/dt-bindings/power/xlnx-zynqmp-power.h | 6 +
> > include/linux/firmware/xlnx-zynqmp.h | 60 +
> > 8 files changed, 1414 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,r5f-rproc.yaml
> > create mode 100644 drivers/remoteproc/xlnx_r5_remoteproc.c
> >
> >
> > base-commit: abac55caaeaaabd31763a7c8a79c4cc096b415ae
> > --
> > 2.25.1
> >
>
Powered by blists - more mailing lists