1 /* SPDX-License-Identifier: GPL-2.0-only */
5 int intel_pentium4_early_probe(const struct targetdef
*target
, const struct cpuid_t
*id
) {
6 return ((VENDOR_INTEL
== id
->vendor
) &&
11 const struct msrdef intel_pentium4_early_msrs
[] = {
12 {0x0, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_P5_MC_ADDR", "", {
15 {0x1, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_P5_MC_TYPE", "", {
18 {0x17, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PLATFORM_ID", "", {
21 {0x2a, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_EBC_HARD_POWERON", "", {
24 {0x2b, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_EBC_SOFT_POWRON", "", {
27 {0x19c, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_THERM_STATUS", "", {
30 {0x1a0, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MISC_ENABLE", "", {
33 {0x200, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE0", "", {
36 {0x201, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK0", "", {
39 {0x202, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE1", "", {
42 {0x203, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK1", "", {
45 {0x204, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE2", "", {
48 {0x205, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK2", "", {
51 {0x206, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE3", "", {
54 {0x207, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK3", "", {
57 {0x208, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE4", "", {
60 {0x209, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK4", "", {
63 {0x20a, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE5", "", {
66 {0x20b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK5", "", {
69 {0x20c, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE6", "", {
72 {0x20d, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK6", "", {
75 {0x20e, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSBASE7", "", {
78 {0x20f, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_PHYSMASK7", "", {
81 {0x250, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX64K_00000", "", {
84 {0x258, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX16K_80000", "", {
87 {0x259, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX16K_A0000", "", {
90 {0x268, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_C0000", "", {
93 {0x269, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_C8000", "", {
96 {0x26a, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_D0000", "", {
99 {0x26b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_D8000", "", {
102 {0x26c, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_E0000", "", {
105 {0x26d, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_E8000", "", {
108 {0x26e, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_F0000", "", {
111 {0x26f, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_FIX4K_F8000", "", {
114 {0x2ff, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRR_DEF_TYPE", "", {
117 {0x300, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER0", "", {
120 {0x301, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER1", "", {
123 {0x302, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER2", "", {
126 {0x303, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_COUNTER3", "", {
129 {0x304, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER0", "", {
132 {0x305, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER1", "", {
135 {0x306, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER2", "", {
138 {0x307, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_COUNTER3", "", {
141 {0x308, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER0", "", {
144 {0x309, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER1", "", {
147 {0x30a, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER2", "", {
150 {0x30b, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_COUNTER3", "", {
153 {0x30c, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER0", "", {
156 {0x30d, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER1", "", {
159 {0x30e, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER2", "", {
162 {0x30f, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER3", "", {
165 {0x310, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER4", "", {
168 {0x311, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_COUNTER5", "", {
171 {0x360, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR0", "", {
174 {0x361, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR1", "", {
177 {0x362, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR2", "", {
180 {0x363, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_CCCR3", "", {
183 {0x364, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR0", "", {
186 {0x365, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR1", "", {
189 {0x366, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR2", "", {
192 {0x367, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_CCCR3", "", {
195 {0x368, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR0", "", {
198 {0x369, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR1", "", {
201 {0x36a, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR2", "", {
204 {0x36b, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_CCCR3", "", {
207 {0x36c, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR0", "", {
210 {0x36d, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR1", "", {
213 {0x36e, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR2", "", {
216 {0x36f, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR3", "", {
219 {0x370, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR4", "", {
222 {0x371, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_CCCR5", "", {
225 {0x3a0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BSU_ESCR0", "", {
228 {0x3a1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BSU_ESCR1", "", {
231 {0x3a2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FSB_ESCR0", "", {
234 {0x3a3, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FSB_ESCR1", "", {
237 {0x3a4, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FIRM_ESCR0", "", {
240 {0x3a5, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FIRM_ESCR1", "", {
243 {0x3a6, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_ESCR0", "", {
246 {0x3a7, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_FLAME_ESCR1", "", {
249 {0x3a8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_DAC_ESCR0", "", {
252 {0x3a9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_DAC_ESCR1", "", {
255 {0x3aa, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MOB_ESCR0", "", {
258 {0x3ab, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MOB_ESCR1", "", {
261 {0x3ac, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PMH_ESCR0", "", {
264 {0x3ad, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PMH_ESCR1", "", {
267 {0x3ae, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_SAAT_ESCR0", "", {
270 {0x3af, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_SAAT_ESCR1", "", {
273 {0x3b0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_U2L_ESCR0", "", {
276 {0x3b1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_U2L_ESCR1", "", {
279 {0x3b2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_ESCR0", "", {
282 {0x3b3, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_ESCR1", "", {
285 {0x3b4, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IS_ESCR0", "", {
288 {0x3b5, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_BPU_ESCR1", "", {
291 {0x3b6, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ITLB_ESCR0", "", {
294 {0x3b7, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ITLB_ESCR1", "", {
297 {0x3b8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR0", "", {
300 {0x3b9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR1", "", {
303 {0x3ba, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_ESCR0", "", {
306 {0x3bb, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IQ_ESCR1", "", {
309 {0x3bc, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_RAT_ESCR0", "", {
312 {0x3bd, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_RAT_ESCR1", "", {
315 {0x3be, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_SSU_ESCR0", "", {
318 {0x3c0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_ESCR0", "", {
321 {0x3c1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MS_ESCR1", "", {
324 {0x3c2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TBPU_ESCR0", "", {
327 {0x3c3, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TBPU_ESCR1", "", {
330 {0x3c4, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TC_ESCR0", "", {
333 {0x3c5, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TC_ESCR1", "", {
336 {0x3c8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IX_ESCR0", "", {
339 {0x3c9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_IX_ESCR1", "", {
342 {0x3ca, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ALF_ESCR0", "", {
345 {0x3cb, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_ALF_ESCR1", "", {
348 {0x3cc, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR2", "", {
351 {0x3cd, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR3", "", {
354 {0x3e0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR4", "", {
357 {0x3e1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_CRU_ESCR5", "", {
360 {0x3f0, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_TC_PRECISE_EVENT", "", {
363 {0x3f1, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PEBS_ENABLE", "", {
366 {0x3f2, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_PEBS_MATRIX_VERT", "", {
369 {0x400, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_CTL", "", {
372 {0x401, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_STATUS", "", {
375 {0x402, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_ADDR", "", {
378 {0x403, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC0_MISC", "", {
381 {0x404, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_CTL", "", {
384 {0x405, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_STATUS", "", {
387 {0x406, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_ADDR", "", {
390 {0x407, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC1_MISC", "", {
393 {0x408, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC2_CTL", "", {
396 {0x409, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC2_STATUS", "", {
399 {0x40a, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC2_ADDR", "", {
402 {0x40b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC2_MISC", "", {
405 {0x40c, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_CTL", "", {
408 {0x40d, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_STATUS", "", {
411 {0x40e, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_ADDR", "", {
414 {0x40f, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC3_MISC", "", {
417 {0x410, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC4_CTL", "", {
420 {0x411, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC4_STATUS", "", {
423 {0x412, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC4_ADDR", "", {
426 {0x413, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MC4_MISC", "", {
429 {0x10, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_TIME_STAMP_COUNTER", "", {
432 {0x1b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_APIC_BASE", "", {
435 {0x8b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_BIOS_SIGN_ID", "", {
438 {0xfe, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MTRRCAP", "", {
441 {0x174, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_SYSENTER_CS", "", {
444 {0x175, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_SYSENTER_ESP", "", {
447 {0x176, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_SYSENTER_EIP", "", {
450 {0x179, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MCG_CAP", "", {
453 {0x17a, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MCG_STATUS", "", {
456 {0x17b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MCG_CTL", "", {
459 {0x180, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RAX", "", {
462 {0x181, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RBX", "", {
465 {0x182, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RCX", "", {
468 {0x183, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RDX", "", {
471 {0x184, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RSI", "", {
474 {0x185, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RDI", "", {
477 {0x186, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RBP", "", {
480 {0x187, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RSP", "", {
483 {0x188, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RFLAGS", "", {
486 {0x189, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_RIP", "", {
489 {0x18a, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_MISC", "", {
492 {0x190, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R8", "", {
495 {0x191, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R9", "", {
498 {0x192, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R10", "", {
501 {0x193, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R11", "", {
504 {0x194, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R12", "", {
507 {0x195, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R13", "", {
510 {0x196, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R14", "", {
513 {0x197, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_MCG_R15", "", {
516 {0x19a, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_CLOCK_MODULATION", "", {
519 {0x19b, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_THERM_INTERRUPT", "", {
522 {0x1a0, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_MISC_ENABLE", "", {
525 {0x1d7, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LER_FROM_LIP", "", {
528 {0x1d8, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LER_TO_LIP", "", {
531 {0x1d9, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_DEBUGCTLA", "", {
534 {0x1da, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LASTBRANCH_TOS", "", {
537 {0x1db, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LASTBRANCH_0", "", {
540 {0x1dd, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LASTBRANCH_2", "", {
543 {0x1de, MSRTYPE_RDWR
, MSR2(0, 0), "MSR_LASTBRANCH_3", "", {
546 {0x277, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_PAT", "", {
549 {0x600, MSRTYPE_RDWR
, MSR2(0, 0), "IA32_DS_AREA", "", {