xref: /freebsd/sys/contrib/device-tree/src/riscv/spacemit/k1.dtsi (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
1*2846c905SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 OR MIT
2*2846c905SEmmanuel Vadot/*
3*2846c905SEmmanuel Vadot * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
4*2846c905SEmmanuel Vadot */
5*2846c905SEmmanuel Vadot
6*2846c905SEmmanuel Vadot/dts-v1/;
7*2846c905SEmmanuel Vadot/ {
8*2846c905SEmmanuel Vadot	#address-cells = <2>;
9*2846c905SEmmanuel Vadot	#size-cells = <2>;
10*2846c905SEmmanuel Vadot	model = "SpacemiT K1";
11*2846c905SEmmanuel Vadot	compatible = "spacemit,k1";
12*2846c905SEmmanuel Vadot
13*2846c905SEmmanuel Vadot	cpus {
14*2846c905SEmmanuel Vadot		#address-cells = <1>;
15*2846c905SEmmanuel Vadot		#size-cells = <0>;
16*2846c905SEmmanuel Vadot		timebase-frequency = <24000000>;
17*2846c905SEmmanuel Vadot
18*2846c905SEmmanuel Vadot		cpu-map {
19*2846c905SEmmanuel Vadot			cluster0 {
20*2846c905SEmmanuel Vadot				core0 {
21*2846c905SEmmanuel Vadot					cpu = <&cpu_0>;
22*2846c905SEmmanuel Vadot				};
23*2846c905SEmmanuel Vadot				core1 {
24*2846c905SEmmanuel Vadot					cpu = <&cpu_1>;
25*2846c905SEmmanuel Vadot				};
26*2846c905SEmmanuel Vadot				core2 {
27*2846c905SEmmanuel Vadot					cpu = <&cpu_2>;
28*2846c905SEmmanuel Vadot				};
29*2846c905SEmmanuel Vadot				core3 {
30*2846c905SEmmanuel Vadot					cpu = <&cpu_3>;
31*2846c905SEmmanuel Vadot				};
32*2846c905SEmmanuel Vadot			};
33*2846c905SEmmanuel Vadot
34*2846c905SEmmanuel Vadot			cluster1 {
35*2846c905SEmmanuel Vadot				core0 {
36*2846c905SEmmanuel Vadot					cpu = <&cpu_4>;
37*2846c905SEmmanuel Vadot				};
38*2846c905SEmmanuel Vadot				core1 {
39*2846c905SEmmanuel Vadot					cpu = <&cpu_5>;
40*2846c905SEmmanuel Vadot				};
41*2846c905SEmmanuel Vadot				core2 {
42*2846c905SEmmanuel Vadot					cpu = <&cpu_6>;
43*2846c905SEmmanuel Vadot				};
44*2846c905SEmmanuel Vadot				core3 {
45*2846c905SEmmanuel Vadot					cpu = <&cpu_7>;
46*2846c905SEmmanuel Vadot				};
47*2846c905SEmmanuel Vadot			};
48*2846c905SEmmanuel Vadot		};
49*2846c905SEmmanuel Vadot
50*2846c905SEmmanuel Vadot		cpu_0: cpu@0 {
51*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
52*2846c905SEmmanuel Vadot			device_type = "cpu";
53*2846c905SEmmanuel Vadot			reg = <0>;
54*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
55*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
56*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
57*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
58*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
59*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
60*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
61*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
62*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
63*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
64*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
65*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
66*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
67*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
68*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
69*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
70*2846c905SEmmanuel Vadot			next-level-cache = <&cluster0_l2_cache>;
71*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
72*2846c905SEmmanuel Vadot
73*2846c905SEmmanuel Vadot			cpu0_intc: interrupt-controller {
74*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
75*2846c905SEmmanuel Vadot				interrupt-controller;
76*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
77*2846c905SEmmanuel Vadot			};
78*2846c905SEmmanuel Vadot		};
79*2846c905SEmmanuel Vadot
80*2846c905SEmmanuel Vadot		cpu_1: cpu@1 {
81*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
82*2846c905SEmmanuel Vadot			device_type = "cpu";
83*2846c905SEmmanuel Vadot			reg = <1>;
84*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
85*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
86*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
87*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
88*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
89*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
90*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
91*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
92*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
93*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
94*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
95*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
96*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
97*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
98*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
99*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
100*2846c905SEmmanuel Vadot			next-level-cache = <&cluster0_l2_cache>;
101*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
102*2846c905SEmmanuel Vadot
103*2846c905SEmmanuel Vadot			cpu1_intc: interrupt-controller {
104*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
105*2846c905SEmmanuel Vadot				interrupt-controller;
106*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
107*2846c905SEmmanuel Vadot			};
108*2846c905SEmmanuel Vadot		};
109*2846c905SEmmanuel Vadot
110*2846c905SEmmanuel Vadot		cpu_2: cpu@2 {
111*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
112*2846c905SEmmanuel Vadot			device_type = "cpu";
113*2846c905SEmmanuel Vadot			reg = <2>;
114*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
115*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
116*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
117*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
118*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
119*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
120*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
121*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
122*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
123*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
124*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
125*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
126*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
127*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
128*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
129*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
130*2846c905SEmmanuel Vadot			next-level-cache = <&cluster0_l2_cache>;
131*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
132*2846c905SEmmanuel Vadot
133*2846c905SEmmanuel Vadot			cpu2_intc: interrupt-controller {
134*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
135*2846c905SEmmanuel Vadot				interrupt-controller;
136*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
137*2846c905SEmmanuel Vadot			};
138*2846c905SEmmanuel Vadot		};
139*2846c905SEmmanuel Vadot
140*2846c905SEmmanuel Vadot		cpu_3: cpu@3 {
141*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
142*2846c905SEmmanuel Vadot			device_type = "cpu";
143*2846c905SEmmanuel Vadot			reg = <3>;
144*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
145*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
146*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
147*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
148*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
149*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
150*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
151*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
152*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
153*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
154*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
155*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
156*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
157*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
158*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
159*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
160*2846c905SEmmanuel Vadot			next-level-cache = <&cluster0_l2_cache>;
161*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
162*2846c905SEmmanuel Vadot
163*2846c905SEmmanuel Vadot			cpu3_intc: interrupt-controller {
164*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
165*2846c905SEmmanuel Vadot				interrupt-controller;
166*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
167*2846c905SEmmanuel Vadot			};
168*2846c905SEmmanuel Vadot		};
169*2846c905SEmmanuel Vadot
170*2846c905SEmmanuel Vadot		cpu_4: cpu@4 {
171*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
172*2846c905SEmmanuel Vadot			device_type = "cpu";
173*2846c905SEmmanuel Vadot			reg = <4>;
174*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
175*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
176*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
177*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
178*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
179*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
180*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
181*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
182*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
183*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
184*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
185*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
186*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
187*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
188*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
189*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
190*2846c905SEmmanuel Vadot			next-level-cache = <&cluster1_l2_cache>;
191*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
192*2846c905SEmmanuel Vadot
193*2846c905SEmmanuel Vadot			cpu4_intc: interrupt-controller {
194*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
195*2846c905SEmmanuel Vadot				interrupt-controller;
196*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
197*2846c905SEmmanuel Vadot			};
198*2846c905SEmmanuel Vadot		};
199*2846c905SEmmanuel Vadot
200*2846c905SEmmanuel Vadot		cpu_5: cpu@5 {
201*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
202*2846c905SEmmanuel Vadot			device_type = "cpu";
203*2846c905SEmmanuel Vadot			reg = <5>;
204*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
205*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
206*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
207*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
208*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
209*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
210*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
211*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
212*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
213*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
214*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
215*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
216*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
217*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
218*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
219*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
220*2846c905SEmmanuel Vadot			next-level-cache = <&cluster1_l2_cache>;
221*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
222*2846c905SEmmanuel Vadot
223*2846c905SEmmanuel Vadot			cpu5_intc: interrupt-controller {
224*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
225*2846c905SEmmanuel Vadot				interrupt-controller;
226*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
227*2846c905SEmmanuel Vadot			};
228*2846c905SEmmanuel Vadot		};
229*2846c905SEmmanuel Vadot
230*2846c905SEmmanuel Vadot		cpu_6: cpu@6 {
231*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
232*2846c905SEmmanuel Vadot			device_type = "cpu";
233*2846c905SEmmanuel Vadot			reg = <6>;
234*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
235*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
236*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
237*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
238*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
239*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
240*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
241*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
242*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
243*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
244*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
245*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
246*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
247*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
248*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
249*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
250*2846c905SEmmanuel Vadot			next-level-cache = <&cluster1_l2_cache>;
251*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
252*2846c905SEmmanuel Vadot
253*2846c905SEmmanuel Vadot			cpu6_intc: interrupt-controller {
254*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
255*2846c905SEmmanuel Vadot				interrupt-controller;
256*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
257*2846c905SEmmanuel Vadot			};
258*2846c905SEmmanuel Vadot		};
259*2846c905SEmmanuel Vadot
260*2846c905SEmmanuel Vadot		cpu_7: cpu@7 {
261*2846c905SEmmanuel Vadot			compatible = "spacemit,x60", "riscv";
262*2846c905SEmmanuel Vadot			device_type = "cpu";
263*2846c905SEmmanuel Vadot			reg = <7>;
264*2846c905SEmmanuel Vadot			riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
265*2846c905SEmmanuel Vadot			riscv,isa-base = "rv64i";
266*2846c905SEmmanuel Vadot			riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
267*2846c905SEmmanuel Vadot					       "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
268*2846c905SEmmanuel Vadot					       "zifencei", "zihintpause", "zihpm", "zfh", "zba",
269*2846c905SEmmanuel Vadot					       "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
270*2846c905SEmmanuel Vadot					       "sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
271*2846c905SEmmanuel Vadot			riscv,cbom-block-size = <64>;
272*2846c905SEmmanuel Vadot			riscv,cbop-block-size = <64>;
273*2846c905SEmmanuel Vadot			riscv,cboz-block-size = <64>;
274*2846c905SEmmanuel Vadot			i-cache-block-size = <64>;
275*2846c905SEmmanuel Vadot			i-cache-size = <32768>;
276*2846c905SEmmanuel Vadot			i-cache-sets = <128>;
277*2846c905SEmmanuel Vadot			d-cache-block-size = <64>;
278*2846c905SEmmanuel Vadot			d-cache-size = <32768>;
279*2846c905SEmmanuel Vadot			d-cache-sets = <128>;
280*2846c905SEmmanuel Vadot			next-level-cache = <&cluster1_l2_cache>;
281*2846c905SEmmanuel Vadot			mmu-type = "riscv,sv39";
282*2846c905SEmmanuel Vadot
283*2846c905SEmmanuel Vadot			cpu7_intc: interrupt-controller {
284*2846c905SEmmanuel Vadot				compatible = "riscv,cpu-intc";
285*2846c905SEmmanuel Vadot				interrupt-controller;
286*2846c905SEmmanuel Vadot				#interrupt-cells = <1>;
287*2846c905SEmmanuel Vadot			};
288*2846c905SEmmanuel Vadot		};
289*2846c905SEmmanuel Vadot
290*2846c905SEmmanuel Vadot		cluster0_l2_cache: l2-cache0 {
291*2846c905SEmmanuel Vadot			compatible = "cache";
292*2846c905SEmmanuel Vadot			cache-block-size = <64>;
293*2846c905SEmmanuel Vadot			cache-level = <2>;
294*2846c905SEmmanuel Vadot			cache-size = <524288>;
295*2846c905SEmmanuel Vadot			cache-sets = <512>;
296*2846c905SEmmanuel Vadot			cache-unified;
297*2846c905SEmmanuel Vadot		};
298*2846c905SEmmanuel Vadot
299*2846c905SEmmanuel Vadot		cluster1_l2_cache: l2-cache1 {
300*2846c905SEmmanuel Vadot			compatible = "cache";
301*2846c905SEmmanuel Vadot			cache-block-size = <64>;
302*2846c905SEmmanuel Vadot			cache-level = <2>;
303*2846c905SEmmanuel Vadot			cache-size = <524288>;
304*2846c905SEmmanuel Vadot			cache-sets = <512>;
305*2846c905SEmmanuel Vadot			cache-unified;
306*2846c905SEmmanuel Vadot		};
307*2846c905SEmmanuel Vadot	};
308*2846c905SEmmanuel Vadot
309*2846c905SEmmanuel Vadot	soc {
310*2846c905SEmmanuel Vadot		compatible = "simple-bus";
311*2846c905SEmmanuel Vadot		interrupt-parent = <&plic>;
312*2846c905SEmmanuel Vadot		#address-cells = <2>;
313*2846c905SEmmanuel Vadot		#size-cells = <2>;
314*2846c905SEmmanuel Vadot		dma-noncoherent;
315*2846c905SEmmanuel Vadot		ranges;
316*2846c905SEmmanuel Vadot
317*2846c905SEmmanuel Vadot		uart0: serial@d4017000 {
318*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
319*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017000 0x0 0x100>;
320*2846c905SEmmanuel Vadot			interrupts = <42>;
321*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
322*2846c905SEmmanuel Vadot			reg-shift = <2>;
323*2846c905SEmmanuel Vadot			reg-io-width = <4>;
324*2846c905SEmmanuel Vadot			status = "disabled";
325*2846c905SEmmanuel Vadot		};
326*2846c905SEmmanuel Vadot
327*2846c905SEmmanuel Vadot		uart2: serial@d4017100 {
328*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
329*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017100 0x0 0x100>;
330*2846c905SEmmanuel Vadot			interrupts = <44>;
331*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
332*2846c905SEmmanuel Vadot			reg-shift = <2>;
333*2846c905SEmmanuel Vadot			reg-io-width = <4>;
334*2846c905SEmmanuel Vadot			status = "disabled";
335*2846c905SEmmanuel Vadot		};
336*2846c905SEmmanuel Vadot
337*2846c905SEmmanuel Vadot		uart3: serial@d4017200 {
338*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
339*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017200 0x0 0x100>;
340*2846c905SEmmanuel Vadot			interrupts = <45>;
341*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
342*2846c905SEmmanuel Vadot			reg-shift = <2>;
343*2846c905SEmmanuel Vadot			reg-io-width = <4>;
344*2846c905SEmmanuel Vadot			status = "disabled";
345*2846c905SEmmanuel Vadot		};
346*2846c905SEmmanuel Vadot
347*2846c905SEmmanuel Vadot		uart4: serial@d4017300 {
348*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
349*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017300 0x0 0x100>;
350*2846c905SEmmanuel Vadot			interrupts = <46>;
351*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
352*2846c905SEmmanuel Vadot			reg-shift = <2>;
353*2846c905SEmmanuel Vadot			reg-io-width = <4>;
354*2846c905SEmmanuel Vadot			status = "disabled";
355*2846c905SEmmanuel Vadot		};
356*2846c905SEmmanuel Vadot
357*2846c905SEmmanuel Vadot		uart5: serial@d4017400 {
358*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
359*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017400 0x0 0x100>;
360*2846c905SEmmanuel Vadot			interrupts = <47>;
361*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
362*2846c905SEmmanuel Vadot			reg-shift = <2>;
363*2846c905SEmmanuel Vadot			reg-io-width = <4>;
364*2846c905SEmmanuel Vadot			status = "disabled";
365*2846c905SEmmanuel Vadot		};
366*2846c905SEmmanuel Vadot
367*2846c905SEmmanuel Vadot		uart6: serial@d4017500 {
368*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
369*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017500 0x0 0x100>;
370*2846c905SEmmanuel Vadot			interrupts = <48>;
371*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
372*2846c905SEmmanuel Vadot			reg-shift = <2>;
373*2846c905SEmmanuel Vadot			reg-io-width = <4>;
374*2846c905SEmmanuel Vadot			status = "disabled";
375*2846c905SEmmanuel Vadot		};
376*2846c905SEmmanuel Vadot
377*2846c905SEmmanuel Vadot		uart7: serial@d4017600 {
378*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
379*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017600 0x0 0x100>;
380*2846c905SEmmanuel Vadot			interrupts = <49>;
381*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
382*2846c905SEmmanuel Vadot			reg-shift = <2>;
383*2846c905SEmmanuel Vadot			reg-io-width = <4>;
384*2846c905SEmmanuel Vadot			status = "disabled";
385*2846c905SEmmanuel Vadot		};
386*2846c905SEmmanuel Vadot
387*2846c905SEmmanuel Vadot		uart8: serial@d4017700 {
388*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
389*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017700 0x0 0x100>;
390*2846c905SEmmanuel Vadot			interrupts = <50>;
391*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
392*2846c905SEmmanuel Vadot			reg-shift = <2>;
393*2846c905SEmmanuel Vadot			reg-io-width = <4>;
394*2846c905SEmmanuel Vadot			status = "disabled";
395*2846c905SEmmanuel Vadot		};
396*2846c905SEmmanuel Vadot
397*2846c905SEmmanuel Vadot		uart9: serial@d4017800 {
398*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
399*2846c905SEmmanuel Vadot			reg = <0x0 0xd4017800 0x0 0x100>;
400*2846c905SEmmanuel Vadot			interrupts = <51>;
401*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
402*2846c905SEmmanuel Vadot			reg-shift = <2>;
403*2846c905SEmmanuel Vadot			reg-io-width = <4>;
404*2846c905SEmmanuel Vadot			status = "disabled";
405*2846c905SEmmanuel Vadot		};
406*2846c905SEmmanuel Vadot
407*2846c905SEmmanuel Vadot		pinctrl: pinctrl@d401e000 {
408*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-pinctrl";
409*2846c905SEmmanuel Vadot			reg = <0x0 0xd401e000 0x0 0x400>;
410*2846c905SEmmanuel Vadot		};
411*2846c905SEmmanuel Vadot
412*2846c905SEmmanuel Vadot		plic: interrupt-controller@e0000000 {
413*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-plic", "sifive,plic-1.0.0";
414*2846c905SEmmanuel Vadot			reg = <0x0 0xe0000000 0x0 0x4000000>;
415*2846c905SEmmanuel Vadot			interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>,
416*2846c905SEmmanuel Vadot					      <&cpu1_intc 11>, <&cpu1_intc 9>,
417*2846c905SEmmanuel Vadot					      <&cpu2_intc 11>, <&cpu2_intc 9>,
418*2846c905SEmmanuel Vadot					      <&cpu3_intc 11>, <&cpu3_intc 9>,
419*2846c905SEmmanuel Vadot					      <&cpu4_intc 11>, <&cpu4_intc 9>,
420*2846c905SEmmanuel Vadot					      <&cpu5_intc 11>, <&cpu5_intc 9>,
421*2846c905SEmmanuel Vadot					      <&cpu6_intc 11>, <&cpu6_intc 9>,
422*2846c905SEmmanuel Vadot					      <&cpu7_intc 11>, <&cpu7_intc 9>;
423*2846c905SEmmanuel Vadot			interrupt-controller;
424*2846c905SEmmanuel Vadot			#address-cells = <0>;
425*2846c905SEmmanuel Vadot			#interrupt-cells = <1>;
426*2846c905SEmmanuel Vadot			riscv,ndev = <159>;
427*2846c905SEmmanuel Vadot		};
428*2846c905SEmmanuel Vadot
429*2846c905SEmmanuel Vadot		clint: timer@e4000000 {
430*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-clint", "sifive,clint0";
431*2846c905SEmmanuel Vadot			reg = <0x0 0xe4000000 0x0 0x10000>;
432*2846c905SEmmanuel Vadot			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
433*2846c905SEmmanuel Vadot					      <&cpu1_intc 3>, <&cpu1_intc 7>,
434*2846c905SEmmanuel Vadot					      <&cpu2_intc 3>, <&cpu2_intc 7>,
435*2846c905SEmmanuel Vadot					      <&cpu3_intc 3>, <&cpu3_intc 7>,
436*2846c905SEmmanuel Vadot					      <&cpu4_intc 3>, <&cpu4_intc 7>,
437*2846c905SEmmanuel Vadot					      <&cpu5_intc 3>, <&cpu5_intc 7>,
438*2846c905SEmmanuel Vadot					      <&cpu6_intc 3>, <&cpu6_intc 7>,
439*2846c905SEmmanuel Vadot					      <&cpu7_intc 3>, <&cpu7_intc 7>;
440*2846c905SEmmanuel Vadot		};
441*2846c905SEmmanuel Vadot
442*2846c905SEmmanuel Vadot		sec_uart1: serial@f0612000 {
443*2846c905SEmmanuel Vadot			compatible = "spacemit,k1-uart", "intel,xscale-uart";
444*2846c905SEmmanuel Vadot			reg = <0x0 0xf0612000 0x0 0x100>;
445*2846c905SEmmanuel Vadot			interrupts = <43>;
446*2846c905SEmmanuel Vadot			clock-frequency = <14857000>;
447*2846c905SEmmanuel Vadot			reg-shift = <2>;
448*2846c905SEmmanuel Vadot			reg-io-width = <4>;
449*2846c905SEmmanuel Vadot			status = "reserved"; /* for TEE usage */
450*2846c905SEmmanuel Vadot		};
451*2846c905SEmmanuel Vadot	};
452*2846c905SEmmanuel Vadot};
453