1// SPDX-License-Identifier: GPL-2.0
2/ {
3	/*
4	 * Loongson-3 may have as many as 4 nodes, each node has 4 cores.
5	 * Each core has its own pcache and cores in the same node share scache.
6	 */
7	cpus {
8		#address-cells = <1>;
9		#size-cells = <0>;
10
11		cpu@0 {
12			compatible = "loongson,loongson3";
13			device_type = "cpu";
14			reg = <0x0>;
15			l2-cache = <&vcache0>;
16			next-level-cache = <&scache0>;
17		};
18
19		cpu@1 {
20			compatible = "loongson,loongson3";
21			device_type = "cpu";
22			reg = <0x1>;
23			l2-cache = <&vcache1>;
24			next-level-cache = <&scache0>;
25		};
26
27		cpu@2 {
28			compatible = "loongson,loongson3";
29			device_type = "cpu";
30			reg = <0x2>;
31			l2-cache = <&vcache2>;
32			next-level-cache = <&scache0>;
33		};
34
35		cpu@3 {
36			compatible = "loongson,loongson3";
37			device_type = "cpu";
38			reg = <0x3>;
39			l2-cache = <&vcache3>;
40			next-level-cache = <&scache0>;
41		};
42
43		cpu@4 {
44			compatible = "loongson,loongson3";
45			device_type = "cpu";
46			reg = <0x4>;
47			l2-cache = <&vcache4>;
48			next-level-cache = <&scache1>;
49		};
50
51		cpu@5 {
52			compatible = "loongson,loongson3";
53			device_type = "cpu";
54			reg = <0x5>;
55			l2-cache = <&vcache5>;
56			next-level-cache = <&scache1>;
57		};
58
59		cpu@6 {
60			compatible = "loongson,loongson3";
61			device_type = "cpu";
62			reg = <0x6>;
63			l2-cache = <&vcache6>;
64			next-level-cache = <&scache1>;
65		};
66
67		cpu@7 {
68			compatible = "loongson,loongson3";
69			device_type = "cpu";
70			reg = <0x7>;
71			l2-cache = <&vcache7>;
72			next-level-cache = <&scache1>;
73		};
74
75		cpu@8 {
76			compatible = "loongson,loongson3";
77			device_type = "cpu";
78			reg = <0x8>;
79			l2-cache = <&vcache8>;
80			next-level-cache = <&scache2>;
81		};
82
83		cpu@9 {
84			compatible = "loongson,loongson3";
85			device_type = "cpu";
86			reg = <0x9>;
87			l2-cache = <&vcache9>;
88			next-level-cache = <&scache2>;
89		};
90
91		cpu@a {
92			compatible = "loongson,loongson3";
93			device_type = "cpu";
94			reg = <0xa>;
95			l2-cache = <&vcachea>;
96			next-level-cache = <&scache2>;
97		};
98
99		cpu@b {
100			compatible = "loongson,loongson3";
101			device_type = "cpu";
102			reg = <0xb>;
103			l2-cache = <&vcacheb>;
104			next-level-cache = <&scache2>;
105		};
106
107		cpu@c {
108			compatible = "loongson,loongson3";
109			device_type = "cpu";
110			reg = <0xc>;
111			l2-cache = <&vcachec>;
112			next-level-cache = <&scache3>;
113		};
114
115		cpu@d {
116			compatible = "loongson,loongson3";
117			device_type = "cpu";
118			reg = <0xd>;
119			l2-cache = <&vcached>;
120			next-level-cache = <&scache3>;
121		};
122
123		cpu@e {
124			compatible = "loongson,loongson3";
125			device_type = "cpu";
126			reg = <0xe>;
127			l2-cache = <&vcachee>;
128			next-level-cache = <&scache3>;
129		};
130
131		cpu@f {
132			compatible = "loongson,loongson3";
133			device_type = "cpu";
134			reg = <0xf>;
135			l2-cache = <&vcachef>;
136			next-level-cache = <&scache3>;
137		};
138
139		vcache0: l2-cache0 {
140			compatible = "cache";
141			next-level-cache = <&scache0>;
142		};
143
144		vcache1: l2-cache1 {
145			compatible = "cache";
146			next-level-cache = <&scache0>;
147		};
148
149		vcache2: l2-cache2 {
150			compatible = "cache";
151			next-level-cache = <&scache0>;
152		};
153
154		vcache3: l2-cache3 {
155			compatible = "cache";
156			next-level-cache = <&scache0>;
157		};
158
159		vcache4: l2-cache4 {
160			compatible = "cache";
161			next-level-cache = <&scache1>;
162		};
163
164		vcache5: l2-cache5 {
165			compatible = "cache";
166			next-level-cache = <&scache1>;
167		};
168
169		vcache6: l2-cache6 {
170			compatible = "cahce";
171			next-level-cache = <&scache1>;
172		};
173
174		vcache7: l2-cache7 {
175			compatible = "cache";
176			next-level-cache = <&scache1>;
177		};
178
179		vcache8: l2-cache8 {
180			compatible = "cache";
181			next-level-cache = <&scache2>;
182		};
183
184		vcache9: l2-cache9 {
185			compatible = "cache";
186			next-level-cache = <&scache2>;
187		};
188
189		vcachea: l2-cachea {
190			compatible = "cache";
191			next-level-cache = <&scache2>;
192		};
193
194		vcacheb: l2-cacheb {
195			compatible = "cache";
196			next-level-cache = <&scache2>;
197		};
198
199		vcachec: l2-cachec {
200			compatible = "cache";
201			next-level-cache = <&scache3>;
202		};
203
204		vcached: l2-cached {
205			compatible = "cache";
206			next-level-cache = <&scache3>;
207		};
208
209		vcachee: l2-cachee {
210			compatible = "cache";
211			next-level-cache = <&scache3>;
212		};
213
214		vcachef: l2-cachef {
215			compatible = "cache";
216			next-level-cache = <&scache3>;
217		};
218
219		scache0: l3-cache0 {
220			compatible = "cache";
221		};
222
223		scache1: l3-cache1 {
224			compatible = "cache";
225		};
226
227		scache2: l3-cache2 {
228			compatible = "cache";
229		};
230
231		scache3: l3-cache3 {
232			compatible = "cache";
233		};
234	};
235};
236