]> www.infradead.org Git - users/willy/linux.git/commitdiff
dts: zynqmp: add properties for TCM in remoteproc
authorTanmay Shah <tanmay.shah@amd.com>
Fri, 12 Apr 2024 18:37:07 +0000 (11:37 -0700)
committerMichal Simek <michal.simek@amd.com>
Mon, 27 May 2024 09:36:38 +0000 (11:36 +0200)
Add properties as per new bindings in zynqmp remoteproc node
to represent TCM address and size.

This patch also adds alternative remoteproc node to represent
remoteproc cluster in split mode. By default lockstep mode is
enabled and users should disable it before using split mode
dts. Both device-tree nodes can't be used simultaneously one
of them must be disabled. For zcu102-1.0 and zcu102-1.1 board
remoteproc split mode dts node is enabled and lockstep mode
dts is disabled.

Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20240412183708.4036007-4-tanmay.shah@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev1.0.dts
arch/arm64/boot/dts/xilinx/zynqmp.dtsi

index c8f71a1aec895679ec0e90226402e690f410b65b..495ca94b45db78abf8183e7794d74ba41cf80fe1 100644 (file)
        compatible = "xlnx,zynqmp-zcu102-rev1.0", "xlnx,zynqmp-zcu102", "xlnx,zynqmp";
 };
 
+&rproc_split {
+       status = "okay";
+};
+
+&rproc_lockstep {
+       status = "disabled";
+};
+
 &eeprom {
        #address-cells = <1>;
        #size-cells = <1>;
index d99830c9b85f9df1097ba1de819c0565a67454bd..0b730f6eeef1c4353b8a388b0a94fb3983df7397 100644 (file)
                ranges;
        };
 
-       remoteproc {
+       rproc_lockstep: remoteproc@ffe00000 {
                compatible = "xlnx,zynqmp-r5fss";
                xlnx,cluster-mode = <1>;
+               xlnx,tcm-mode = <1>;
 
-               r5f-0 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
+                        <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
+                        <0x0 0x10000 0x0 0xffe10000 0x0 0x10000>,
+                        <0x0 0x30000 0x0 0xffe30000 0x0 0x10000>;
+
+               r5f@0 {
+                       compatible = "xlnx,zynqmp-r5f";
+                       reg = <0x0 0x0 0x0 0x10000>,
+                             <0x0 0x20000 0x0 0x10000>,
+                             <0x0 0x10000 0x0 0x10000>,
+                             <0x0 0x30000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0", "atcm1", "btcm1";
+                       power-domains = <&zynqmp_firmware PD_RPU_0>,
+                                       <&zynqmp_firmware PD_R5_0_ATCM>,
+                                       <&zynqmp_firmware PD_R5_0_BTCM>,
+                                       <&zynqmp_firmware PD_R5_1_ATCM>,
+                                       <&zynqmp_firmware PD_R5_1_BTCM>;
+                       memory-region = <&rproc_0_fw_image>;
+               };
+
+               r5f@1 {
+                       compatible = "xlnx,zynqmp-r5f";
+                       reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0";
+                       power-domains = <&zynqmp_firmware PD_RPU_1>,
+                                       <&zynqmp_firmware PD_R5_1_ATCM>,
+                                       <&zynqmp_firmware PD_R5_1_BTCM>;
+                       memory-region = <&rproc_1_fw_image>;
+               };
+       };
+
+       rproc_split: remoteproc-split@ffe00000 {
+               status = "disabled";
+               compatible = "xlnx,zynqmp-r5fss";
+               xlnx,cluster-mode = <0>;
+               xlnx,tcm-mode = <0>;
+
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
+                        <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
+                        <0x1 0x0 0x0 0xffe90000 0x0 0x10000>,
+                        <0x1 0x20000 0x0 0xffeb0000 0x0 0x10000>;
+
+               r5f@0 {
                        compatible = "xlnx,zynqmp-r5f";
-                       power-domains = <&zynqmp_firmware PD_RPU_0>;
+                       reg = <0x0 0x0 0x0 0x10000>, <0x0 0x20000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0";
+                       power-domains = <&zynqmp_firmware PD_RPU_0>,
+                                       <&zynqmp_firmware PD_R5_0_ATCM>,
+                                       <&zynqmp_firmware PD_R5_0_BTCM>;
                        memory-region = <&rproc_0_fw_image>;
                };
 
-               r5f-1 {
+               r5f@1 {
                        compatible = "xlnx,zynqmp-r5f";
-                       power-domains = <&zynqmp_firmware PD_RPU_1>;
+                       reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0";
+                       power-domains = <&zynqmp_firmware PD_RPU_1>,
+                                       <&zynqmp_firmware PD_R5_1_ATCM>,
+                                       <&zynqmp_firmware PD_R5_1_BTCM>;
                        memory-region = <&rproc_1_fw_image>;
                };
        };