|
75 | 75 | #define ARM_CPU_PART_CORTEX_A76 0xD0B |
76 | 76 | #define ARM_CPU_PART_NEOVERSE_N1 0xD0C |
77 | 77 | #define ARM_CPU_PART_CORTEX_A77 0xD0D |
| 78 | +#define ARM_CPU_PART_CORTEX_A76AE 0xD0E |
78 | 79 | #define ARM_CPU_PART_NEOVERSE_V1 0xD40 |
79 | 80 | #define ARM_CPU_PART_CORTEX_A78 0xD41 |
80 | 81 | #define ARM_CPU_PART_CORTEX_A78AE 0xD42 |
81 | 82 | #define ARM_CPU_PART_CORTEX_X1 0xD44 |
82 | 83 | #define ARM_CPU_PART_CORTEX_A510 0xD46 |
| 84 | +#define ARM_CPU_PART_CORTEX_X1C 0xD4C |
83 | 85 | #define ARM_CPU_PART_CORTEX_A520 0xD80 |
84 | 86 | #define ARM_CPU_PART_CORTEX_A710 0xD47 |
85 | 87 | #define ARM_CPU_PART_CORTEX_A715 0xD4D |
|
119 | 121 | #define QCOM_CPU_PART_KRYO 0x200 |
120 | 122 | #define QCOM_CPU_PART_KRYO_2XX_GOLD 0x800 |
121 | 123 | #define QCOM_CPU_PART_KRYO_2XX_SILVER 0x801 |
| 124 | +#define QCOM_CPU_PART_KRYO_3XX_GOLD 0x802 |
122 | 125 | #define QCOM_CPU_PART_KRYO_3XX_SILVER 0x803 |
123 | 126 | #define QCOM_CPU_PART_KRYO_4XX_GOLD 0x804 |
124 | 127 | #define QCOM_CPU_PART_KRYO_4XX_SILVER 0x805 |
| 128 | +#define QCOM_CPU_PART_ORYON_X1 0x001 |
125 | 129 |
|
126 | 130 | #define NVIDIA_CPU_PART_DENVER 0x003 |
127 | 131 | #define NVIDIA_CPU_PART_CARMEL 0x004 |
128 | 132 |
|
129 | 133 | #define FUJITSU_CPU_PART_A64FX 0x001 |
130 | 134 |
|
131 | 135 | #define HISI_CPU_PART_TSV110 0xD01 |
| 136 | +#define HISI_CPU_PART_HIP09 0xD02 |
132 | 137 | #define HISI_CPU_PART_HIP12 0xD06 |
133 | 138 |
|
134 | 139 | #define APPLE_CPU_PART_M1_ICESTORM 0x022 |
|
159 | 164 | #define MIDR_CORTEX_A76 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76) |
160 | 165 | #define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1) |
161 | 166 | #define MIDR_CORTEX_A77 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77) |
| 167 | +#define MIDR_CORTEX_A76AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76AE) |
162 | 168 | #define MIDR_NEOVERSE_V1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1) |
163 | 169 | #define MIDR_CORTEX_A78 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78) |
164 | 170 | #define MIDR_CORTEX_A78AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE) |
165 | 171 | #define MIDR_CORTEX_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1) |
166 | 172 | #define MIDR_CORTEX_A510 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A510) |
| 173 | +#define MIDR_CORTEX_X1C MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1C) |
167 | 174 | #define MIDR_CORTEX_A520 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A520) |
168 | 175 | #define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710) |
169 | 176 | #define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715) |
|
196 | 203 | #define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO) |
197 | 204 | #define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD) |
198 | 205 | #define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER) |
| 206 | +#define MIDR_QCOM_KRYO_3XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_GOLD) |
199 | 207 | #define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER) |
200 | 208 | #define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD) |
201 | 209 | #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER) |
| 210 | +#define MIDR_QCOM_ORYON_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_ORYON_X1) |
| 211 | + |
| 212 | +/* |
| 213 | + * NOTES: |
| 214 | + * - Qualcomm Kryo 5XX Prime / Gold ID themselves as MIDR_CORTEX_A77 |
| 215 | + * - Qualcomm Kryo 5XX Silver IDs itself as MIDR_QCOM_KRYO_4XX_SILVER |
| 216 | + * - Qualcomm Kryo 6XX Prime IDs itself as MIDR_CORTEX_X1 |
| 217 | + * - Qualcomm Kryo 6XX Gold IDs itself as ARM_CPU_PART_CORTEX_A78 |
| 218 | + * - Qualcomm Kryo 6XX Silver IDs itself as MIDR_CORTEX_A55 |
| 219 | + */ |
| 220 | + |
202 | 221 | #define MIDR_NVIDIA_DENVER MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_DENVER) |
203 | 222 | #define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL) |
204 | 223 | #define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX) |
205 | 224 | #define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110) |
| 225 | +#define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09) |
206 | 226 | #define MIDR_HISI_HIP12 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP12) |
207 | 227 | #define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM) |
208 | 228 | #define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM) |
@@ -291,6 +311,14 @@ static inline u32 __attribute_const__ read_cpuid_id(void) |
291 | 311 | return read_cpuid(MIDR_EL1); |
292 | 312 | } |
293 | 313 |
|
| 314 | +struct target_impl_cpu { |
| 315 | + u64 midr; |
| 316 | + u64 revidr; |
| 317 | + u64 aidr; |
| 318 | +}; |
| 319 | + |
| 320 | +bool cpu_errata_set_target_impl(u64 num, void *impl_cpus); |
| 321 | + |
294 | 322 | static inline u64 __attribute_const__ read_cpuid_mpidr(void) |
295 | 323 | { |
296 | 324 | return read_cpuid(MPIDR_EL1); |
|
0 commit comments