]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/Include/Register/Msr/PentiumMMsr.h
UefiCpuPkg/Include: Add Pentium M MSR include file
[mirror_edk2.git] / UefiCpuPkg / Include / Register / Msr / PentiumMMsr.h
1 /** @file
2 MSR Definitions for Pentium M Processors.
3
4 Provides defines for Machine Specific Registers(MSR) indexes. Data structures
5 are provided for MSRs that contain one or more bit fields. If the MSR value
6 returned is a single 32-bit or 64-bit value, then a data structure is not
7 provided for that MSR.
8
9 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
10 This program and the accompanying materials
11 are licensed and made available under the terms and conditions of the BSD License
12 which accompanies this distribution. The full text of the license may be found at
13 http://opensource.org/licenses/bsd-license.php
14
15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17
18 @par Specification Reference:
19 Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
20 December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-18.
21
22 **/
23
24 #ifndef __PENTIUM_M_MSR_H__
25 #define __PENTIUM_M_MSR_H__
26
27 #include <Register/ArchitecturalMsr.h>
28
29 /**
30 See Section 35.20, "MSRs in Pentium Processors.".
31
32 @param ECX MSR_PENTIUM_M_P5_MC_ADDR (0x00000000)
33 @param EAX Lower 32-bits of MSR value.
34 @param EDX Upper 32-bits of MSR value.
35
36 <b>Example usage</b>
37 @code
38 UINT64 Msr;
39
40 Msr = AsmReadMsr64 (MSR_PENTIUM_M_P5_MC_ADDR);
41 AsmWriteMsr64 (MSR_PENTIUM_M_P5_MC_ADDR, Msr);
42 @endcode
43 **/
44 #define MSR_PENTIUM_M_P5_MC_ADDR 0x00000000
45
46
47 /**
48 See Section 35.20, "MSRs in Pentium Processors.".
49
50 @param ECX MSR_PENTIUM_M_P5_MC_TYPE (0x00000001)
51 @param EAX Lower 32-bits of MSR value.
52 @param EDX Upper 32-bits of MSR value.
53
54 <b>Example usage</b>
55 @code
56 UINT64 Msr;
57
58 Msr = AsmReadMsr64 (MSR_PENTIUM_M_P5_MC_TYPE);
59 AsmWriteMsr64 (MSR_PENTIUM_M_P5_MC_TYPE, Msr);
60 @endcode
61 **/
62 #define MSR_PENTIUM_M_P5_MC_TYPE 0x00000001
63
64
65 /**
66 Processor Hard Power-On Configuration (R/W) Enables and disables processor
67 features. (R) Indicates current processor configuration.
68
69 @param ECX MSR_PENTIUM_M_EBL_CR_POWERON (0x0000002A)
70 @param EAX Lower 32-bits of MSR value.
71 Described by the type MSR_PENTIUM_M_EBL_CR_POWERON_REGISTER.
72 @param EDX Upper 32-bits of MSR value.
73 Described by the type MSR_PENTIUM_M_EBL_CR_POWERON_REGISTER.
74
75 <b>Example usage</b>
76 @code
77 MSR_PENTIUM_M_EBL_CR_POWERON_REGISTER Msr;
78
79 Msr.Uint64 = AsmReadMsr64 (MSR_PENTIUM_M_EBL_CR_POWERON);
80 AsmWriteMsr64 (MSR_PENTIUM_M_EBL_CR_POWERON, Msr.Uint64);
81 @endcode
82 **/
83 #define MSR_PENTIUM_M_EBL_CR_POWERON 0x0000002A
84
85 /**
86 MSR information returned for MSR index #MSR_PENTIUM_M_EBL_CR_POWERON
87 **/
88 typedef union {
89 ///
90 /// Individual bit fields
91 ///
92 struct {
93 UINT32 Reserved1:1;
94 ///
95 /// [Bit 1] Data Error Checking Enable (R) 0 = Disabled Always 0 on the
96 /// Pentium M processor.
97 ///
98 UINT32 DataErrorCheckingEnable:1;
99 ///
100 /// [Bit 2] Response Error Checking Enable (R) 0 = Disabled Always 0 on
101 /// the Pentium M processor.
102 ///
103 UINT32 ResponseErrorCheckingEnable:1;
104 ///
105 /// [Bit 3] MCERR# Drive Enable (R) 0 = Disabled Always 0 on the Pentium
106 /// M processor.
107 ///
108 UINT32 MCERR_DriveEnable:1;
109 ///
110 /// [Bit 4] Address Parity Enable (R) 0 = Disabled Always 0 on the Pentium
111 /// M processor.
112 ///
113 UINT32 AddressParityEnable:1;
114 UINT32 Reserved2:2;
115 ///
116 /// [Bit 7] BINIT# Driver Enable (R) 1 = Enabled; 0 = Disabled Always 0 on
117 /// the Pentium M processor.
118 ///
119 UINT32 BINIT_DriverEnable:1;
120 ///
121 /// [Bit 8] Output Tri-state Enabled (R/O) 1 = Enabled; 0 = Disabled.
122 ///
123 UINT32 OutputTriStateEnable:1;
124 ///
125 /// [Bit 9] Execute BIST (R/O) 1 = Enabled; 0 = Disabled.
126 ///
127 UINT32 ExecuteBIST:1;
128 ///
129 /// [Bit 10] MCERR# Observation Enabled (R/O) 1 = Enabled; 0 = Disabled
130 /// Always 0 on the Pentium M processor.
131 ///
132 UINT32 MCERR_ObservationEnabled:1;
133 UINT32 Reserved3:1;
134 ///
135 /// [Bit 12] BINIT# Observation Enabled (R/O) 1 = Enabled; 0 = Disabled
136 /// Always 0 on the Pentium M processor.
137 ///
138 UINT32 BINIT_ObservationEnabled:1;
139 UINT32 Reserved4:1;
140 ///
141 /// [Bit 14] 1 MByte Power on Reset Vector (R/O) 1 = 1 MByte; 0 = 4 GBytes
142 /// Always 0 on the Pentium M processor.
143 ///
144 UINT32 ResetVector:1;
145 UINT32 Reserved5:1;
146 ///
147 /// [Bits 17:16] APIC Cluster ID (R/O) Always 00B on the Pentium M
148 /// processor.
149 ///
150 UINT32 APICClusterID:2;
151 ///
152 /// [Bit 18] System Bus Frequency (R/O) 1. = 100 MHz 2. = Reserved Always
153 /// 0 on the Pentium M processor.
154 ///
155 UINT32 SystemBusFrequency:1;
156 UINT32 Reserved6:1;
157 ///
158 /// [Bits 21:20] Symmetric Arbitration ID (R/O) Always 00B on the Pentium
159 /// M processor.
160 ///
161 UINT32 SymmetricArbitrationID:2;
162 ///
163 /// [Bits 26:22] Clock Frequency Ratio (R/O).
164 ///
165 UINT32 ClockFrequencyRatio:5;
166 UINT32 Reserved7:5;
167 UINT32 Reserved8:32;
168 } Bits;
169 ///
170 /// All bit fields as a 32-bit value
171 ///
172 UINT32 Uint32;
173 ///
174 /// All bit fields as a 64-bit value
175 ///
176 UINT64 Uint64;
177 } MSR_PENTIUM_M_EBL_CR_POWERON_REGISTER;
178
179
180 /**
181 Last Branch Record n (R/W) One of 8 last branch record registers on the last
182 branch record stack: bits 31-0 hold the 'from' address and bits 63-32 hold
183 the to address. See also: - Last Branch Record Stack TOS at 1C9H - Section
184 17.12, "Last Branch, Interrupt, and Exception Recording (Pentium M
185 Processors)".
186
187 @param ECX MSR_PENTIUM_M_LASTBRANCH_n
188 @param EAX Lower 32-bits of MSR value.
189 @param EDX Upper 32-bits of MSR value.
190
191 <b>Example usage</b>
192 @code
193 UINT64 Msr;
194
195 Msr = AsmReadMsr64 (MSR_PENTIUM_M_LASTBRANCH_0);
196 AsmWriteMsr64 (MSR_PENTIUM_M_LASTBRANCH_0, Msr);
197 @endcode
198 @{
199 **/
200 #define MSR_PENTIUM_M_LASTBRANCH_0 0x00000040
201 #define MSR_PENTIUM_M_LASTBRANCH_1 0x00000041
202 #define MSR_PENTIUM_M_LASTBRANCH_2 0x00000042
203 #define MSR_PENTIUM_M_LASTBRANCH_3 0x00000043
204 #define MSR_PENTIUM_M_LASTBRANCH_4 0x00000044
205 #define MSR_PENTIUM_M_LASTBRANCH_5 0x00000045
206 #define MSR_PENTIUM_M_LASTBRANCH_6 0x00000046
207 #define MSR_PENTIUM_M_LASTBRANCH_7 0x00000047
208 /// @}
209
210
211 /**
212 Reserved.
213
214 @param ECX MSR_PENTIUM_M_BBL_CR_CTL (0x00000119)
215 @param EAX Lower 32-bits of MSR value.
216 @param EDX Upper 32-bits of MSR value.
217
218 <b>Example usage</b>
219 @code
220 UINT64 Msr;
221
222 Msr = AsmReadMsr64 (MSR_PENTIUM_M_BBL_CR_CTL);
223 AsmWriteMsr64 (MSR_PENTIUM_M_BBL_CR_CTL, Msr);
224 @endcode
225 **/
226 #define MSR_PENTIUM_M_BBL_CR_CTL 0x00000119
227
228
229 /**
230
231
232 @param ECX MSR_PENTIUM_M_BBL_CR_CTL3 (0x0000011E)
233 @param EAX Lower 32-bits of MSR value.
234 Described by the type MSR_PENTIUM_M_BBL_CR_CTL3_REGISTER.
235 @param EDX Upper 32-bits of MSR value.
236 Described by the type MSR_PENTIUM_M_BBL_CR_CTL3_REGISTER.
237
238 <b>Example usage</b>
239 @code
240 MSR_PENTIUM_M_BBL_CR_CTL3_REGISTER Msr;
241
242 Msr.Uint64 = AsmReadMsr64 (MSR_PENTIUM_M_BBL_CR_CTL3);
243 AsmWriteMsr64 (MSR_PENTIUM_M_BBL_CR_CTL3, Msr.Uint64);
244 @endcode
245 **/
246 #define MSR_PENTIUM_M_BBL_CR_CTL3 0x0000011E
247
248 /**
249 MSR information returned for MSR index #MSR_PENTIUM_M_BBL_CR_CTL3
250 **/
251 typedef union {
252 ///
253 /// Individual bit fields
254 ///
255 struct {
256 ///
257 /// [Bit 0] L2 Hardware Enabled (RO) 1 = If the L2 is hardware-enabled 0 =
258 /// Indicates if the L2 is hardware-disabled.
259 ///
260 UINT32 L2HardwareEnabled:1;
261 UINT32 Reserved1:4;
262 ///
263 /// [Bit 5] ECC Check Enable (RO) This bit enables ECC checking on the
264 /// cache data bus. ECC is always generated on write cycles. 1. = Disabled
265 /// (default) 2. = Enabled For the Pentium M processor, ECC checking on
266 /// the cache data bus is always enabled.
267 ///
268 UINT32 ECCCheckEnable:1;
269 UINT32 Reserved2:2;
270 ///
271 /// [Bit 8] L2 Enabled (R/W) 1 = L2 cache has been initialized 0 =
272 /// Disabled (default) Until this bit is set the processor will not
273 /// respond to the WBINVD instruction or the assertion of the FLUSH# input.
274 ///
275 UINT32 L2Enabled:1;
276 UINT32 Reserved3:14;
277 ///
278 /// [Bit 23] L2 Not Present (RO) 1. = L2 Present 2. = L2 Not Present.
279 ///
280 UINT32 L2NotPresent:1;
281 UINT32 Reserved4:8;
282 UINT32 Reserved5:32;
283 } Bits;
284 ///
285 /// All bit fields as a 32-bit value
286 ///
287 UINT32 Uint32;
288 ///
289 /// All bit fields as a 64-bit value
290 ///
291 UINT64 Uint64;
292 } MSR_PENTIUM_M_BBL_CR_CTL3_REGISTER;
293
294
295 /**
296
297
298 @param ECX MSR_PENTIUM_M_THERM2_CTL (0x0000019D)
299 @param EAX Lower 32-bits of MSR value.
300 Described by the type MSR_PENTIUM_M_THERM2_CTL_REGISTER.
301 @param EDX Upper 32-bits of MSR value.
302 Described by the type MSR_PENTIUM_M_THERM2_CTL_REGISTER.
303
304 <b>Example usage</b>
305 @code
306 MSR_PENTIUM_M_THERM2_CTL_REGISTER Msr;
307
308 Msr.Uint64 = AsmReadMsr64 (MSR_PENTIUM_M_THERM2_CTL);
309 AsmWriteMsr64 (MSR_PENTIUM_M_THERM2_CTL, Msr.Uint64);
310 @endcode
311 **/
312 #define MSR_PENTIUM_M_THERM2_CTL 0x0000019D
313
314 /**
315 MSR information returned for MSR index #MSR_PENTIUM_M_THERM2_CTL
316 **/
317 typedef union {
318 ///
319 /// Individual bit fields
320 ///
321 struct {
322 UINT32 Reserved1:16;
323 ///
324 /// [Bit 16] TM_SELECT (R/W) Mode of automatic thermal monitor: 1. =
325 /// Thermal Monitor 1 (thermally-initiated on-die modulation of the
326 /// stop-clock duty cycle) 2. = Thermal Monitor 2 (thermally-initiated
327 /// frequency transitions) If bit 3 of the IA32_MISC_ENABLE register is
328 /// cleared, TM_SELECT has no effect. Neither TM1 nor TM2 will be enabled.
329 ///
330 UINT32 TM_SELECT:1;
331 UINT32 Reserved2:15;
332 UINT32 Reserved3:32;
333 } Bits;
334 ///
335 /// All bit fields as a 32-bit value
336 ///
337 UINT32 Uint32;
338 ///
339 /// All bit fields as a 64-bit value
340 ///
341 UINT64 Uint64;
342 } MSR_PENTIUM_M_THERM2_CTL_REGISTER;
343
344
345 /**
346 Enable Miscellaneous Processor Features (R/W) Allows a variety of processor
347 functions to be enabled and disabled.
348
349 @param ECX MSR_PENTIUM_M_IA32_MISC_ENABLE (0x000001A0)
350 @param EAX Lower 32-bits of MSR value.
351 Described by the type MSR_PENTIUM_M_IA32_MISC_ENABLE_REGISTER.
352 @param EDX Upper 32-bits of MSR value.
353 Described by the type MSR_PENTIUM_M_IA32_MISC_ENABLE_REGISTER.
354
355 <b>Example usage</b>
356 @code
357 MSR_PENTIUM_M_IA32_MISC_ENABLE_REGISTER Msr;
358
359 Msr.Uint64 = AsmReadMsr64 (MSR_PENTIUM_M_IA32_MISC_ENABLE);
360 AsmWriteMsr64 (MSR_PENTIUM_M_IA32_MISC_ENABLE, Msr.Uint64);
361 @endcode
362 **/
363 #define MSR_PENTIUM_M_IA32_MISC_ENABLE 0x000001A0
364
365 /**
366 MSR information returned for MSR index #MSR_PENTIUM_M_IA32_MISC_ENABLE
367 **/
368 typedef union {
369 ///
370 /// Individual bit fields
371 ///
372 struct {
373 UINT32 Reserved1:3;
374 ///
375 /// [Bit 3] Automatic Thermal Control Circuit Enable (R/W) 1 = Setting
376 /// this bit enables the thermal control circuit (TCC) portion of the
377 /// Intel Thermal Monitor feature. This allows processor clocks to be
378 /// automatically modulated based on the processor's thermal sensor
379 /// operation. 0 = Disabled (default). The automatic thermal control
380 /// circuit enable bit determines if the thermal control circuit (TCC)
381 /// will be activated when the processor's internal thermal sensor
382 /// determines the processor is about to exceed its maximum operating
383 /// temperature. When the TCC is activated and TM1 is enabled, the
384 /// processors clocks will be forced to a 50% duty cycle. BIOS must enable
385 /// this feature. The bit should not be confused with the on-demand
386 /// thermal control circuit enable bit.
387 ///
388 UINT32 AutomaticThermalControlCircuit:1;
389 UINT32 Reserved2:3;
390 ///
391 /// [Bit 7] Performance Monitoring Available (R) 1 = Performance
392 /// monitoring enabled 0 = Performance monitoring disabled.
393 ///
394 UINT32 PerformanceMonitoring:1;
395 UINT32 Reserved3:2;
396 ///
397 /// [Bit 10] FERR# Multiplexing Enable (R/W) 1 = FERR# asserted by the
398 /// processor to indicate a pending break event within the processor 0 =
399 /// Indicates compatible FERR# signaling behavior This bit must be set to
400 /// 1 to support XAPIC interrupt model usage.
401 /// **Branch Trace Storage Unavailable (RO)** 1 = Processor doesn't
402 /// support branch trace storage (BTS) 0 = BTS is supported
403 ///
404 UINT32 FERR:1;
405 ///
406 /// [Bit 11] Branch Trace Storage Unavailable (RO)
407 /// 1 = Processor doesn't support branch trace storage (BTS)
408 /// 0 = BTS is supported
409 ///
410 UINT32 BTS:1;
411 ///
412 /// [Bit 12] Precise Event Based Sampling Unavailable (RO) 1 = Processor
413 /// does not support precise event-based sampling (PEBS); 0 = PEBS is
414 /// supported. The Pentium M processor does not support PEBS.
415 ///
416 UINT32 PEBS:1;
417 UINT32 Reserved5:3;
418 ///
419 /// [Bit 16] Enhanced Intel SpeedStep Technology Enable (R/W) 1 =
420 /// Enhanced Intel SpeedStep Technology enabled. On the Pentium M
421 /// processor, this bit may be configured to be read-only.
422 ///
423 UINT32 EIST:1;
424 UINT32 Reserved6:6;
425 ///
426 /// [Bit 23] xTPR Message Disable (R/W) When set to 1, xTPR messages are
427 /// disabled. xTPR messages are optional messages that allow the processor
428 /// to inform the chipset of its priority. The default is processor
429 /// specific.
430 ///
431 UINT32 xTPR_Message_Disable:1;
432 UINT32 Reserved7:8;
433 UINT32 Reserved8:32;
434 } Bits;
435 ///
436 /// All bit fields as a 32-bit value
437 ///
438 UINT32 Uint32;
439 ///
440 /// All bit fields as a 64-bit value
441 ///
442 UINT64 Uint64;
443 } MSR_PENTIUM_M_IA32_MISC_ENABLE_REGISTER;
444
445
446 /**
447 Last Branch Record Stack TOS (R/W) Contains an index (bits 0-3) that points
448 to the MSR containing the most recent branch record. See also: -
449 MSR_LASTBRANCH_0_FROM_IP (at 40H) - Section 17.12, "Last Branch, Interrupt,
450 and Exception Recording (Pentium M Processors)".
451
452 @param ECX MSR_PENTIUM_M_LASTBRANCH_TOS (0x000001C9)
453 @param EAX Lower 32-bits of MSR value.
454 @param EDX Upper 32-bits of MSR value.
455
456 <b>Example usage</b>
457 @code
458 UINT64 Msr;
459
460 Msr = AsmReadMsr64 (MSR_PENTIUM_M_LASTBRANCH_TOS);
461 AsmWriteMsr64 (MSR_PENTIUM_M_LASTBRANCH_TOS, Msr);
462 @endcode
463 **/
464 #define MSR_PENTIUM_M_LASTBRANCH_TOS 0x000001C9
465
466
467 /**
468 Debug Control (R/W) Controls how several debug features are used. Bit
469 definitions are discussed in the referenced section. See Section 17.12,
470 "Last Branch, Interrupt, and Exception Recording (Pentium M Processors).".
471
472 @param ECX MSR_PENTIUM_M_DEBUGCTLB (0x000001D9)
473 @param EAX Lower 32-bits of MSR value.
474 @param EDX Upper 32-bits of MSR value.
475
476 <b>Example usage</b>
477 @code
478 UINT64 Msr;
479
480 Msr = AsmReadMsr64 (MSR_PENTIUM_M_DEBUGCTLB);
481 AsmWriteMsr64 (MSR_PENTIUM_M_DEBUGCTLB, Msr);
482 @endcode
483 **/
484 #define MSR_PENTIUM_M_DEBUGCTLB 0x000001D9
485
486
487 /**
488 Last Exception Record To Linear IP (R) This area contains a pointer to the
489 target of the last branch instruction that the processor executed prior to
490 the last exception that was generated or the last interrupt that was
491 handled. See Section 17.12, "Last Branch, Interrupt, and Exception Recording
492 (Pentium M Processors)" and Section 17.13.2, "Last Branch and Last Exception
493 MSRs.".
494
495 @param ECX MSR_PENTIUM_M_LER_TO_LIP (0x000001DD)
496 @param EAX Lower 32-bits of MSR value.
497 @param EDX Upper 32-bits of MSR value.
498
499 <b>Example usage</b>
500 @code
501 UINT64 Msr;
502
503 Msr = AsmReadMsr64 (MSR_PENTIUM_M_LER_TO_LIP);
504 @endcode
505 **/
506 #define MSR_PENTIUM_M_LER_TO_LIP 0x000001DD
507
508
509 /**
510 Last Exception Record From Linear IP (R) Contains a pointer to the last
511 branch instruction that the processor executed prior to the last exception
512 that was generated or the last interrupt that was handled. See Section
513 17.12, "Last Branch, Interrupt, and Exception Recording (Pentium M
514 Processors)" and Section 17.13.2, "Last Branch and Last Exception MSRs.".
515
516 @param ECX MSR_PENTIUM_M_LER_FROM_LIP (0x000001DE)
517 @param EAX Lower 32-bits of MSR value.
518 @param EDX Upper 32-bits of MSR value.
519
520 <b>Example usage</b>
521 @code
522 UINT64 Msr;
523
524 Msr = AsmReadMsr64 (MSR_PENTIUM_M_LER_FROM_LIP);
525 @endcode
526 **/
527 #define MSR_PENTIUM_M_LER_FROM_LIP 0x000001DE
528
529
530 /**
531 See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
532
533 @param ECX MSR_PENTIUM_M_MC4_CTL (0x0000040C)
534 @param EAX Lower 32-bits of MSR value.
535 @param EDX Upper 32-bits of MSR value.
536
537 <b>Example usage</b>
538 @code
539 UINT64 Msr;
540
541 Msr = AsmReadMsr64 (MSR_PENTIUM_M_MC4_CTL);
542 AsmWriteMsr64 (MSR_PENTIUM_M_MC4_CTL, Msr);
543 @endcode
544 **/
545 #define MSR_PENTIUM_M_MC4_CTL 0x0000040C
546
547
548 /**
549 See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
550
551 @param ECX MSR_PENTIUM_M_MC4_STATUS (0x0000040D)
552 @param EAX Lower 32-bits of MSR value.
553 @param EDX Upper 32-bits of MSR value.
554
555 <b>Example usage</b>
556 @code
557 UINT64 Msr;
558
559 Msr = AsmReadMsr64 (MSR_PENTIUM_M_MC4_STATUS);
560 AsmWriteMsr64 (MSR_PENTIUM_M_MC4_STATUS, Msr);
561 @endcode
562 **/
563 #define MSR_PENTIUM_M_MC4_STATUS 0x0000040D
564
565
566 /**
567 See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC4_ADDR register is
568 either not implemented or contains no address if the ADDRV flag in the
569 MSR_MC4_STATUS register is clear. When not implemented in the processor, all
570 reads and writes to this MSR will cause a general-protection exception.
571
572 @param ECX MSR_PENTIUM_M_MC4_ADDR (0x0000040E)
573 @param EAX Lower 32-bits of MSR value.
574 @param EDX Upper 32-bits of MSR value.
575
576 <b>Example usage</b>
577 @code
578 UINT64 Msr;
579
580 Msr = AsmReadMsr64 (MSR_PENTIUM_M_MC4_ADDR);
581 AsmWriteMsr64 (MSR_PENTIUM_M_MC4_ADDR, Msr);
582 @endcode
583 **/
584 #define MSR_PENTIUM_M_MC4_ADDR 0x0000040E
585
586
587 /**
588 See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
589
590 @param ECX MSR_PENTIUM_M_MC3_CTL (0x00000410)
591 @param EAX Lower 32-bits of MSR value.
592 @param EDX Upper 32-bits of MSR value.
593
594 <b>Example usage</b>
595 @code
596 UINT64 Msr;
597
598 Msr = AsmReadMsr64 (MSR_PENTIUM_M_MC3_CTL);
599 AsmWriteMsr64 (MSR_PENTIUM_M_MC3_CTL, Msr);
600 @endcode
601 **/
602 #define MSR_PENTIUM_M_MC3_CTL 0x00000410
603
604
605 /**
606 See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
607
608 @param ECX MSR_PENTIUM_M_MC3_STATUS (0x00000411)
609 @param EAX Lower 32-bits of MSR value.
610 @param EDX Upper 32-bits of MSR value.
611
612 <b>Example usage</b>
613 @code
614 UINT64 Msr;
615
616 Msr = AsmReadMsr64 (MSR_PENTIUM_M_MC3_STATUS);
617 AsmWriteMsr64 (MSR_PENTIUM_M_MC3_STATUS, Msr);
618 @endcode
619 **/
620 #define MSR_PENTIUM_M_MC3_STATUS 0x00000411
621
622
623 /**
624 See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC3_ADDR register is
625 either not implemented or contains no address if the ADDRV flag in the
626 MSR_MC3_STATUS register is clear. When not implemented in the processor, all
627 reads and writes to this MSR will cause a general-protection exception.
628
629 @param ECX MSR_PENTIUM_M_MC3_ADDR (0x00000412)
630 @param EAX Lower 32-bits of MSR value.
631 @param EDX Upper 32-bits of MSR value.
632
633 <b>Example usage</b>
634 @code
635 UINT64 Msr;
636
637 Msr = AsmReadMsr64 (MSR_PENTIUM_M_MC3_ADDR);
638 AsmWriteMsr64 (MSR_PENTIUM_M_MC3_ADDR, Msr);
639 @endcode
640 **/
641 #define MSR_PENTIUM_M_MC3_ADDR 0x00000412
642
643 #endif