2 MSR Definitions for Intel processors based on the Silvermont microarchitecture.
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
9 Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
10 SPDX-License-Identifier: BSD-2-Clause-Patent
12 @par Specification Reference:
13 Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 4,
14 May 2018, Volume 4: Model-Specific-Registers (MSR)
18 #ifndef __SILVERMONT_MSR_H__
19 #define __SILVERMONT_MSR_H__
21 #include <Register/Intel/ArchitecturalMsr.h>
24 Is Intel processors based on the Silvermont microarchitecture?
26 @param DisplayFamily Display Family ID
27 @param DisplayModel Display Model ID
29 @retval TRUE Yes, it is.
30 @retval FALSE No, it isn't.
32 #define IS_SILVERMONT_PROCESSOR(DisplayFamily, DisplayModel) \
33 (DisplayFamily == 0x06 && \
35 DisplayModel == 0x37 || \
36 DisplayModel == 0x4A || \
37 DisplayModel == 0x4D || \
38 DisplayModel == 0x5A || \
39 DisplayModel == 0x5D \
44 Module. Model Specific Platform ID (R).
46 @param ECX MSR_SILVERMONT_PLATFORM_ID (0x00000017)
47 @param EAX Lower 32-bits of MSR value.
48 Described by the type MSR_SILVERMONT_PLATFORM_ID_REGISTER.
49 @param EDX Upper 32-bits of MSR value.
50 Described by the type MSR_SILVERMONT_PLATFORM_ID_REGISTER.
54 MSR_SILVERMONT_PLATFORM_ID_REGISTER Msr;
56 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PLATFORM_ID);
58 @note MSR_SILVERMONT_PLATFORM_ID is defined as MSR_PLATFORM_ID in SDM.
60 #define MSR_SILVERMONT_PLATFORM_ID 0x00000017
63 MSR information returned for MSR index #MSR_SILVERMONT_PLATFORM_ID
67 /// Individual bit fields
72 /// [Bits 12:8] Maximum Qualified Ratio (R) The maximum allowed bus ratio.
74 UINT32 MaximumQualifiedRatio
: 5;
75 UINT32 Reserved2
: 19;
76 UINT32 Reserved3
: 18;
78 /// [Bits 52:50] See Table 2-2.
80 UINT32 PlatformId
: 3;
81 UINT32 Reserved4
: 11;
84 /// All bit fields as a 64-bit value
87 } MSR_SILVERMONT_PLATFORM_ID_REGISTER
;
90 Module. Processor Hard Power-On Configuration (R/W) Writes ignored.
92 @param ECX MSR_SILVERMONT_EBL_CR_POWERON (0x0000002A)
93 @param EAX Lower 32-bits of MSR value.
94 Described by the type MSR_SILVERMONT_EBL_CR_POWERON_REGISTER.
95 @param EDX Upper 32-bits of MSR value.
96 Described by the type MSR_SILVERMONT_EBL_CR_POWERON_REGISTER.
100 MSR_SILVERMONT_EBL_CR_POWERON_REGISTER Msr;
102 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_EBL_CR_POWERON);
103 AsmWriteMsr64 (MSR_SILVERMONT_EBL_CR_POWERON, Msr.Uint64);
105 @note MSR_SILVERMONT_EBL_CR_POWERON is defined as MSR_EBL_CR_POWERON in SDM.
107 #define MSR_SILVERMONT_EBL_CR_POWERON 0x0000002A
110 MSR information returned for MSR index #MSR_SILVERMONT_EBL_CR_POWERON
114 /// Individual bit fields
117 UINT32 Reserved1
: 32;
118 UINT32 Reserved2
: 32;
121 /// All bit fields as a 32-bit value
125 /// All bit fields as a 64-bit value
128 } MSR_SILVERMONT_EBL_CR_POWERON_REGISTER
;
131 Core. SMI Counter (R/O).
133 @param ECX MSR_SILVERMONT_SMI_COUNT (0x00000034)
134 @param EAX Lower 32-bits of MSR value.
135 Described by the type MSR_SILVERMONT_SMI_COUNT_REGISTER.
136 @param EDX Upper 32-bits of MSR value.
137 Described by the type MSR_SILVERMONT_SMI_COUNT_REGISTER.
141 MSR_SILVERMONT_SMI_COUNT_REGISTER Msr;
143 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_SMI_COUNT);
145 @note MSR_SILVERMONT_SMI_COUNT is defined as MSR_SMI_COUNT in SDM.
147 #define MSR_SILVERMONT_SMI_COUNT 0x00000034
150 MSR information returned for MSR index #MSR_SILVERMONT_SMI_COUNT
154 /// Individual bit fields
158 /// [Bits 31:0] SMI Count (R/O) Running count of SMI events since last
161 UINT32 SMICount
: 32;
162 UINT32 Reserved
: 32;
165 /// All bit fields as a 32-bit value
169 /// All bit fields as a 64-bit value
172 } MSR_SILVERMONT_SMI_COUNT_REGISTER
;
175 Core. Control Features in Intel 64 Processor (R/W). See Table 2-2.
177 @param ECX MSR_IA32_SILVERMONT_FEATURE_CONTROL (0x0000003A)
178 @param EAX Lower 32-bits of MSR value.
179 Described by the type
180 MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER.
181 @param EDX Upper 32-bits of MSR value.
182 Described by the type
183 MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER.
187 MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER Msr;
189 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_IA32_FEATURE_CONTROL);
190 AsmWriteMsr64 (MSR_SILVERMONT_IA32_FEATURE_CONTROL, Msr.Uint64);
192 @note MSR_SILVERMONT_IA32_FEATURE_CONTROL is defined as IA32_FEATURE_CONTROL in SDM.
194 #define MSR_SILVERMONT_IA32_FEATURE_CONTROL 0x0000003A
197 MSR information returned for MSR index #MSR_SILVERMONT_IA32_FEATURE_CONTROL
201 /// Individual bit fields
205 /// [Bit 0] Lock (R/WL).
208 UINT32 Reserved1
: 1;
210 /// [Bit 2] Enable VMX outside SMX operation (R/WL).
212 UINT32 EnableVmxOutsideSmx
: 1;
213 UINT32 Reserved2
: 29;
214 UINT32 Reserved3
: 32;
217 /// All bit fields as a 32-bit value
221 /// All bit fields as a 64-bit value
224 } MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER
;
227 Core. Last Branch Record n From IP (R/W) One of eight pairs of last branch
228 record registers on the last branch record stack. The From_IP part of the
229 stack contains pointers to the source instruction. See also: - Last Branch
230 Record Stack TOS at 1C9H - Section 17.5 and record format in Section
233 @param ECX MSR_SILVERMONT_LASTBRANCH_n_FROM_IP
234 @param EAX Lower 32-bits of MSR value.
235 @param EDX Upper 32-bits of MSR value.
241 Msr = AsmReadMsr64 (MSR_SILVERMONT_LASTBRANCH_0_FROM_IP);
242 AsmWriteMsr64 (MSR_SILVERMONT_LASTBRANCH_0_FROM_IP, Msr);
244 @note MSR_SILVERMONT_LASTBRANCH_0_FROM_IP is defined as MSR_LASTBRANCH_0_FROM_IP in SDM.
245 MSR_SILVERMONT_LASTBRANCH_1_FROM_IP is defined as MSR_LASTBRANCH_1_FROM_IP in SDM.
246 MSR_SILVERMONT_LASTBRANCH_2_FROM_IP is defined as MSR_LASTBRANCH_2_FROM_IP in SDM.
247 MSR_SILVERMONT_LASTBRANCH_3_FROM_IP is defined as MSR_LASTBRANCH_3_FROM_IP in SDM.
248 MSR_SILVERMONT_LASTBRANCH_4_FROM_IP is defined as MSR_LASTBRANCH_4_FROM_IP in SDM.
249 MSR_SILVERMONT_LASTBRANCH_5_FROM_IP is defined as MSR_LASTBRANCH_5_FROM_IP in SDM.
250 MSR_SILVERMONT_LASTBRANCH_6_FROM_IP is defined as MSR_LASTBRANCH_6_FROM_IP in SDM.
251 MSR_SILVERMONT_LASTBRANCH_7_FROM_IP is defined as MSR_LASTBRANCH_7_FROM_IP in SDM.
254 #define MSR_SILVERMONT_LASTBRANCH_0_FROM_IP 0x00000040
255 #define MSR_SILVERMONT_LASTBRANCH_1_FROM_IP 0x00000041
256 #define MSR_SILVERMONT_LASTBRANCH_2_FROM_IP 0x00000042
257 #define MSR_SILVERMONT_LASTBRANCH_3_FROM_IP 0x00000043
258 #define MSR_SILVERMONT_LASTBRANCH_4_FROM_IP 0x00000044
259 #define MSR_SILVERMONT_LASTBRANCH_5_FROM_IP 0x00000045
260 #define MSR_SILVERMONT_LASTBRANCH_6_FROM_IP 0x00000046
261 #define MSR_SILVERMONT_LASTBRANCH_7_FROM_IP 0x00000047
265 Core. Last Branch Record n To IP (R/W) One of eight pairs of last branch
266 record registers on the last branch record stack. The To_IP part of the
267 stack contains pointers to the destination instruction.
269 @param ECX MSR_SILVERMONT_LASTBRANCH_n_TO_IP
270 @param EAX Lower 32-bits of MSR value.
271 @param EDX Upper 32-bits of MSR value.
277 Msr = AsmReadMsr64 (MSR_SILVERMONT_LASTBRANCH_0_TO_IP);
278 AsmWriteMsr64 (MSR_SILVERMONT_LASTBRANCH_0_TO_IP, Msr);
280 @note MSR_SILVERMONT_LASTBRANCH_0_TO_IP is defined as MSR_LASTBRANCH_0_TO_IP in SDM.
281 MSR_SILVERMONT_LASTBRANCH_1_TO_IP is defined as MSR_LASTBRANCH_1_TO_IP in SDM.
282 MSR_SILVERMONT_LASTBRANCH_2_TO_IP is defined as MSR_LASTBRANCH_2_TO_IP in SDM.
283 MSR_SILVERMONT_LASTBRANCH_3_TO_IP is defined as MSR_LASTBRANCH_3_TO_IP in SDM.
284 MSR_SILVERMONT_LASTBRANCH_4_TO_IP is defined as MSR_LASTBRANCH_4_TO_IP in SDM.
285 MSR_SILVERMONT_LASTBRANCH_5_TO_IP is defined as MSR_LASTBRANCH_5_TO_IP in SDM.
286 MSR_SILVERMONT_LASTBRANCH_6_TO_IP is defined as MSR_LASTBRANCH_6_TO_IP in SDM.
287 MSR_SILVERMONT_LASTBRANCH_7_TO_IP is defined as MSR_LASTBRANCH_7_TO_IP in SDM.
290 #define MSR_SILVERMONT_LASTBRANCH_0_TO_IP 0x00000060
291 #define MSR_SILVERMONT_LASTBRANCH_1_TO_IP 0x00000061
292 #define MSR_SILVERMONT_LASTBRANCH_2_TO_IP 0x00000062
293 #define MSR_SILVERMONT_LASTBRANCH_3_TO_IP 0x00000063
294 #define MSR_SILVERMONT_LASTBRANCH_4_TO_IP 0x00000064
295 #define MSR_SILVERMONT_LASTBRANCH_5_TO_IP 0x00000065
296 #define MSR_SILVERMONT_LASTBRANCH_6_TO_IP 0x00000066
297 #define MSR_SILVERMONT_LASTBRANCH_7_TO_IP 0x00000067
301 Module. Scalable Bus Speed(RO) This field indicates the intended scalable
302 bus clock speed for processors based on Silvermont microarchitecture:.
304 @param ECX MSR_SILVERMONT_FSB_FREQ (0x000000CD)
305 @param EAX Lower 32-bits of MSR value.
306 Described by the type MSR_SILVERMONT_FSB_FREQ_REGISTER.
307 @param EDX Upper 32-bits of MSR value.
308 Described by the type MSR_SILVERMONT_FSB_FREQ_REGISTER.
312 MSR_SILVERMONT_FSB_FREQ_REGISTER Msr;
314 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_FSB_FREQ);
316 @note MSR_SILVERMONT_FSB_FREQ is defined as MSR_FSB_FREQ in SDM.
318 #define MSR_SILVERMONT_FSB_FREQ 0x000000CD
321 MSR information returned for MSR index #MSR_SILVERMONT_FSB_FREQ
325 /// Individual bit fields
329 /// [Bits 3:0] Scalable Bus Speed
331 /// Silvermont Processor Family
332 /// ---------------------------
339 /// Airmont Processor Family
340 /// ---------------------------
351 UINT32 ScalableBusSpeed
: 4;
352 UINT32 Reserved1
: 28;
353 UINT32 Reserved2
: 32;
356 /// All bit fields as a 32-bit value
360 /// All bit fields as a 64-bit value
363 } MSR_SILVERMONT_FSB_FREQ_REGISTER
;
366 Package. Platform Information: Contains power management and other model
367 specific features enumeration. See http://biosbits.org.
369 @param ECX MSR_SILVERMONT_PLATFORM_INFO (0x000000CE)
370 @param EAX Lower 32-bits of MSR value.
371 Described by the type MSR_SILVERMONT_PLATFORM_INFO_REGISTER.
372 @param EDX Upper 32-bits of MSR value.
373 Described by the type MSR_SILVERMONT_PLATFORM_INFO_REGISTER.
377 MSR_SILVERMONT_PLATFORM_INFO_REGISTER Msr;
379 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PLATFORM_INFO);
380 AsmWriteMsr64 (MSR_SILVERMONT_PLATFORM_INFO, Msr.Uint64);
383 #define MSR_SILVERMONT_PLATFORM_INFO 0x000000CE
386 MSR information returned for MSR index #MSR_SILVERMONT_PLATFORM_INFO
390 /// Individual bit fields
393 UINT32 Reserved1
: 8;
395 /// [Bits 15:8] Package. Maximum Non-Turbo Ratio (R/O) This is the ratio
396 /// of the maximum frequency that does not require turbo. Frequency =
397 /// ratio * Scalable Bus Frequency.
399 UINT32 MaximumNon_TurboRatio
: 8;
400 UINT32 Reserved2
: 16;
401 UINT32 Reserved3
: 32;
404 /// All bit fields as a 32-bit value
408 /// All bit fields as a 64-bit value
411 } MSR_SILVERMONT_PLATFORM_INFO_REGISTER
;
414 Module. C-State Configuration Control (R/W) Note: C-state values are
415 processor specific C-state code names, unrelated to MWAIT extension C-state
416 parameters or ACPI CStates. See http://biosbits.org.
418 @param ECX MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL (0x000000E2)
419 @param EAX Lower 32-bits of MSR value.
420 Described by the type MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL_REGISTER.
421 @param EDX Upper 32-bits of MSR value.
422 Described by the type MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL_REGISTER.
426 MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL_REGISTER Msr;
428 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL);
429 AsmWriteMsr64 (MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL, Msr.Uint64);
431 @note MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL is defined as MSR_PKG_CST_CONFIG_CONTROL in SDM.
433 #define MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL 0x000000E2
436 MSR information returned for MSR index #MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL
440 /// Individual bit fields
444 /// [Bits 2:0] Package C-State Limit (R/W) Specifies the lowest
445 /// processor-specific C-state code name (consuming the least power). for
446 /// the package. The default is set as factory-configured package C-state
447 /// limit. The following C-state code name encodings are supported: 000b:
448 /// C0 (no package C-sate support) 001b: C1 (Behavior is the same as 000b)
449 /// 100b: C4 110b: C6 111b: C7 (Silvermont only).
452 UINT32 Reserved1
: 7;
454 /// [Bit 10] I/O MWAIT Redirection Enable (R/W) When set, will map
455 /// IO_read instructions sent to IO register specified by
456 /// MSR_PMG_IO_CAPTURE_BASE to MWAIT instructions.
459 UINT32 Reserved2
: 4;
461 /// [Bit 15] CFG Lock (R/WO) When set, lock bits 15:0 of this register
462 /// until next reset.
465 UINT32 Reserved3
: 16;
466 UINT32 Reserved4
: 32;
469 /// All bit fields as a 32-bit value
473 /// All bit fields as a 64-bit value
476 } MSR_SILVERMONT_PKG_CST_CONFIG_CONTROL_REGISTER
;
479 Module. Power Management IO Redirection in C-state (R/W) See
482 @param ECX MSR_SILVERMONT_PMG_IO_CAPTURE_BASE (0x000000E4)
483 @param EAX Lower 32-bits of MSR value.
484 Described by the type MSR_SILVERMONT_PMG_IO_CAPTURE_BASE_REGISTER.
485 @param EDX Upper 32-bits of MSR value.
486 Described by the type MSR_SILVERMONT_PMG_IO_CAPTURE_BASE_REGISTER.
490 MSR_SILVERMONT_PMG_IO_CAPTURE_BASE_REGISTER Msr;
492 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PMG_IO_CAPTURE_BASE);
493 AsmWriteMsr64 (MSR_SILVERMONT_PMG_IO_CAPTURE_BASE, Msr.Uint64);
495 @note MSR_SILVERMONT_PMG_IO_CAPTURE_BASE is defined as MSR_PMG_IO_CAPTURE_BASE in SDM.
497 #define MSR_SILVERMONT_PMG_IO_CAPTURE_BASE 0x000000E4
500 MSR information returned for MSR index #MSR_SILVERMONT_PMG_IO_CAPTURE_BASE
504 /// Individual bit fields
508 /// [Bits 15:0] LVL_2 Base Address (R/W) Specifies the base address
509 /// visible to software for IO redirection. If IO MWAIT Redirection is
510 /// enabled, reads to this address will be consumed by the power
511 /// management logic and decoded to MWAIT instructions. When IO port
512 /// address redirection is enabled, this is the IO port address reported
513 /// to the OS/software.
515 UINT32 Lvl2Base
: 16;
517 /// [Bits 18:16] C-state Range (R/W) Specifies the encoding value of the
518 /// maximum C-State code name to be included when IO read to MWAIT
519 /// redirection is enabled by MSR_PKG_CST_CONFIG_CONTROL[bit10]: 100b - C4
520 /// is the max C-State to include 110b - C6 is the max C-State to include
521 /// 111b - C7 is the max C-State to include.
523 UINT32 CStateRange
: 3;
524 UINT32 Reserved1
: 13;
525 UINT32 Reserved2
: 32;
528 /// All bit fields as a 32-bit value
532 /// All bit fields as a 64-bit value
535 } MSR_SILVERMONT_PMG_IO_CAPTURE_BASE_REGISTER
;
540 @param ECX MSR_SILVERMONT_BBL_CR_CTL3 (0x0000011E)
541 @param EAX Lower 32-bits of MSR value.
542 Described by the type MSR_SILVERMONT_BBL_CR_CTL3_REGISTER.
543 @param EDX Upper 32-bits of MSR value.
544 Described by the type MSR_SILVERMONT_BBL_CR_CTL3_REGISTER.
548 MSR_SILVERMONT_BBL_CR_CTL3_REGISTER Msr;
550 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_BBL_CR_CTL3);
551 AsmWriteMsr64 (MSR_SILVERMONT_BBL_CR_CTL3, Msr.Uint64);
553 @note MSR_SILVERMONT_BBL_CR_CTL3 is defined as MSR_BBL_CR_CTL3 in SDM.
555 #define MSR_SILVERMONT_BBL_CR_CTL3 0x0000011E
558 MSR information returned for MSR index #MSR_SILVERMONT_BBL_CR_CTL3
562 /// Individual bit fields
566 /// [Bit 0] L2 Hardware Enabled (RO) 1 = If the L2 is hardware-enabled 0 =
567 /// Indicates if the L2 is hardware-disabled.
569 UINT32 L2HardwareEnabled
: 1;
570 UINT32 Reserved1
: 7;
572 /// [Bit 8] L2 Enabled. (R/W) 1 = L2 cache has been initialized 0 =
573 /// Disabled (default) Until this bit is set the processor will not
574 /// respond to the WBINVD instruction or the assertion of the FLUSH# input.
576 UINT32 L2Enabled
: 1;
577 UINT32 Reserved2
: 14;
579 /// [Bit 23] L2 Not Present (RO) 1. = L2 Present 2. = L2 Not Present.
581 UINT32 L2NotPresent
: 1;
582 UINT32 Reserved3
: 8;
583 UINT32 Reserved4
: 32;
586 /// All bit fields as a 32-bit value
590 /// All bit fields as a 64-bit value
593 } MSR_SILVERMONT_BBL_CR_CTL3_REGISTER
;
596 Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP
597 handler to handle unsuccessful read of this MSR.
599 @param ECX MSR_SILVERMONT_FEATURE_CONFIG (0x0000013C)
600 @param EAX Lower 32-bits of MSR value.
601 Described by the type MSR_SILVERMONT_FEATURE_CONFIG_REGISTER.
602 @param EDX Upper 32-bits of MSR value.
603 Described by the type MSR_SILVERMONT_FEATURE_CONFIG_REGISTER.
607 MSR_SILVERMONT_FEATURE_CONFIG_REGISTER Msr;
609 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_FEATURE_CONFIG);
610 AsmWriteMsr64 (MSR_SILVERMONT_FEATURE_CONFIG, Msr.Uint64);
612 @note MSR_SILVERMONT_FEATURE_CONFIG is defined as MSR_FEATURE_CONFIG in SDM.
614 #define MSR_SILVERMONT_FEATURE_CONFIG 0x0000013C
617 MSR information returned for MSR index #MSR_SILVERMONT_FEATURE_CONFIG
621 /// Individual bit fields
625 /// [Bits 1:0] AES Configuration (RW-L) Upon a successful read of this
626 /// MSR, the configuration of AES instruction set availability is as
627 /// follows: 11b: AES instructions are not available until next RESET.
628 /// otherwise, AES instructions are available. Note, AES instruction set
629 /// is not available if read is unsuccessful. If the configuration is not
630 /// 01b, AES instruction can be mis-configured if a privileged agent
631 /// unintentionally writes 11b.
633 UINT32 AESConfiguration
: 2;
634 UINT32 Reserved1
: 30;
635 UINT32 Reserved2
: 32;
638 /// All bit fields as a 32-bit value
642 /// All bit fields as a 64-bit value
645 } MSR_SILVERMONT_FEATURE_CONFIG_REGISTER
;
648 Enable Misc. Processor Features (R/W) Allows a variety of processor
649 functions to be enabled and disabled.
651 @param ECX MSR_SILVERMONT_IA32_MISC_ENABLE (0x000001A0)
652 @param EAX Lower 32-bits of MSR value.
653 Described by the type MSR_SILVERMONT_IA32_MISC_ENABLE_REGISTER.
654 @param EDX Upper 32-bits of MSR value.
655 Described by the type MSR_SILVERMONT_IA32_MISC_ENABLE_REGISTER.
659 MSR_SILVERMONT_IA32_MISC_ENABLE_REGISTER Msr;
661 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_IA32_MISC_ENABLE);
662 AsmWriteMsr64 (MSR_SILVERMONT_IA32_MISC_ENABLE, Msr.Uint64);
664 @note MSR_SILVERMONT_IA32_MISC_ENABLE is defined as IA32_MISC_ENABLE in SDM.
666 #define MSR_SILVERMONT_IA32_MISC_ENABLE 0x000001A0
669 MSR information returned for MSR index #MSR_SILVERMONT_IA32_MISC_ENABLE
673 /// Individual bit fields
677 /// [Bit 0] Core. Fast-Strings Enable See Table 2-2.
679 UINT32 FastStrings
: 1;
680 UINT32 Reserved1
: 2;
682 /// [Bit 3] Module. Automatic Thermal Control Circuit Enable (R/W) See
683 /// Table 2-2. Default value is 0.
685 UINT32 AutomaticThermalControlCircuit
: 1;
686 UINT32 Reserved2
: 3;
688 /// [Bit 7] Core. Performance Monitoring Available (R) See Table 2-2.
690 UINT32 PerformanceMonitoring
: 1;
691 UINT32 Reserved3
: 3;
693 /// [Bit 11] Core. Branch Trace Storage Unavailable (RO) See Table 2-2.
697 /// [Bit 12] Core. Processor Event Based Sampling Unavailable (RO) See
701 UINT32 Reserved4
: 3;
703 /// [Bit 16] Module. Enhanced Intel SpeedStep Technology Enable (R/W) See
707 UINT32 Reserved5
: 1;
709 /// [Bit 18] Core. ENABLE MONITOR FSM (R/W) See Table 2-2.
712 UINT32 Reserved6
: 3;
714 /// [Bit 22] Core. Limit CPUID Maxval (R/W) See Table 2-2.
716 UINT32 LimitCpuidMaxval
: 1;
718 /// [Bit 23] Module. xTPR Message Disable (R/W) See Table 2-2.
720 UINT32 xTPR_Message_Disable
: 1;
721 UINT32 Reserved7
: 8;
722 UINT32 Reserved8
: 2;
724 /// [Bit 34] Core. XD Bit Disable (R/W) See Table 2-2.
727 UINT32 Reserved9
: 3;
729 /// [Bit 38] Module. Turbo Mode Disable (R/W) When set to 1 on processors
730 /// that support Intel Turbo Boost Technology, the turbo mode feature is
731 /// disabled and the IDA_Enable feature flag will be clear (CPUID.06H:
732 /// EAX[1]=0). When set to a 0 on processors that support IDA, CPUID.06H:
733 /// EAX[1] reports the processor's support of turbo mode is enabled. Note:
734 /// the power-on default value is used by BIOS to detect hardware support
735 /// of turbo mode. If power-on default value is 1, turbo mode is available
736 /// in the processor. If power-on default value is 0, turbo mode is not
739 UINT32 TurboModeDisable
: 1;
740 UINT32 Reserved10
: 25;
743 /// All bit fields as a 64-bit value
746 } MSR_SILVERMONT_IA32_MISC_ENABLE_REGISTER
;
751 @param ECX MSR_SILVERMONT_TEMPERATURE_TARGET (0x000001A2)
752 @param EAX Lower 32-bits of MSR value.
753 Described by the type MSR_SILVERMONT_TEMPERATURE_TARGET_REGISTER.
754 @param EDX Upper 32-bits of MSR value.
755 Described by the type MSR_SILVERMONT_TEMPERATURE_TARGET_REGISTER.
759 MSR_SILVERMONT_TEMPERATURE_TARGET_REGISTER Msr;
761 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_TEMPERATURE_TARGET);
762 AsmWriteMsr64 (MSR_SILVERMONT_TEMPERATURE_TARGET, Msr.Uint64);
764 @note MSR_SILVERMONT_TEMPERATURE_TARGET is defined as MSR_TEMPERATURE_TARGET in SDM.
766 #define MSR_SILVERMONT_TEMPERATURE_TARGET 0x000001A2
769 MSR information returned for MSR index #MSR_SILVERMONT_TEMPERATURE_TARGET
773 /// Individual bit fields
776 UINT32 Reserved1
: 16;
778 /// [Bits 23:16] Temperature Target (R) The default thermal throttling or
779 /// PROCHOT# activation temperature in degree C, The effective temperature
780 /// for thermal throttling or PROCHOT# activation is "Temperature Target"
781 /// + "Target Offset".
783 UINT32 TemperatureTarget
: 8;
785 /// [Bits 29:24] Target Offset (R/W) Specifies an offset in degrees C to
786 /// adjust the throttling and PROCHOT# activation temperature from the
787 /// default target specified in TEMPERATURE_TARGET (bits 23:16).
789 UINT32 TargetOffset
: 6;
790 UINT32 Reserved2
: 2;
791 UINT32 Reserved3
: 32;
794 /// All bit fields as a 32-bit value
798 /// All bit fields as a 64-bit value
801 } MSR_SILVERMONT_TEMPERATURE_TARGET_REGISTER
;
804 Miscellaneous Feature Control (R/W).
806 @param ECX MSR_SILVERMONT_MISC_FEATURE_CONTROL (0x000001A4)
807 @param EAX Lower 32-bits of MSR value.
808 Described by the type MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER.
809 @param EDX Upper 32-bits of MSR value.
810 Described by the type MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER.
814 MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER Msr;
816 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_MISC_FEATURE_CONTROL);
817 AsmWriteMsr64 (MSR_SILVERMONT_MISC_FEATURE_CONTROL, Msr.Uint64);
819 @note MSR_SILVERMONT_MISC_FEATURE_CONTROL is defined as MSR_MISC_FEATURE_CONTROL in SDM.
821 #define MSR_SILVERMONT_MISC_FEATURE_CONTROL 0x000001A4
824 MSR information returned for MSR index #MSR_SILVERMONT_MISC_FEATURE_CONTROL
828 /// Individual bit fields
832 /// [Bit 0] Core. L2 Hardware Prefetcher Disable (R/W) If 1, disables the
833 /// L2 hardware prefetcher, which fetches additional lines of code or data
834 /// into the L2 cache.
836 UINT32 L2HardwarePrefetcherDisable
: 1;
837 UINT32 Reserved1
: 1;
839 /// [Bit 2] Core. DCU Hardware Prefetcher Disable (R/W) If 1, disables
840 /// the L1 data cache prefetcher, which fetches the next cache line into
843 UINT32 DCUHardwarePrefetcherDisable
: 1;
844 UINT32 Reserved2
: 29;
845 UINT32 Reserved3
: 32;
848 /// All bit fields as a 32-bit value
852 /// All bit fields as a 64-bit value
855 } MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER
;
858 Module. Offcore Response Event Select Register (R/W).
860 @param ECX MSR_SILVERMONT_OFFCORE_RSP_0 (0x000001A6)
861 @param EAX Lower 32-bits of MSR value.
862 @param EDX Upper 32-bits of MSR value.
868 Msr = AsmReadMsr64 (MSR_SILVERMONT_OFFCORE_RSP_0);
869 AsmWriteMsr64 (MSR_SILVERMONT_OFFCORE_RSP_0, Msr);
871 @note MSR_SILVERMONT_OFFCORE_RSP_0 is defined as MSR_OFFCORE_RSP_0 in SDM.
873 #define MSR_SILVERMONT_OFFCORE_RSP_0 0x000001A6
876 Module. Offcore Response Event Select Register (R/W).
878 @param ECX MSR_SILVERMONT_OFFCORE_RSP_1 (0x000001A7)
879 @param EAX Lower 32-bits of MSR value.
880 @param EDX Upper 32-bits of MSR value.
886 Msr = AsmReadMsr64 (MSR_SILVERMONT_OFFCORE_RSP_1);
887 AsmWriteMsr64 (MSR_SILVERMONT_OFFCORE_RSP_1, Msr);
889 @note MSR_SILVERMONT_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.
891 #define MSR_SILVERMONT_OFFCORE_RSP_1 0x000001A7
894 Package. Maximum Ratio Limit of Turbo Mode (RW).
896 @param ECX MSR_SILVERMONT_TURBO_RATIO_LIMIT (0x000001AD)
897 @param EAX Lower 32-bits of MSR value.
898 Described by the type MSR_SILVERMONT_TURBO_RATIO_LIMIT_REGISTER.
899 @param EDX Upper 32-bits of MSR value.
900 Described by the type MSR_SILVERMONT_TURBO_RATIO_LIMIT_REGISTER.
904 MSR_SILVERMONT_TURBO_RATIO_LIMIT_REGISTER Msr;
906 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_TURBO_RATIO_LIMIT);
907 AsmWriteMsr64 (MSR_SILVERMONT_TURBO_RATIO_LIMIT, Msr.Uint64);
909 @note MSR_SILVERMONT_TURBO_RATIO_LIMIT is defined as MSR_TURBO_RATIO_LIMIT in SDM.
911 #define MSR_SILVERMONT_TURBO_RATIO_LIMIT 0x000001AD
914 MSR information returned for MSR index #MSR_SILVERMONT_TURBO_RATIO_LIMIT
918 /// Individual bit fields
922 /// [Bits 7:0] Package. Maximum Ratio Limit for 1C Maximum turbo ratio
923 /// limit of 1 core active.
925 UINT32 Maximum1C
: 8;
927 /// [Bits 15:8] Package. Maximum Ratio Limit for 2C Maximum turbo ratio
928 /// limit of 2 core active.
930 UINT32 Maximum2C
: 8;
932 /// [Bits 23:16] Package. Maximum Ratio Limit for 3C Maximum turbo ratio
933 /// limit of 3 core active.
935 UINT32 Maximum3C
: 8;
937 /// [Bits 31:24] Package. Maximum Ratio Limit for 4C Maximum turbo ratio
938 /// limit of 4 core active.
940 UINT32 Maximum4C
: 8;
942 /// [Bits 39:32] Package. Maximum Ratio Limit for 5C Maximum turbo ratio
943 /// limit of 5 core active.
945 UINT32 Maximum5C
: 8;
947 /// [Bits 47:40] Package. Maximum Ratio Limit for 6C Maximum turbo ratio
948 /// limit of 6 core active.
950 UINT32 Maximum6C
: 8;
952 /// [Bits 55:48] Package. Maximum Ratio Limit for 7C Maximum turbo ratio
953 /// limit of 7 core active.
955 UINT32 Maximum7C
: 8;
957 /// [Bits 63:56] Package. Maximum Ratio Limit for 8C Maximum turbo ratio
958 /// limit of 8 core active.
960 UINT32 Maximum8C
: 8;
963 /// All bit fields as a 64-bit value
966 } MSR_SILVERMONT_TURBO_RATIO_LIMIT_REGISTER
;
969 Core. Last Branch Record Filtering Select Register (R/W) See Section 17.9.2,
970 "Filtering of Last Branch Records.".
972 @param ECX MSR_SILVERMONT_LBR_SELECT (0x000001C8)
973 @param EAX Lower 32-bits of MSR value.
974 Described by the type MSR_SILVERMONT_LBR_SELECT_REGISTER.
975 @param EDX Upper 32-bits of MSR value.
976 Described by the type MSR_SILVERMONT_LBR_SELECT_REGISTER.
980 MSR_SILVERMONT_LBR_SELECT_REGISTER Msr;
982 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_LBR_SELECT);
983 AsmWriteMsr64 (MSR_SILVERMONT_LBR_SELECT, Msr.Uint64);
985 @note MSR_SILVERMONT_LBR_SELECT is defined as MSR_LBR_SELECT in SDM.
987 #define MSR_SILVERMONT_LBR_SELECT 0x000001C8
990 MSR information returned for MSR index #MSR_SILVERMONT_LBR_SELECT
994 /// Individual bit fields
998 /// [Bit 0] CPL_EQ_0.
1000 UINT32 CPL_EQ_0
: 1;
1002 /// [Bit 1] CPL_NEQ_0.
1004 UINT32 CPL_NEQ_0
: 1;
1010 /// [Bit 3] NEAR_REL_CALL.
1012 UINT32 NEAR_REL_CALL
: 1;
1014 /// [Bit 4] NEAR_IND_CALL.
1016 UINT32 NEAR_IND_CALL
: 1;
1018 /// [Bit 5] NEAR_RET.
1020 UINT32 NEAR_RET
: 1;
1022 /// [Bit 6] NEAR_IND_JMP.
1024 UINT32 NEAR_IND_JMP
: 1;
1026 /// [Bit 7] NEAR_REL_JMP.
1028 UINT32 NEAR_REL_JMP
: 1;
1030 /// [Bit 8] FAR_BRANCH.
1032 UINT32 FAR_BRANCH
: 1;
1033 UINT32 Reserved1
: 23;
1034 UINT32 Reserved2
: 32;
1037 /// All bit fields as a 32-bit value
1041 /// All bit fields as a 64-bit value
1044 } MSR_SILVERMONT_LBR_SELECT_REGISTER
;
1047 Core. Last Branch Record Stack TOS (R/W) Contains an index (bits 0-2) that
1048 points to the MSR containing the most recent branch record. See
1049 MSR_LASTBRANCH_0_FROM_IP.
1051 @param ECX MSR_SILVERMONT_LASTBRANCH_TOS (0x000001C9)
1052 @param EAX Lower 32-bits of MSR value.
1053 @param EDX Upper 32-bits of MSR value.
1055 <b>Example usage</b>
1059 Msr = AsmReadMsr64 (MSR_SILVERMONT_LASTBRANCH_TOS);
1060 AsmWriteMsr64 (MSR_SILVERMONT_LASTBRANCH_TOS, Msr);
1062 @note MSR_SILVERMONT_LASTBRANCH_TOS is defined as MSR_LASTBRANCH_TOS in SDM.
1064 #define MSR_SILVERMONT_LASTBRANCH_TOS 0x000001C9
1067 Core. Last Exception Record From Linear IP (R) Contains a pointer to the
1068 last branch instruction that the processor executed prior to the last
1069 exception that was generated or the last interrupt that was handled.
1071 @param ECX MSR_SILVERMONT_LER_FROM_LIP (0x000001DD)
1072 @param EAX Lower 32-bits of MSR value.
1073 @param EDX Upper 32-bits of MSR value.
1075 <b>Example usage</b>
1079 Msr = AsmReadMsr64 (MSR_SILVERMONT_LER_FROM_LIP);
1081 @note MSR_SILVERMONT_LER_FROM_LIP is defined as MSR_LER_FROM_LIP in SDM.
1083 #define MSR_SILVERMONT_LER_FROM_LIP 0x000001DD
1086 Core. Last Exception Record To Linear IP (R) This area contains a pointer
1087 to the target of the last branch instruction that the processor executed
1088 prior to the last exception that was generated or the last interrupt that
1091 @param ECX MSR_SILVERMONT_LER_TO_LIP (0x000001DE)
1092 @param EAX Lower 32-bits of MSR value.
1093 @param EDX Upper 32-bits of MSR value.
1095 <b>Example usage</b>
1099 Msr = AsmReadMsr64 (MSR_SILVERMONT_LER_TO_LIP);
1101 @note MSR_SILVERMONT_LER_TO_LIP is defined as MSR_LER_TO_LIP in SDM.
1103 #define MSR_SILVERMONT_LER_TO_LIP 0x000001DE
1106 Core. See Table 2-2. See Section 18.6.2.4, "Processor Event Based Sampling
1109 @param ECX MSR_SILVERMONT_PEBS_ENABLE (0x000003F1)
1110 @param EAX Lower 32-bits of MSR value.
1111 Described by the type MSR_SILVERMONT_PEBS_ENABLE_REGISTER.
1112 @param EDX Upper 32-bits of MSR value.
1113 Described by the type MSR_SILVERMONT_PEBS_ENABLE_REGISTER.
1115 <b>Example usage</b>
1117 MSR_SILVERMONT_PEBS_ENABLE_REGISTER Msr;
1119 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PEBS_ENABLE);
1120 AsmWriteMsr64 (MSR_SILVERMONT_PEBS_ENABLE, Msr.Uint64);
1122 @note MSR_SILVERMONT_PEBS_ENABLE is defined as MSR_PEBS_ENABLE in SDM.
1124 #define MSR_SILVERMONT_PEBS_ENABLE 0x000003F1
1127 MSR information returned for MSR index #MSR_SILVERMONT_PEBS_ENABLE
1131 /// Individual bit fields
1135 /// [Bit 0] Enable PEBS for precise event on IA32_PMC0. (R/W).
1138 UINT32 Reserved1
: 31;
1139 UINT32 Reserved2
: 32;
1142 /// All bit fields as a 32-bit value
1146 /// All bit fields as a 64-bit value
1149 } MSR_SILVERMONT_PEBS_ENABLE_REGISTER
;
1152 Package. Note: C-state values are processor specific C-state code names,
1153 unrelated to MWAIT extension C-state parameters or ACPI CStates. Package C6
1154 Residency Counter. (R/O) Value since last reset that this package is in
1155 processor-specific C6 states. Counts at the TSC Frequency.
1157 @param ECX MSR_SILVERMONT_PKG_C6_RESIDENCY (0x000003FA)
1158 @param EAX Lower 32-bits of MSR value.
1159 @param EDX Upper 32-bits of MSR value.
1161 <b>Example usage</b>
1165 Msr = AsmReadMsr64 (MSR_SILVERMONT_PKG_C6_RESIDENCY);
1166 AsmWriteMsr64 (MSR_SILVERMONT_PKG_C6_RESIDENCY, Msr);
1168 @note MSR_SILVERMONT_PKG_C6_RESIDENCY is defined as MSR_PKG_C6_RESIDENCY in SDM.
1170 #define MSR_SILVERMONT_PKG_C6_RESIDENCY 0x000003FA
1173 Core. Note: C-state values are processor specific C-state code names,
1174 unrelated to MWAIT extension C-state parameters or ACPI CStates. CORE C6
1175 Residency Counter. (R/O) Value since last reset that this core is in
1176 processor-specific C6 states. Counts at the TSC Frequency.
1178 @param ECX MSR_SILVERMONT_CORE_C6_RESIDENCY (0x000003FD)
1179 @param EAX Lower 32-bits of MSR value.
1180 @param EDX Upper 32-bits of MSR value.
1182 <b>Example usage</b>
1186 Msr = AsmReadMsr64 (MSR_SILVERMONT_CORE_C6_RESIDENCY);
1187 AsmWriteMsr64 (MSR_SILVERMONT_CORE_C6_RESIDENCY, Msr);
1189 @note MSR_SILVERMONT_CORE_C6_RESIDENCY is defined as MSR_CORE_C6_RESIDENCY in SDM.
1191 #define MSR_SILVERMONT_CORE_C6_RESIDENCY 0x000003FD
1194 Core. Capability Reporting Register of EPT and VPID (R/O) See Table 2-2.
1196 @param ECX MSR_SILVERMONT_IA32_VMX_EPT_VPID_ENUM (0x0000048C)
1197 @param EAX Lower 32-bits of MSR value.
1198 @param EDX Upper 32-bits of MSR value.
1200 <b>Example usage</b>
1204 Msr = AsmReadMsr64 (MSR_SILVERMONT_IA32_VMX_EPT_VPID_ENUM);
1206 @note MSR_SILVERMONT_IA32_VMX_EPT_VPID_ENUM is defined as IA32_VMX_EPT_VPID_ENUM in SDM.
1208 #define MSR_SILVERMONT_IA32_VMX_EPT_VPID_ENUM 0x0000048C
1211 Core. Capability Reporting Register of VM-Function Controls (R/O) See Table
1214 @param ECX MSR_SILVERMONT_IA32_VMX_FMFUNC (0x00000491)
1215 @param EAX Lower 32-bits of MSR value.
1216 @param EDX Upper 32-bits of MSR value.
1218 <b>Example usage</b>
1222 Msr = AsmReadMsr64 (MSR_SILVERMONT_IA32_VMX_FMFUNC);
1224 @note MSR_SILVERMONT_IA32_VMX_FMFUNC is defined as IA32_VMX_FMFUNC in SDM.
1226 #define MSR_SILVERMONT_IA32_VMX_FMFUNC 0x00000491
1229 Core. Note: C-state values are processor specific C-state code names,
1230 unrelated to MWAIT extension C-state parameters or ACPI CStates. CORE C1
1231 Residency Counter. (R/O) Value since last reset that this core is in
1232 processor-specific C1 states. Counts at the TSC frequency.
1234 @param ECX MSR_SILVERMONT_CORE_C1_RESIDENCY (0x00000660)
1235 @param EAX Lower 32-bits of MSR value.
1236 @param EDX Upper 32-bits of MSR value.
1238 <b>Example usage</b>
1242 Msr = AsmReadMsr64 (MSR_SILVERMONT_CORE_C1_RESIDENCY);
1243 AsmWriteMsr64 (MSR_SILVERMONT_CORE_C1_RESIDENCY, Msr);
1245 @note MSR_SILVERMONT_CORE_C1_RESIDENCY is defined as MSR_CORE_C1_RESIDENCY in SDM.
1247 #define MSR_SILVERMONT_CORE_C1_RESIDENCY 0x00000660
1250 Package. Unit Multipliers used in RAPL Interfaces (R/O) See Section 14.9.1,
1253 @param ECX MSR_SILVERMONT_RAPL_POWER_UNIT (0x00000606)
1254 @param EAX Lower 32-bits of MSR value.
1255 Described by the type MSR_SILVERMONT_RAPL_POWER_UNIT_REGISTER.
1256 @param EDX Upper 32-bits of MSR value.
1257 Described by the type MSR_SILVERMONT_RAPL_POWER_UNIT_REGISTER.
1259 <b>Example usage</b>
1261 MSR_SILVERMONT_RAPL_POWER_UNIT_REGISTER Msr;
1263 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_RAPL_POWER_UNIT);
1265 @note MSR_SILVERMONT_RAPL_POWER_UNIT is defined as MSR_RAPL_POWER_UNIT in SDM.
1267 #define MSR_SILVERMONT_RAPL_POWER_UNIT 0x00000606
1270 MSR information returned for MSR index #MSR_SILVERMONT_RAPL_POWER_UNIT
1274 /// Individual bit fields
1278 /// [Bits 3:0] Power Units. Power related information (in milliWatts) is
1279 /// based on the multiplier, 2^PU; where PU is an unsigned integer
1280 /// represented by bits 3:0. Default value is 0101b, indicating power unit
1281 /// is in 32 milliWatts increment.
1283 UINT32 PowerUnits
: 4;
1284 UINT32 Reserved1
: 4;
1286 /// [Bits 12:8] Energy Status Units. Energy related information (in
1287 /// microJoules) is based on the multiplier, 2^ESU; where ESU is an
1288 /// unsigned integer represented by bits 12:8. Default value is 00101b,
1289 /// indicating energy unit is in 32 microJoules increment.
1291 UINT32 EnergyStatusUnits
: 5;
1292 UINT32 Reserved2
: 3;
1294 /// [Bits 19:16] Time Unit. The value is 0000b, indicating time unit is in
1297 UINT32 TimeUnits
: 4;
1298 UINT32 Reserved3
: 12;
1299 UINT32 Reserved4
: 32;
1302 /// All bit fields as a 32-bit value
1306 /// All bit fields as a 64-bit value
1309 } MSR_SILVERMONT_RAPL_POWER_UNIT_REGISTER
;
1312 Package. PKG RAPL Power Limit Control (R/W).
1314 @param ECX MSR_SILVERMONT_PKG_POWER_LIMIT (0x00000610)
1315 @param EAX Lower 32-bits of MSR value.
1316 Described by the type MSR_SILVERMONT_PKG_POWER_LIMIT_REGISTER.
1317 @param EDX Upper 32-bits of MSR value.
1318 Described by the type MSR_SILVERMONT_PKG_POWER_LIMIT_REGISTER.
1320 <b>Example usage</b>
1322 MSR_SILVERMONT_PKG_POWER_LIMIT_REGISTER Msr;
1324 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PKG_POWER_LIMIT);
1325 AsmWriteMsr64 (MSR_SILVERMONT_PKG_POWER_LIMIT, Msr.Uint64);
1327 @note MSR_SILVERMONT_PKG_POWER_LIMIT is defined as MSR_PKG_POWER_LIMIT in SDM.
1329 #define MSR_SILVERMONT_PKG_POWER_LIMIT 0x00000610
1332 MSR information returned for MSR index #MSR_SILVERMONT_PKG_POWER_LIMIT
1336 /// Individual bit fields
1340 /// [Bits 14:0] Package Power Limit #1 (R/W) See Section 14.9.3, "Package
1341 /// RAPL Domain." and MSR_RAPL_POWER_UNIT in Table 2-8.
1345 /// [Bit 15] Enable Power Limit #1. (R/W) See Section 14.9.3, "Package
1350 /// [Bit 16] Package Clamping Limitation #1. (R/W) See Section 14.9.3,
1351 /// "Package RAPL Domain.".
1353 UINT32 ClampingLimit
: 1;
1355 /// [Bits 23:17] Time Window for Power Limit #1. (R/W) in unit of second.
1356 /// If 0 is specified in bits [23:17], defaults to 1 second window.
1359 UINT32 Reserved1
: 8;
1360 UINT32 Reserved2
: 32;
1363 /// All bit fields as a 32-bit value
1367 /// All bit fields as a 64-bit value
1370 } MSR_SILVERMONT_PKG_POWER_LIMIT_REGISTER
;
1373 Package. PKG Energy Status (R/O) See Section 14.9.3, "Package RAPL Domain."
1374 and MSR_RAPL_POWER_UNIT in Table 2-8.
1376 @param ECX MSR_SILVERMONT_PKG_ENERGY_STATUS (0x00000611)
1377 @param EAX Lower 32-bits of MSR value.
1378 @param EDX Upper 32-bits of MSR value.
1380 <b>Example usage</b>
1384 Msr = AsmReadMsr64 (MSR_SILVERMONT_PKG_ENERGY_STATUS);
1386 @note MSR_SILVERMONT_PKG_ENERGY_STATUS is defined as MSR_PKG_ENERGY_STATUS in SDM.
1388 #define MSR_SILVERMONT_PKG_ENERGY_STATUS 0x00000611
1391 Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL Domains."
1392 and MSR_RAPL_POWER_UNIT in Table 2-8.
1394 @param ECX MSR_SILVERMONT_PP0_ENERGY_STATUS (0x00000639)
1395 @param EAX Lower 32-bits of MSR value.
1396 @param EDX Upper 32-bits of MSR value.
1398 <b>Example usage</b>
1402 Msr = AsmReadMsr64 (MSR_SILVERMONT_PP0_ENERGY_STATUS);
1404 @note MSR_SILVERMONT_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.
1406 #define MSR_SILVERMONT_PP0_ENERGY_STATUS 0x00000639
1409 Package. Core C6 demotion policy config MSR. Controls per-core C6 demotion
1410 policy. Writing a value of 0 disables core level HW demotion policy.
1412 @param ECX MSR_SILVERMONT_CC6_DEMOTION_POLICY_CONFIG (0x00000668)
1413 @param EAX Lower 32-bits of MSR value.
1414 @param EDX Upper 32-bits of MSR value.
1416 <b>Example usage</b>
1420 Msr = AsmReadMsr64 (MSR_SILVERMONT_CC6_DEMOTION_POLICY_CONFIG);
1421 AsmWriteMsr64 (MSR_SILVERMONT_CC6_DEMOTION_POLICY_CONFIG, Msr);
1423 @note MSR_SILVERMONT_CC6_DEMOTION_POLICY_CONFIG is defined as MSR_CC6_DEMOTION_POLICY_CONFIG in SDM.
1425 #define MSR_SILVERMONT_CC6_DEMOTION_POLICY_CONFIG 0x00000668
1428 Package. Module C6 demotion policy config MSR. Controls module (i.e. two
1429 cores sharing the second-level cache) C6 demotion policy. Writing a value of
1430 0 disables module level HW demotion policy.
1432 @param ECX MSR_SILVERMONT_MC6_DEMOTION_POLICY_CONFIG (0x00000669)
1433 @param EAX Lower 32-bits of MSR value.
1434 @param EDX Upper 32-bits of MSR value.
1436 <b>Example usage</b>
1440 Msr = AsmReadMsr64 (MSR_SILVERMONT_MC6_DEMOTION_POLICY_CONFIG);
1441 AsmWriteMsr64 (MSR_SILVERMONT_MC6_DEMOTION_POLICY_CONFIG, Msr);
1443 @note MSR_SILVERMONT_MC6_DEMOTION_POLICY_CONFIG is defined as MSR_MC6_DEMOTION_POLICY_CONFIG in SDM.
1445 #define MSR_SILVERMONT_MC6_DEMOTION_POLICY_CONFIG 0x00000669
1448 Module. Module C6 Residency Counter (R/0) Note: C-state values are processor
1449 specific C-state code names, unrelated to MWAIT extension C-state parameters
1450 or ACPI CStates. Time that this module is in module-specific C6 states since
1451 last reset. Counts at 1 Mhz frequency.
1453 @param ECX MSR_SILVERMONT_MC6_RESIDENCY_COUNTER (0x00000664)
1454 @param EAX Lower 32-bits of MSR value.
1455 @param EDX Upper 32-bits of MSR value.
1457 <b>Example usage</b>
1461 Msr = AsmReadMsr64 (MSR_SILVERMONT_MC6_RESIDENCY_COUNTER);
1463 @note MSR_SILVERMONT_MC6_RESIDENCY_COUNTER is defined as MSR_MC6_RESIDENCY_COUNTER in SDM.
1465 #define MSR_SILVERMONT_MC6_RESIDENCY_COUNTER 0x00000664
1468 Package. PKG RAPL Parameter (R/0).
1470 @param ECX MSR_SILVERMONT_PKG_POWER_INFO (0x0000066E)
1471 @param EAX Lower 32-bits of MSR value.
1472 Described by the type MSR_SILVERMONT_PKG_POWER_INFO_REGISTER.
1473 @param EDX Upper 32-bits of MSR value.
1474 Described by the type MSR_SILVERMONT_PKG_POWER_INFO_REGISTER.
1476 <b>Example usage</b>
1478 MSR_SILVERMONT_PKG_POWER_INFO_REGISTER Msr;
1480 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PKG_POWER_INFO);
1482 @note MSR_SILVERMONT_PKG_POWER_INFO is defined as MSR_PKG_POWER_INFO in SDM.
1484 #define MSR_SILVERMONT_PKG_POWER_INFO 0x0000066E
1487 MSR information returned for MSR index #MSR_SILVERMONT_PKG_POWER_INFO
1491 /// Individual bit fields
1495 /// [Bits 14:0] Thermal Spec Power. (R/0) The unsigned integer value is
1496 /// the equivalent of thermal specification power of the package domain.
1497 /// The unit of this field is specified by the "Power Units" field of
1498 /// MSR_RAPL_POWER_UNIT.
1500 UINT32 ThermalSpecPower
: 15;
1501 UINT32 Reserved1
: 17;
1502 UINT32 Reserved2
: 32;
1505 /// All bit fields as a 32-bit value
1509 /// All bit fields as a 64-bit value
1512 } MSR_SILVERMONT_PKG_POWER_INFO_REGISTER
;
1515 Package. PP0 RAPL Power Limit Control (R/W).
1517 @param ECX MSR_SILVERMONT_PP0_POWER_LIMIT (0x00000638)
1518 @param EAX Lower 32-bits of MSR value.
1519 Described by the type MSR_SILVERMONT_PP0_POWER_LIMIT_REGISTER.
1520 @param EDX Upper 32-bits of MSR value.
1521 Described by the type MSR_SILVERMONT_PP0_POWER_LIMIT_REGISTER.
1523 <b>Example usage</b>
1525 MSR_SILVERMONT_PP0_POWER_LIMIT_REGISTER Msr;
1527 Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_PP0_POWER_LIMIT);
1528 AsmWriteMsr64 (MSR_SILVERMONT_PP0_POWER_LIMIT, Msr.Uint64);
1530 @note MSR_SILVERMONT_PP0_POWER_LIMIT is defined as MSR_PP0_POWER_LIMIT in SDM.
1532 #define MSR_SILVERMONT_PP0_POWER_LIMIT 0x00000638
1535 MSR information returned for MSR index #MSR_SILVERMONT_PP0_POWER_LIMIT
1539 /// Individual bit fields
1543 /// [Bits 14:0] PP0 Power Limit #1. (R/W) See Section 14.9.4, "PP0/PP1
1544 /// RAPL Domains." and MSR_RAPL_POWER_UNIT in Table 35-8.
1548 /// [Bit 15] Enable Power Limit #1. (R/W) See Section 14.9.4, "PP0/PP1
1552 UINT32 Reserved1
: 1;
1554 /// [Bits 23:17] Time Window for Power Limit #1. (R/W) Specifies the time
1555 /// duration over which the average power must remain below
1556 /// PP0_POWER_LIMIT #1(14:0). Supported Encodings: 0x0: 1 second time
1557 /// duration. 0x1: 5 second time duration (Default). 0x2: 10 second time
1558 /// duration. 0x3: 15 second time duration. 0x4: 20 second time duration.
1559 /// 0x5: 25 second time duration. 0x6: 30 second time duration. 0x7: 35
1560 /// second time duration. 0x8: 40 second time duration. 0x9: 45 second
1561 /// time duration. 0xA: 50 second time duration. 0xB-0x7F - reserved.
1564 UINT32 Reserved2
: 8;
1565 UINT32 Reserved3
: 32;
1568 /// All bit fields as a 32-bit value
1572 /// All bit fields as a 64-bit value
1575 } MSR_SILVERMONT_PP0_POWER_LIMIT_REGISTER
;