7#include "cpuinfo_arm.h"
10#ifdef BUILDING_FOR_ARM_TARGET
27static const struct ArmIdPart armParts[] = {
38 {0xb02,
"ARM11 MPCore"},
46 {0xc0d,
"Cortex-A17"},
47 {0xc0e,
"Cortex-A17"},
48 {0xc0f,
"Cortex-A15"},
58 {0xc60,
"Cortex-M0+"},
59 {0xd01,
"Cortex-A32"},
60 {0xd03,
"Cortex-A53"},
61 {0xd04,
"Cortex-A35"},
62 {0xd05,
"Cortex-A55"},
63 {0xd06,
"Cortex-A65"},
64 {0xd07,
"Cortex-A57"},
65 {0xd08,
"Cortex-A72"},
66 {0xd09,
"Cortex-A73"},
67 {0xd0a,
"Cortex-A75"},
68 {0xd0b,
"Cortex-A76"},
69 {0xd0c,
"Neoverse-N1"},
70 {0xd0d,
"Cortex-A77"},
71 {0xd0e,
"Cortex-A76AE"},
72 {0xd13,
"Cortex-R52"},
73 {0xd20,
"Cortex-M23"},
74 {0xd21,
"Cortex-M33"},
75 {0xd40,
"Neoverse-V1"},
76 {0xd41,
"Cortex-A78"},
77 {0xd42,
"Cortex-A78AE"},
79 {0xd46,
"Cortex-A510"},
80 {0xd47,
"Cortex-A710"},
82 {0xd49,
"Neoverse-N2"},
83 {0xd4a,
"Neoverse-E1"},
84 {0xd4b,
"Cortex-A78C"},
85 {0xd4d,
"Cortex-A715"},
90static const struct ArmIdPart brcmParts[] = {
92 {0x100,
"Brahma B53"},
93 {0x516,
"ThunderX2 (Vulcan)"},
97static const struct ArmIdPart decParts[] = {
103static const struct ArmIdPart caviumParts[] = {
105 {0x0a1,
"ThunderX 88XX"},
106 {0x0a2,
"ThunderX 81XX"},
107 {0x0a3,
"ThunderX 83XX"},
108 {0x0af,
"ThunderX2 99xx"},
112static const struct ArmIdPart apmParts[] = {
117static const struct ArmIdPart qcomParts[] = {
121 {0x06f,
"Krait 400"},
123 {0x201,
"Kryo Silver"},
124 {0x205,
"Kryo Gold"},
126 {0x800,
"Falkor V1/Kryo 2xx Gold"},
127 {0x801,
"Kryo 2xx Silver"},
128 {0x802,
"Kryo 3xx Gold"},
129 {0x803,
"Kryo 3xx Silver"},
130 {0x804,
"Kryo 4xx/5xx Gold"},
131 {0x805,
"Kryo 4xx/5xx Silver"},
137static const struct ArmIdPart samsungParts[] = {
138 {0x001,
"exynos-m1"},
142static const struct ArmIdPart nvidiaParts[] = {
149static const struct ArmIdPart marvellParts[] = {
150 {0x131,
"Feroceon 88FR131"},
156static const struct ArmIdPart faradayParts[] = {
163static const struct ArmIdPart intelParts[] = {
167 {0x242,
"i80321-400"},
168 {0x243,
"i80321-600"},
169 {0x290,
"PXA250B/PXA26x"},
171 {0x2c2,
"i80321-400-B0"},
172 {0x2c3,
"i80321-600-B0"},
173 {0x2d0,
"PXA250C/PXA255/PXA26x"},
176 {0x41c,
"IPX425-533"},
177 {0x41d,
"IPX425-400"},
178 {0x41f,
"IPX425-266"},
180 {0x683,
"PXA930/PXA935"},
189static const struct ArmIdPart fujitsuParts[] = {
194static const struct ArmIdPart hisiParts[] = {
195 {0xd01,
"Kunpeng-920 (TSV110)"},
199static const struct ArmIdPart appleParts[] = {
200 {0x020,
"Icestorm (A14)"},
201 {0x021,
"Firestorm (A14)"},
202 {0x022,
"Icestorm (M1)"},
203 {0x023,
"Firestorm (M1)"},
204 {0x024,
"Icestorm (M1 Pro)"},
205 {0x025,
"Firestorm (M1 Pro)"},
206 {0x028,
"Icestorm (M1 Max)"},
207 {0x029,
"Firestorm (M1 Max)"},
208 {0x030,
"Blizzard (A15)"},
209 {0x031,
"Avalanche (A15)"},
210 {0x032,
"Blizzard (M2)"},
211 {0x033,
"Avalanche (M2)"},
212 {0x034,
"Blizzard (M2 Pro)"},
213 {0x035,
"Avalanche (M2 Pro)"},
214 {0x038,
"Blizzard (M2 Max)"},
215 {0x039,
"Avalanche (M2 Max)"},
219static const struct ArmIdPart unknownPart[] = {
223static const struct ArmCpuImplementer armHwImplementers[] = {
224 {0x41, armParts,
"ARM"},
225 {0x42, brcmParts,
"Broadcom"},
226 {0x43, caviumParts,
"Cavium"},
227 {0x44, decParts,
"DEC"},
228 {0x46, fujitsuParts,
"FUJITSU"},
229 {0x48, hisiParts,
"HiSilicon"},
230 {0x49, unknownPart,
"Infineon"},
231 {0x4d, unknownPart,
"Motorola/Freescale"},
232 {0x4e, nvidiaParts,
"NVIDIA"},
233 {0x50, apmParts,
"APM"},
234 {0x51, qcomParts,
"Qualcomm"},
235 {0x53, samsungParts,
"Samsung"},
236 {0x56, marvellParts,
"Marvell"},
237 {0x61, appleParts,
"Apple"},
238 {0x66, faradayParts,
"Faraday"},
239 {0x69, intelParts,
"Intel"},
240 {0xc0, unknownPart,
"Ampere"},
241 {-1, unknownPart,
"unknown"},
244const ArmCpuImplementer *findArmCpuImplementer(
int vendorId)
246 const ArmCpuImplementer *ret =
nullptr;
247 for (
int i = 0; armHwImplementers[i].id != -1; i++) {
248 if (armHwImplementers[i].
id == vendorId) {
249 ret = &armHwImplementers[i];
261QString findArmCpuModel(
int vendorId,
int modelId)
263 const ArmCpuImplementer *impl = findArmCpuImplementer(vendorId);
267 for (
int i = 0; impl->parts[i].id != -1; i++) {
268 if (impl->parts[i].id == modelId) {
QString fromUtf8(QByteArrayView str)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 22 2024 12:01:49 by
doxygen 1.12.0 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.