xref: /aosp_15_r20/external/cpuinfo/test/name/ro-chipname.cc (revision 2b54f0db79fd8303838913b20ff3780cddaa909f)
1*2b54f0dbSXin Li #include <gtest/gtest.h>
2*2b54f0dbSXin Li 
3*2b54f0dbSXin Li #include <stdint.h>
4*2b54f0dbSXin Li #include <string.h>
5*2b54f0dbSXin Li 
6*2b54f0dbSXin Li #include <string>
7*2b54f0dbSXin Li 
8*2b54f0dbSXin Li #define CPUINFO_BUILD_PROP_VALUE_MAX 92
9*2b54f0dbSXin Li #define CPUINFO_ARM_CHIPSET_NAME_MAX 48
10*2b54f0dbSXin Li 
11*2b54f0dbSXin Li extern "C" void cpuinfo_arm_android_parse_ro_chipname(
12*2b54f0dbSXin Li 	const char chipname[CPUINFO_BUILD_PROP_VALUE_MAX],
13*2b54f0dbSXin Li 	uint32_t cores,
14*2b54f0dbSXin Li 	uint32_t max_cpu_freq_max,
15*2b54f0dbSXin Li 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]);
16*2b54f0dbSXin Li 
parse_ro_chipname(std::string chipname,uint32_t cores=1,uint32_t max_cpu_freq_max=0)17*2b54f0dbSXin Li inline std::string parse_ro_chipname(
18*2b54f0dbSXin Li 	std::string chipname, uint32_t cores=1, uint32_t max_cpu_freq_max=0)
19*2b54f0dbSXin Li {
20*2b54f0dbSXin Li 	char chipname_buffer[CPUINFO_BUILD_PROP_VALUE_MAX];
21*2b54f0dbSXin Li 	strncpy(chipname_buffer, chipname.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX);
22*2b54f0dbSXin Li 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
23*2b54f0dbSXin Li 	cpuinfo_arm_android_parse_ro_chipname(
24*2b54f0dbSXin Li 		chipname_buffer, cores, max_cpu_freq_max, chipset_name);
25*2b54f0dbSXin Li 	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
26*2b54f0dbSXin Li }
27*2b54f0dbSXin Li 
TEST(RO_CHIPNAME,qualcomm_msm)28*2b54f0dbSXin Li TEST(RO_CHIPNAME, qualcomm_msm) {
29*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM7630",
30*2b54f0dbSXin Li 		parse_ro_chipname("MSM7630_SURF"));
31*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8210",
32*2b54f0dbSXin Li 		parse_ro_chipname("MSM8210"));
33*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8226",
34*2b54f0dbSXin Li 		parse_ro_chipname("MSM8226"));
35*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8228",
36*2b54f0dbSXin Li 		parse_ro_chipname("MSM8228"));
37*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8230AB",
38*2b54f0dbSXin Li 		parse_ro_chipname("MSM8230AB"));
39*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8230VV",
40*2b54f0dbSXin Li 		parse_ro_chipname("MSM8230VV"));
41*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8239",
42*2b54f0dbSXin Li 		parse_ro_chipname("MSM8239"));
43*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8260A",
44*2b54f0dbSXin Li 		parse_ro_chipname("MSM8260A"));
45*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8274",
46*2b54f0dbSXin Li 		parse_ro_chipname("MSM8274"));
47*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8610",
48*2b54f0dbSXin Li 		parse_ro_chipname("MSM8610", 2));
49*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8626",
50*2b54f0dbSXin Li 		parse_ro_chipname("MSM8626"));
51*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8660",
52*2b54f0dbSXin Li 		parse_ro_chipname("MSM8660_SURF"));
53*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8674",
54*2b54f0dbSXin Li 		parse_ro_chipname("MSM8674"));
55*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8674PRO",
56*2b54f0dbSXin Li 		parse_ro_chipname("MSM8674PRO"));
57*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8916",
58*2b54f0dbSXin Li 		parse_ro_chipname("MSM8216"));
59*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8916",
60*2b54f0dbSXin Li 		parse_ro_chipname("MSM8916", 4));
61*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8916",
62*2b54f0dbSXin Li 		parse_ro_chipname("msm8916", 4));
63*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8917",
64*2b54f0dbSXin Li 		parse_ro_chipname("MSM8937", 4));
65*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8926",
66*2b54f0dbSXin Li 		parse_ro_chipname("MSM8926"));
67*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8928",
68*2b54f0dbSXin Li 		parse_ro_chipname("MSM8928"));
69*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8929",
70*2b54f0dbSXin Li 		parse_ro_chipname("MSM8929"));
71*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8930",
72*2b54f0dbSXin Li 		parse_ro_chipname("MSM8930"));
73*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8930AB",
74*2b54f0dbSXin Li 		parse_ro_chipname("MSM8930AB"));
75*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8930VV",
76*2b54f0dbSXin Li 		parse_ro_chipname("MSM8930VV"));
77*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8939",
78*2b54f0dbSXin Li 		parse_ro_chipname("MSM8939"));
79*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8952",
80*2b54f0dbSXin Li 		parse_ro_chipname("MSM8952"));
81*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8953",
82*2b54f0dbSXin Li 		parse_ro_chipname("MSM8953"));
83*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8960",
84*2b54f0dbSXin Li 		parse_ro_chipname("MSM8960", 2));
85*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8974",
86*2b54f0dbSXin Li 		parse_ro_chipname("MSM8974"));
87*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8974PRO",
88*2b54f0dbSXin Li 		parse_ro_chipname("MSM8974PRO"));
89*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8976",
90*2b54f0dbSXin Li 		parse_ro_chipname("MSM8976"));
91*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8996",
92*2b54f0dbSXin Li 		parse_ro_chipname("MSM8996", 4));
93*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm MSM8998",
94*2b54f0dbSXin Li 		parse_ro_chipname("MSM8998"));
95*2b54f0dbSXin Li }
96*2b54f0dbSXin Li 
TEST(RO_CHIPNAME,qualcomm_apq)97*2b54f0dbSXin Li TEST(RO_CHIPNAME, qualcomm_apq) {
98*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm APQ8016",
99*2b54f0dbSXin Li 		parse_ro_chipname("APQ8016"));
100*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm APQ8026",
101*2b54f0dbSXin Li 		parse_ro_chipname("APQ8026"));
102*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm APQ8064",
103*2b54f0dbSXin Li 		parse_ro_chipname("apq8064"));
104*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm APQ8074",
105*2b54f0dbSXin Li 		parse_ro_chipname("APQ8074"));
106*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm APQ8076",
107*2b54f0dbSXin Li 		parse_ro_chipname("APQ8076"));
108*2b54f0dbSXin Li 	EXPECT_EQ("Qualcomm APQ8084",
109*2b54f0dbSXin Li 		parse_ro_chipname("APQ8084"));
110*2b54f0dbSXin Li }
111*2b54f0dbSXin Li 
TEST(RO_CHIPNAME,mediatek_mt)112*2b54f0dbSXin Li TEST(RO_CHIPNAME, mediatek_mt) {
113*2b54f0dbSXin Li 	EXPECT_EQ("MediaTek MT6737T",
114*2b54f0dbSXin Li 		parse_ro_chipname("MT6737T"));
115*2b54f0dbSXin Li 	EXPECT_EQ("MediaTek MT6757",
116*2b54f0dbSXin Li 		parse_ro_chipname("MT6757"));
117*2b54f0dbSXin Li }
118*2b54f0dbSXin Li 
TEST(RO_CHIPNAME,samsung_exynos)119*2b54f0dbSXin Li TEST(RO_CHIPNAME, samsung_exynos) {
120*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 3470",
121*2b54f0dbSXin Li 		parse_ro_chipname("exynos3470"));
122*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 3475",
123*2b54f0dbSXin Li 		parse_ro_chipname("exynos3475"));
124*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 4415",
125*2b54f0dbSXin Li 		parse_ro_chipname("exynos4415"));
126*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 5260",
127*2b54f0dbSXin Li 		parse_ro_chipname("exynos5260"));
128*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 5410",
129*2b54f0dbSXin Li 		parse_ro_chipname("exynos5410"));
130*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 5420",
131*2b54f0dbSXin Li 		parse_ro_chipname("exynos5420", 4));
132*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 5422",
133*2b54f0dbSXin Li 		parse_ro_chipname("exynos5422"));
134*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 5430",
135*2b54f0dbSXin Li 		parse_ro_chipname("exynos5430"));
136*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 5433",
137*2b54f0dbSXin Li 		parse_ro_chipname("exynos5433"));
138*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 7420",
139*2b54f0dbSXin Li 		parse_ro_chipname("exynos7420"));
140*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 7570",
141*2b54f0dbSXin Li 		parse_ro_chipname("exynos7570"));
142*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 7578",
143*2b54f0dbSXin Li 		parse_ro_chipname("exynos7580", 4));
144*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 7580",
145*2b54f0dbSXin Li 		parse_ro_chipname("exynos7580", 8));
146*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 7870",
147*2b54f0dbSXin Li 		parse_ro_chipname("exynos7870"));
148*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 7880",
149*2b54f0dbSXin Li 		parse_ro_chipname("exynos7880"));
150*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 8890",
151*2b54f0dbSXin Li 		parse_ro_chipname("exynos8890"));
152*2b54f0dbSXin Li 	EXPECT_EQ("Samsung Exynos 8895",
153*2b54f0dbSXin Li 		parse_ro_chipname("exynos8895"));
154*2b54f0dbSXin Li }
155*2b54f0dbSXin Li 
156*2b54f0dbSXin Li #if CPUINFO_ARCH_ARM
TEST(RO_CHIPNAME,marvell_pxa)157*2b54f0dbSXin Li 	TEST(RO_CHIPNAME, marvell_pxa) {
158*2b54f0dbSXin Li 		EXPECT_EQ("Marvell PXA1088",
159*2b54f0dbSXin Li 			parse_ro_chipname("PXA1088"));
160*2b54f0dbSXin Li 		EXPECT_EQ("Marvell PXA986",
161*2b54f0dbSXin Li 			parse_ro_chipname("PXA986"));
162*2b54f0dbSXin Li 	}
163*2b54f0dbSXin Li 
TEST(RO_CHIPNAME,renesas)164*2b54f0dbSXin Li 	TEST(RO_CHIPNAME, renesas) {
165*2b54f0dbSXin Li 		EXPECT_EQ("Renesas MP5232",
166*2b54f0dbSXin Li 			parse_ro_chipname("mp523x"));
167*2b54f0dbSXin Li 	}
168*2b54f0dbSXin Li #endif /* CPUINFO_ARCH_ARM */
169*2b54f0dbSXin Li 
TEST(RO_CHIPNAME,spreadtrum)170*2b54f0dbSXin Li TEST(RO_CHIPNAME, spreadtrum) {
171*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC6815AS",
172*2b54f0dbSXin Li 		parse_ro_chipname("SC6815AS"));
173*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7715A",
174*2b54f0dbSXin Li 		parse_ro_chipname("SC7715A"));
175*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7715T",
176*2b54f0dbSXin Li 		parse_ro_chipname("SC7715T"));
177*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7727S",
178*2b54f0dbSXin Li 		parse_ro_chipname("SC7727S"));
179*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7727S",
180*2b54f0dbSXin Li 		parse_ro_chipname("sc7727s"));
181*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7727SE",
182*2b54f0dbSXin Li 		parse_ro_chipname("SC7727SE"));
183*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7730S",
184*2b54f0dbSXin Li 		parse_ro_chipname("sc7730s"));
185*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7730SE",
186*2b54f0dbSXin Li 		parse_ro_chipname("SC7730SE"));
187*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7730SW",
188*2b54f0dbSXin Li 		parse_ro_chipname("SC7730SW"));
189*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC7735S",
190*2b54f0dbSXin Li 		parse_ro_chipname("sc7735s"));
191*2b54f0dbSXin Li 	EXPECT_EQ("Spreadtrum SC9830I",
192*2b54f0dbSXin Li 		parse_ro_chipname("SC9830I"));
193*2b54f0dbSXin Li }
194