1/*
2 * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/*
8 * This device tree is only an example and some properties have been omitted.
9 *
10 * Refer to the Arm(R) Ethos(TM)-N driver stack for complete device tree examples.
11 * https://github.com/ARM-software/ethos-n-driver-stack
12 */
13
14/ {
15	#address-cells = <2>;
16	#size-cells = <2>;
17
18	smmu_ethosn0: iommu@6f400000 {
19		compatible = "arm,smmu-v3";
20		reg = <0 0x6f400000 0 0x80000>;
21		status = "okay";
22		/* msi-parent omitted */
23		#iommu-cells = <0x1>;
24	};
25
26	ethosn0: ethosn@6f300000 {
27		 compatible = "ethosn";
28		 reg = <0 0x6f300000 0 0x00100000>;
29		 status = "okay";
30
31		 core0 {
32			 compatible = "ethosn-core";
33			 status = "okay";
34
35			 main_allocator {
36				 compatible = "ethosn-main_allocator";
37				 status = "okay";
38
39				 firmware {
40					 compatible = "ethosn-memory";
41					 iommus = <&smmu_ethosn0 0>;
42				 };
43
44				 working_data {
45					 compatible = "ethosn-memory";
46					 iommus = <&smmu_ethosn0 1>;
47				 };
48			 };
49		 };
50
51		 asset_allocator0 {
52			 compatible = "ethosn-asset_allocator";
53			 status = "okay";
54
55			 command_stream {
56				 compatible = "ethosn-memory";
57				 iommus = <&smmu_ethosn0 4>;
58			 };
59
60			 weight_data {
61				 compatible = "ethosn-memory";
62				 iommus = <&smmu_ethosn0 5>;
63			 };
64
65			 buffer_data {
66				 compatible = "ethosn-memory";
67				 iommus = <&smmu_ethosn0 6>;
68			 };
69
70			 intermediate_data {
71				 compatible = "ethosn-memory";
72				 iommus = <&smmu_ethosn0 7>;
73			 };
74		 };
75
76		 asset_allocator1 {
77			 compatible = "ethosn-asset_allocator";
78			 status = "okay";
79
80			 command_stream {
81				 compatible = "ethosn-memory";
82				 iommus = <&smmu_ethosn0 8>;
83			 };
84
85			 weight_data {
86				 compatible = "ethosn-memory";
87				 iommus = <&smmu_ethosn0 9>;
88			 };
89
90			 buffer_data {
91				 compatible = "ethosn-memory";
92				 iommus = <&smmu_ethosn0 10>;
93			 };
94
95			 intermediate_data {
96				 compatible = "ethosn-memory";
97				 iommus = <&smmu_ethosn0 11>;
98			 };
99		 };
100
101		 asset_allocator2 {
102			 compatible = "ethosn-asset_allocator";
103			 status = "okay";
104
105			 command_stream {
106				 compatible = "ethosn-memory";
107				 iommus = <&smmu_ethosn0 12>;
108			 };
109
110			 weight_data {
111				 compatible = "ethosn-memory";
112				 iommus = <&smmu_ethosn0 13>;
113			 };
114
115			 buffer_data {
116				 compatible = "ethosn-memory";
117				 iommus = <&smmu_ethosn0 14>;
118			 };
119
120			 intermediate_data {
121				 compatible = "ethosn-memory";
122				 iommus = <&smmu_ethosn0 15>;
123			 };
124		 };
125
126		 asset_allocator3 {
127			 compatible = "ethosn-asset_allocator";
128			 status = "okay";
129
130			 command_stream {
131				 compatible = "ethosn-memory";
132				 iommus = <&smmu_ethosn0 16>;
133			 };
134
135			 weight_data {
136				 compatible = "ethosn-memory";
137				 iommus = <&smmu_ethosn0 17>;
138			 };
139
140			 buffer_data {
141				 compatible = "ethosn-memory";
142				 iommus = <&smmu_ethosn0 18>;
143			 };
144
145			 intermediate_data {
146				 compatible = "ethosn-memory";
147				 iommus = <&smmu_ethosn0 19>;
148			 };
149		 };
150
151		 asset_allocator4 {
152			 compatible = "ethosn-asset_allocator";
153			 status = "okay";
154
155			 command_stream {
156				 compatible = "ethosn-memory";
157				 iommus = <&smmu_ethosn0 20>;
158			 };
159
160			 weight_data {
161				 compatible = "ethosn-memory";
162				 iommus = <&smmu_ethosn0 21>;
163			 };
164
165			 buffer_data {
166				 compatible = "ethosn-memory";
167				 iommus = <&smmu_ethosn0 22>;
168			 };
169
170			 intermediate_data {
171				 compatible = "ethosn-memory";
172				 iommus = <&smmu_ethosn0 23>;
173			 };
174		 };
175
176		 asset_allocator5 {
177			 compatible = "ethosn-asset_allocator";
178			 status = "okay";
179
180			 command_stream {
181				 compatible = "ethosn-memory";
182				 iommus = <&smmu_ethosn0 24>;
183			 };
184
185			 weight_data {
186				 compatible = "ethosn-memory";
187				 iommus = <&smmu_ethosn0 25>;
188			 };
189
190			 buffer_data {
191				 compatible = "ethosn-memory";
192				 iommus = <&smmu_ethosn0 26>;
193			 };
194
195			 intermediate_data {
196				 compatible = "ethosn-memory";
197				 iommus = <&smmu_ethosn0 27>;
198			 };
199		 };
200
201		 asset_allocator6 {
202			 compatible = "ethosn-asset_allocator";
203			 status = "okay";
204
205			 command_stream {
206				 compatible = "ethosn-memory";
207				 iommus = <&smmu_ethosn0 28>;
208			 };
209
210			 weight_data {
211				 compatible = "ethosn-memory";
212				 iommus = <&smmu_ethosn0 29>;
213			 };
214
215			 buffer_data {
216				 compatible = "ethosn-memory";
217				 iommus = <&smmu_ethosn0 30>;
218			 };
219
220			 intermediate_data {
221				 compatible = "ethosn-memory";
222				 iommus = <&smmu_ethosn0 31>;
223			 };
224		 };
225
226		 asset_allocator7 {
227			 compatible = "ethosn-asset_allocator";
228			 status = "okay";
229
230			 command_stream {
231				 compatible = "ethosn-memory";
232				 iommus = <&smmu_ethosn0 32>;
233			 };
234
235			 weight_data {
236				 compatible = "ethosn-memory";
237				 iommus = <&smmu_ethosn0 33>;
238			 };
239
240			 buffer_data {
241				 compatible = "ethosn-memory";
242				 iommus = <&smmu_ethosn0 34>;
243			 };
244
245			 intermediate_data {
246				 compatible = "ethosn-memory";
247				 iommus = <&smmu_ethosn0 35>;
248			 };
249		 };
250
251		 asset_allocator8 {
252			 compatible = "ethosn-asset_allocator";
253			 status = "okay";
254
255			 command_stream {
256				 compatible = "ethosn-memory";
257				 iommus = <&smmu_ethosn0 36>;
258			 };
259
260			 weight_data {
261				 compatible = "ethosn-memory";
262				 iommus = <&smmu_ethosn0 37>;
263			 };
264
265			 buffer_data {
266				 compatible = "ethosn-memory";
267				 iommus = <&smmu_ethosn0 38>;
268			 };
269
270			 intermediate_data {
271				 compatible = "ethosn-memory";
272				 iommus = <&smmu_ethosn0 39>;
273			 };
274		 };
275
276		 asset_allocator9 {
277			 compatible = "ethosn-asset_allocator";
278			 status = "okay";
279
280			 command_stream {
281				 compatible = "ethosn-memory";
282				 iommus = <&smmu_ethosn0 40>;
283			 };
284
285			 weight_data {
286				 compatible = "ethosn-memory";
287				 iommus = <&smmu_ethosn0 41>;
288			 };
289
290			 buffer_data {
291				 compatible = "ethosn-memory";
292				 iommus = <&smmu_ethosn0 42>;
293			 };
294
295			 intermediate_data {
296				 compatible = "ethosn-memory";
297				 iommus = <&smmu_ethosn0 43>;
298			 };
299		 };
300	 };
301};
302