xref: /linux/arch/arm64/boot/dts/ti/k3-j721e-ti-ipc-firmware.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*20ca5516SBeleswar Padhi// SPDX-License-Identifier: GPL-2.0-only OR MIT
2*20ca5516SBeleswar Padhi/**
3*20ca5516SBeleswar Padhi * Device Tree Source for enabling IPC using TI SDK firmware on J721E SoCs
4*20ca5516SBeleswar Padhi *
5*20ca5516SBeleswar Padhi * Copyright (C) 2018-2025 Texas Instruments Incorporated - https://www.ti.com/
6*20ca5516SBeleswar Padhi */
7*20ca5516SBeleswar Padhi
8*20ca5516SBeleswar Padhi&reserved_memory {
9*20ca5516SBeleswar Padhi	mcu_r5fss0_core1_dma_memory_region: memory@a1000000 {
10*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
11*20ca5516SBeleswar Padhi		reg = <0x00 0xa1000000 0x00 0x100000>;
12*20ca5516SBeleswar Padhi		no-map;
13*20ca5516SBeleswar Padhi	};
14*20ca5516SBeleswar Padhi
15*20ca5516SBeleswar Padhi	mcu_r5fss0_core1_memory_region: memory@a1100000 {
16*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
17*20ca5516SBeleswar Padhi		reg = <0x00 0xa1100000 0x00 0xf00000>;
18*20ca5516SBeleswar Padhi		no-map;
19*20ca5516SBeleswar Padhi	};
20*20ca5516SBeleswar Padhi
21*20ca5516SBeleswar Padhi	main_r5fss0_core0_dma_memory_region: memory@a2000000 {
22*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
23*20ca5516SBeleswar Padhi		reg = <0x00 0xa2000000 0x00 0x100000>;
24*20ca5516SBeleswar Padhi		no-map;
25*20ca5516SBeleswar Padhi	};
26*20ca5516SBeleswar Padhi
27*20ca5516SBeleswar Padhi	main_r5fss0_core0_memory_region: memory@a2100000 {
28*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
29*20ca5516SBeleswar Padhi		reg = <0x00 0xa2100000 0x00 0xf00000>;
30*20ca5516SBeleswar Padhi		no-map;
31*20ca5516SBeleswar Padhi	};
32*20ca5516SBeleswar Padhi
33*20ca5516SBeleswar Padhi	main_r5fss0_core1_dma_memory_region: memory@a3000000 {
34*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
35*20ca5516SBeleswar Padhi		reg = <0x00 0xa3000000 0x00 0x100000>;
36*20ca5516SBeleswar Padhi		no-map;
37*20ca5516SBeleswar Padhi	};
38*20ca5516SBeleswar Padhi
39*20ca5516SBeleswar Padhi	main_r5fss0_core1_memory_region: memory@a3100000 {
40*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
41*20ca5516SBeleswar Padhi		reg = <0x00 0xa3100000 0x00 0xf00000>;
42*20ca5516SBeleswar Padhi		no-map;
43*20ca5516SBeleswar Padhi	};
44*20ca5516SBeleswar Padhi
45*20ca5516SBeleswar Padhi	main_r5fss1_core0_dma_memory_region: memory@a4000000 {
46*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
47*20ca5516SBeleswar Padhi		reg = <0x00 0xa4000000 0x00 0x100000>;
48*20ca5516SBeleswar Padhi		no-map;
49*20ca5516SBeleswar Padhi	};
50*20ca5516SBeleswar Padhi
51*20ca5516SBeleswar Padhi	main_r5fss1_core0_memory_region: memory@a4100000 {
52*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
53*20ca5516SBeleswar Padhi		reg = <0x00 0xa4100000 0x00 0xf00000>;
54*20ca5516SBeleswar Padhi		no-map;
55*20ca5516SBeleswar Padhi	};
56*20ca5516SBeleswar Padhi
57*20ca5516SBeleswar Padhi	main_r5fss1_core1_dma_memory_region: memory@a5000000 {
58*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
59*20ca5516SBeleswar Padhi		reg = <0x00 0xa5000000 0x00 0x100000>;
60*20ca5516SBeleswar Padhi		no-map;
61*20ca5516SBeleswar Padhi	};
62*20ca5516SBeleswar Padhi
63*20ca5516SBeleswar Padhi	main_r5fss1_core1_memory_region: memory@a5100000 {
64*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
65*20ca5516SBeleswar Padhi		reg = <0x00 0xa5100000 0x00 0xf00000>;
66*20ca5516SBeleswar Padhi		no-map;
67*20ca5516SBeleswar Padhi	};
68*20ca5516SBeleswar Padhi
69*20ca5516SBeleswar Padhi	/* Carveout locations are flipped due to caching */
70*20ca5516SBeleswar Padhi	c66_1_dma_memory_region: memory@a6000000 {
71*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
72*20ca5516SBeleswar Padhi		reg = <0x00 0xa6000000 0x00 0x100000>;
73*20ca5516SBeleswar Padhi		no-map;
74*20ca5516SBeleswar Padhi	};
75*20ca5516SBeleswar Padhi
76*20ca5516SBeleswar Padhi	c66_0_memory_region: memory@a6100000 {
77*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
78*20ca5516SBeleswar Padhi		reg = <0x00 0xa6100000 0x00 0xf00000>;
79*20ca5516SBeleswar Padhi		no-map;
80*20ca5516SBeleswar Padhi	};
81*20ca5516SBeleswar Padhi
82*20ca5516SBeleswar Padhi	/* Carveout locations are flipped due to caching */
83*20ca5516SBeleswar Padhi	c66_0_dma_memory_region: memory@a7000000 {
84*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
85*20ca5516SBeleswar Padhi		reg = <0x00 0xa7000000 0x00 0x100000>;
86*20ca5516SBeleswar Padhi		no-map;
87*20ca5516SBeleswar Padhi	};
88*20ca5516SBeleswar Padhi
89*20ca5516SBeleswar Padhi	c66_1_memory_region: memory@a7100000 {
90*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
91*20ca5516SBeleswar Padhi		reg = <0x00 0xa7100000 0x00 0xf00000>;
92*20ca5516SBeleswar Padhi		no-map;
93*20ca5516SBeleswar Padhi	};
94*20ca5516SBeleswar Padhi
95*20ca5516SBeleswar Padhi	c71_0_dma_memory_region: memory@a8000000 {
96*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
97*20ca5516SBeleswar Padhi		reg = <0x00 0xa8000000 0x00 0x100000>;
98*20ca5516SBeleswar Padhi		no-map;
99*20ca5516SBeleswar Padhi	};
100*20ca5516SBeleswar Padhi
101*20ca5516SBeleswar Padhi	c71_0_memory_region: memory@a8100000 {
102*20ca5516SBeleswar Padhi		compatible = "shared-dma-pool";
103*20ca5516SBeleswar Padhi		reg = <0x00 0xa8100000 0x00 0xf00000>;
104*20ca5516SBeleswar Padhi		no-map;
105*20ca5516SBeleswar Padhi	};
106*20ca5516SBeleswar Padhi
107*20ca5516SBeleswar Padhi	rtos_ipc_memory_region: memory@aa000000 {
108*20ca5516SBeleswar Padhi		reg = <0x00 0xaa000000 0x00 0x01c00000>;
109*20ca5516SBeleswar Padhi		alignment = <0x1000>;
110*20ca5516SBeleswar Padhi		no-map;
111*20ca5516SBeleswar Padhi	};
112*20ca5516SBeleswar Padhi};
113*20ca5516SBeleswar Padhi
114*20ca5516SBeleswar Padhi&mailbox0_cluster0 {
115*20ca5516SBeleswar Padhi	status = "okay";
116*20ca5516SBeleswar Padhi	interrupts = <436>;
117*20ca5516SBeleswar Padhi
118*20ca5516SBeleswar Padhi	mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
119*20ca5516SBeleswar Padhi		ti,mbox-rx = <0 0 0>;
120*20ca5516SBeleswar Padhi		ti,mbox-tx = <1 0 0>;
121*20ca5516SBeleswar Padhi	};
122*20ca5516SBeleswar Padhi
123*20ca5516SBeleswar Padhi	mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
124*20ca5516SBeleswar Padhi		ti,mbox-rx = <2 0 0>;
125*20ca5516SBeleswar Padhi		ti,mbox-tx = <3 0 0>;
126*20ca5516SBeleswar Padhi	};
127*20ca5516SBeleswar Padhi};
128*20ca5516SBeleswar Padhi
129*20ca5516SBeleswar Padhi&mailbox0_cluster1 {
130*20ca5516SBeleswar Padhi	status = "okay";
131*20ca5516SBeleswar Padhi	interrupts = <432>;
132*20ca5516SBeleswar Padhi
133*20ca5516SBeleswar Padhi	mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
134*20ca5516SBeleswar Padhi		ti,mbox-rx = <0 0 0>;
135*20ca5516SBeleswar Padhi		ti,mbox-tx = <1 0 0>;
136*20ca5516SBeleswar Padhi	};
137*20ca5516SBeleswar Padhi
138*20ca5516SBeleswar Padhi	mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
139*20ca5516SBeleswar Padhi		ti,mbox-rx = <2 0 0>;
140*20ca5516SBeleswar Padhi		ti,mbox-tx = <3 0 0>;
141*20ca5516SBeleswar Padhi	};
142*20ca5516SBeleswar Padhi};
143*20ca5516SBeleswar Padhi
144*20ca5516SBeleswar Padhi&mailbox0_cluster2 {
145*20ca5516SBeleswar Padhi	status = "okay";
146*20ca5516SBeleswar Padhi	interrupts = <428>;
147*20ca5516SBeleswar Padhi
148*20ca5516SBeleswar Padhi	mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
149*20ca5516SBeleswar Padhi		ti,mbox-rx = <0 0 0>;
150*20ca5516SBeleswar Padhi		ti,mbox-tx = <1 0 0>;
151*20ca5516SBeleswar Padhi	};
152*20ca5516SBeleswar Padhi
153*20ca5516SBeleswar Padhi	mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
154*20ca5516SBeleswar Padhi		ti,mbox-rx = <2 0 0>;
155*20ca5516SBeleswar Padhi		ti,mbox-tx = <3 0 0>;
156*20ca5516SBeleswar Padhi	};
157*20ca5516SBeleswar Padhi};
158*20ca5516SBeleswar Padhi
159*20ca5516SBeleswar Padhi&mailbox0_cluster3 {
160*20ca5516SBeleswar Padhi	status = "okay";
161*20ca5516SBeleswar Padhi	interrupts = <424>;
162*20ca5516SBeleswar Padhi
163*20ca5516SBeleswar Padhi	mbox_c66_0: mbox-c66-0 {
164*20ca5516SBeleswar Padhi		ti,mbox-rx = <0 0 0>;
165*20ca5516SBeleswar Padhi		ti,mbox-tx = <1 0 0>;
166*20ca5516SBeleswar Padhi	};
167*20ca5516SBeleswar Padhi
168*20ca5516SBeleswar Padhi	mbox_c66_1: mbox-c66-1 {
169*20ca5516SBeleswar Padhi		ti,mbox-rx = <2 0 0>;
170*20ca5516SBeleswar Padhi		ti,mbox-tx = <3 0 0>;
171*20ca5516SBeleswar Padhi	};
172*20ca5516SBeleswar Padhi};
173*20ca5516SBeleswar Padhi
174*20ca5516SBeleswar Padhi&mailbox0_cluster4 {
175*20ca5516SBeleswar Padhi	status = "okay";
176*20ca5516SBeleswar Padhi	interrupts = <420>;
177*20ca5516SBeleswar Padhi
178*20ca5516SBeleswar Padhi	mbox_c71_0: mbox-c71-0 {
179*20ca5516SBeleswar Padhi		ti,mbox-rx = <0 0 0>;
180*20ca5516SBeleswar Padhi		ti,mbox-tx = <1 0 0>;
181*20ca5516SBeleswar Padhi	};
182*20ca5516SBeleswar Padhi};
183*20ca5516SBeleswar Padhi
184*20ca5516SBeleswar Padhi/* Timers are used by Remoteproc firmware */
185*20ca5516SBeleswar Padhi&main_timer0 {
186*20ca5516SBeleswar Padhi	status = "reserved";
187*20ca5516SBeleswar Padhi};
188*20ca5516SBeleswar Padhi
189*20ca5516SBeleswar Padhi&main_timer1 {
190*20ca5516SBeleswar Padhi	status = "reserved";
191*20ca5516SBeleswar Padhi};
192*20ca5516SBeleswar Padhi
193*20ca5516SBeleswar Padhi&main_timer2 {
194*20ca5516SBeleswar Padhi	status = "reserved";
195*20ca5516SBeleswar Padhi};
196*20ca5516SBeleswar Padhi
197*20ca5516SBeleswar Padhi&main_timer12 {
198*20ca5516SBeleswar Padhi	status = "reserved";
199*20ca5516SBeleswar Padhi};
200*20ca5516SBeleswar Padhi
201*20ca5516SBeleswar Padhi&main_timer13 {
202*20ca5516SBeleswar Padhi	status = "reserved";
203*20ca5516SBeleswar Padhi};
204*20ca5516SBeleswar Padhi
205*20ca5516SBeleswar Padhi&main_timer14 {
206*20ca5516SBeleswar Padhi	status = "reserved";
207*20ca5516SBeleswar Padhi};
208*20ca5516SBeleswar Padhi
209*20ca5516SBeleswar Padhi&main_timer15 {
210*20ca5516SBeleswar Padhi	status = "reserved";
211*20ca5516SBeleswar Padhi};
212*20ca5516SBeleswar Padhi
213*20ca5516SBeleswar Padhi&mcu_r5fss0 {
214*20ca5516SBeleswar Padhi	status = "okay";
215*20ca5516SBeleswar Padhi};
216*20ca5516SBeleswar Padhi
217*20ca5516SBeleswar Padhi&mcu_r5fss0_core0 {
218*20ca5516SBeleswar Padhi	status = "okay";
219*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
220*20ca5516SBeleswar Padhi	memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
221*20ca5516SBeleswar Padhi			<&mcu_r5fss0_core0_memory_region>;
222*20ca5516SBeleswar Padhi};
223*20ca5516SBeleswar Padhi
224*20ca5516SBeleswar Padhi&mcu_r5fss0_core1 {
225*20ca5516SBeleswar Padhi	status = "okay";
226*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>;
227*20ca5516SBeleswar Padhi	memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
228*20ca5516SBeleswar Padhi			<&mcu_r5fss0_core1_memory_region>;
229*20ca5516SBeleswar Padhi};
230*20ca5516SBeleswar Padhi
231*20ca5516SBeleswar Padhi&main_r5fss0 {
232*20ca5516SBeleswar Padhi	status = "okay";
233*20ca5516SBeleswar Padhi	ti,cluster-mode = <0>;
234*20ca5516SBeleswar Padhi};
235*20ca5516SBeleswar Padhi
236*20ca5516SBeleswar Padhi&main_r5fss0_core0 {
237*20ca5516SBeleswar Padhi	status = "okay";
238*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
239*20ca5516SBeleswar Padhi	memory-region = <&main_r5fss0_core0_dma_memory_region>,
240*20ca5516SBeleswar Padhi			<&main_r5fss0_core0_memory_region>;
241*20ca5516SBeleswar Padhi};
242*20ca5516SBeleswar Padhi
243*20ca5516SBeleswar Padhi&main_r5fss0_core1 {
244*20ca5516SBeleswar Padhi	status = "okay";
245*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>;
246*20ca5516SBeleswar Padhi	memory-region = <&main_r5fss0_core1_dma_memory_region>,
247*20ca5516SBeleswar Padhi			<&main_r5fss0_core1_memory_region>;
248*20ca5516SBeleswar Padhi};
249*20ca5516SBeleswar Padhi
250*20ca5516SBeleswar Padhi&main_r5fss1 {
251*20ca5516SBeleswar Padhi	status = "okay";
252*20ca5516SBeleswar Padhi	ti,cluster-mode = <0>;
253*20ca5516SBeleswar Padhi};
254*20ca5516SBeleswar Padhi
255*20ca5516SBeleswar Padhi&main_r5fss1_core0 {
256*20ca5516SBeleswar Padhi	status = "okay";
257*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core0>;
258*20ca5516SBeleswar Padhi	memory-region = <&main_r5fss1_core0_dma_memory_region>,
259*20ca5516SBeleswar Padhi			<&main_r5fss1_core0_memory_region>;
260*20ca5516SBeleswar Padhi};
261*20ca5516SBeleswar Padhi
262*20ca5516SBeleswar Padhi&main_r5fss1_core1 {
263*20ca5516SBeleswar Padhi	status = "okay";
264*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core1>;
265*20ca5516SBeleswar Padhi	memory-region = <&main_r5fss1_core1_dma_memory_region>,
266*20ca5516SBeleswar Padhi			<&main_r5fss1_core1_memory_region>;
267*20ca5516SBeleswar Padhi};
268*20ca5516SBeleswar Padhi
269*20ca5516SBeleswar Padhi&c66_0 {
270*20ca5516SBeleswar Padhi	status = "okay";
271*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster3 &mbox_c66_0>;
272*20ca5516SBeleswar Padhi	memory-region = <&c66_0_dma_memory_region>,
273*20ca5516SBeleswar Padhi			<&c66_0_memory_region>;
274*20ca5516SBeleswar Padhi};
275*20ca5516SBeleswar Padhi
276*20ca5516SBeleswar Padhi&c66_1 {
277*20ca5516SBeleswar Padhi	status = "okay";
278*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster3 &mbox_c66_1>;
279*20ca5516SBeleswar Padhi	memory-region = <&c66_1_dma_memory_region>,
280*20ca5516SBeleswar Padhi			<&c66_1_memory_region>;
281*20ca5516SBeleswar Padhi};
282*20ca5516SBeleswar Padhi
283*20ca5516SBeleswar Padhi&c71_0 {
284*20ca5516SBeleswar Padhi	status = "okay";
285*20ca5516SBeleswar Padhi	mboxes = <&mailbox0_cluster4 &mbox_c71_0>;
286*20ca5516SBeleswar Padhi	memory-region = <&c71_0_dma_memory_region>,
287*20ca5516SBeleswar Padhi			<&c71_0_memory_region>;
288*20ca5516SBeleswar Padhi};
289