Hello, By mistake same set of patches were sent twice in same git send-email command. Anyone can be reviewed. Please let me know if I need to take any action to fix it. Thanks. On 2/19/24 11:44 AM, Tanmay Shah wrote: > Tightly-Coupled Memories(TCMs) are low-latency memory that provides > predictable instruction execution and predictable data load/store > timing. Each Cortex-R5F processor contains exclusive two 64 KB memory > banks on the ATCM and BTCM ports, for a total of 128 KB of memory. > In lockstep mode, both 128KB memory is accessible to the cluster. > > As per ZynqMP Ultrascale+ Technical Reference Manual UG1085, following > is address space of TCM memory. The bindings in this patch series > introduces properties to accommodate following address space with > address translation between Linux and Cortex-R5 views. > > | | | | > | --- | --- | --- | > | *Mode* | *R5 View* | *Linux view* | Notes | > | *Split Mode* | *start addr*| *start addr* | | > | R5_0 ATCM (64 KB) | 0x0000_0000 | 0xFFE0_0000 | | > | R5_0 BTCM (64 KB) | 0x0002_0000 | 0xFFE2_0000 | | > | R5_1 ATCM (64 KB) | 0x0000_0000 | 0xFFE9_0000 | alias of 0xFFE1_0000 | > | R5_1 BTCM (64 KB) | 0x0002_0000 | 0xFFEB_0000 | alias of 0xFFE3_0000 | > | ___ | ___ | ___ | | > | *Lockstep Mode* | | | | > | R5_0 ATCM (128 KB) | 0x0000_0000 | 0xFFE0_0000 | | > | R5_0 BTCM (128 KB) | 0x0002_0000 | 0xFFE2_0000 | | > > References: > UG1085 TCM address space: > https://docs.xilinx.com/r/en-US/ug1085-zynq-ultrascale-trm/Tightly-Coupled-Memory-Address-Map > > Changes in v11: > - Fix yamllint warning and reduce indentation as needed > - Remove redundant initialization of the variable > - Return correct error code if memory allocation failed > > Changs in v10: > - Add new patch (1/4) to series that changes hardcode TCM addresses in > lockstep mode and removes separate handling of TCM in lockstep and > split mode > - modify number of "reg", "reg-names" and "power-domains" entries > based on cluster mode > - Add extra optional atcm and btcm in "reg" property for lockstep mode > - Add "reg-names" for extra optional atcm and btcm for lockstep mode > - Drop previous Ack as bindings has new change > - Add individual tcm regions via "reg" and "reg-names" for lockstep mode > - Add each tcm's power-domains in lockstep mode > - Drop previous Ack as new change in dts patchset > - Remove redundant changes in driver to handle TCM in lockstep mode > > Changes in v9: > - Fix rproc lockstep dts > - Introduce new API to request and release core1 TCM power-domains in > lockstep mode. This will be used during prepare -> add_tcm_banks > callback to enable TCM in lockstep mode. > - Parse TCM from device-tree in lockstep mode and split mode in > uniform way. > - Fix TCM representation in device-tree in lockstep mode. > - Fix comments as suggested > > Changes in v8: > - Remove use of pm_domains framework > - Remove checking of pm_domain_id validation to power on/off tcm > - Remove spurious change > - parse power-domains property from device-tree and use EEMI calls > to power on/off TCM instead of using pm domains framework > > Changes in v7: > - %s/pm_dev1/pm_dev_core0/r > - %s/pm_dev_link1/pm_dev_core0_link/r > - %s/pm_dev2/pm_dev_core1/r > - %s/pm_dev_link2/pm_dev_core1_link/r > - remove pm_domain_id check to move next patch > - add comment about how 1st entry in pm domain list is used > - fix loop when jump to fail_add_pm_domains loop > - move checking of pm_domain_id from previous patch > - fix mem_bank_data memory allocation > > Changes in v6: > - Introduce new node entry for r5f cluster split mode dts and > keep it disabled by default. > - Keep remoteproc lockstep mode enabled by default to maintian > back compatibility. > - Enable split mode only for zcu102 board to demo split mode use > - Remove spurious change > - Handle errors in add_pm_domains function > - Remove redundant code to handle errors from remove_pm_domains > - Missing . at the end of the commit message > - remove redundant initialization of variables > - remove fail_tcm label and relevant code to free memory > acquired using devm_* API. As this will be freed when device free it > - add extra check to see if "reg" property is supported or not > > Changes in v5: > - maintain Rob's Ack on bindings patch as no changes in bindings > - split previous patch into multiple patches > - Use pm domain framework to turn on/off TCM > - Add support of parsing TCM information from device-tree > - maintain backward compatibility with previous bindings without > TCM information available in device-tree > > This patch series continues previous effort to upstream ZynqMP > TCM bindings: > Previous v4 version link: > https://lore.kernel.org/all/20230829181900.2561194-1-tanmay.shah@xxxxxxx/ > > Previous v3 version link: > https://lore.kernel.org/all/1689964908-22371-1-git-send-email-radhey.shyam.pandey@xxxxxxx/ > Radhey Shyam Pandey (1): > dt-bindings: remoteproc: add Tightly Coupled Memory (TCM) bindings > > > > Radhey Shyam Pandey (1): > dt-bindings: remoteproc: add Tightly Coupled Memory (TCM) bindings > > Tanmay Shah (3): > remoteproc: zynqmp: fix lockstep mode memory region > dts: zynqmp: add properties for TCM in remoteproc > remoteproc: zynqmp: parse TCM from device tree > > .../remoteproc/xlnx,zynqmp-r5fss.yaml | 192 +++++++++++-- > .../boot/dts/xilinx/zynqmp-zcu102-rev1.0.dts | 8 + > arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 65 ++++- > drivers/remoteproc/xlnx_r5_remoteproc.c | 257 ++++++++---------- > 4 files changed, 357 insertions(+), 165 deletions(-) > > > base-commit: 929654e8f1add50b01d5a56171a31c311b0a739a