@@ -18,11 +18,26 @@ description: |
1818
1919properties :
2020 compatible :
21- const : xlnx,zynqmp-r5fss
21+ enum :
22+ - xlnx,zynqmp-r5fss
23+ - xlnx,versal-r5fss
24+ - xlnx,versal-net-r52fss
25+
26+ " #address-cells " :
27+ const : 2
28+
29+ " #size-cells " :
30+ const : 2
31+
32+ ranges :
33+ description : |
34+ Standard ranges definition providing address translations for
35+ local R5F TCM address spaces to bus addresses.
2236
2337 xlnx,cluster-mode :
2438 $ref : /schemas/types.yaml#/definitions/uint32
2539 enum : [0, 1, 2]
40+ default : 1
2641 description : |
2742 The RPU MPCore can operate in split mode (Dual-processor performance), Safety
2843 lock-step mode(Both RPU cores execute the same code in lock-step,
@@ -36,8 +51,16 @@ properties:
3651 1: lockstep mode (default)
3752 2: single cpu mode
3853
54+ xlnx,tcm-mode :
55+ $ref : /schemas/types.yaml#/definitions/uint32
56+ enum : [0, 1]
57+ description : |
58+ Configure RPU TCM
59+ 0: split mode
60+ 1: lockstep mode
61+
3962patternProperties :
40- " ^r5f-[a-f0-9 ]+$ " :
63+ " ^r(.*)@[0-9a-f ]+$ " :
4164 type : object
4265 description : |
4366 The RPU is located in the Low Power Domain of the Processor Subsystem.
@@ -52,10 +75,22 @@ patternProperties:
5275
5376 properties :
5477 compatible :
55- const : xlnx,zynqmp-r5f
78+ enum :
79+ - xlnx,zynqmp-r5f
80+ - xlnx,versal-r5f
81+ - xlnx,versal-net-r52f
82+
83+ reg :
84+ minItems : 1
85+ maxItems : 4
86+
87+ reg-names :
88+ minItems : 1
89+ maxItems : 4
5690
5791 power-domains :
58- maxItems : 1
92+ minItems : 2
93+ maxItems : 5
5994
6095 mboxes :
6196 minItems : 1
@@ -101,35 +136,235 @@ patternProperties:
101136
102137 required :
103138 - compatible
139+ - reg
140+ - reg-names
104141 - power-domains
105142
106- unevaluatedProperties : false
107-
108143required :
109144 - compatible
145+ - " #address-cells"
146+ - " #size-cells"
147+ - ranges
148+
149+ allOf :
150+ - if :
151+ properties :
152+ compatible :
153+ contains :
154+ enum :
155+ - xlnx,versal-net-r52fss
156+ then :
157+ properties :
158+ xlnx,tcm-mode : false
159+
160+ patternProperties :
161+ " ^r52f@[0-9a-f]+$ " :
162+ type : object
163+
164+ properties :
165+ reg :
166+ minItems : 1
167+ items :
168+ - description : ATCM internal memory
169+ - description : BTCM internal memory
170+ - description : CTCM internal memory
171+
172+ reg-names :
173+ minItems : 1
174+ items :
175+ - const : atcm0
176+ - const : btcm0
177+ - const : ctcm0
178+
179+ power-domains :
180+ minItems : 2
181+ items :
182+ - description : RPU core power domain
183+ - description : ATCM power domain
184+ - description : BTCM power domain
185+ - description : CTCM power domain
186+
187+ - if :
188+ properties :
189+ compatible :
190+ contains :
191+ enum :
192+ - xlnx,zynqmp-r5fss
193+ - xlnx,versal-r5fss
194+ then :
195+ if :
196+ properties :
197+ xlnx,cluster-mode :
198+ enum : [1, 2]
199+ then :
200+ properties :
201+ xlnx,tcm-mode :
202+ enum : [1]
203+
204+ patternProperties :
205+ " ^r5f@[0-9a-f]+$ " :
206+ type : object
207+
208+ properties :
209+ reg :
210+ minItems : 1
211+ items :
212+ - description : ATCM internal memory
213+ - description : BTCM internal memory
214+ - description : extra ATCM memory in lockstep mode
215+ - description : extra BTCM memory in lockstep mode
216+
217+ reg-names :
218+ minItems : 1
219+ items :
220+ - const : atcm0
221+ - const : btcm0
222+ - const : atcm1
223+ - const : btcm1
224+
225+ power-domains :
226+ minItems : 2
227+ items :
228+ - description : RPU core power domain
229+ - description : ATCM power domain
230+ - description : BTCM power domain
231+ - description : second ATCM power domain
232+ - description : second BTCM power domain
233+
234+ required :
235+ - xlnx,tcm-mode
236+
237+ else :
238+ properties :
239+ xlnx,tcm-mode :
240+ enum : [0]
241+
242+ patternProperties :
243+ " ^r5f@[0-9a-f]+$ " :
244+ type : object
245+
246+ properties :
247+ reg :
248+ minItems : 1
249+ items :
250+ - description : ATCM internal memory
251+ - description : BTCM internal memory
252+
253+ reg-names :
254+ minItems : 1
255+ items :
256+ - const : atcm0
257+ - const : btcm0
258+
259+ power-domains :
260+ minItems : 2
261+ items :
262+ - description : RPU core power domain
263+ - description : ATCM power domain
264+ - description : BTCM power domain
265+
266+ required :
267+ - xlnx,tcm-mode
110268
111269additionalProperties : false
112270
113271examples :
114272 - |
115- remoteproc {
116- compatible = "xlnx,zynqmp-r5fss";
117- xlnx,cluster-mode = <1>;
118-
119- r5f-0 {
120- compatible = "xlnx,zynqmp-r5f";
121- power-domains = <&zynqmp_firmware 0x7>;
122- memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>, <&rpu0vdev0vring0>, <&rpu0vdev0vring1>;
123- mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>;
124- mbox-names = "tx", "rx";
273+ #include <dt-bindings/power/xlnx-zynqmp-power.h>
274+
275+ // Split mode configuration
276+ soc {
277+ #address-cells = <2>;
278+ #size-cells = <2>;
279+
280+ remoteproc@ffe00000 {
281+ compatible = "xlnx,zynqmp-r5fss";
282+ xlnx,cluster-mode = <0>;
283+ xlnx,tcm-mode = <0>;
284+
285+ #address-cells = <2>;
286+ #size-cells = <2>;
287+ ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
288+ <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
289+ <0x1 0x0 0x0 0xffe90000 0x0 0x10000>,
290+ <0x1 0x20000 0x0 0xffeb0000 0x0 0x10000>;
291+
292+ r5f@0 {
293+ compatible = "xlnx,zynqmp-r5f";
294+ reg = <0x0 0x0 0x0 0x10000>, <0x0 0x20000 0x0 0x10000>;
295+ reg-names = "atcm0", "btcm0";
296+ power-domains = <&zynqmp_firmware PD_RPU_0>,
297+ <&zynqmp_firmware PD_R5_0_ATCM>,
298+ <&zynqmp_firmware PD_R5_0_BTCM>;
299+ memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>,
300+ <&rpu0vdev0vring0>, <&rpu0vdev0vring1>;
301+ mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>;
302+ mbox-names = "tx", "rx";
303+ };
304+
305+ r5f@1 {
306+ compatible = "xlnx,zynqmp-r5f";
307+ reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
308+ reg-names = "atcm0", "btcm0";
309+ power-domains = <&zynqmp_firmware PD_RPU_1>,
310+ <&zynqmp_firmware PD_R5_1_ATCM>,
311+ <&zynqmp_firmware PD_R5_1_BTCM>;
312+ memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>,
313+ <&rpu1vdev0vring0>, <&rpu1vdev0vring1>;
314+ mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>;
315+ mbox-names = "tx", "rx";
316+ };
125317 };
318+ };
319+
320+ - |
321+ //Lockstep configuration
322+ soc {
323+ #address-cells = <2>;
324+ #size-cells = <2>;
325+
326+ remoteproc@ffe00000 {
327+ compatible = "xlnx,zynqmp-r5fss";
328+ xlnx,cluster-mode = <1>;
329+ xlnx,tcm-mode = <1>;
330+
331+ #address-cells = <2>;
332+ #size-cells = <2>;
333+ ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
334+ <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
335+ <0x0 0x10000 0x0 0xffe10000 0x0 0x10000>,
336+ <0x0 0x30000 0x0 0xffe30000 0x0 0x10000>;
337+
338+ r5f@0 {
339+ compatible = "xlnx,zynqmp-r5f";
340+ reg = <0x0 0x0 0x0 0x10000>,
341+ <0x0 0x20000 0x0 0x10000>,
342+ <0x0 0x10000 0x0 0x10000>,
343+ <0x0 0x30000 0x0 0x10000>;
344+ reg-names = "atcm0", "btcm0", "atcm1", "btcm1";
345+ power-domains = <&zynqmp_firmware PD_RPU_0>,
346+ <&zynqmp_firmware PD_R5_0_ATCM>,
347+ <&zynqmp_firmware PD_R5_0_BTCM>,
348+ <&zynqmp_firmware PD_R5_1_ATCM>,
349+ <&zynqmp_firmware PD_R5_1_BTCM>;
350+ memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>,
351+ <&rpu0vdev0vring0>, <&rpu0vdev0vring1>;
352+ mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>;
353+ mbox-names = "tx", "rx";
354+ };
126355
127- r5f-1 {
128- compatible = "xlnx,zynqmp-r5f";
129- power-domains = <&zynqmp_firmware 0x8>;
130- memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>, <&rpu1vdev0vring0>, <&rpu1vdev0vring1>;
131- mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>;
132- mbox-names = "tx", "rx";
356+ r5f@1 {
357+ compatible = "xlnx,zynqmp-r5f";
358+ reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
359+ reg-names = "atcm0", "btcm0";
360+ power-domains = <&zynqmp_firmware PD_RPU_1>,
361+ <&zynqmp_firmware PD_R5_1_ATCM>,
362+ <&zynqmp_firmware PD_R5_1_BTCM>;
363+ memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>,
364+ <&rpu1vdev0vring0>, <&rpu1vdev0vring1>;
365+ mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>;
366+ mbox-names = "tx", "rx";
367+ };
133368 };
134369 };
135370 ...
0 commit comments