1 /* This file is part of msrtool. */
2 /* SPDX-License-Identifier: GPL-2.0-only */
6 int intel_pentium_d_probe(const struct targetdef
*target
, const struct cpuid_t
*id
) {
7 return ((VENDOR_INTEL
== id
->vendor
) &&
12 const struct msrdef intel_pentium_d_msrs
[] = {
13 {0x0000, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_P5_MC_ADDR", "", {
16 {0x0001, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_P5_MC_TYPE", "", {
19 {0x0006, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MONITOR_FILTER_LINE_SIZE", "", {
22 {0x0010, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_TIME_STAMP_COUNTER", "", {
25 {0x0017, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PLATFORM_ID", "", {
28 {0x001B, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_APIC_BASE", "", {
31 {0x002A, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_EBC_HARD_POWERON", "", {
34 {0x002B, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_EBC_SOFT_POWERON", "", {
37 {0x002C, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_EBC_FREQUENCY_ID", "", {
40 {0x008B, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_BIOS_SIGN_ID", "", {
43 {0x00FE, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRRCAP", "", {
46 {0x0174, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_SYSENTER_CS", "", {
49 {0x0175, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_SYSENTER_ESP", "", {
52 {0x0176, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_SYSENTER_EIP", "", {
55 {0x0179, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MCG_CAP", "", {
58 {0x017A, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MCG_STATUS", "", {
61 {0x0180, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RAX", "", {
64 {0x0181, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RBX", "", {
67 {0x0182, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RCX", "", {
70 {0x0183, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RDX", "", {
73 {0x0184, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RSI", "", {
76 {0x0185, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RDI", "", {
79 {0x0186, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PERF_EVNTSEL0", "", {
82 {0x0187, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PERF_EVNTSEL1", "", {
85 {0x0188, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RFLAGS", "", {
88 {0x0189, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RIP", "", {
91 {0x018A, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_MISC", "", {
94 {0x0190, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R8", "", {
97 {0x0191, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R9", "", {
100 {0x0192, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R10", "", {
103 {0x0193, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R11", "", {
106 {0x0194, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R12", "", {
109 {0x0195, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R13", "", {
112 {0x0196, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R14", "", {
115 {0x0197, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R15", "", {
118 {0x0198, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PERF_STATUS", "", {
121 {0x0199, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PERF_CONTROL", "", {
124 {0x019A, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_CLOCK_MODULATION", "", {
127 {0x019B, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_THERM_INTERRUPT", "", {
130 {0x019C, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_THERM_STATUS", "", {
133 {0x019D, MSRTYPE_RDWR
, MSR2(0, 0), "GV_THERM", "", {
136 {0x01A0, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MISC_ENABLES", "", {
139 {0x01A1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PLATFORM_BRV", "", {
142 {0x01A2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TEMPERATURE_TARGET", "", {
145 {0x01D7, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LER_FROM_LIP", "", {
148 {0x01D8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LER_TO_LIP", "", {
151 {0x01D9, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_DEBUGCTL", "", {
154 {0x01DA, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LASTBRANCH_TOS", "", {
157 {0x0200, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE0", "", {
160 {0x0201, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK0", "", {
163 {0x0202, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE1", "", {
166 {0x0203, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK1", "", {
169 {0x0204, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE2", "", {
172 {0x0205, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK2", "", {
175 {0x0206, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE3", "", {
178 {0x0207, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK3", "", {
181 {0x0208, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE4", "", {
184 {0x0209, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK4", "", {
187 {0x020A, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE5", "", {
190 {0x020B, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK5", "", {
193 {0x020C, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE6", "", {
196 {0x020D, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK6", "", {
199 {0x020E, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE7", "", {
202 {0x020F, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK7", "", {
205 {0x0250, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX64K_00000", "", {
208 {0x0258, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX16K_80000", "", {
211 {0x0259, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX16K_A0000", "", {
214 {0x0268, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_C0000", "", {
217 {0x0269, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_C8000", "", {
220 {0x026A, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_D0000", "", {
223 {0x026B, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_D8000", "", {
226 {0x026C, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_E0000", "", {
229 {0x026D, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_E8000", "", {
232 {0x026E, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_F0000", "", {
235 {0x026F, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_F8000", "", {
238 {0x0277, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PAT", "", {
241 {0x02FF, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_DEF_TYPE", "", {
244 {0x0300, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER0", "", {
247 {0x0301, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER1", "", {
250 {0x0302, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER2", "", {
253 {0x0303, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER3", "", {
256 {0x0304, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER0", "", {
259 {0x0305, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER1", "", {
262 {0x0306, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER2", "", {
265 {0x0307, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER3", "", {
268 {0x0308, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER0", "", {
271 {0x0309, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER1", "", {
274 {0x030A, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_FIXED_CTR1", "", {
277 {0x030B, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER3", "", {
280 {0x030C, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER0", "", {
283 {0x030D, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER1", "", {
286 {0x030E, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER2", "", {
289 {0x030F, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER3", "", {
292 {0x0310, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER4", "", {
295 {0x0311, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER5", "", {
298 {0x0345, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PERF_CAPABILITIES", "", {
301 {0x0360, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR0", "", {
304 {0x0361, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR1", "", {
307 {0x0362, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR2", "", {
310 {0x0363, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR3", "", {
313 {0x0364, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR0", "", {
316 {0x0365, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR1", "", {
319 {0x0366, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR2", "", {
322 {0x0367, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR3", "", {
325 {0x0368, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR0", "", {
328 {0x0369, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR1", "", {
331 {0x036A, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR2", "", {
334 {0x036B, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR3", "", {
337 {0x036C, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR0", "", {
340 {0x036D, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR1", "", {
343 {0x036E, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR2", "", {
346 {0x036F, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR3", "", {
349 {0x0370, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR4", "", {
352 {0x0371, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR5", "", {
355 {0x03A0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BSU_ESCR0", "", {
358 {0x03A1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BSU_ESCR1", "", {
361 {0x03A2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FSB_ESCR0", "", {
364 {0x03A3, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FSB_ESCR1", "", {
367 {0x03A4, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FIRM_ESCR0", "", {
370 {0x03A5, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FIRM_ESCR1", "", {
373 {0x03A6, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_ESCR0", "", {
376 {0x03A7, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_ESCR1", "", {
379 {0x03A8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_DAC_ESCR0", "", {
382 {0x03A9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_DAC_ESCR1", "", {
385 {0x03AA, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MOB_ESCR0", "", {
388 {0x03AB, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MOB_ESCR1", "", {
391 {0x03AC, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PMH_ESCR0", "", {
394 {0x03AD, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PMH_ESCR1", "", {
397 {0x03AE, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_SAAT_ESCR0", "", {
400 {0x03AF, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_SAAT_ESCR1", "", {
403 {0x03B0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_U2L_ESCR0", "", {
406 {0x03B1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_U2L_ESCR1", "", {
409 {0x03B2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_ESCR0", "", {
412 {0x03B3, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_ESCR1", "", {
415 {0x03B4, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IS_ESCR0", "", {
418 {0x03B5, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_ESCR1", "", {
421 {0x03B6, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ITLB_ESCR0", "", {
424 {0x03B7, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ITLB_ESCR1", "", {
427 {0x03B8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR0", "", {
430 {0x03B9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR1", "", {
433 {0x03BA, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_ESCR0", "", {
436 {0x03BB, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_ESCR1", "", {
439 {0x03BC, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_RAT_ESCR0", "", {
442 {0x03BD, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_RAT_ESCR1", "", {
445 {0x03BE, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_SSU_ESCR0", "", {
448 {0x03C0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_ESCR0", "", {
451 {0x03C1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_ESCR1", "", {
454 {0x03C2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TBPU_ESCR0", "", {
457 {0x03C3, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TBPU_ESCR1", "", {
460 {0x03C4, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TC_ESCR0", "", {
463 {0x03C5, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TC_ESCR1", "", {
466 {0x03C8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IX_ESCR0", "", {
469 {0x03C9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IX_ESCR1", "", {
472 {0x03CA, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ALF_ESCR0", "", {
475 {0x03CB, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ALF_ESCR1", "", {
478 {0x03CC, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR2", "", {
481 {0x03CD, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR3", "", {
484 {0x03E0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR4", "", {
487 {0x03E1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR5", "", {
490 {0x03F0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TC_PRECISE_EVENT", "", {
493 {0x03F1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PEBS_ENABLE", "", {
496 {0x03F2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PEBS_MATRIX_VERT", "", {
499 {0x0400, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_CTL", "", {
502 {0x0401, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_STATUS", "", {
505 {0x0402, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_ADDR", "", {
508 {0x0403, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_MISC", "", {
511 {0x0404, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_CTL", "", {
514 {0x0405, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_STATUS", "", {
517 {0x0406, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_ADDR", "", {
520 {0x0408, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC2_CTL", "", {
523 {0x0409, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC2_STATUS", "", {
526 {0x040C, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_CTL", "", {
529 {0x040D, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_STATUS", "", {
532 {0x040E, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_ADDR", "", {
535 {0x040F, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_MISC", "", {
538 {0x0600, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_DS_AREA", "", {