xref: /aosp_15_r20/external/cpuinfo/test/arm-cache.cc (revision 2b54f0db79fd8303838913b20ff3780cddaa909f)
1*2b54f0dbSXin Li #include <gtest/gtest.h>
2*2b54f0dbSXin Li 
3*2b54f0dbSXin Li #include <cstdint>
4*2b54f0dbSXin Li 
5*2b54f0dbSXin Li #include <cpuinfo.h>
6*2b54f0dbSXin Li extern "C" {
7*2b54f0dbSXin Li 	#include <arm/api.h>
8*2b54f0dbSXin Li }
9*2b54f0dbSXin Li 
10*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_410_msm)11*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_410_msm) {
12*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
13*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
14*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
15*2b54f0dbSXin Li 		.model = 8916,
16*2b54f0dbSXin Li 	};
17*2b54f0dbSXin Li 
18*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
19*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
20*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
21*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
22*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
23*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD030),
24*2b54f0dbSXin Li 		&chipset, 0, 8,
25*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
26*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1i.size);
27*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
28*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, l2.size);
29*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
30*2b54f0dbSXin Li }
31*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_410_apq)32*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_410_apq) {
33*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
34*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
35*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_apq,
36*2b54f0dbSXin Li 		.model = 8016,
37*2b54f0dbSXin Li 	};
38*2b54f0dbSXin Li 
39*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
40*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
41*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
42*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
43*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
44*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD030),
45*2b54f0dbSXin Li 		&chipset, 0, 8,
46*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
47*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1i.size);
48*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
49*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, l2.size);
50*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
51*2b54f0dbSXin Li }
52*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_415)53*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_415) {
54*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
55*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
56*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
57*2b54f0dbSXin Li 		.model = 8929,
58*2b54f0dbSXin Li 	};
59*2b54f0dbSXin Li 
60*2b54f0dbSXin Li 	for (uint32_t cluster = 0; cluster < 2; cluster++) {
61*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
62*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
63*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
64*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
65*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
66*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD031),
67*2b54f0dbSXin Li 			&chipset, cluster, 8,
68*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
69*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
70*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
71*2b54f0dbSXin Li 		EXPECT_EQ(512 * 1024, l2.size);
72*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
73*2b54f0dbSXin Li 	}
74*2b54f0dbSXin Li }
75*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_425)76*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_425) {
77*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
78*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
79*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
80*2b54f0dbSXin Li 		.model = 8917,
81*2b54f0dbSXin Li 	};
82*2b54f0dbSXin Li 
83*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
84*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
85*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
86*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
87*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
88*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
89*2b54f0dbSXin Li 		&chipset, 0, 8,
90*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
91*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1i.size);
92*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
93*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, l2.size);
94*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
95*2b54f0dbSXin Li }
96*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_427)97*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_427) {
98*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
99*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
100*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
101*2b54f0dbSXin Li 		.model = 8920,
102*2b54f0dbSXin Li 	};
103*2b54f0dbSXin Li 
104*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
105*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
106*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
107*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
108*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
109*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
110*2b54f0dbSXin Li 		&chipset, 0, 8,
111*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
112*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1i.size);
113*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
114*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, l2.size);
115*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
116*2b54f0dbSXin Li }
117*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_430)118*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_430) {
119*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
120*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
121*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
122*2b54f0dbSXin Li 		.model = 8937,
123*2b54f0dbSXin Li 	};
124*2b54f0dbSXin Li 
125*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
126*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
127*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
128*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
129*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
130*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
131*2b54f0dbSXin Li 		&chipset, 0, 8,
132*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
133*2b54f0dbSXin Li 
134*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
135*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
136*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
137*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
138*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
139*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
140*2b54f0dbSXin Li 		&chipset, 1, 8,
141*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
142*2b54f0dbSXin Li 
143*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
144*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
145*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
146*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
147*2b54f0dbSXin Li 
148*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
149*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
150*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
151*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
152*2b54f0dbSXin Li }
153*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_435)154*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_435) {
155*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
156*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
157*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
158*2b54f0dbSXin Li 		.model = 8940,
159*2b54f0dbSXin Li 	};
160*2b54f0dbSXin Li 
161*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
162*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
163*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
164*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
165*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
166*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
167*2b54f0dbSXin Li 		&chipset, 0, 8,
168*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
169*2b54f0dbSXin Li 
170*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
171*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
172*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
173*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
174*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
175*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
176*2b54f0dbSXin Li 		&chipset, 1, 8,
177*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
178*2b54f0dbSXin Li 
179*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
180*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
181*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
182*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
183*2b54f0dbSXin Li 
184*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
185*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
186*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
187*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
188*2b54f0dbSXin Li }
189*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_450)190*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_450) {
191*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
192*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
193*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
194*2b54f0dbSXin Li 		.model = 450,
195*2b54f0dbSXin Li 	};
196*2b54f0dbSXin Li 
197*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
198*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
199*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
200*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
201*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
202*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
203*2b54f0dbSXin Li 		&chipset, 0, 8,
204*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
205*2b54f0dbSXin Li 
206*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
207*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
208*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
209*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
210*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
211*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
212*2b54f0dbSXin Li 		&chipset, 1, 8,
213*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
214*2b54f0dbSXin Li 
215*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
216*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
217*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
218*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
219*2b54f0dbSXin Li 
220*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
221*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
222*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
223*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
224*2b54f0dbSXin Li }
225*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_617)226*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_617) {
227*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
228*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
229*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
230*2b54f0dbSXin Li 		.model = 8952,
231*2b54f0dbSXin Li 	};
232*2b54f0dbSXin Li 
233*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
234*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
235*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
236*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
237*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
238*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
239*2b54f0dbSXin Li 		&chipset, 0, 8,
240*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
241*2b54f0dbSXin Li 
242*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
243*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
244*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
245*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
246*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
247*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
248*2b54f0dbSXin Li 		&chipset, 1, 8,
249*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
250*2b54f0dbSXin Li 
251*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
252*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
253*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
254*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
255*2b54f0dbSXin Li 
256*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
257*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
258*2b54f0dbSXin Li 	EXPECT_EQ(256 * 1024, little_l2.size);
259*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
260*2b54f0dbSXin Li }
261*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_625)262*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_625) {
263*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
264*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
265*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
266*2b54f0dbSXin Li 		.model = 8953,
267*2b54f0dbSXin Li 	};
268*2b54f0dbSXin Li 
269*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
270*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
271*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
272*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
273*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
274*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
275*2b54f0dbSXin Li 		&chipset, 0, 8,
276*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
277*2b54f0dbSXin Li 
278*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
279*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
280*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
281*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
282*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
283*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
284*2b54f0dbSXin Li 		&chipset, 1, 8,
285*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
286*2b54f0dbSXin Li 
287*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
288*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
289*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
290*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
291*2b54f0dbSXin Li 
292*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
293*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
294*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
295*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
296*2b54f0dbSXin Li }
297*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_626)298*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_626) {
299*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
300*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
301*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
302*2b54f0dbSXin Li 		.model = 8953,
303*2b54f0dbSXin Li 		.suffix = {
304*2b54f0dbSXin Li 			[0] = 'P',
305*2b54f0dbSXin Li 			[1] = 'R',
306*2b54f0dbSXin Li 			[2] = 'O',
307*2b54f0dbSXin Li 		},
308*2b54f0dbSXin Li 	};
309*2b54f0dbSXin Li 
310*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
311*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
312*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
313*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
314*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
315*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
316*2b54f0dbSXin Li 		&chipset, 0, 8,
317*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
318*2b54f0dbSXin Li 
319*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
320*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
321*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
322*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
323*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
324*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
325*2b54f0dbSXin Li 		&chipset, 1, 8,
326*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
327*2b54f0dbSXin Li 
328*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
329*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
330*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
331*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
332*2b54f0dbSXin Li 
333*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
334*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
335*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
336*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
337*2b54f0dbSXin Li }
338*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_630)339*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_630) {
340*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
341*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
342*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
343*2b54f0dbSXin Li 		.model = 630,
344*2b54f0dbSXin Li 	};
345*2b54f0dbSXin Li 
346*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
347*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
348*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
349*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
350*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
351*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
352*2b54f0dbSXin Li 		&chipset, 0, 8,
353*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
354*2b54f0dbSXin Li 
355*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
356*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
357*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
358*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
359*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
360*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
361*2b54f0dbSXin Li 		&chipset, 1, 8,
362*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
363*2b54f0dbSXin Li 
364*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
365*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
366*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
367*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
368*2b54f0dbSXin Li 
369*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
370*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
371*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
372*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
373*2b54f0dbSXin Li }
374*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_636)375*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_636) {
376*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
377*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
378*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
379*2b54f0dbSXin Li 		.model = 636,
380*2b54f0dbSXin Li 	};
381*2b54f0dbSXin Li 
382*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
383*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
384*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
385*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
386*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
387*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x51AF8002),
388*2b54f0dbSXin Li 		&chipset, 0, 8,
389*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
390*2b54f0dbSXin Li 
391*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
392*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
393*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
394*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
395*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
396*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
397*2b54f0dbSXin Li 		&chipset, 1, 8,
398*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
399*2b54f0dbSXin Li 
400*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
401*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
402*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
403*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
404*2b54f0dbSXin Li 
405*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
406*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
407*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, little_l2.size);
408*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
409*2b54f0dbSXin Li }
410*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_650)411*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_650) {
412*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
413*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
414*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
415*2b54f0dbSXin Li 		.model = 8956,
416*2b54f0dbSXin Li 	};
417*2b54f0dbSXin Li 
418*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
419*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
420*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
421*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
422*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
423*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 2, UINT32_C(0x410FD080),
424*2b54f0dbSXin Li 		&chipset, 0, 8,
425*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
426*2b54f0dbSXin Li 
427*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
428*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
429*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
430*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
431*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
432*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
433*2b54f0dbSXin Li 		&chipset, 1, 8,
434*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
435*2b54f0dbSXin Li 
436*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
437*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
438*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
439*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
440*2b54f0dbSXin Li 
441*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
442*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
443*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
444*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
445*2b54f0dbSXin Li }
446*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_652)447*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_652) {
448*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
449*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
450*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
451*2b54f0dbSXin Li 		.model = 8976,
452*2b54f0dbSXin Li 	};
453*2b54f0dbSXin Li 
454*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
455*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
456*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
457*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
458*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
459*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
460*2b54f0dbSXin Li 		&chipset, 0, 8,
461*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
462*2b54f0dbSXin Li 
463*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
464*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
465*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
466*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
467*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
468*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
469*2b54f0dbSXin Li 		&chipset, 1, 8,
470*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
471*2b54f0dbSXin Li 
472*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
473*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
474*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
475*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
476*2b54f0dbSXin Li 
477*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
478*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
479*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
480*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
481*2b54f0dbSXin Li }
482*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_653)483*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_653) {
484*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
485*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
486*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
487*2b54f0dbSXin Li 		.model = 8976,
488*2b54f0dbSXin Li 		.suffix = {
489*2b54f0dbSXin Li 			[0] = 'P',
490*2b54f0dbSXin Li 			[1] = 'R',
491*2b54f0dbSXin Li 			[2] = 'O',
492*2b54f0dbSXin Li 		},
493*2b54f0dbSXin Li 	};
494*2b54f0dbSXin Li 
495*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
496*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
497*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
498*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
499*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
500*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
501*2b54f0dbSXin Li 		&chipset, 0, 8,
502*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
503*2b54f0dbSXin Li 
504*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
505*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
506*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
507*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
508*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
509*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
510*2b54f0dbSXin Li 		&chipset, 1, 8,
511*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
512*2b54f0dbSXin Li 
513*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
514*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
515*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
516*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
517*2b54f0dbSXin Li 
518*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
519*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
520*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
521*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
522*2b54f0dbSXin Li }
523*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_660)524*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_660) {
525*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
526*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
527*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
528*2b54f0dbSXin Li 		.model = 660,
529*2b54f0dbSXin Li 	};
530*2b54f0dbSXin Li 
531*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
532*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
533*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
534*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
535*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
536*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x51AF8002),
537*2b54f0dbSXin Li 		&chipset, 0, 8,
538*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
539*2b54f0dbSXin Li 
540*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
541*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
542*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
543*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
544*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
545*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
546*2b54f0dbSXin Li 		&chipset, 1, 8,
547*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
548*2b54f0dbSXin Li 
549*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
550*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
551*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
552*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
553*2b54f0dbSXin Li 
554*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
555*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
556*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, little_l2.size);
557*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
558*2b54f0dbSXin Li }
559*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_808)560*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_808) {
561*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
562*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
563*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
564*2b54f0dbSXin Li 		.model = 8992,
565*2b54f0dbSXin Li 	};
566*2b54f0dbSXin Li 
567*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
568*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
569*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
570*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
571*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
572*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a57, 2, UINT32_C(0x410FD033),
573*2b54f0dbSXin Li 		&chipset, 0, 8,
574*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
575*2b54f0dbSXin Li 
576*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
577*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
578*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
579*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
580*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
581*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
582*2b54f0dbSXin Li 		&chipset, 1, 8,
583*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
584*2b54f0dbSXin Li 
585*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
586*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
587*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
588*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
589*2b54f0dbSXin Li 
590*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
591*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
592*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
593*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
594*2b54f0dbSXin Li }
595*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_810)596*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_810) {
597*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
598*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
599*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
600*2b54f0dbSXin Li 		.model = 8994,
601*2b54f0dbSXin Li 	};
602*2b54f0dbSXin Li 
603*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
604*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
605*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
606*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
607*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
608*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a57, 4, UINT32_C(0x410FD033),
609*2b54f0dbSXin Li 		&chipset, 0, 8,
610*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
611*2b54f0dbSXin Li 
612*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
613*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
614*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
615*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
616*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
617*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
618*2b54f0dbSXin Li 		&chipset, 1, 8,
619*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
620*2b54f0dbSXin Li 
621*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
622*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
623*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
624*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
625*2b54f0dbSXin Li 
626*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
627*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
628*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
629*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
630*2b54f0dbSXin Li }
631*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_820)632*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_820) {
633*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
634*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
635*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
636*2b54f0dbSXin Li 		.model = 8996,
637*2b54f0dbSXin Li 	};
638*2b54f0dbSXin Li 
639*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
640*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
641*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
642*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
643*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
644*2b54f0dbSXin Li 		cpuinfo_uarch_kryo, 4, UINT32_C(0x511F2052),
645*2b54f0dbSXin Li 		&chipset, 0, 8,
646*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
647*2b54f0dbSXin Li 
648*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
649*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
650*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
651*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
652*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
653*2b54f0dbSXin Li 		cpuinfo_uarch_kryo, 4, UINT32_C(0x511F2112),
654*2b54f0dbSXin Li 		&chipset, 1, 8,
655*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
656*2b54f0dbSXin Li 
657*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
658*2b54f0dbSXin Li 	EXPECT_EQ(24 * 1024, big_l1d.size);
659*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
660*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
661*2b54f0dbSXin Li 
662*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
663*2b54f0dbSXin Li 	EXPECT_EQ(24 * 1024, little_l1d.size);
664*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
665*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
666*2b54f0dbSXin Li }
667*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_821)668*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_821) {
669*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
670*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
671*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
672*2b54f0dbSXin Li 		.model = 8996,
673*2b54f0dbSXin Li 		.suffix = {
674*2b54f0dbSXin Li 			[0] = 'P',
675*2b54f0dbSXin Li 			[1] = 'R',
676*2b54f0dbSXin Li 			[2] = 'O',
677*2b54f0dbSXin Li 			[3] = '-',
678*2b54f0dbSXin Li 			[4] = 'A',
679*2b54f0dbSXin Li 			[5] = 'C',
680*2b54f0dbSXin Li 		},
681*2b54f0dbSXin Li 	};
682*2b54f0dbSXin Li 
683*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
684*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
685*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
686*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
687*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
688*2b54f0dbSXin Li 		cpuinfo_uarch_kryo, 4, UINT32_C(0x512F2051),
689*2b54f0dbSXin Li 		&chipset, 0, 8,
690*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
691*2b54f0dbSXin Li 
692*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
693*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
694*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
695*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
696*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
697*2b54f0dbSXin Li 		cpuinfo_uarch_kryo, 4, UINT32_C(0x512F2011),
698*2b54f0dbSXin Li 		&chipset, 1, 8,
699*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
700*2b54f0dbSXin Li 
701*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
702*2b54f0dbSXin Li 	EXPECT_EQ(24 * 1024, big_l1d.size);
703*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
704*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
705*2b54f0dbSXin Li 
706*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
707*2b54f0dbSXin Li 	EXPECT_EQ(24 * 1024, little_l1d.size);
708*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
709*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
710*2b54f0dbSXin Li }
711*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_835)712*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_835) {
713*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
714*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
715*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_msm,
716*2b54f0dbSXin Li 		.model = 8998,
717*2b54f0dbSXin Li 	};
718*2b54f0dbSXin Li 
719*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
720*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
721*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
722*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
723*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
724*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x51AF8001),
725*2b54f0dbSXin Li 		&chipset, 0, 8,
726*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
727*2b54f0dbSXin Li 
728*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
729*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
730*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
731*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
732*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
733*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
734*2b54f0dbSXin Li 		&chipset, 1, 8,
735*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
736*2b54f0dbSXin Li 
737*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
738*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
739*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
740*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
741*2b54f0dbSXin Li 
742*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
743*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
744*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, little_l2.size);
745*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
746*2b54f0dbSXin Li }
747*2b54f0dbSXin Li 
TEST(QUALCOMM,snapdragon_845)748*2b54f0dbSXin Li TEST(QUALCOMM, snapdragon_845) {
749*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
750*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
751*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
752*2b54f0dbSXin Li 		.model = 845,
753*2b54f0dbSXin Li 	};
754*2b54f0dbSXin Li 
755*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
756*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
757*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
758*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
759*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
760*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a75, 4, UINT32_C(0x518F802D),
761*2b54f0dbSXin Li 		&chipset, 0, 8,
762*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
763*2b54f0dbSXin Li 
764*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
765*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
766*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
767*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
768*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
769*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a55r0, 4, UINT32_C(0x518F803C),
770*2b54f0dbSXin Li 		&chipset, 1, 8,
771*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
772*2b54f0dbSXin Li 
773*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
774*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
775*2b54f0dbSXin Li 	EXPECT_EQ(256 * 1024, big_l2.size);
776*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l3.size);
777*2b54f0dbSXin Li 
778*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
779*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
780*2b54f0dbSXin Li 	EXPECT_EQ(128 * 1024, little_l2.size);
781*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, little_l3.size);
782*2b54f0dbSXin Li }
783*2b54f0dbSXin Li 
TEST(SAMSUNG,exynos_7885)784*2b54f0dbSXin Li TEST(SAMSUNG, exynos_7885) {
785*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
786*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_samsung,
787*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_samsung_exynos,
788*2b54f0dbSXin Li 		.model = 7885,
789*2b54f0dbSXin Li 	};
790*2b54f0dbSXin Li 
791*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
792*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
793*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
794*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
795*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
796*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a73, 2, UINT32_C(0x410FD092),
797*2b54f0dbSXin Li 		&chipset, 0, 8,
798*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
799*2b54f0dbSXin Li 
800*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
801*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
802*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
803*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
804*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
805*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 6, UINT32_C(0x410FD034),
806*2b54f0dbSXin Li 		&chipset, 1, 8,
807*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
808*2b54f0dbSXin Li 
809*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
810*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
811*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
812*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
813*2b54f0dbSXin Li 
814*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
815*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
816*2b54f0dbSXin Li 	EXPECT_EQ(256 * 1024, little_l2.size);
817*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
818*2b54f0dbSXin Li }
819*2b54f0dbSXin Li 
TEST(SAMSUNG,exynos_8890)820*2b54f0dbSXin Li TEST(SAMSUNG, exynos_8890) {
821*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
822*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_samsung,
823*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_samsung_exynos,
824*2b54f0dbSXin Li 		.model = 8890,
825*2b54f0dbSXin Li 	};
826*2b54f0dbSXin Li 
827*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
828*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
829*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
830*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
831*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
832*2b54f0dbSXin Li 		cpuinfo_uarch_exynos_m1, 4, UINT32_C(0x531F0011),
833*2b54f0dbSXin Li 		&chipset, 0, 8,
834*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
835*2b54f0dbSXin Li 
836*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
837*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
838*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
839*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
840*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
841*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
842*2b54f0dbSXin Li 		&chipset, 1, 8,
843*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
844*2b54f0dbSXin Li 
845*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
846*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
847*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
848*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
849*2b54f0dbSXin Li 
850*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
851*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
852*2b54f0dbSXin Li 	EXPECT_EQ(256 * 1024, little_l2.size);
853*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
854*2b54f0dbSXin Li }
855*2b54f0dbSXin Li 
TEST(SAMSUNG,exynos_8895)856*2b54f0dbSXin Li TEST(SAMSUNG, exynos_8895) {
857*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
858*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_samsung,
859*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_samsung_exynos,
860*2b54f0dbSXin Li 		.model = 8890,
861*2b54f0dbSXin Li 	};
862*2b54f0dbSXin Li 
863*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
864*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
865*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
866*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
867*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
868*2b54f0dbSXin Li 		cpuinfo_uarch_exynos_m2, 4, UINT32_C(0x534F0010),
869*2b54f0dbSXin Li 		&chipset, 0, 8,
870*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
871*2b54f0dbSXin Li 
872*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
873*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
874*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
875*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
876*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
877*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
878*2b54f0dbSXin Li 		&chipset, 1, 8,
879*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
880*2b54f0dbSXin Li 
881*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
882*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
883*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
884*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
885*2b54f0dbSXin Li 
886*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
887*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
888*2b54f0dbSXin Li 	EXPECT_EQ(256 * 1024, little_l2.size);
889*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
890*2b54f0dbSXin Li }
891*2b54f0dbSXin Li 
TEST(SAMSUNG,exynos_9810)892*2b54f0dbSXin Li TEST(SAMSUNG, exynos_9810) {
893*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
894*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_samsung,
895*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_samsung_exynos,
896*2b54f0dbSXin Li 		.model = 9810,
897*2b54f0dbSXin Li 	};
898*2b54f0dbSXin Li 
899*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
900*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
901*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
902*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
903*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
904*2b54f0dbSXin Li 		cpuinfo_uarch_exynos_m3, 4, UINT32_C(0x531F0020),
905*2b54f0dbSXin Li 		&chipset, 0, 8,
906*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
907*2b54f0dbSXin Li 
908*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
909*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
910*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
911*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
912*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
913*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a55r0, 4, UINT32_C(0x410FD051),
914*2b54f0dbSXin Li 		&chipset, 1, 8,
915*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
916*2b54f0dbSXin Li 
917*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
918*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
919*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
920*2b54f0dbSXin Li 	EXPECT_EQ(4 * 1024 * 1024, big_l3.size);
921*2b54f0dbSXin Li 
922*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
923*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
924*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
925*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
926*2b54f0dbSXin Li }
927*2b54f0dbSXin Li 
TEST(MEDIATEK,mediatek_mt8173)928*2b54f0dbSXin Li TEST(MEDIATEK, mediatek_mt8173) {
929*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
930*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_mediatek,
931*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_mediatek_mt,
932*2b54f0dbSXin Li 		.model = 8173,
933*2b54f0dbSXin Li 	};
934*2b54f0dbSXin Li 
935*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
936*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
937*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
938*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
939*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
940*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 2, UINT32_C(0x410FD080),
941*2b54f0dbSXin Li 		&chipset, 0, 4,
942*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
943*2b54f0dbSXin Li 
944*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
945*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
946*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
947*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
948*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
949*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 2, UINT32_C(0x410FD032),
950*2b54f0dbSXin Li 		&chipset, 1, 4,
951*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
952*2b54f0dbSXin Li 
953*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
954*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
955*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
956*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
957*2b54f0dbSXin Li 
958*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
959*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
960*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
961*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
962*2b54f0dbSXin Li }
963*2b54f0dbSXin Li 
TEST(MEDIATEK,mediatek_mt8173c)964*2b54f0dbSXin Li TEST(MEDIATEK, mediatek_mt8173c) {
965*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
966*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_mediatek,
967*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_mediatek_mt,
968*2b54f0dbSXin Li 		.model = 8173,
969*2b54f0dbSXin Li 		.suffix = {
970*2b54f0dbSXin Li 			[0] = 'C',
971*2b54f0dbSXin Li 		},
972*2b54f0dbSXin Li 	};
973*2b54f0dbSXin Li 
974*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
975*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
976*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
977*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
978*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
979*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 2, UINT32_C(0x410FD080),
980*2b54f0dbSXin Li 		&chipset, 0, 4,
981*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
982*2b54f0dbSXin Li 
983*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
984*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
985*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
986*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
987*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
988*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 2, UINT32_C(0x410FD032),
989*2b54f0dbSXin Li 		&chipset, 1, 4,
990*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
991*2b54f0dbSXin Li 
992*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
993*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
994*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, big_l2.size);
995*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
996*2b54f0dbSXin Li 
997*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
998*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
999*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
1000*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1001*2b54f0dbSXin Li }
1002*2b54f0dbSXin Li 
TEST(HISILICON,kirin_650)1003*2b54f0dbSXin Li TEST(HISILICON, kirin_650) {
1004*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1005*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1006*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1007*2b54f0dbSXin Li 		.model = 650,
1008*2b54f0dbSXin Li 	};
1009*2b54f0dbSXin Li 
1010*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1011*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1012*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1013*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1014*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1015*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1016*2b54f0dbSXin Li 		&chipset, 0, 8,
1017*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1018*2b54f0dbSXin Li 
1019*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1020*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1021*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1022*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1023*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1024*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1025*2b54f0dbSXin Li 		&chipset, 1, 8,
1026*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1027*2b54f0dbSXin Li 
1028*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
1029*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
1030*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
1031*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1032*2b54f0dbSXin Li 
1033*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1034*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1035*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
1036*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1037*2b54f0dbSXin Li }
1038*2b54f0dbSXin Li 
TEST(HISILICON,kirin_659)1039*2b54f0dbSXin Li TEST(HISILICON, kirin_659) {
1040*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1041*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1042*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1043*2b54f0dbSXin Li 		.model = 659,
1044*2b54f0dbSXin Li 	};
1045*2b54f0dbSXin Li 
1046*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1047*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1048*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1049*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1050*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1051*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1052*2b54f0dbSXin Li 		&chipset, 0, 8,
1053*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1054*2b54f0dbSXin Li 
1055*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1056*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1057*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1058*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1059*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1060*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1061*2b54f0dbSXin Li 		&chipset, 1, 8,
1062*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1063*2b54f0dbSXin Li 
1064*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
1065*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
1066*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
1067*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1068*2b54f0dbSXin Li 
1069*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1070*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1071*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
1072*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1073*2b54f0dbSXin Li }
1074*2b54f0dbSXin Li 
1075*2b54f0dbSXin Li #if CPUINFO_ARCH_ARM
TEST(HISILICON,kirin_920)1076*2b54f0dbSXin Li 	TEST(HISILICON, kirin_920) {
1077*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1078*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1079*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1080*2b54f0dbSXin Li 			.model = 920,
1081*2b54f0dbSXin Li 		};
1082*2b54f0dbSXin Li 
1083*2b54f0dbSXin Li 		struct cpuinfo_cache big_l1i = { 0 };
1084*2b54f0dbSXin Li 		struct cpuinfo_cache big_l1d = { 0 };
1085*2b54f0dbSXin Li 		struct cpuinfo_cache big_l2 = { 0 };
1086*2b54f0dbSXin Li 		struct cpuinfo_cache big_l3 = { 0 };
1087*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1088*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
1089*2b54f0dbSXin Li 			&chipset, 0, 8,
1090*2b54f0dbSXin Li 			&big_l1i, &big_l1d, &big_l2, &big_l3);
1091*2b54f0dbSXin Li 
1092*2b54f0dbSXin Li 		struct cpuinfo_cache little_l1i = { 0 };
1093*2b54f0dbSXin Li 		struct cpuinfo_cache little_l1d = { 0 };
1094*2b54f0dbSXin Li 		struct cpuinfo_cache little_l2 = { 0 };
1095*2b54f0dbSXin Li 		struct cpuinfo_cache little_l3 = { 0 };
1096*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1097*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
1098*2b54f0dbSXin Li 			&chipset, 1, 8,
1099*2b54f0dbSXin Li 			&little_l1i, &little_l1d, &little_l2, &little_l3);
1100*2b54f0dbSXin Li 
1101*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, big_l1i.size);
1102*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, big_l1d.size);
1103*2b54f0dbSXin Li 		EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1104*2b54f0dbSXin Li 		EXPECT_EQ(0, big_l3.size);
1105*2b54f0dbSXin Li 
1106*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, little_l1i.size); /* TODO: verify */
1107*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, little_l1d.size); /* TODO: verify */
1108*2b54f0dbSXin Li 		EXPECT_EQ(512 * 1024, little_l2.size);
1109*2b54f0dbSXin Li 		EXPECT_EQ(0, little_l3.size);
1110*2b54f0dbSXin Li 	}
1111*2b54f0dbSXin Li 
TEST(HISILICON,kirin_925)1112*2b54f0dbSXin Li 	TEST(HISILICON, kirin_925) {
1113*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1114*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1115*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1116*2b54f0dbSXin Li 			.model = 925,
1117*2b54f0dbSXin Li 		};
1118*2b54f0dbSXin Li 
1119*2b54f0dbSXin Li 		struct cpuinfo_cache big_l1i = { 0 };
1120*2b54f0dbSXin Li 		struct cpuinfo_cache big_l1d = { 0 };
1121*2b54f0dbSXin Li 		struct cpuinfo_cache big_l2 = { 0 };
1122*2b54f0dbSXin Li 		struct cpuinfo_cache big_l3 = { 0 };
1123*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1124*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
1125*2b54f0dbSXin Li 			&chipset, 0, 8,
1126*2b54f0dbSXin Li 			&big_l1i, &big_l1d, &big_l2, &big_l3);
1127*2b54f0dbSXin Li 
1128*2b54f0dbSXin Li 		struct cpuinfo_cache little_l1i = { 0 };
1129*2b54f0dbSXin Li 		struct cpuinfo_cache little_l1d = { 0 };
1130*2b54f0dbSXin Li 		struct cpuinfo_cache little_l2 = { 0 };
1131*2b54f0dbSXin Li 		struct cpuinfo_cache little_l3 = { 0 };
1132*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1133*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
1134*2b54f0dbSXin Li 			&chipset, 1, 8,
1135*2b54f0dbSXin Li 			&little_l1i, &little_l1d, &little_l2, &little_l3);
1136*2b54f0dbSXin Li 
1137*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, big_l1i.size);
1138*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, big_l1d.size);
1139*2b54f0dbSXin Li 		EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1140*2b54f0dbSXin Li 		EXPECT_EQ(0, big_l3.size);
1141*2b54f0dbSXin Li 
1142*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, little_l1i.size); /* TODO: verify */
1143*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, little_l1d.size); /* TODO: verify */
1144*2b54f0dbSXin Li 		EXPECT_EQ(512 * 1024, little_l2.size);
1145*2b54f0dbSXin Li 		EXPECT_EQ(0, little_l3.size);
1146*2b54f0dbSXin Li 	}
1147*2b54f0dbSXin Li 
TEST(HISILICON,kirin_928)1148*2b54f0dbSXin Li 	TEST(HISILICON, kirin_928) {
1149*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1150*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1151*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1152*2b54f0dbSXin Li 			.model = 928,
1153*2b54f0dbSXin Li 		};
1154*2b54f0dbSXin Li 
1155*2b54f0dbSXin Li 		struct cpuinfo_cache big_l1i = { 0 };
1156*2b54f0dbSXin Li 		struct cpuinfo_cache big_l1d = { 0 };
1157*2b54f0dbSXin Li 		struct cpuinfo_cache big_l2 = { 0 };
1158*2b54f0dbSXin Li 		struct cpuinfo_cache big_l3 = { 0 };
1159*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1160*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
1161*2b54f0dbSXin Li 			&chipset, 0, 8,
1162*2b54f0dbSXin Li 			&big_l1i, &big_l1d, &big_l2, &big_l3);
1163*2b54f0dbSXin Li 
1164*2b54f0dbSXin Li 		struct cpuinfo_cache little_l1i = { 0 };
1165*2b54f0dbSXin Li 		struct cpuinfo_cache little_l1d = { 0 };
1166*2b54f0dbSXin Li 		struct cpuinfo_cache little_l2 = { 0 };
1167*2b54f0dbSXin Li 		struct cpuinfo_cache little_l3 = { 0 };
1168*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1169*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
1170*2b54f0dbSXin Li 			&chipset, 1, 8,
1171*2b54f0dbSXin Li 			&little_l1i, &little_l1d, &little_l2, &little_l3);
1172*2b54f0dbSXin Li 
1173*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, big_l1i.size);
1174*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, big_l1d.size);
1175*2b54f0dbSXin Li 		EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1176*2b54f0dbSXin Li 		EXPECT_EQ(0, big_l3.size);
1177*2b54f0dbSXin Li 
1178*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, little_l1i.size); /* TODO: verify */
1179*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, little_l1d.size); /* TODO: verify */
1180*2b54f0dbSXin Li 		EXPECT_EQ(512 * 1024, little_l2.size);
1181*2b54f0dbSXin Li 		EXPECT_EQ(0, little_l3.size);
1182*2b54f0dbSXin Li 	}
1183*2b54f0dbSXin Li #endif /* CPUINFO_ARCH_ARM */
1184*2b54f0dbSXin Li 
TEST(HISILICON,kirin_950)1185*2b54f0dbSXin Li TEST(HISILICON, kirin_950) {
1186*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1187*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1188*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1189*2b54f0dbSXin Li 		.model = 950,
1190*2b54f0dbSXin Li 	};
1191*2b54f0dbSXin Li 
1192*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1193*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1194*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1195*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1196*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1197*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
1198*2b54f0dbSXin Li 		&chipset, 0, 8,
1199*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1200*2b54f0dbSXin Li 
1201*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1202*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1203*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1204*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1205*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1206*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1207*2b54f0dbSXin Li 		&chipset, 1, 8,
1208*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1209*2b54f0dbSXin Li 
1210*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
1211*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
1212*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1213*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1214*2b54f0dbSXin Li 
1215*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1216*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1217*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
1218*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1219*2b54f0dbSXin Li }
1220*2b54f0dbSXin Li 
TEST(HISILICON,kirin_955)1221*2b54f0dbSXin Li TEST(HISILICON, kirin_955) {
1222*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1223*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1224*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1225*2b54f0dbSXin Li 		.model = 955,
1226*2b54f0dbSXin Li 	};
1227*2b54f0dbSXin Li 
1228*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1229*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1230*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1231*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1232*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1233*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
1234*2b54f0dbSXin Li 		&chipset, 0, 8,
1235*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1236*2b54f0dbSXin Li 
1237*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1238*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1239*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1240*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1241*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1242*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1243*2b54f0dbSXin Li 		&chipset, 1, 8,
1244*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1245*2b54f0dbSXin Li 
1246*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, big_l1i.size);
1247*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
1248*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1249*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1250*2b54f0dbSXin Li 
1251*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1252*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1253*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
1254*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1255*2b54f0dbSXin Li }
1256*2b54f0dbSXin Li 
TEST(HISILICON,kirin_960)1257*2b54f0dbSXin Li TEST(HISILICON, kirin_960) {
1258*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1259*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1260*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1261*2b54f0dbSXin Li 		.model = 960,
1262*2b54f0dbSXin Li 	};
1263*2b54f0dbSXin Li 
1264*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1265*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1266*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1267*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1268*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1269*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x410FD091),
1270*2b54f0dbSXin Li 		&chipset, 0, 8,
1271*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1272*2b54f0dbSXin Li 
1273*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1274*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1275*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1276*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1277*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1278*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1279*2b54f0dbSXin Li 		&chipset, 1, 8,
1280*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1281*2b54f0dbSXin Li 
1282*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
1283*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
1284*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1285*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1286*2b54f0dbSXin Li 
1287*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1288*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1289*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, little_l2.size);
1290*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1291*2b54f0dbSXin Li }
1292*2b54f0dbSXin Li 
TEST(HISILICON,kirin_970)1293*2b54f0dbSXin Li TEST(HISILICON, kirin_970) {
1294*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1295*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1296*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1297*2b54f0dbSXin Li 		.model = 970,
1298*2b54f0dbSXin Li 	};
1299*2b54f0dbSXin Li 
1300*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1301*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1302*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1303*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1304*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1305*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x410FD092),
1306*2b54f0dbSXin Li 		&chipset, 0, 8,
1307*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1308*2b54f0dbSXin Li 
1309*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1310*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1311*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1312*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1313*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1314*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1315*2b54f0dbSXin Li 		&chipset, 1, 8,
1316*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1317*2b54f0dbSXin Li 
1318*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
1319*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
1320*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
1321*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1322*2b54f0dbSXin Li 
1323*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1324*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1325*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, little_l2.size);
1326*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1327*2b54f0dbSXin Li }
1328*2b54f0dbSXin Li 
TEST(HISILICON,kirin_980)1329*2b54f0dbSXin Li TEST(HISILICON, kirin_980) {
1330*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1331*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
1332*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
1333*2b54f0dbSXin Li 		.model = 980,
1334*2b54f0dbSXin Li 	};
1335*2b54f0dbSXin Li 
1336*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1337*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1338*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1339*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1340*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1341*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a76, 2, UINT32_C(0x481FD400),
1342*2b54f0dbSXin Li 		&chipset, 0, 2,
1343*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1344*2b54f0dbSXin Li 
1345*2b54f0dbSXin Li 	struct cpuinfo_cache middle_l1i = { 0 };
1346*2b54f0dbSXin Li 	struct cpuinfo_cache middle_l1d = { 0 };
1347*2b54f0dbSXin Li 	struct cpuinfo_cache middle_l2 = { 0 };
1348*2b54f0dbSXin Li 	struct cpuinfo_cache middle_l3 = { 0 };
1349*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1350*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a76, 2, UINT32_C(0x481FD400),
1351*2b54f0dbSXin Li 		&chipset, 1, 2,
1352*2b54f0dbSXin Li 		&middle_l1i, &middle_l1d, &middle_l2, &middle_l3);
1353*2b54f0dbSXin Li 
1354*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1355*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1356*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1357*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1358*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1359*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a55, 4, UINT32_C(0x411FD050),
1360*2b54f0dbSXin Li 		&chipset, 2, 4,
1361*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1362*2b54f0dbSXin Li 
1363*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1i.size);
1364*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, big_l1d.size);
1365*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
1366*2b54f0dbSXin Li 	EXPECT_EQ(4 * 1024 * 1024, big_l3.size);
1367*2b54f0dbSXin Li 
1368*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, middle_l1i.size);
1369*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, middle_l1d.size);
1370*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, middle_l2.size);
1371*2b54f0dbSXin Li 	EXPECT_EQ(4 * 1024 * 1024, middle_l3.size);
1372*2b54f0dbSXin Li 
1373*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1374*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1375*2b54f0dbSXin Li 	EXPECT_EQ(128 * 1024, little_l2.size);
1376*2b54f0dbSXin Li 	EXPECT_EQ(4 * 1024 * 1024, little_l3.size);
1377*2b54f0dbSXin Li }
1378*2b54f0dbSXin Li 
1379*2b54f0dbSXin Li #if CPUINFO_ARCH_ARM
TEST(NVIDIA,tegra_ap20h)1380*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_ap20h) {
1381*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1382*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1383*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_ap,
1384*2b54f0dbSXin Li 			.model = 20,
1385*2b54f0dbSXin Li 			.suffix = {
1386*2b54f0dbSXin Li 				[0] = 'H',
1387*2b54f0dbSXin Li 			},
1388*2b54f0dbSXin Li 		};
1389*2b54f0dbSXin Li 
1390*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1391*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1392*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1393*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1394*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1395*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 2, UINT32_C(0x411FC090),
1396*2b54f0dbSXin Li 			&chipset, 0, 7,
1397*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1398*2b54f0dbSXin Li 
1399*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1400*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1401*2b54f0dbSXin Li 		EXPECT_EQ(1024 * 1024, l2.size);
1402*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1403*2b54f0dbSXin Li 	}
1404*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t20)1405*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_t20) {
1406*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1407*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1408*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1409*2b54f0dbSXin Li 			.model = 20,
1410*2b54f0dbSXin Li 		};
1411*2b54f0dbSXin Li 
1412*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1413*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1414*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1415*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1416*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1417*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 2, UINT32_C(0x411FC090),
1418*2b54f0dbSXin Li 			&chipset, 0, 7,
1419*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1420*2b54f0dbSXin Li 
1421*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1422*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1423*2b54f0dbSXin Li 		EXPECT_EQ(1024 * 1024, l2.size);
1424*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1425*2b54f0dbSXin Li 	}
1426*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t30l)1427*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_t30l) {
1428*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1429*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1430*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1431*2b54f0dbSXin Li 			.model = 30,
1432*2b54f0dbSXin Li 			.suffix = {
1433*2b54f0dbSXin Li 				[0] = 'L',
1434*2b54f0dbSXin Li 			},
1435*2b54f0dbSXin Li 		};
1436*2b54f0dbSXin Li 
1437*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1438*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1439*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1440*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1441*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1442*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
1443*2b54f0dbSXin Li 			&chipset, 0, 7,
1444*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1445*2b54f0dbSXin Li 
1446*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1447*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1448*2b54f0dbSXin Li 		EXPECT_EQ(1024 * 1024, l2.size);
1449*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1450*2b54f0dbSXin Li 	}
1451*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t30)1452*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_t30) {
1453*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1454*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1455*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1456*2b54f0dbSXin Li 			.model = 30,
1457*2b54f0dbSXin Li 		};
1458*2b54f0dbSXin Li 
1459*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1460*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1461*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1462*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1463*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1464*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
1465*2b54f0dbSXin Li 			&chipset, 0, 7,
1466*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1467*2b54f0dbSXin Li 
1468*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1469*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1470*2b54f0dbSXin Li 		EXPECT_EQ(1024 * 1024, l2.size);
1471*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1472*2b54f0dbSXin Li 	}
1473*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t33)1474*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_t33) {
1475*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1476*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1477*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1478*2b54f0dbSXin Li 			.model = 33,
1479*2b54f0dbSXin Li 		};
1480*2b54f0dbSXin Li 
1481*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1482*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1483*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1484*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1485*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1486*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
1487*2b54f0dbSXin Li 			&chipset, 0, 7,
1488*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1489*2b54f0dbSXin Li 
1490*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1491*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1492*2b54f0dbSXin Li 		EXPECT_EQ(1024 * 1024, l2.size);
1493*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1494*2b54f0dbSXin Li 	}
1495*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_ap33)1496*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_ap33) {
1497*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1498*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1499*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_ap,
1500*2b54f0dbSXin Li 			.model = 33,
1501*2b54f0dbSXin Li 		};
1502*2b54f0dbSXin Li 
1503*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1504*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1505*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1506*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1507*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1508*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
1509*2b54f0dbSXin Li 			&chipset, 0, 7,
1510*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1511*2b54f0dbSXin Li 
1512*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1513*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1514*2b54f0dbSXin Li 		EXPECT_EQ(1024 * 1024, l2.size);
1515*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1516*2b54f0dbSXin Li 	}
1517*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t114)1518*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_t114) {
1519*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1520*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1521*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1522*2b54f0dbSXin Li 			.model = 114,
1523*2b54f0dbSXin Li 		};
1524*2b54f0dbSXin Li 
1525*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1526*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1527*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1528*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1529*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1530*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x412FC0F2),
1531*2b54f0dbSXin Li 			&chipset, 0, 7,
1532*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1533*2b54f0dbSXin Li 
1534*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1535*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1536*2b54f0dbSXin Li 		EXPECT_EQ(2 * 1024 * 1024, l2.size);
1537*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1538*2b54f0dbSXin Li 	}
1539*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_sl460n)1540*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_sl460n) {
1541*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1542*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1543*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_sl,
1544*2b54f0dbSXin Li 			.model = 460,
1545*2b54f0dbSXin Li 			.suffix = {
1546*2b54f0dbSXin Li 				[0] = 'N',
1547*2b54f0dbSXin Li 			},
1548*2b54f0dbSXin Li 		};
1549*2b54f0dbSXin Li 
1550*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1551*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1552*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1553*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1554*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1555*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x414FC091),
1556*2b54f0dbSXin Li 			&chipset, 0, 7,
1557*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1558*2b54f0dbSXin Li 
1559*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1560*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1561*2b54f0dbSXin Li 		EXPECT_EQ(1 * 1024 * 1024, l2.size);
1562*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1563*2b54f0dbSXin Li 	}
1564*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t124)1565*2b54f0dbSXin Li 	TEST(NVIDIA, tegra_t124) {
1566*2b54f0dbSXin Li 		const struct cpuinfo_arm_chipset chipset = {
1567*2b54f0dbSXin Li 			.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1568*2b54f0dbSXin Li 			.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1569*2b54f0dbSXin Li 			.model = 124,
1570*2b54f0dbSXin Li 		};
1571*2b54f0dbSXin Li 
1572*2b54f0dbSXin Li 		struct cpuinfo_cache l1i = { 0 };
1573*2b54f0dbSXin Li 		struct cpuinfo_cache l1d = { 0 };
1574*2b54f0dbSXin Li 		struct cpuinfo_cache l2 = { 0 };
1575*2b54f0dbSXin Li 		struct cpuinfo_cache l3 = { 0 };
1576*2b54f0dbSXin Li 		cpuinfo_arm_decode_cache(
1577*2b54f0dbSXin Li 			cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
1578*2b54f0dbSXin Li 			&chipset, 0, 7,
1579*2b54f0dbSXin Li 			&l1i, &l1d, &l2, &l3);
1580*2b54f0dbSXin Li 
1581*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1i.size);
1582*2b54f0dbSXin Li 		EXPECT_EQ(32 * 1024, l1d.size);
1583*2b54f0dbSXin Li 		EXPECT_EQ(2 * 1024 * 1024, l2.size);
1584*2b54f0dbSXin Li 		EXPECT_EQ(0, l3.size);
1585*2b54f0dbSXin Li 	}
1586*2b54f0dbSXin Li #endif /* CPUINFO_ARCH_ARM */
1587*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t132)1588*2b54f0dbSXin Li TEST(NVIDIA, tegra_t132) {
1589*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1590*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1591*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1592*2b54f0dbSXin Li 		.model = 132,
1593*2b54f0dbSXin Li 	};
1594*2b54f0dbSXin Li 
1595*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
1596*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
1597*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
1598*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
1599*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1600*2b54f0dbSXin Li 		cpuinfo_uarch_denver, 2, UINT32_C(0x4E0F0000),
1601*2b54f0dbSXin Li 		&chipset, 0, 8,
1602*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
1603*2b54f0dbSXin Li 
1604*2b54f0dbSXin Li 	EXPECT_EQ(128 * 1024, l1i.size);
1605*2b54f0dbSXin Li 	EXPECT_EQ(64 * 1024, l1d.size);
1606*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, l2.size);
1607*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
1608*2b54f0dbSXin Li }
1609*2b54f0dbSXin Li 
TEST(NVIDIA,tegra_t210)1610*2b54f0dbSXin Li TEST(NVIDIA, tegra_t210) {
1611*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1612*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_nvidia,
1613*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
1614*2b54f0dbSXin Li 		.model = 210,
1615*2b54f0dbSXin Li 	};
1616*2b54f0dbSXin Li 
1617*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
1618*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
1619*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
1620*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
1621*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1622*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a57, 4, UINT32_C(0x411FD071),
1623*2b54f0dbSXin Li 		&chipset, 0, 8,
1624*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
1625*2b54f0dbSXin Li 
1626*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, l1i.size);
1627*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
1628*2b54f0dbSXin Li 	EXPECT_EQ(2 * 1024 * 1024, l2.size);
1629*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
1630*2b54f0dbSXin Li }
1631*2b54f0dbSXin Li 
TEST(ROCKCHIP,rk3368)1632*2b54f0dbSXin Li TEST(ROCKCHIP, rk3368) {
1633*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1634*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_rockchip,
1635*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_rockchip_rk,
1636*2b54f0dbSXin Li 		.model = 3368,
1637*2b54f0dbSXin Li 	};
1638*2b54f0dbSXin Li 
1639*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1i = { 0 };
1640*2b54f0dbSXin Li 	struct cpuinfo_cache big_l1d = { 0 };
1641*2b54f0dbSXin Li 	struct cpuinfo_cache big_l2 = { 0 };
1642*2b54f0dbSXin Li 	struct cpuinfo_cache big_l3 = { 0 };
1643*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1644*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
1645*2b54f0dbSXin Li 		&chipset, 0, 8,
1646*2b54f0dbSXin Li 		&big_l1i, &big_l1d, &big_l2, &big_l3);
1647*2b54f0dbSXin Li 
1648*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1i = { 0 };
1649*2b54f0dbSXin Li 	struct cpuinfo_cache little_l1d = { 0 };
1650*2b54f0dbSXin Li 	struct cpuinfo_cache little_l2 = { 0 };
1651*2b54f0dbSXin Li 	struct cpuinfo_cache little_l3 = { 0 };
1652*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1653*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
1654*2b54f0dbSXin Li 		&chipset, 1, 8,
1655*2b54f0dbSXin Li 		&little_l1i, &little_l1d, &little_l2, &little_l3);
1656*2b54f0dbSXin Li 
1657*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1i.size);
1658*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, big_l1d.size);
1659*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, big_l2.size);
1660*2b54f0dbSXin Li 	EXPECT_EQ(0, big_l3.size);
1661*2b54f0dbSXin Li 
1662*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1i.size);
1663*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, little_l1d.size);
1664*2b54f0dbSXin Li 	EXPECT_EQ(256 * 1024, little_l2.size);
1665*2b54f0dbSXin Li 	EXPECT_EQ(0, little_l3.size);
1666*2b54f0dbSXin Li }
1667*2b54f0dbSXin Li 
TEST(BROADCOM,bcm2835)1668*2b54f0dbSXin Li TEST(BROADCOM, bcm2835) {
1669*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1670*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_broadcom,
1671*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_broadcom_bcm,
1672*2b54f0dbSXin Li 		.model = 2835,
1673*2b54f0dbSXin Li 	};
1674*2b54f0dbSXin Li 
1675*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
1676*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
1677*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
1678*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
1679*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1680*2b54f0dbSXin Li 		cpuinfo_uarch_arm11, 4, UINT32_C(0x410FB767),
1681*2b54f0dbSXin Li 		&chipset, 0, 4,
1682*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
1683*2b54f0dbSXin Li 
1684*2b54f0dbSXin Li 	EXPECT_EQ(16 * 1024, l1i.size);
1685*2b54f0dbSXin Li 	EXPECT_EQ(16 * 1024, l1d.size);
1686*2b54f0dbSXin Li 	EXPECT_EQ(0, l2.size);
1687*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
1688*2b54f0dbSXin Li }
1689*2b54f0dbSXin Li 
TEST(BROADCOM,bcm2836)1690*2b54f0dbSXin Li TEST(BROADCOM, bcm2836) {
1691*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1692*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_broadcom,
1693*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_broadcom_bcm,
1694*2b54f0dbSXin Li 		.model = 2836,
1695*2b54f0dbSXin Li 	};
1696*2b54f0dbSXin Li 
1697*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
1698*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
1699*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
1700*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
1701*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1702*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
1703*2b54f0dbSXin Li 		&chipset, 0, 4,
1704*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
1705*2b54f0dbSXin Li 
1706*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1i.size);
1707*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
1708*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, l2.size);
1709*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
1710*2b54f0dbSXin Li }
1711*2b54f0dbSXin Li 
TEST(BROADCOM,bcm2837)1712*2b54f0dbSXin Li TEST(BROADCOM, bcm2837) {
1713*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1714*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_broadcom,
1715*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_broadcom_bcm,
1716*2b54f0dbSXin Li 		.model = 2837,
1717*2b54f0dbSXin Li 	};
1718*2b54f0dbSXin Li 
1719*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
1720*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
1721*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
1722*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
1723*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1724*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
1725*2b54f0dbSXin Li 		&chipset, 0, 4,
1726*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
1727*2b54f0dbSXin Li 
1728*2b54f0dbSXin Li 	EXPECT_EQ(16 * 1024, l1i.size);
1729*2b54f0dbSXin Li 	EXPECT_EQ(16 * 1024, l1d.size);
1730*2b54f0dbSXin Li 	EXPECT_EQ(512 * 1024, l2.size);
1731*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
1732*2b54f0dbSXin Li }
1733*2b54f0dbSXin Li 
TEST(BROADCOM,bcm2711)1734*2b54f0dbSXin Li TEST(BROADCOM, bcm2711) {
1735*2b54f0dbSXin Li 	const struct cpuinfo_arm_chipset chipset = {
1736*2b54f0dbSXin Li 		.vendor = cpuinfo_arm_chipset_vendor_broadcom,
1737*2b54f0dbSXin Li 		.series = cpuinfo_arm_chipset_series_broadcom_bcm,
1738*2b54f0dbSXin Li 		.model = 2711,
1739*2b54f0dbSXin Li 	};
1740*2b54f0dbSXin Li 
1741*2b54f0dbSXin Li 	struct cpuinfo_cache l1i = { 0 };
1742*2b54f0dbSXin Li 	struct cpuinfo_cache l1d = { 0 };
1743*2b54f0dbSXin Li 	struct cpuinfo_cache l2 = { 0 };
1744*2b54f0dbSXin Li 	struct cpuinfo_cache l3 = { 0 };
1745*2b54f0dbSXin Li 	cpuinfo_arm_decode_cache(
1746*2b54f0dbSXin Li 		cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD083),
1747*2b54f0dbSXin Li 		&chipset, 0, 4,
1748*2b54f0dbSXin Li 		&l1i, &l1d, &l2, &l3);
1749*2b54f0dbSXin Li 
1750*2b54f0dbSXin Li 	EXPECT_EQ(48 * 1024, l1i.size);
1751*2b54f0dbSXin Li 	EXPECT_EQ(32 * 1024, l1d.size);
1752*2b54f0dbSXin Li 	EXPECT_EQ(1024 * 1024, l2.size);
1753*2b54f0dbSXin Li 	EXPECT_EQ(0, l3.size);
1754*2b54f0dbSXin Li }
1755