xref: /aosp_15_r20/external/cpuinfo/test/name/ro-board-platform.cc (revision 2b54f0db79fd8303838913b20ff3780cddaa909f)
1 #include <gtest/gtest.h>
2 
3 #include <stdint.h>
4 #include <string.h>
5 
6 #include <string>
7 
8 #define CPUINFO_BUILD_PROP_VALUE_MAX 92
9 #define CPUINFO_ARM_CHIPSET_NAME_MAX 48
10 
11 extern "C" void cpuinfo_arm_android_parse_ro_board_platform(
12 	const char platform[CPUINFO_BUILD_PROP_VALUE_MAX],
13 	uint32_t cores,
14 	uint32_t max_cpu_freq_max,
15 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]);
16 
parse_ro_board_platform(std::string platform,uint32_t cores=1,uint32_t max_cpu_freq_max=0)17 inline std::string parse_ro_board_platform(
18 	std::string platform, uint32_t cores=1, uint32_t max_cpu_freq_max=0)
19 {
20 	char platform_buffer[CPUINFO_BUILD_PROP_VALUE_MAX];
21 	strncpy(platform_buffer, platform.c_str(), CPUINFO_BUILD_PROP_VALUE_MAX);
22 	char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX];
23 	cpuinfo_arm_android_parse_ro_board_platform(
24 		platform_buffer, cores, max_cpu_freq_max, chipset_name);
25 	return std::string(chipset_name, strnlen(chipset_name, CPUINFO_ARM_CHIPSET_NAME_MAX));
26 }
27 
TEST(RO_BOARD_PLATFORM,qualcomm_msm)28 TEST(RO_BOARD_PLATFORM, qualcomm_msm) {
29 	EXPECT_EQ("Qualcomm APQ8064",
30 		parse_ro_board_platform("msm8960", 4));
31 	EXPECT_EQ("Qualcomm MSM7627A",
32 		parse_ro_board_platform("msm7627a"));
33 	EXPECT_EQ("Qualcomm MSM8084",
34 		parse_ro_board_platform("msm8084"));
35 	EXPECT_EQ("Qualcomm MSM8226",
36 		parse_ro_board_platform("msm8226"));
37 #if CPUINFO_ARCH_ARM
38 	EXPECT_EQ("Qualcomm MSM8610",
39 		parse_ro_board_platform("msm8610", 2));
40 	EXPECT_EQ("Qualcomm MSM8612",
41 		parse_ro_board_platform("msm8610", 4));
42 #endif /* CPUINFO_ARCH_ARM */
43 	EXPECT_EQ("Qualcomm MSM8612",
44 		parse_ro_board_platform("MSM8612"));
45 	EXPECT_EQ("Qualcomm MSM8660",
46 		parse_ro_board_platform("msm8660"));
47 	EXPECT_EQ("Qualcomm MSM8909",
48 		parse_ro_board_platform("msm8909"));
49 	EXPECT_EQ("Qualcomm MSM8916",
50 		parse_ro_board_platform("msm8916", 4));
51 	EXPECT_EQ("Qualcomm MSM8917",
52 		parse_ro_board_platform("msm8937", 4));
53 	EXPECT_EQ("Qualcomm MSM8937",
54 		parse_ro_board_platform("msm8937", 8));
55 	EXPECT_EQ("Qualcomm MSM8939",
56 		parse_ro_board_platform("msm8916", 8));
57 	EXPECT_EQ("Qualcomm MSM8952",
58 		parse_ro_board_platform("msm8952"));
59 	EXPECT_EQ("Qualcomm MSM8953",
60 		parse_ro_board_platform("msm8953"));
61 	EXPECT_EQ("Qualcomm MSM8960",
62 		parse_ro_board_platform("msm8960", 2));
63 	EXPECT_EQ("Qualcomm MSM8974",
64 		parse_ro_board_platform("msm8974"));
65 	EXPECT_EQ("Qualcomm MSM8992",
66 		parse_ro_board_platform("msm8992"));
67 	EXPECT_EQ("Qualcomm MSM8994",
68 		parse_ro_board_platform("msm8994"));
69 	EXPECT_EQ("Qualcomm MSM8996",
70 		parse_ro_board_platform("msm8996", 4));
71 	EXPECT_EQ("Qualcomm MSM8998",
72 		parse_ro_board_platform("msm8998"));
73 }
74 
TEST(RO_BOARD_PLATFORM,qualcomm_apq)75 TEST(RO_BOARD_PLATFORM, qualcomm_apq) {
76 	EXPECT_EQ("Qualcomm APQ8084",
77 		parse_ro_board_platform("apq8084"));
78 }
79 
TEST(RO_BOARD_PLATFORM,mediatek_mt)80 TEST(RO_BOARD_PLATFORM, mediatek_mt) {
81 	EXPECT_EQ("MediaTek MT5861",
82 		parse_ro_board_platform("mt5861"));
83 	EXPECT_EQ("MediaTek MT5882",
84 		parse_ro_board_platform("mt5882"));
85 	EXPECT_EQ("MediaTek MT6570",
86 		parse_ro_board_platform("mt6570"));
87 	EXPECT_EQ("MediaTek MT6572",
88 		parse_ro_board_platform("mt6572"));
89 	EXPECT_EQ("MediaTek MT6572A",
90 		parse_ro_board_platform("MT6572A"));
91 	EXPECT_EQ("MediaTek MT6575",
92 		parse_ro_board_platform("mt6575"));
93 	EXPECT_EQ("MediaTek MT6577",
94 		parse_ro_board_platform("MT6577"));
95 	EXPECT_EQ("MediaTek MT6577",
96 		parse_ro_board_platform("mt6577"));
97 	EXPECT_EQ("MediaTek MT6580",
98 		parse_ro_board_platform("mt6580"));
99 	EXPECT_EQ("MediaTek MT6582",
100 		parse_ro_board_platform("MTK6582"));
101 	EXPECT_EQ("MediaTek MT6582",
102 		parse_ro_board_platform("mt6582"));
103 	EXPECT_EQ("MediaTek MT6582M",
104 		parse_ro_board_platform("MTK6582M"));
105 	EXPECT_EQ("MediaTek MT6589",
106 		parse_ro_board_platform("MT6589"));
107 	EXPECT_EQ("MediaTek MT6589",
108 		parse_ro_board_platform("MTK6589"));
109 	EXPECT_EQ("MediaTek MT6592",
110 		parse_ro_board_platform("mt6592"));
111 	EXPECT_EQ("MediaTek MT6592T",
112 		parse_ro_board_platform("MTK6592T"));
113 	EXPECT_EQ("MediaTek MT6595",
114 		parse_ro_board_platform("mt6595"));
115 	EXPECT_EQ("MediaTek MT6732",
116 		parse_ro_board_platform("mt6752", 4));
117 	EXPECT_EQ("MediaTek MT6735",
118 		parse_ro_board_platform("mt6735"));
119 	EXPECT_EQ("MediaTek MT6735M",
120 		parse_ro_board_platform("mt6735m"));
121 	EXPECT_EQ("MediaTek MT6737",
122 		parse_ro_board_platform("mt6737"));
123 	EXPECT_EQ("MediaTek MT6737M",
124 		parse_ro_board_platform("mt6737m"));
125 	EXPECT_EQ("MediaTek MT6737T",
126 		parse_ro_board_platform("mt6737t"));
127 	EXPECT_EQ("MediaTek MT6750",
128 		parse_ro_board_platform("mt6750"));
129 	EXPECT_EQ("MediaTek MT6752",
130 		parse_ro_board_platform("mt6752", 8));
131 	EXPECT_EQ("MediaTek MT6753",
132 		parse_ro_board_platform("mt6753"));
133 	EXPECT_EQ("MediaTek MT6755",
134 		parse_ro_board_platform("mt6755"));
135 	EXPECT_EQ("MediaTek MT6757",
136 		parse_ro_board_platform("mt6757"));
137 	EXPECT_EQ("MediaTek MT6795",
138 		parse_ro_board_platform("mt6795"));
139 	EXPECT_EQ("MediaTek MT6797",
140 		parse_ro_board_platform("mt6797"));
141 	EXPECT_EQ("MediaTek MT8111",
142 		parse_ro_board_platform("MT8111"));
143 	EXPECT_EQ("MediaTek MT8127",
144 		parse_ro_board_platform("MT8127"));
145 	EXPECT_EQ("MediaTek MT8127",
146 		parse_ro_board_platform("mt8127"));
147 	EXPECT_EQ("MediaTek MT8135",
148 		parse_ro_board_platform("mt8135"));
149 	EXPECT_EQ("MediaTek MT8151",
150 		parse_ro_board_platform("mt8151"));
151 	EXPECT_EQ("MediaTek MT8163",
152 		parse_ro_board_platform("mt8163"));
153 	EXPECT_EQ("MediaTek MT8167",
154 		parse_ro_board_platform("mt8167"));
155 	EXPECT_EQ("MediaTek MT8173",
156 		parse_ro_board_platform("mt8173"));
157 	EXPECT_EQ("MediaTek MT8312",
158 		parse_ro_board_platform("MT8312"));
159 	EXPECT_EQ("MediaTek MT8382",
160 		parse_ro_board_platform("MT8382"));
161 	EXPECT_EQ("MediaTek MT8382V",
162 		parse_ro_board_platform("MT8382V"));
163 	EXPECT_EQ("MediaTek MT8392",
164 		parse_ro_board_platform("MT8392"));
165 }
166 
TEST(RO_BOARD_PLATFORM,samsung)167 TEST(RO_BOARD_PLATFORM, samsung) {
168 	EXPECT_EQ("Samsung Exynos 4412",
169 		parse_ro_board_platform("exynos4412"));
170 }
171 
TEST(RO_BOARD_PLATFORM,hisilicon)172 TEST(RO_BOARD_PLATFORM, hisilicon) {
173 #if CPUINFO_ARCH_ARM
174 	EXPECT_EQ("HiSilicon K3V2",
175 		parse_ro_board_platform("k3v200"));
176 	EXPECT_EQ("HiSilicon K3V2",
177 		parse_ro_board_platform("k3v2oem1"));
178 #endif
179 	EXPECT_EQ("HiSilicon Kirin 620",
180 		parse_ro_board_platform("hi6210sft"));
181 	EXPECT_EQ("HiSilicon Kirin 650",
182 		parse_ro_board_platform("hi6250"));
183 #if CPUINFO_ARCH_ARM
184 	EXPECT_EQ("HiSilicon Kirin 910T",
185 		parse_ro_board_platform("hi6620oem"));
186 	EXPECT_EQ("HiSilicon Kirin 920",
187 		parse_ro_board_platform("hi3630"));
188 #endif
189 	EXPECT_EQ("HiSilicon Kirin 930",
190 		parse_ro_board_platform("hi3635"));
191 	EXPECT_EQ("HiSilicon Kirin 950",
192 		parse_ro_board_platform("hi3650"));
193 	EXPECT_EQ("HiSilicon Kirin 960",
194 		parse_ro_board_platform("hi3660"));
195 	EXPECT_EQ("HiSilicon Kirin 970",
196 		parse_ro_board_platform("kirin970"));
197 }
198 
TEST(RO_BOARD_PLATFORM,amlogic)199 TEST(RO_BOARD_PLATFORM, amlogic) {
200 #if CPUINFO_ARCH_ARM
201 	EXPECT_EQ("Amlogic AML8726-M",
202 		parse_ro_board_platform("meson3"));
203 	EXPECT_EQ("Amlogic AML8726-MX",
204 		parse_ro_board_platform("meson6"));
205 	EXPECT_EQ("Amlogic S805",
206 		parse_ro_board_platform("meson8"));
207 #endif /* CPUINFO_ARCH_ARM */
208 	EXPECT_EQ("Amlogic S905",
209 		parse_ro_board_platform("gxbaby"));
210 	EXPECT_EQ("Amlogic S905X",
211 		parse_ro_board_platform("gxl"));
212 	EXPECT_EQ("Amlogic S912",
213 		parse_ro_board_platform("gxm"));
214 }
215 
216 #if CPUINFO_ARCH_ARM
TEST(RO_BOARD_PLATFORM,broadcom)217 	TEST(RO_BOARD_PLATFORM, broadcom) {
218 		EXPECT_EQ("Broadcom BCM21654",
219 			parse_ro_board_platform("rhea", 1, 849999));
220 		EXPECT_EQ("Broadcom BCM21654G",
221 			parse_ro_board_platform("rhea", 1, 999999));
222 		EXPECT_EQ("Broadcom BCM21663",
223 			parse_ro_board_platform("hawaii", 1, 999999));
224 		EXPECT_EQ("Broadcom BCM21664",
225 			parse_ro_board_platform("hawaii", 2, 999999));
226 		EXPECT_EQ("Broadcom BCM21664T",
227 			parse_ro_board_platform("hawaii", 2, 1200000));
228 		EXPECT_EQ("Broadcom BCM23550",
229 			parse_ro_board_platform("java", 4, 1200000));
230 		EXPECT_EQ("Broadcom BCM28155",
231 			parse_ro_board_platform("capri", 2, 1200000));
232 		EXPECT_EQ("Broadcom BCM28155",
233 			parse_ro_board_platform("capri", 2, 1399999));
234 	}
235 
TEST(RO_BOARD_PLATFORM,leadcore)236 	TEST(RO_BOARD_PLATFORM, leadcore) {
237 		EXPECT_EQ("Leadcore LC1860",
238 			parse_ro_board_platform("lc1860"));
239 	}
240 
TEST(RO_BOARD_PLATFORM,novathor)241 	TEST(RO_BOARD_PLATFORM, novathor) {
242 		EXPECT_EQ("NovaThor U8500",
243 			parse_ro_board_platform("montblanc"));
244 	}
245 #endif /* CPUINFO_ARCH_ARM */
246 
TEST(RO_BOARD_PLATFORM,nvidia)247 TEST(RO_BOARD_PLATFORM, nvidia) {
248 #if CPUINFO_ARCH_ARM
249 	EXPECT_EQ("Nvidia Tegra T114",
250 		parse_ro_board_platform("tegra4"));
251 #endif /* CPUINFO_ARCH_ARM */
252 	EXPECT_EQ("Nvidia Tegra T132",
253 		parse_ro_board_platform("tegra132"));
254 	EXPECT_EQ("Nvidia Tegra T210",
255 		parse_ro_board_platform("tegra210_dragon"));
256 }
257 
TEST(RO_BOARD_PLATFORM,pinecone)258 TEST(RO_BOARD_PLATFORM, pinecone) {
259 	EXPECT_EQ("Pinecone Surge S1",
260 		parse_ro_board_platform("song"));
261 }
262 
TEST(RO_BOARD_PLATFORM,rockchip_rk)263 TEST(RO_BOARD_PLATFORM, rockchip_rk) {
264 	EXPECT_EQ("Rockchip RK2928",
265 		parse_ro_board_platform("rk2928"));
266 	EXPECT_EQ("Rockchip RK3026",
267 		parse_ro_board_platform("rk3026"));
268 	EXPECT_EQ("Rockchip RK3066",
269 		parse_ro_board_platform("rk3066"));
270 	EXPECT_EQ("Rockchip RK3188",
271 		parse_ro_board_platform("rk3188"));
272 	EXPECT_EQ("Rockchip RK3228",
273 		parse_ro_board_platform("rk3228"));
274 #if CPUINFO_ARCH_ARM
275 	EXPECT_EQ("Rockchip RK3229",
276 		parse_ro_board_platform("rk322x"));
277 #endif /* CPUINFO_ARCH_ARM */
278 	EXPECT_EQ("Rockchip RK3288",
279 		parse_ro_board_platform("rk3288", 4));
280 	EXPECT_EQ("Rockchip RK3399",
281 		parse_ro_board_platform("rk3288", 6));
282 	EXPECT_EQ("Rockchip RK3328",
283 		parse_ro_board_platform("rk3328"));
284 	EXPECT_EQ("Rockchip RK3368",
285 		parse_ro_board_platform("rk3368"));
286 	EXPECT_EQ("Rockchip RK3399",
287 		parse_ro_board_platform("rk3399"));
288 }
289 
TEST(RO_BOARD_PLATFORM,spreadtrum_sc)290 TEST(RO_BOARD_PLATFORM, spreadtrum_sc) {
291 	EXPECT_EQ("Spreadtrum SC6820I",
292 		parse_ro_board_platform("sc6820i"));
293 	EXPECT_EQ("Spreadtrum SC7731",
294 		parse_ro_board_platform("SC7731"));
295 	EXPECT_EQ("Spreadtrum SC7731",
296 		parse_ro_board_platform("sc7731"));
297 	EXPECT_EQ("Spreadtrum SC7731G",
298 		parse_ro_board_platform("sc7731g"));
299 	EXPECT_EQ("Spreadtrum SC8810",
300 		parse_ro_board_platform("sc8810"));
301 	EXPECT_EQ("Spreadtrum SC8825",
302 		parse_ro_board_platform("sc8825"));
303 	EXPECT_EQ("Spreadtrum SC8830",
304 		parse_ro_board_platform("sc8830"));
305 }
306 
307 #if CPUINFO_ARCH_ARM
TEST(RO_BOARD_PLATFORM,texas_instruments_omap)308 	TEST(RO_BOARD_PLATFORM, texas_instruments_omap) {
309 		EXPECT_EQ("Texas Instruments OMAP4430",
310 			parse_ro_board_platform("omap4", 2, 1008000));
311 	}
312 #endif /* CPUINFO_ARCH_ARM */
313