mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/Include: Update MSR header files with SDM (Sep.2016)
https://bugzilla.tianocore.org/show_bug.cgi?id=176 Update MSR header files of processors (excluding Goldmont and Skylake processors) according to Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3, September 2016, Chapter 35 Model-Specific-Registers (MSR). Summary of incompatible changes: General: 1. MSR (address 38EH) IA32_PERF_GLOBAL_STAUS in processor-specific header files has been removed or renamed to IA32_PERF_GLOBAL_STATUS Typo 'STAUS' has been fixed in SDM. If the MSR definition is the same with architectural MSR, we remove it. Otherwise, we rename the MSR. 2. MSRs (address starting from 400H) MSR_MC{X}_{XXX} (like MSR_MC4_STATUS) in processor-specific header files have been removed or renamed to IA32_MC{X}_{XXX} (like IA32_MC4_STATUS) Register name change from 'MSR_MC{X}_{XXX}' to 'IA32_MC{X}_{XXX}' in SDM. If the MSR definition is the same with architectural MSR, we remove it. Otherwise, we rename the MSR. Please note that for those MSRs still have name like 'MSR_MC{X}_{XXX}' in SDM are still kept in processor-specific header files. HaswellMsr.h: 1. MSR (address C80H) IA32_DEBUG_FEATURE has been removed Register name change from 'IA32_DEBUG_FEATURE' to 'IA32_DEBUG_INTERFACE' in SDM. Since the MSR definition is the same with architectural MSR, we remove it. SandyBridgeMsr.h: 1. MSR (address 391H) MSR_UNC_PERF_GLOBAL_CTRL, name change for bit fields 0:3 Bit description change from 'Core {X} select' to 'Slice {X} select' for bit 0:3 in SDM. SilvermontMsr.h: 1. MSR (address 2AH) MSR_EBL_CR_POWERON, structure definition changed Bit description for this MSR is totally changed in SDM, we modify the structure definition to align with it. XeonDMsr.h: 1. MSRs (address 630H to 632H) MSR_PKG_C8_RESIDENCY, MSR_PKG_C9_RESIDENCY and MSR_PKG_C10_RESIDENCY have been removed Those 3 MSRs are not defined for this processor in SDM, we remove them. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
7dede0a219
commit
0f16be6d9e
|
@ -17,15 +17,15 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-1.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.1.
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Appendix A VMX Capability Reporting Facility, Section A.1.
|
September 2016, Appendix A VMX Capability Reporting Facility, Section A.1.
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Appendix A VMX Capability Reporting Facility, Section A.6.
|
September 2016, Appendix A VMX Capability Reporting Facility, Section A.6.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
#define __ARCHITECTURAL_MSR_H__
|
#define __ARCHITECTURAL_MSR_H__
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 35.20, "MSRs in Pentium Processors.". Pentium Processor (05_01H).
|
See Section 35.22, "MSRs in Pentium Processors.". Pentium Processor (05_01H).
|
||||||
|
|
||||||
@param ECX MSR_IA32_P5_MC_ADDR (0x00000000)
|
@param ECX MSR_IA32_P5_MC_ADDR (0x00000000)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 35.20, "MSRs in Pentium Processors.". DF_DM = 05_01H.
|
See Section 35.22, "MSRs in Pentium Processors.". DF_DM = 05_01H.
|
||||||
|
|
||||||
@param ECX MSR_IA32_P5_MC_TYPE (0x00000001)
|
@param ECX MSR_IA32_P5_MC_TYPE (0x00000001)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 17.14, "Time-Stamp Counter.". Introduced at Display Family /
|
See Section 17.15, "Time-Stamp Counter.". Introduced at Display Family /
|
||||||
Display Model 05_01H.
|
Display Model 05_01H.
|
||||||
|
|
||||||
@param ECX MSR_IA32_TIME_STAMP_COUNTER (0x00000010)
|
@param ECX MSR_IA32_TIME_STAMP_COUNTER (0x00000010)
|
||||||
|
@ -295,11 +295,16 @@ typedef union {
|
||||||
/// 6] is set. If CPUID.01H:ECX[6] = 1.
|
/// 6] is set. If CPUID.01H:ECX[6] = 1.
|
||||||
///
|
///
|
||||||
UINT32 SenterGlobalEnable:1;
|
UINT32 SenterGlobalEnable:1;
|
||||||
UINT32 Reserved2:2;
|
UINT32 Reserved2:1;
|
||||||
|
///
|
||||||
|
/// [Bit 17] SGX Launch Control Enable (R/WL): This bit must be set to
|
||||||
|
/// enable runtime reconfiguration of SGX Launch Control via
|
||||||
|
/// IA32_SGXLEPUBKEYHASHn MSR. If CPUID.(EAX=07H, ECX=0H): ECX[30] = 1.
|
||||||
|
///
|
||||||
|
UINT32 SgxLaunchControlEnable:1;
|
||||||
///
|
///
|
||||||
/// [Bit 18] SGX Global Enable (R/WL): This bit must be set to enable SGX
|
/// [Bit 18] SGX Global Enable (R/WL): This bit must be set to enable SGX
|
||||||
/// leaf functions. This bit is supported only if CPUID.1:ECX.[bit 6] is
|
/// leaf functions. If CPUID.(EAX=07H, ECX=0H): EBX[2] = 1.
|
||||||
/// set. If CPUID.(EAX=07H, ECX=0H): EBX[2] = 1.
|
|
||||||
///
|
///
|
||||||
UINT32 SgxEnable:1;
|
UINT32 SgxEnable:1;
|
||||||
UINT32 Reserved3:1;
|
UINT32 Reserved3:1;
|
||||||
|
@ -418,6 +423,37 @@ typedef union {
|
||||||
} MSR_IA32_BIOS_SIGN_ID_REGISTER;
|
} MSR_IA32_BIOS_SIGN_ID_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
IA32_SGXLEPUBKEYHASH[(64*n+63):(64*n)] (R/W) Bits (64*n+63):(64*n) of the
|
||||||
|
SHA256 digest of the SIGSTRUCT.MODULUS for SGX Launch Enclave. On reset, the
|
||||||
|
default value is the digest of Intel's signing key. Read permitted If
|
||||||
|
CPUID.(EAX=12H,ECX=0H):EAX[0]=1, Write permitted if CPUID.(EAX=12H,ECX=0H):
|
||||||
|
EAX[0]=1 && IA32_FEATURE_CONTROL[17] = 1 && IA32_FEATURE_CONTROL[0] = 1.
|
||||||
|
|
||||||
|
@param ECX MSR_IA32_SGXLEPUBKEYHASHn
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_IA32_SGXLEPUBKEYHASHn);
|
||||||
|
AsmWriteMsr64 (MSR_IA32_SGXLEPUBKEYHASHn, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_IA32_SGXLEPUBKEYHASH0 is defined as IA32_SGXLEPUBKEYHASH0 in SDM.
|
||||||
|
MSR_IA32_SGXLEPUBKEYHASH1 is defined as IA32_SGXLEPUBKEYHASH1 in SDM.
|
||||||
|
MSR_IA32_SGXLEPUBKEYHASH2 is defined as IA32_SGXLEPUBKEYHASH2 in SDM.
|
||||||
|
MSR_IA32_SGXLEPUBKEYHASH3 is defined as IA32_SGXLEPUBKEYHASH3 in SDM.
|
||||||
|
@{
|
||||||
|
**/
|
||||||
|
#define MSR_IA32_SGXLEPUBKEYHASH0 0x0000008C
|
||||||
|
#define MSR_IA32_SGXLEPUBKEYHASH1 0x0000008D
|
||||||
|
#define MSR_IA32_SGXLEPUBKEYHASH2 0x0000008E
|
||||||
|
#define MSR_IA32_SGXLEPUBKEYHASH3 0x0000008F
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
SMM Monitor Configuration (R/W). If CPUID.01H: ECX[5]=1 or CPUID.01H: ECX[6] =
|
SMM Monitor Configuration (R/W). If CPUID.01H: ECX[5]=1 or CPUID.01H: ECX[6] =
|
||||||
1.
|
1.
|
||||||
|
@ -1113,7 +1149,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Clock Modulation Control (R/W) See Section 14.7.3, "Software Controlled
|
Clock Modulation Control (R/W) See Section 14.7.3, "Software Controlled
|
||||||
Clock Modulation.". Introduced at Display Family / Display Model 0F_0H.
|
Clock Modulation.". If CPUID.01H:EDX[22] = 1.
|
||||||
|
|
||||||
@param ECX MSR_IA32_CLOCK_MODULATION (0x0000019A)
|
@param ECX MSR_IA32_CLOCK_MODULATION (0x0000019A)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1147,11 +1183,12 @@ typedef union {
|
||||||
UINT32 ExtendedOnDemandClockModulationDutyCycle:1;
|
UINT32 ExtendedOnDemandClockModulationDutyCycle:1;
|
||||||
///
|
///
|
||||||
/// [Bits 3:1] On-Demand Clock Modulation Duty Cycle: Specific encoded
|
/// [Bits 3:1] On-Demand Clock Modulation Duty Cycle: Specific encoded
|
||||||
/// values for target duty cycle modulation.
|
/// values for target duty cycle modulation. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 OnDemandClockModulationDutyCycle:3;
|
UINT32 OnDemandClockModulationDutyCycle:3;
|
||||||
///
|
///
|
||||||
/// [Bit 4] On-Demand Clock Modulation Enable: Set 1 to enable modulation.
|
/// [Bit 4] On-Demand Clock Modulation Enable: Set 1 to enable modulation.
|
||||||
|
/// If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 OnDemandClockModulationEnable:1;
|
UINT32 OnDemandClockModulationEnable:1;
|
||||||
UINT32 Reserved1:27;
|
UINT32 Reserved1:27;
|
||||||
|
@ -1172,7 +1209,7 @@ typedef union {
|
||||||
Thermal Interrupt Control (R/W) Enables and disables the generation of an
|
Thermal Interrupt Control (R/W) Enables and disables the generation of an
|
||||||
interrupt on temperature transitions detected with the processor's thermal
|
interrupt on temperature transitions detected with the processor's thermal
|
||||||
sensors and thermal monitor. See Section 14.7.2, "Thermal Monitor.".
|
sensors and thermal monitor. See Section 14.7.2, "Thermal Monitor.".
|
||||||
Introduced at Display Family / Display Model 0F_0H.
|
If CPUID.01H:EDX[22] = 1
|
||||||
|
|
||||||
@param ECX MSR_IA32_THERM_INTERRUPT (0x0000019B)
|
@param ECX MSR_IA32_THERM_INTERRUPT (0x0000019B)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1200,40 +1237,41 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bit 0] High-Temperature Interrupt Enable.
|
/// [Bit 0] High-Temperature Interrupt Enable. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 HighTempEnable:1;
|
UINT32 HighTempEnable:1;
|
||||||
///
|
///
|
||||||
/// [Bit 1] Low-Temperature Interrupt Enable.
|
/// [Bit 1] Low-Temperature Interrupt Enable. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 LowTempEnable:1;
|
UINT32 LowTempEnable:1;
|
||||||
///
|
///
|
||||||
/// [Bit 2] PROCHOT# Interrupt Enable.
|
/// [Bit 2] PROCHOT# Interrupt Enable. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 PROCHOT_Enable:1;
|
UINT32 PROCHOT_Enable:1;
|
||||||
///
|
///
|
||||||
/// [Bit 3] FORCEPR# Interrupt Enable.
|
/// [Bit 3] FORCEPR# Interrupt Enable. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 FORCEPR_Enable:1;
|
UINT32 FORCEPR_Enable:1;
|
||||||
///
|
///
|
||||||
/// [Bit 4] Critical Temperature Interrupt Enable.
|
/// [Bit 4] Critical Temperature Interrupt Enable.
|
||||||
|
/// If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 CriticalTempEnable:1;
|
UINT32 CriticalTempEnable:1;
|
||||||
UINT32 Reserved1:3;
|
UINT32 Reserved1:3;
|
||||||
///
|
///
|
||||||
/// [Bits 14:8] Threshold #1 Value.
|
/// [Bits 14:8] Threshold #1 Value. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 Threshold1:7;
|
UINT32 Threshold1:7;
|
||||||
///
|
///
|
||||||
/// [Bit 15] Threshold #1 Interrupt Enable.
|
/// [Bit 15] Threshold #1 Interrupt Enable. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 Threshold1Enable:1;
|
UINT32 Threshold1Enable:1;
|
||||||
///
|
///
|
||||||
/// [Bits 22:16] Threshold #2 Value.
|
/// [Bits 22:16] Threshold #2 Value. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 Threshold2:7;
|
UINT32 Threshold2:7;
|
||||||
///
|
///
|
||||||
/// [Bit 23] Threshold #2 Interrupt Enable.
|
/// [Bit 23] Threshold #2 Interrupt Enable. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 Threshold2Enable:1;
|
UINT32 Threshold2Enable:1;
|
||||||
///
|
///
|
||||||
|
@ -1257,8 +1295,7 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
Thermal Status Information (RO) Contains status information about the
|
Thermal Status Information (RO) Contains status information about the
|
||||||
processor's thermal sensor and automatic thermal monitoring facilities. See
|
processor's thermal sensor and automatic thermal monitoring facilities. See
|
||||||
Section 14.7.2, "Thermal Monitor". Introduced at Display Family / Display
|
Section 14.7.2, "Thermal Monitor". If CPUID.01H:EDX[22] = 1.
|
||||||
Model 0F_0H.
|
|
||||||
|
|
||||||
@param ECX MSR_IA32_THERM_STATUS (0x0000019C)
|
@param ECX MSR_IA32_THERM_STATUS (0x0000019C)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1285,27 +1322,28 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bit 0] Thermal Status (RO):.
|
/// [Bit 0] Thermal Status (RO):. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 ThermalStatus:1;
|
UINT32 ThermalStatus:1;
|
||||||
///
|
///
|
||||||
/// [Bit 1] Thermal Status Log (R/W):.
|
/// [Bit 1] Thermal Status Log (R/W):. If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 ThermalStatusLog:1;
|
UINT32 ThermalStatusLog:1;
|
||||||
///
|
///
|
||||||
/// [Bit 2] PROCHOT # or FORCEPR# event (RO).
|
/// [Bit 2] PROCHOT # or FORCEPR# event (RO). If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 PROCHOT_FORCEPR_Event:1;
|
UINT32 PROCHOT_FORCEPR_Event:1;
|
||||||
///
|
///
|
||||||
/// [Bit 3] PROCHOT # or FORCEPR# log (R/WC0).
|
/// [Bit 3] PROCHOT # or FORCEPR# log (R/WC0). If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 PROCHOT_FORCEPR_Log:1;
|
UINT32 PROCHOT_FORCEPR_Log:1;
|
||||||
///
|
///
|
||||||
/// [Bit 4] Critical Temperature Status (RO).
|
/// [Bit 4] Critical Temperature Status (RO). If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 CriticalTempStatus:1;
|
UINT32 CriticalTempStatus:1;
|
||||||
///
|
///
|
||||||
/// [Bit 5] Critical Temperature Status log (R/WC0).
|
/// [Bit 5] Critical Temperature Status log (R/WC0).
|
||||||
|
/// If CPUID.01H:EDX[22] = 1.
|
||||||
///
|
///
|
||||||
UINT32 CriticalTempStatusLog:1;
|
UINT32 CriticalTempStatusLog:1;
|
||||||
///
|
///
|
||||||
|
@ -1418,8 +1456,9 @@ typedef union {
|
||||||
/// automatically reduce power consumption in response to TCC activation.
|
/// automatically reduce power consumption in response to TCC activation.
|
||||||
/// 0 = Disabled. Note: In some products clearing this bit might be
|
/// 0 = Disabled. Note: In some products clearing this bit might be
|
||||||
/// ignored in critical thermal conditions, and TM1, TM2 and adaptive
|
/// ignored in critical thermal conditions, and TM1, TM2 and adaptive
|
||||||
/// thermal throttling will still be activated. Introduced at Display
|
/// thermal throttling will still be activated. The default value of this
|
||||||
/// Family / Display Model 0F_0H.
|
/// field varies with product. See respective tables where default value is
|
||||||
|
/// listed. Introduced at Display Family / Display Model 0F_0H.
|
||||||
///
|
///
|
||||||
UINT32 AutomaticThermalControlCircuit:1;
|
UINT32 AutomaticThermalControlCircuit:1;
|
||||||
UINT32 Reserved2:3;
|
UINT32 Reserved2:3;
|
||||||
|
@ -1437,7 +1476,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Precise Event Based Sampling (PEBS) Unavailable (RO) 1 =
|
/// [Bit 12] Processor Event Based Sampling (PEBS) Unavailable (RO) 1 =
|
||||||
/// PEBS is not supported; 0 = PEBS is supported. Introduced at Display
|
/// PEBS is not supported; 0 = PEBS is supported. Introduced at Display
|
||||||
/// Family / Display Model 06_0FH.
|
/// Family / Display Model 06_0FH.
|
||||||
///
|
///
|
||||||
|
@ -1466,15 +1505,15 @@ typedef union {
|
||||||
UINT32 Reserved6:3;
|
UINT32 Reserved6:3;
|
||||||
///
|
///
|
||||||
/// [Bit 22] Limit CPUID Maxval (R/W) When this bit is set to 1, CPUID.00H
|
/// [Bit 22] Limit CPUID Maxval (R/W) When this bit is set to 1, CPUID.00H
|
||||||
/// returns a maximum value in EAX[7:0] of 3. BIOS should contain a setup
|
/// returns a maximum value in EAX[7:0] of 2. BIOS should contain a setup
|
||||||
/// question that allows users to specify when the installed OS does not
|
/// question that allows users to specify when the installed OS does not
|
||||||
/// support CPUID functions greater than 3. Before setting this bit, BIOS
|
/// support CPUID functions greater than 2. Before setting this bit, BIOS
|
||||||
/// must execute the CPUID.0H and examine the maximum value returned in
|
/// must execute the CPUID.0H and examine the maximum value returned in
|
||||||
/// EAX[7:0]. If the maximum value is greater than 3, the bit is
|
/// EAX[7:0]. If the maximum value is greater than 2, this bit is
|
||||||
/// supported. Otherwise, the bit is not supported. Writing to this bit
|
/// supported. Otherwise, this bit is not supported. Setting this bit when
|
||||||
/// when the maximum value is greater than 3 may generate a #GP exception.
|
/// the maximum value is not greater than 2 may generate a #GP exception.
|
||||||
/// Setting this bit may cause unexpected behavior in software that
|
/// Setting this bit may cause unexpected behavior in software that
|
||||||
/// depends on the availability of CPUID leaves greater than 3. Introduced
|
/// depends on the availability of CPUID leaves greater than 2. Introduced
|
||||||
/// at Display Family / Display Model 0F_03H.
|
/// at Display Family / Display Model 0F_03H.
|
||||||
///
|
///
|
||||||
UINT32 LimitCpuidMaxval:1;
|
UINT32 LimitCpuidMaxval:1;
|
||||||
|
@ -2687,8 +2726,8 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Fixed-Function Performance Counter 1 0 (R/W): Counts CPU_CLK_Unhalted.Core.
|
Fixed-Function Performance Counter 1 (R/W): Counts CPU_CLK_Unhalted.Core. If
|
||||||
If CPUID.0AH: EDX[4:0] > 1.
|
CPUID.0AH: EDX[4:0] > 1.
|
||||||
|
|
||||||
@param ECX MSR_IA32_FIXED_CTR1 (0x0000030A)
|
@param ECX MSR_IA32_FIXED_CTR1 (0x0000030A)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2707,8 +2746,8 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Fixed-Function Performance Counter 0 0 (R/W): Counts CPU_CLK_Unhalted.Ref.
|
Fixed-Function Performance Counter 2 (R/W): Counts CPU_CLK_Unhalted.Ref. If
|
||||||
If CPUID.0AH: EDX[4:0] > 2.
|
CPUID.0AH: EDX[4:0] > 2.
|
||||||
|
|
||||||
@param ECX MSR_IA32_FIXED_CTR2 (0x0000030B)
|
@param ECX MSR_IA32_FIXED_CTR2 (0x0000030B)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -3789,10 +3828,10 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 MemoryType:4;
|
UINT32 MemoryType:4;
|
||||||
///
|
///
|
||||||
/// [Bit 54] If bit 54 is read as 1, the logical processor reports
|
/// [Bit 54] If bit 54 is read as 1, the processor reports information in
|
||||||
/// information in the VM-exit instruction-information field on VM exits
|
/// the VM-exit instruction-information field on VM exitsdue to execution
|
||||||
/// due to execution of the INS and OUTS instructions. This reporting is
|
/// of the INS and OUTS instructions (see Section 27.2.4). This reporting
|
||||||
/// done only if this bit is read as 1.
|
/// is done only if this bit is read as 1.
|
||||||
///
|
///
|
||||||
UINT32 InsOutsReporting:1;
|
UINT32 InsOutsReporting:1;
|
||||||
///
|
///
|
||||||
|
@ -3951,11 +3990,21 @@ typedef union {
|
||||||
/// [Bit 8] reports (if set) the support for activity state 3 (wait-for-SIPI).
|
/// [Bit 8] reports (if set) the support for activity state 3 (wait-for-SIPI).
|
||||||
///
|
///
|
||||||
UINT32 WaitForSipiActivityStateSupported:1;
|
UINT32 WaitForSipiActivityStateSupported:1;
|
||||||
UINT32 Reserved1:6;
|
UINT32 Reserved1:5;
|
||||||
|
///
|
||||||
|
/// [Bit 14] If read as 1, Intel(R) Processor Trace (Intel PT) can be used
|
||||||
|
/// in VMX operation. If the processor supports Intel PT but does not allow
|
||||||
|
/// it to be used in VMX operation, execution of VMXON clears
|
||||||
|
/// IA32_RTIT_CTL.TraceEn (see “VMXON—Enter VMX Operation” in Chapter 30);
|
||||||
|
/// any attempt to set that bit while in VMX operation (including VMX root
|
||||||
|
/// operation) using the WRMSR instruction causes a general-protection
|
||||||
|
/// exception.
|
||||||
|
///
|
||||||
|
UINT32 ProcessorTraceSupported:1;
|
||||||
///
|
///
|
||||||
/// [Bit 15] If read as 1, the RDMSR instruction can be used in system-
|
/// [Bit 15] If read as 1, the RDMSR instruction can be used in system-
|
||||||
/// management mode (SMM) to read the IA32_SMBASE MSR (MSR address 9EH).
|
/// management mode (SMM) to read the IA32_SMBASE MSR (MSR address 9EH).
|
||||||
/// See Section 34.15.6.4.
|
/// See Section 34.15.6.3.
|
||||||
///
|
///
|
||||||
UINT32 SmBaseMsrSupported:1;
|
UINT32 SmBaseMsrSupported:1;
|
||||||
///
|
///
|
||||||
|
@ -3986,7 +4035,13 @@ typedef union {
|
||||||
/// information fields.
|
/// information fields.
|
||||||
///
|
///
|
||||||
UINT32 VmWriteSupported:1;
|
UINT32 VmWriteSupported:1;
|
||||||
UINT32 Reserved2:2;
|
///
|
||||||
|
/// [Bit 30] If read as 1, VM entry allows injection of a software
|
||||||
|
/// interrupt, software exception, or privileged software exception with an
|
||||||
|
/// instruction length of 0.
|
||||||
|
///
|
||||||
|
UINT32 VmInjectSupported:1;
|
||||||
|
UINT32 Reserved2:1;
|
||||||
///
|
///
|
||||||
/// [Bits 63:32] Reports the 32-bit MSEG revision identifier used by the
|
/// [Bits 63:32] Reports the 32-bit MSEG revision identifier used by the
|
||||||
/// processor.
|
/// processor.
|
||||||
|
@ -4343,13 +4398,13 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bit 0] Lock. See Section 42.12.3, "Interactions with Authenticated
|
/// [Bit 0] Lock. See Section 42.11.3, "Interactions with Authenticated
|
||||||
/// Code Modules (ACMs)".
|
/// Code Modules (ACMs)".
|
||||||
///
|
///
|
||||||
UINT32 Lock:1;
|
UINT32 Lock:1;
|
||||||
UINT32 Reserved1:15;
|
UINT32 Reserved1:15;
|
||||||
///
|
///
|
||||||
/// [Bits 23:16] SGX_SVN_SINIT. See Section 42.12.3, "Interactions with
|
/// [Bits 23:16] SGX_SVN_SINIT. See Section 42.11.3, "Interactions with
|
||||||
/// Authenticated Code Modules (ACMs)".
|
/// Authenticated Code Modules (ACMs)".
|
||||||
///
|
///
|
||||||
UINT32 SGX_SVN_SINIT:8;
|
UINT32 SGX_SVN_SINIT:8;
|
||||||
|
@ -4776,7 +4831,7 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
DS Save Area (R/W) Points to the linear address of the first byte of the DS
|
DS Save Area (R/W) Points to the linear address of the first byte of the DS
|
||||||
buffer management area, which is used to manage the BTS and PEBS buffers.
|
buffer management area, which is used to manage the BTS and PEBS buffers.
|
||||||
See Section 18.12.4, "Debug Store (DS) Mechanism.". If( CPUID.01H:EDX.DS[21]
|
See Section 18.15.4, "Debug Store (DS) Mechanism.". If( CPUID.01H:EDX.DS[21]
|
||||||
= 1.
|
= 1.
|
||||||
|
|
||||||
[Bits 31..0] The linear address of the first byte of the DS buffer
|
[Bits 31..0] The linear address of the first byte of the DS buffer
|
||||||
|
@ -5876,8 +5931,8 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Resource Association Register (R/W). If ( CPUID.(EAX=07H, ECX=0):EBX.[12] =
|
Resource Association Register (R/W). If ( (CPUID.(EAX=07H, ECX=0):EBX[12]
|
||||||
1 ).
|
=1) or (CPUID.(EAX=07H, ECX=0):EBX[15] =1 ) ).
|
||||||
|
|
||||||
@param ECX MSR_IA32_PQR_ASSOC (0x00000C8F)
|
@param ECX MSR_IA32_PQR_ASSOC (0x00000C8F)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-3.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.3.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -177,12 +177,10 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. Last Branch Record 0 From IP (R/W) One of eight pairs of last branch
|
Unique. Last Branch Record n From IP (R/W) One of eight pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. The From_IP part of the
|
||||||
contains pointers to the source instruction for one of the last eight
|
stack contains pointers to the source instruction . See also: - Last Branch
|
||||||
branches, exceptions, or interrupts taken by the processor. See also: -
|
Record Stack TOS at 1C9H - Section 17.5.
|
||||||
Last Branch Record Stack TOS at 1C9H - Section 17.12, "Last Branch,
|
|
||||||
Interrupt, and Exception Recording (Pentium M Processors).".
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_LASTBRANCH_n_FROM_IP
|
@param ECX MSR_ATOM_LASTBRANCH_n_FROM_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -217,10 +215,9 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. Last Branch Record 0 To IP (R/W) One of eight pairs of last branch
|
Unique. Last Branch Record n To IP (R/W) One of eight pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. The To_IP part of the
|
||||||
contains pointers to the destination instruction for one of the last eight
|
stack contains pointers to the destination instruction.
|
||||||
branches, exceptions, or interrupts taken by the processor.
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_LASTBRANCH_n_TO_IP
|
@param ECX MSR_ATOM_LASTBRANCH_n_TO_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -507,7 +504,7 @@ typedef union {
|
||||||
UINT32 Reserved1:2;
|
UINT32 Reserved1:2;
|
||||||
///
|
///
|
||||||
/// [Bit 3] Unique. Automatic Thermal Control Circuit Enable (R/W) See
|
/// [Bit 3] Unique. Automatic Thermal Control Circuit Enable (R/W) See
|
||||||
/// Table 35-2.
|
/// Table 35-2. Default value is 0.
|
||||||
///
|
///
|
||||||
UINT32 AutomaticThermalControlCircuit:1;
|
UINT32 AutomaticThermalControlCircuit:1;
|
||||||
UINT32 Reserved2:3;
|
UINT32 Reserved2:3;
|
||||||
|
@ -529,7 +526,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Shared. Precise Event Based Sampling Unavailable (RO) See
|
/// [Bit 12] Shared. Processor Event Based Sampling Unavailable (RO) See
|
||||||
/// Table 35-2.
|
/// Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
|
@ -656,27 +653,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. See Table 35-2. See Section 18.4.2, "Global Counter Control
|
Unique. See Table 35-2. See Section 18.4.4, "Processor Event Based Sampling
|
||||||
Facilities.".
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_IA32_PERF_GLOBAL_STAUS);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_IA32_PERF_GLOBAL_STAUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. See Table 35-2. See Section 18.4.4, "Precise Event Based Sampling
|
|
||||||
(PEBS).".
|
(PEBS).".
|
||||||
|
|
||||||
@param ECX MSR_ATOM_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_ATOM_PEBS_ENABLE (0x000003F1)
|
||||||
|
@ -722,128 +699,6 @@ typedef union {
|
||||||
} MSR_ATOM_PEBS_ENABLE_REGISTER;
|
} MSR_ATOM_PEBS_ENABLE_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shared. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_MC3_CTL (0x0000040C)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_MC3_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_MC3_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_MC3_CTL is defined as MSR_MC3_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_MC3_CTL 0x0000040C
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shared. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_MC3_STATUS (0x0000040D)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_MC3_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_MC3_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_MC3_STATUS is defined as MSR_MC3_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_MC3_STATUS 0x0000040D
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shared. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC3_ADDR
|
|
||||||
register is either not implemented or contains no address if the ADDRV flag
|
|
||||||
in the MSR_MC3_STATUS register is clear. When not implemented in the
|
|
||||||
processor, all reads and writes to this MSR will cause a general-protection
|
|
||||||
exception.
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_MC3_ADDR (0x0000040E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_MC3_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_MC3_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_MC3_ADDR is defined as MSR_MC3_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_MC3_ADDR 0x0000040E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shared. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_MC4_CTL (0x00000410)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_MC4_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_MC4_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_MC4_CTL is defined as MSR_MC4_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_MC4_CTL 0x00000410
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shared. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_MC4_STATUS (0x00000411)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_MC4_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_MC4_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_MC4_STATUS is defined as MSR_MC4_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_MC4_STATUS 0x00000411
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shared. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC4_ADDR
|
|
||||||
register is either not implemented or contains no address if the ADDRV flag
|
|
||||||
in the MSR_MC4_STATUS register is clear. When not implemented in the
|
|
||||||
processor, all reads and writes to this MSR will cause a general-protection
|
|
||||||
exception.
|
|
||||||
|
|
||||||
@param ECX MSR_ATOM_MC4_ADDR (0x00000412)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_ATOM_MC4_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_ATOM_MC4_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_ATOM_MC4_ADDR is defined as MSR_MC4_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_ATOM_MC4_ADDR 0x00000412
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Package C2 Residency Note: C-state values are processor specific
|
Package. Package C2 Residency Note: C-state values are processor specific
|
||||||
C-state code names, unrelated to MWAIT extension C-state parameters or ACPI
|
C-state code names, unrelated to MWAIT extension C-state parameters or ACPI
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-12.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.13.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -30,25 +30,25 @@
|
||||||
Thread. See Table 35-2. See Section 18.4.2, "Global Counter Control
|
Thread. See Table 35-2. See Section 18.4.2, "Global Counter Control
|
||||||
Facilities.".
|
Facilities.".
|
||||||
|
|
||||||
@param ECX MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
@param ECX MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS (0x0000038E)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
Described by the type MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS_REGISTER.
|
Described by the type MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS_REGISTER.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
Described by the type MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS_REGISTER.
|
Described by the type MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS_REGISTER.
|
||||||
|
|
||||||
<b>Example usage</b>
|
<b>Example usage</b>
|
||||||
@code
|
@code
|
||||||
MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS_REGISTER Msr;
|
MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS_REGISTER Msr;
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS);
|
Msr.Uint64 = AsmReadMsr64 (MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS);
|
||||||
AsmWriteMsr64 (MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS, Msr.Uint64);
|
AsmWriteMsr64 (MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS, Msr.Uint64);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
@note MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS is defined as IA32_PERF_GLOBAL_STATUS in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
#define MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS 0x0000038E
|
||||||
|
|
||||||
/**
|
/**
|
||||||
MSR information returned for MSR index #MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS
|
MSR information returned for MSR index #MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS
|
||||||
**/
|
**/
|
||||||
typedef union {
|
typedef union {
|
||||||
///
|
///
|
||||||
|
@ -86,7 +86,7 @@ typedef union {
|
||||||
UINT32 Ovf_FixedCtr2:1;
|
UINT32 Ovf_FixedCtr2:1;
|
||||||
UINT32 Reserved2:20;
|
UINT32 Reserved2:20;
|
||||||
///
|
///
|
||||||
/// [Bit 55] Trace_ToPA_PMI. See Section 36.2.4.2, "Table of Physical
|
/// [Bit 55] Trace_ToPA_PMI. See Section 36.2.6.2, "Table of Physical
|
||||||
/// Addresses (ToPA).".
|
/// Addresses (ToPA).".
|
||||||
///
|
///
|
||||||
UINT32 Trace_ToPA_PMI:1;
|
UINT32 Trace_ToPA_PMI:1;
|
||||||
|
@ -108,7 +108,7 @@ typedef union {
|
||||||
/// All bit fields as a 64-bit value
|
/// All bit fields as a 64-bit value
|
||||||
///
|
///
|
||||||
UINT64 Uint64;
|
UINT64 Uint64;
|
||||||
} MSR_BROADWELL_IA32_PERF_GLOBAL_STAUS_REGISTER;
|
} MSR_BROADWELL_IA32_PERF_GLOBAL_STATUS_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -265,4 +265,23 @@ typedef union {
|
||||||
UINT64 Uint64;
|
UINT64 Uint64;
|
||||||
} MSR_BROADWELL_TURBO_RATIO_LIMIT_REGISTER;
|
} MSR_BROADWELL_TURBO_RATIO_LIMIT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL
|
||||||
|
Domains.".
|
||||||
|
|
||||||
|
@param ECX MSR_BROADWELL_PP0_ENERGY_STATUS (0x00000639)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_BROADWELL_PP0_ENERGY_STATUS);
|
||||||
|
@endcode
|
||||||
|
@note MSR_BROADWELL_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_BROADWELL_PP0_ENERGY_STATUS 0x00000639
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-2.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.2.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -239,11 +239,9 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. Last Branch Record n From IP (R/W) One of four pairs of last branch
|
Unique. Last Branch Record n From IP (R/W) One of four pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. The From_IP part of the
|
||||||
contains pointers to the source instruction for one of the last four
|
stack contains pointers to the source instruction. See also: - Last Branch
|
||||||
branches, exceptions, or interrupts taken by the processor. See also: -
|
Record Stack TOS at 1C9H - Section 17.5.
|
||||||
Last Branch Record Stack TOS at 1C9H - Section 17.12, "Last Branch,
|
|
||||||
Interrupt, and Exception Recording (Pentium M Processors).".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_LASTBRANCH_n_FROM_IP
|
@param ECX MSR_CORE2_LASTBRANCH_n_FROM_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -271,9 +269,8 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. Last Branch Record n To IP (R/W) One of four pairs of last branch
|
Unique. Last Branch Record n To IP (R/W) One of four pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. This To_IP part of the
|
||||||
contains pointers to the destination instruction for one of the last four
|
stack contains pointers to the destination instruction.
|
||||||
branches, exceptions, or interrupts taken by the processor.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_LASTBRANCH_n_TO_IP
|
@param ECX MSR_CORE2_LASTBRANCH_n_TO_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -692,7 +689,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Shared. Precise Event Based Sampling Unavailable (RO) See
|
/// [Bit 12] Shared. Processor Event Based Sampling Unavailable (RO) See
|
||||||
/// Table 35-2.
|
/// Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
|
@ -958,30 +955,10 @@ typedef union {
|
||||||
#define MSR_CORE2_PERF_FIXED_CTR_CTRL 0x0000038D
|
#define MSR_CORE2_PERF_FIXED_CTR_CTRL 0x0000038D
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. See Table 35-2. See Section 18.4.2, "Global Counter Control
|
|
||||||
Facilities.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_IA32_PERF_GLOBAL_STAUS);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_IA32_PERF_GLOBAL_STAUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. See Section 18.4.2, "Global Counter Control Facilities.".
|
Unique. See Section 18.4.2, "Global Counter Control Facilities.".
|
||||||
|
|
||||||
@param ECX MSR_CORE2_PERF_GLOBAL_STAUS (0x0000038E)
|
@param ECX MSR_CORE2_PERF_GLOBAL_STATUS (0x0000038E)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -989,12 +966,12 @@ typedef union {
|
||||||
@code
|
@code
|
||||||
UINT64 Msr;
|
UINT64 Msr;
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_PERF_GLOBAL_STAUS);
|
Msr = AsmReadMsr64 (MSR_CORE2_PERF_GLOBAL_STATUS);
|
||||||
AsmWriteMsr64 (MSR_CORE2_PERF_GLOBAL_STAUS, Msr);
|
AsmWriteMsr64 (MSR_CORE2_PERF_GLOBAL_STATUS, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_CORE2_PERF_GLOBAL_STAUS is defined as MSR_PERF_GLOBAL_STAUS in SDM.
|
@note MSR_CORE2_PERF_GLOBAL_STATUS is defined as MSR_PERF_GLOBAL_STATUS in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_CORE2_PERF_GLOBAL_STAUS 0x0000038E
|
#define MSR_CORE2_PERF_GLOBAL_STATUS 0x0000038E
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1036,7 +1013,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. See Table 35-2. See Section 18.4.4, "Precise Event Based Sampling
|
Unique. See Table 35-2. See Section 18.4.4, "Processor Event Based Sampling
|
||||||
(PEBS).".
|
(PEBS).".
|
||||||
|
|
||||||
@param ECX MSR_CORE2_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_CORE2_PEBS_ENABLE (0x000003F1)
|
||||||
|
@ -1082,243 +1059,6 @@ typedef union {
|
||||||
} MSR_CORE2_PEBS_ENABLE_REGISTER;
|
} MSR_CORE2_PEBS_ENABLE_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC4_CTL (0x0000040C)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC4_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC4_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC4_CTL is defined as MSR_MC4_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC4_CTL 0x0000040C
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC4_STATUS (0x0000040D)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC4_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC4_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC4_STATUS is defined as MSR_MC4_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC4_STATUS 0x0000040D
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC4_ADDR
|
|
||||||
register is either not implemented or contains no address if the ADDRV flag
|
|
||||||
in the MSR_MC4_STATUS register is clear. When not implemented in the
|
|
||||||
processor, all reads and writes to this MSR will cause a general-protection
|
|
||||||
exception.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC4_ADDR (0x0000040E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC4_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC4_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC4_ADDR is defined as MSR_MC4_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC4_ADDR 0x0000040E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC3_CTL (0x00000410)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC3_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC3_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC3_CTL is defined as MSR_MC3_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC3_CTL 0x00000410
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC3_STATUS (0x00000411)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC3_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC3_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC3_STATUS is defined as MSR_MC3_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC3_STATUS 0x00000411
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC3_ADDR
|
|
||||||
register is either not implemented or contains no address if the ADDRV flag
|
|
||||||
in the MSR_MC3_STATUS register is clear. When not implemented in the
|
|
||||||
processor, all reads and writes to this MSR will cause a general-protection
|
|
||||||
exception.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC3_ADDR (0x00000412)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC3_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC3_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC3_ADDR is defined as MSR_MC3_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC3_ADDR 0x00000412
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC3_MISC (0x00000413)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC3_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC3_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC3_MISC is defined as MSR_MC3_MISC in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC3_MISC 0x00000413
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC5_CTL (0x00000414)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC5_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC5_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC5_CTL 0x00000414
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC5_STATUS (0x00000415)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC5_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC5_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC5_STATUS 0x00000415
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC5_ADDR (0x00000416)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC5_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC5_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC5_ADDR 0x00000416
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC5_MISC (0x00000417)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC5_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC5_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC5_MISC is defined as MSR_MC5_MISC in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC5_MISC 0x00000417
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unique. Apply to Intel Xeon processor 7400 series (processor signature
|
|
||||||
06_1D) only. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS." and Chapter 23.
|
|
||||||
|
|
||||||
@param ECX MSR_CORE2_MC6_STATUS (0x00000419)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE2_MC6_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_CORE2_MC6_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE2_MC6_STATUS is defined as MSR_MC6_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE2_MC6_STATUS 0x00000419
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. GBUSQ Event Control/Counter Register (R/W) Apply to Intel Xeon
|
Unique. GBUSQ Event Control/Counter Register (R/W) Apply to Intel Xeon
|
||||||
processor 7400 series (processor signature 06_1D) only. See Section 17.2.2.
|
processor 7400 series (processor signature 06_1D) only. See Section 17.2.2.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-17.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.19.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
#include <Register/ArchitecturalMsr.h>
|
#include <Register/ArchitecturalMsr.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. See Section 35.20, "MSRs in Pentium Processors," and see Table 35-2.
|
Unique. See Section 35.22, "MSRs in Pentium Processors," and see Table 35-2.
|
||||||
|
|
||||||
@param ECX MSR_CORE_P5_MC_ADDR (0x00000000)
|
@param ECX MSR_CORE_P5_MC_ADDR (0x00000000)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. See Section 35.20, "MSRs in Pentium Processors," and see Table 35-2.
|
Unique. See Section 35.22, "MSRs in Pentium Processors," and see Table 35-2.
|
||||||
|
|
||||||
@param ECX MSR_CORE_P5_MC_TYPE (0x00000001)
|
@param ECX MSR_CORE_P5_MC_TYPE (0x00000001)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -178,7 +178,7 @@ typedef union {
|
||||||
Unique. Last Branch Record n (R/W) One of 8 last branch record registers on
|
Unique. Last Branch Record n (R/W) One of 8 last branch record registers on
|
||||||
the last branch record stack: bits 31-0 hold the 'from' address and bits
|
the last branch record stack: bits 31-0 hold the 'from' address and bits
|
||||||
63-32 hold the 'to' address. See also: - Last Branch Record Stack TOS at
|
63-32 hold the 'to' address. See also: - Last Branch Record Stack TOS at
|
||||||
1C9H - Section 17.12, "Last Branch, Interrupt, and Exception Recording
|
1C9H - Section 17.13, "Last Branch, Interrupt, and Exception Recording
|
||||||
(Pentium M Processors).".
|
(Pentium M Processors).".
|
||||||
|
|
||||||
@param ECX MSR_CORE_LASTBRANCH_n
|
@param ECX MSR_CORE_LASTBRANCH_n
|
||||||
|
@ -434,14 +434,14 @@ typedef union {
|
||||||
/// thermal sensor indicates that the die temperature is at the
|
/// thermal sensor indicates that the die temperature is at the
|
||||||
/// pre-determined threshold, the Thermal Monitor 2 mechanism is engaged.
|
/// pre-determined threshold, the Thermal Monitor 2 mechanism is engaged.
|
||||||
/// TM2 will reduce the bus to core ratio and voltage according to the
|
/// TM2 will reduce the bus to core ratio and voltage according to the
|
||||||
/// value last written to MSR_THERM2_CTL bits 15:0.
|
/// value last written to MSR_THERM2_CTL bits 15:0. When this bit is clear
|
||||||
/// When this bit is clear (0, default), the processor does not change
|
/// (0, default), the processor does not change the VID signals or the bus
|
||||||
/// the VID signals or the bus to core ratio when the processor enters a
|
/// to core ratio when the processor enters a thermal managed state. If
|
||||||
/// thermal managed state. If the TM2 feature flag (ECX[8]) is not set
|
/// the TM2 feature flag (ECX[8]) is not set to 1 after executing CPUID
|
||||||
/// to 1 after executing CPUID with EAX = 1, then this feature is not
|
/// with EAX = 1, then this feature is not supported and BIOS must not
|
||||||
/// supported and BIOS must not alter the contents of this bit location.
|
/// alter the contents of this bit location. The processor is operating
|
||||||
/// The processor is operating out of spec if both this bit and the TM1
|
/// out of spec if both this bit and the TM1 bit are set to disabled
|
||||||
/// bit are set to disabled states.
|
/// states.
|
||||||
///
|
///
|
||||||
UINT32 TM2:1;
|
UINT32 TM2:1;
|
||||||
UINT32 Reserved5:2;
|
UINT32 Reserved5:2;
|
||||||
|
@ -460,7 +460,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
/// [Bit 22] Shared. Limit CPUID Maxval (R/W) See Table 35-2. Setting this
|
/// [Bit 22] Shared. Limit CPUID Maxval (R/W) See Table 35-2. Setting this
|
||||||
/// bit may cause behavior in software that depends on the availability of
|
/// bit may cause behavior in software that depends on the availability of
|
||||||
/// CPUID leaves greater than 3.
|
/// CPUID leaves greater than 2.
|
||||||
///
|
///
|
||||||
UINT32 LimitCpuidMaxval:1;
|
UINT32 LimitCpuidMaxval:1;
|
||||||
UINT32 Reserved9:9;
|
UINT32 Reserved9:9;
|
||||||
|
@ -927,44 +927,6 @@ typedef union {
|
||||||
#define MSR_CORE_MC4_ADDR 0x0000040E
|
#define MSR_CORE_MC4_ADDR 0x0000040E
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE_MC3_CTL (0x00000410)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE_MC3_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_CORE_MC3_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE_MC3_CTL is defined as MSR_MC3_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE_MC3_CTL 0x00000410
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_CORE_MC3_STATUS (0x00000411)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_CORE_MC3_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_CORE_MC3_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_CORE_MC3_STATUS is defined as MSR_MC3_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_CORE_MC3_STATUS 0x00000411
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unique. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC3_ADDR
|
Unique. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC3_ADDR
|
||||||
register is either not implemented or contains no address if the ADDRV flag
|
register is either not implemented or contains no address if the ADDRV flag
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-11.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.12.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -26,6 +26,113 @@
|
||||||
|
|
||||||
#include <Register/ArchitecturalMsr.h>
|
#include <Register/ArchitecturalMsr.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. Configured State of Enabled Processor Core Count and Logical
|
||||||
|
Processor Count (RO) - After a Power-On RESET, enumerates factory
|
||||||
|
configuration of the number of processor cores and logical processors in the
|
||||||
|
physical package. - Following the sequence of (i) BIOS modified a
|
||||||
|
Configuration Mask which selects a subset of processor cores to be active
|
||||||
|
post RESET and (ii) a RESET event after the modification, enumerates the
|
||||||
|
current configuration of enabled processor core count and logical processor
|
||||||
|
count in the physical package.
|
||||||
|
|
||||||
|
@param ECX MSR_HASWELL_E_CORE_THREAD_COUNT (0x00000035)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_CORE_THREAD_COUNT_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_CORE_THREAD_COUNT_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_HASWELL_E_CORE_THREAD_COUNT_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_HASWELL_E_CORE_THREAD_COUNT);
|
||||||
|
@endcode
|
||||||
|
@note MSR_HASWELL_E_CORE_THREAD_COUNT is defined as MSR_CORE_THREAD_COUNT in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_HASWELL_E_CORE_THREAD_COUNT 0x00000035
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_HASWELL_E_CORE_THREAD_COUNT
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bits 15:0] Core_COUNT (RO) The number of processor cores that are
|
||||||
|
/// currently enabled (by either factory configuration or BIOS
|
||||||
|
/// configuration) in the physical package.
|
||||||
|
///
|
||||||
|
UINT32 Core_Count:16;
|
||||||
|
///
|
||||||
|
/// [Bits 31:16] THREAD_COUNT (RO) The number of logical processors that
|
||||||
|
/// are currently enabled (by either factory configuration or BIOS
|
||||||
|
/// configuration) in the physical package.
|
||||||
|
///
|
||||||
|
UINT32 Thread_Count:16;
|
||||||
|
UINT32 Reserved:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_HASWELL_E_CORE_THREAD_COUNT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Thread. A Hardware Assigned ID for the Logical Processor (RO).
|
||||||
|
|
||||||
|
@param ECX MSR_HASWELL_E_THREAD_ID_INFO (0x00000053)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_THREAD_ID_INFO_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_THREAD_ID_INFO_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_HASWELL_E_THREAD_ID_INFO_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_HASWELL_E_THREAD_ID_INFO);
|
||||||
|
@endcode
|
||||||
|
@note MSR_HASWELL_E_THREAD_ID_INFO is defined as MSR_THREAD_ID_INFO in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_HASWELL_E_THREAD_ID_INFO 0x00000053
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_HASWELL_E_THREAD_ID_INFO
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bits 7:0] Logical_Processor_ID (RO) An implementation-specific
|
||||||
|
/// numerical. value physically assigned to each logical processor. This
|
||||||
|
/// ID is not related to Initial APIC ID or x2APIC ID, it is unique within
|
||||||
|
/// a physical package.
|
||||||
|
///
|
||||||
|
UINT32 Logical_Processor_ID:8;
|
||||||
|
UINT32 Reserved1:24;
|
||||||
|
UINT32 Reserved2:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_HASWELL_E_THREAD_ID_INFO_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. C-State Configuration Control (R/W) Note: C-state values are processor
|
Core. C-State Configuration Control (R/W) Note: C-state values are processor
|
||||||
specific C-state code names, unrelated to MWAIT extension C-state parameters
|
specific C-state code names, unrelated to MWAIT extension C-state parameters
|
||||||
|
@ -501,236 +608,6 @@ typedef union {
|
||||||
} MSR_HASWELL_E_TURBO_RATIO_LIMIT2_REGISTER;
|
} MSR_HASWELL_E_TURBO_RATIO_LIMIT2_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
* Bank MC5 reports MC error from the Intel QPI 0 module.
|
|
||||||
* Bank MC6 reports MC error from the integrated I/O module.
|
|
||||||
* Bank MC7 reports MC error from the home agent HA 0.
|
|
||||||
* Bank MC8 reports MC error from the home agent HA 1.
|
|
||||||
* Banks MC9 through MC16 report MC error from each channel of the integrated
|
|
||||||
memory controllers.
|
|
||||||
* Bank MC17 reports MC error from the following pair of CBo/L3 Slices
|
|
||||||
(if the pair is present): CBo0, CBo3, CBo6, CBo9, CBo12, CBo15.
|
|
||||||
* Bank MC18 reports MC error from the following pair of CBo/L3 Slices
|
|
||||||
(if the pair is present): CBo1, CBo4, CBo7, CBo10, CBo13, CBo16.
|
|
||||||
* Bank MC19 reports MC error from the following pair of CBo/L3 Slices
|
|
||||||
(if the pair is present): CBo2, CBo5, CBo8, CBo11, CBo14, CBo17.
|
|
||||||
* Bank MC20 reports MC error from the Intel QPI 1 module.
|
|
||||||
* Bank MC21 reports MC error from the Intel QPI 2 module.
|
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_E_MCi_CTL
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_HASWELL_E_MC5_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_HASWELL_E_MC5_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_HASWELL_E_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC6_CTL is defined as MSR_MC6_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC7_CTL is defined as MSR_MC7_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC8_CTL is defined as MSR_MC8_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC9_CTL is defined as MSR_MC9_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC10_CTL is defined as MSR_MC10_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC11_CTL is defined as MSR_MC11_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC12_CTL is defined as MSR_MC12_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC13_CTL is defined as MSR_MC13_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC14_CTL is defined as MSR_MC14_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC15_CTL is defined as MSR_MC15_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC16_CTL is defined as MSR_MC16_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC17_CTL is defined as MSR_MC17_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC18_CTL is defined as MSR_MC18_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC19_CTL is defined as MSR_MC19_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC20_CTL is defined as MSR_MC20_CTL in SDM.
|
|
||||||
MSR_HASWELL_E_MC21_CTL is defined as MSR_MC21_CTL in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_HASWELL_E_MC5_CTL 0x00000414
|
|
||||||
#define MSR_HASWELL_E_MC6_CTL 0x00000418
|
|
||||||
#define MSR_HASWELL_E_MC7_CTL 0x0000041C
|
|
||||||
#define MSR_HASWELL_E_MC8_CTL 0x00000420
|
|
||||||
#define MSR_HASWELL_E_MC9_CTL 0x00000424
|
|
||||||
#define MSR_HASWELL_E_MC10_CTL 0x00000428
|
|
||||||
#define MSR_HASWELL_E_MC11_CTL 0x0000042C
|
|
||||||
#define MSR_HASWELL_E_MC12_CTL 0x00000430
|
|
||||||
#define MSR_HASWELL_E_MC13_CTL 0x00000434
|
|
||||||
#define MSR_HASWELL_E_MC14_CTL 0x00000438
|
|
||||||
#define MSR_HASWELL_E_MC15_CTL 0x0000043C
|
|
||||||
#define MSR_HASWELL_E_MC16_CTL 0x00000440
|
|
||||||
#define MSR_HASWELL_E_MC17_CTL 0x00000444
|
|
||||||
#define MSR_HASWELL_E_MC18_CTL 0x00000448
|
|
||||||
#define MSR_HASWELL_E_MC19_CTL 0x0000044C
|
|
||||||
#define MSR_HASWELL_E_MC20_CTL 0x00000450
|
|
||||||
#define MSR_HASWELL_E_MC21_CTL 0x00000454
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_E_MCi_STATUS
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_HASWELL_E_MC5_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_HASWELL_E_MC5_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_HASWELL_E_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC6_STATUS is defined as MSR_MC6_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC7_STATUS is defined as MSR_MC7_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC8_STATUS is defined as MSR_MC8_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC9_STATUS is defined as MSR_MC9_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC10_STATUS is defined as MSR_MC10_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC11_STATUS is defined as MSR_MC11_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC12_STATUS is defined as MSR_MC12_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC13_STATUS is defined as MSR_MC13_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC14_STATUS is defined as MSR_MC14_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC15_STATUS is defined as MSR_MC15_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC16_STATUS is defined as MSR_MC16_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC17_STATUS is defined as MSR_MC17_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC18_STATUS is defined as MSR_MC18_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC19_STATUS is defined as MSR_MC19_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC20_STATUS is defined as MSR_MC20_STATUS in SDM.
|
|
||||||
MSR_HASWELL_E_MC21_STATUS is defined as MSR_MC21_STATUS in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_HASWELL_E_MC5_STATUS 0x00000415
|
|
||||||
#define MSR_HASWELL_E_MC6_STATUS 0x00000419
|
|
||||||
#define MSR_HASWELL_E_MC7_STATUS 0x0000041D
|
|
||||||
#define MSR_HASWELL_E_MC8_STATUS 0x00000421
|
|
||||||
#define MSR_HASWELL_E_MC9_STATUS 0x00000425
|
|
||||||
#define MSR_HASWELL_E_MC10_STATUS 0x00000429
|
|
||||||
#define MSR_HASWELL_E_MC11_STATUS 0x0000042D
|
|
||||||
#define MSR_HASWELL_E_MC12_STATUS 0x00000431
|
|
||||||
#define MSR_HASWELL_E_MC13_STATUS 0x00000435
|
|
||||||
#define MSR_HASWELL_E_MC14_STATUS 0x00000439
|
|
||||||
#define MSR_HASWELL_E_MC15_STATUS 0x0000043D
|
|
||||||
#define MSR_HASWELL_E_MC16_STATUS 0x00000441
|
|
||||||
#define MSR_HASWELL_E_MC17_STATUS 0x00000445
|
|
||||||
#define MSR_HASWELL_E_MC18_STATUS 0x00000449
|
|
||||||
#define MSR_HASWELL_E_MC19_STATUS 0x0000044D
|
|
||||||
#define MSR_HASWELL_E_MC20_STATUS 0x00000451
|
|
||||||
#define MSR_HASWELL_E_MC21_STATUS 0x00000455
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_E_MCi_ADDR
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_HASWELL_E_MC5_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_HASWELL_E_MC5_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_HASWELL_E_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC6_ADDR is defined as MSR_MC6_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC7_ADDR is defined as MSR_MC7_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC8_ADDR is defined as MSR_MC8_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC9_ADDR is defined as MSR_MC9_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC10_ADDR is defined as MSR_MC10_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC11_ADDR is defined as MSR_MC11_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC12_ADDR is defined as MSR_MC12_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC13_ADDR is defined as MSR_MC13_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC14_ADDR is defined as MSR_MC14_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC15_ADDR is defined as MSR_MC15_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC16_ADDR is defined as MSR_MC16_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC17_ADDR is defined as MSR_MC17_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC18_ADDR is defined as MSR_MC18_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC19_ADDR is defined as MSR_MC19_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC20_ADDR is defined as MSR_MC20_ADDR in SDM.
|
|
||||||
MSR_HASWELL_E_MC21_ADDR is defined as MSR_MC21_ADDR in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_HASWELL_E_MC5_ADDR 0x00000416
|
|
||||||
#define MSR_HASWELL_E_MC6_ADDR 0x0000041A
|
|
||||||
#define MSR_HASWELL_E_MC7_ADDR 0x0000041E
|
|
||||||
#define MSR_HASWELL_E_MC8_ADDR 0x00000422
|
|
||||||
#define MSR_HASWELL_E_MC9_ADDR 0x00000426
|
|
||||||
#define MSR_HASWELL_E_MC10_ADDR 0x0000042A
|
|
||||||
#define MSR_HASWELL_E_MC11_ADDR 0x0000042E
|
|
||||||
#define MSR_HASWELL_E_MC12_ADDR 0x00000432
|
|
||||||
#define MSR_HASWELL_E_MC13_ADDR 0x00000436
|
|
||||||
#define MSR_HASWELL_E_MC14_ADDR 0x0000043A
|
|
||||||
#define MSR_HASWELL_E_MC15_ADDR 0x0000043E
|
|
||||||
#define MSR_HASWELL_E_MC16_ADDR 0x00000442
|
|
||||||
#define MSR_HASWELL_E_MC17_ADDR 0x00000446
|
|
||||||
#define MSR_HASWELL_E_MC18_ADDR 0x0000044A
|
|
||||||
#define MSR_HASWELL_E_MC19_ADDR 0x0000044E
|
|
||||||
#define MSR_HASWELL_E_MC20_ADDR 0x00000452
|
|
||||||
#define MSR_HASWELL_E_MC21_ADDR 0x00000456
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_E_MCi_MISC
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_HASWELL_E_MC5_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_HASWELL_E_MC5_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_HASWELL_E_MC5_MISC is defined as MSR_MC5_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC6_MISC is defined as MSR_MC6_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC7_MISC is defined as MSR_MC7_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC8_MISC is defined as MSR_MC8_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC9_MISC is defined as MSR_MC9_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC10_MISC is defined as MSR_MC10_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC11_MISC is defined as MSR_MC11_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC12_MISC is defined as MSR_MC12_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC13_MISC is defined as MSR_MC13_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC14_MISC is defined as MSR_MC14_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC15_MISC is defined as MSR_MC15_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC16_MISC is defined as MSR_MC16_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC17_MISC is defined as MSR_MC17_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC18_MISC is defined as MSR_MC18_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC19_MISC is defined as MSR_MC19_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC20_MISC is defined as MSR_MC20_MISC in SDM.
|
|
||||||
MSR_HASWELL_E_MC21_MISC is defined as MSR_MC21_MISC in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_HASWELL_E_MC5_MISC 0x00000417
|
|
||||||
#define MSR_HASWELL_E_MC6_MISC 0x0000041B
|
|
||||||
#define MSR_HASWELL_E_MC7_MISC 0x0000041F
|
|
||||||
#define MSR_HASWELL_E_MC8_MISC 0x00000423
|
|
||||||
#define MSR_HASWELL_E_MC9_MISC 0x00000427
|
|
||||||
#define MSR_HASWELL_E_MC10_MISC 0x0000042B
|
|
||||||
#define MSR_HASWELL_E_MC11_MISC 0x0000042F
|
|
||||||
#define MSR_HASWELL_E_MC12_MISC 0x00000433
|
|
||||||
#define MSR_HASWELL_E_MC13_MISC 0x00000437
|
|
||||||
#define MSR_HASWELL_E_MC14_MISC 0x0000043B
|
|
||||||
#define MSR_HASWELL_E_MC15_MISC 0x0000043F
|
|
||||||
#define MSR_HASWELL_E_MC16_MISC 0x00000443
|
|
||||||
#define MSR_HASWELL_E_MC17_MISC 0x00000447
|
|
||||||
#define MSR_HASWELL_E_MC18_MISC 0x0000044B
|
|
||||||
#define MSR_HASWELL_E_MC19_MISC 0x0000044F
|
|
||||||
#define MSR_HASWELL_E_MC20_MISC 0x00000453
|
|
||||||
#define MSR_HASWELL_E_MC21_MISC 0x00000457
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Unit Multipliers used in RAPL Interfaces (R/O).
|
Package. Unit Multipliers used in RAPL Interfaces (R/O).
|
||||||
|
|
||||||
|
@ -811,22 +688,49 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. DRAM Energy Status (R/O) See Section 14.9.5, "DRAM RAPL Domain.".
|
Package. DRAM Energy Status (R/O) Energy Consumed by DRAM devices.
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_E_DRAM_ENERGY_STATUS (0x00000619)
|
@param ECX MSR_HASWELL_E_DRAM_ENERGY_STATUS (0x00000619)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_DRAM_ENERGY_STATUS_REGISTER.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_DRAM_ENERGY_STATUS_REGISTER.
|
||||||
|
|
||||||
<b>Example usage</b>
|
<b>Example usage</b>
|
||||||
@code
|
@code
|
||||||
UINT64 Msr;
|
MSR_HASWELL_E_DRAM_ENERGY_STATUS_REGISTER Msr;
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_HASWELL_E_DRAM_ENERGY_STATUS);
|
Msr.Uint64 = AsmReadMsr64 (MSR_HASWELL_E_DRAM_ENERGY_STATUS);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_HASWELL_E_DRAM_ENERGY_STATUS is defined as MSR_DRAM_ENERGY_STATUS in SDM.
|
@note MSR_HASWELL_E_DRAM_ENERGY_STATUS is defined as MSR_DRAM_ENERGY_STATUS in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_HASWELL_E_DRAM_ENERGY_STATUS 0x00000619
|
#define MSR_HASWELL_E_DRAM_ENERGY_STATUS 0x00000619
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_HASWELL_E_DRAM_ENERGY_STATUS
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bits 31:0] Energy in 15.3 micro-joules. Requires BIOS configuration
|
||||||
|
/// to enable DRAM RAPL mode 0 (Direct VR).
|
||||||
|
///
|
||||||
|
UINT32 Energy:32;
|
||||||
|
UINT32 Reserved:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_HASWELL_E_DRAM_ENERGY_STATUS_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. DRAM Performance Throttling Status (R/O) See Section 14.9.5, "DRAM
|
Package. DRAM Performance Throttling Status (R/O) See Section 14.9.5, "DRAM
|
||||||
|
@ -866,6 +770,83 @@ typedef union {
|
||||||
#define MSR_HASWELL_E_DRAM_POWER_INFO 0x0000061C
|
#define MSR_HASWELL_E_DRAM_POWER_INFO 0x0000061C
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. Configuration of PCIE PLL Relative to BCLK(R/W).
|
||||||
|
|
||||||
|
@param ECX MSR_HASWELL_E_PCIE_PLL_RATIO (0x0000061E)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_PCIE_PLL_RATIO_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_HASWELL_E_PCIE_PLL_RATIO_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_HASWELL_E_PCIE_PLL_RATIO_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_HASWELL_E_PCIE_PLL_RATIO);
|
||||||
|
AsmWriteMsr64 (MSR_HASWELL_E_PCIE_PLL_RATIO, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_HASWELL_E_PCIE_PLL_RATIO is defined as MSR_PCIE_PLL_RATIO in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_HASWELL_E_PCIE_PLL_RATIO 0x0000061E
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_HASWELL_E_PCIE_PLL_RATIO
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bits 1:0] Package. PCIE Ratio (R/W) 00b: Use 5:5 mapping for100MHz
|
||||||
|
/// operation (default) 01b: Use 5:4 mapping for125MHz operation 10b: Use
|
||||||
|
/// 5:3 mapping for166MHz operation 11b: Use 5:2 mapping for250MHz
|
||||||
|
/// operation.
|
||||||
|
///
|
||||||
|
UINT32 PCIERatio:2;
|
||||||
|
///
|
||||||
|
/// [Bit 2] Package. LPLL Select (R/W) if 1, use configured setting of
|
||||||
|
/// PCIE Ratio.
|
||||||
|
///
|
||||||
|
UINT32 LPLLSelect:1;
|
||||||
|
///
|
||||||
|
/// [Bit 3] Package. LONG RESET (R/W) if 1, wait additional time-out
|
||||||
|
/// before re-locking Gen2/Gen3 PLLs.
|
||||||
|
///
|
||||||
|
UINT32 LONGRESET:1;
|
||||||
|
UINT32 Reserved1:28;
|
||||||
|
UINT32 Reserved2:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_HASWELL_E_PCIE_PLL_RATIO_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. Reserved (R/O) Reads return 0.
|
||||||
|
|
||||||
|
@param ECX MSR_HASWELL_E_PP0_ENERGY_STATUS (0x00000639)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_HASWELL_E_PP0_ENERGY_STATUS);
|
||||||
|
@endcode
|
||||||
|
@note MSR_HASWELL_E_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_HASWELL_E_PP0_ENERGY_STATUS 0x00000639
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Indicator of Frequency Clipping in Processor Cores (R/W) (frequency
|
Package. Indicator of Frequency Clipping in Processor Cores (R/W) (frequency
|
||||||
refers to processor core frequency).
|
refers to processor core frequency).
|
||||||
|
@ -1048,7 +1029,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
THREAD. Monitoring Event Select Register (R/W). if CPUID.(EAX=07H,
|
THREAD. Monitoring Event Select Register (R/W). if CPUID.(EAX=07H,
|
||||||
ECX=0):EBX.PQM[bit 12] = 1.
|
ECX=0):EBX.RDT-M[bit 12] = 1.
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_E_IA32_QM_EVTSEL (0x00000C8D)
|
@param ECX MSR_HASWELL_E_IA32_QM_EVTSEL (0x00000C8D)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-10.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.11.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -442,15 +442,8 @@ typedef union {
|
||||||
UINT32 InterruptResponseTimeLimit:10;
|
UINT32 InterruptResponseTimeLimit:10;
|
||||||
///
|
///
|
||||||
/// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time
|
/// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time
|
||||||
/// unit of the interrupt response time limit. The following time unit
|
/// unit of the interrupt response time limit. See Table 35-18 for
|
||||||
/// encodings are supported:
|
/// supported time unit encodings.
|
||||||
///
|
|
||||||
/// 000b: 1 ns
|
|
||||||
/// 001b: 32 ns
|
|
||||||
/// 010b: 1024 ns
|
|
||||||
/// 011b: 32768 ns
|
|
||||||
/// 100b: 1048576 ns
|
|
||||||
/// 101b: 33554432 ns.
|
|
||||||
///
|
///
|
||||||
UINT32 TimeUnit:3;
|
UINT32 TimeUnit:3;
|
||||||
UINT32 Reserved1:2;
|
UINT32 Reserved1:2;
|
||||||
|
@ -514,15 +507,8 @@ typedef union {
|
||||||
UINT32 InterruptResponseTimeLimit:10;
|
UINT32 InterruptResponseTimeLimit:10;
|
||||||
///
|
///
|
||||||
/// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time
|
/// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time
|
||||||
/// unit of the interrupt response time limit. The following time unit
|
/// unit of the interrupt response time limit. See Table 35-18 for
|
||||||
/// encodings are supported:
|
/// supported time unit encodings.
|
||||||
///
|
|
||||||
/// 000b: 1 ns
|
|
||||||
/// 001b: 32 ns
|
|
||||||
/// 010b: 1024 ns
|
|
||||||
/// 011b: 32768 ns
|
|
||||||
/// 100b: 1048576 ns
|
|
||||||
/// 101b: 33554432 ns.
|
|
||||||
///
|
///
|
||||||
UINT32 TimeUnit:3;
|
UINT32 TimeUnit:3;
|
||||||
UINT32 Reserved1:2;
|
UINT32 Reserved1:2;
|
||||||
|
@ -863,25 +849,6 @@ typedef union {
|
||||||
} MSR_HASWELL_TURBO_ACTIVATION_RATIO_REGISTER;
|
} MSR_HASWELL_TURBO_ACTIVATION_RATIO_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Silicon Debug Feature Control (R/W) See Table 35-2.
|
|
||||||
|
|
||||||
@param ECX MSR_HASWELL_IA32_DEBUG_FEATURE (0x00000C80)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_HASWELL_IA32_DEBUG_FEATURE);
|
|
||||||
AsmWriteMsr64 (MSR_HASWELL_IA32_DEBUG_FEATURE, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_HASWELL_IA32_DEBUG_FEATURE is defined as IA32_DEBUG_FEATURE in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_HASWELL_IA32_DEBUG_FEATURE 0x00000C80
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. C-State Configuration Control (R/W) Note: C-state values are processor
|
Core. C-State Configuration Control (R/W) Note: C-state values are processor
|
||||||
specific C-state code names, unrelated to MWAIT extension C-state parameters
|
specific C-state code names, unrelated to MWAIT extension C-state parameters
|
||||||
|
@ -1609,6 +1576,25 @@ typedef union {
|
||||||
} MSR_HASWELL_RAPL_POWER_UNIT_REGISTER;
|
} MSR_HASWELL_RAPL_POWER_UNIT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL
|
||||||
|
Domains.".
|
||||||
|
|
||||||
|
@param ECX MSR_HASWELL_PP0_ENERGY_STATUS (0x00000639)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_HASWELL_PP0_ENERGY_STATUS);
|
||||||
|
@endcode
|
||||||
|
@note MSR_HASWELL_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_HASWELL_PP0_ENERGY_STATUS 0x00000639
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. PP1 RAPL Power Limit Control (R/W) See Section 14.9.4, "PP0/PP1
|
Package. PP1 RAPL Power Limit Control (R/W) See Section 14.9.4, "PP0/PP1
|
||||||
RAPL Domains.".
|
RAPL Domains.".
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-9.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.10.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -200,6 +200,25 @@ typedef union {
|
||||||
} MSR_IVY_BRIDGE_PKG_CST_CONFIG_CONTROL_REGISTER;
|
} MSR_IVY_BRIDGE_PKG_CST_CONFIG_CONTROL_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL
|
||||||
|
Domains.".
|
||||||
|
|
||||||
|
@param ECX MSR_IVY_BRIDGE_PP0_ENERGY_STATUS (0x00000639)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_PP0_ENERGY_STATUS);
|
||||||
|
@endcode
|
||||||
|
@note MSR_IVY_BRIDGE_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_IVY_BRIDGE_PP0_ENERGY_STATUS 0x00000639
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Base TDP Ratio (R/O).
|
Package. Base TDP Ratio (R/O).
|
||||||
|
|
||||||
|
@ -812,313 +831,6 @@ typedef union {
|
||||||
} MSR_IVY_BRIDGE_TURBO_RATIO_LIMIT1_REGISTER;
|
} MSR_IVY_BRIDGE_TURBO_RATIO_LIMIT1_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.". Bank MC5 reports MC error from the Intel
|
|
||||||
QPI module.
|
|
||||||
|
|
||||||
* Bank MC6 reports MC error from the integrated I/O module.
|
|
||||||
* Banks MC7 and MC 8 report MC error from the two home agents.
|
|
||||||
* Banks MC9 through MC 16 report MC error from each channel of the integrated
|
|
||||||
memory controllers.
|
|
||||||
* Banks MC17 through MC31 reports MC error from a specific CBo
|
|
||||||
(core broadcast) and its corresponding slice of L3.
|
|
||||||
|
|
||||||
@param ECX MSR_IVY_BRIDGE_MCi_CTL
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_MC5_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_IVY_BRIDGE_MC5_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_IVY_BRIDGE_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC6_CTL is defined as MSR_MC6_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC7_CTL is defined as MSR_MC7_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC8_CTL is defined as MSR_MC8_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC9_CTL is defined as MSR_MC9_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC10_CTL is defined as MSR_MC10_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC11_CTL is defined as MSR_MC11_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC12_CTL is defined as MSR_MC12_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC13_CTL is defined as MSR_MC13_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC14_CTL is defined as MSR_MC14_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC15_CTL is defined as MSR_MC15_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC16_CTL is defined as MSR_MC16_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC17_CTL is defined as MSR_MC17_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC18_CTL is defined as MSR_MC18_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC19_CTL is defined as MSR_MC19_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC20_CTL is defined as MSR_MC20_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC21_CTL is defined as MSR_MC21_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC22_CTL is defined as MSR_MC22_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC23_CTL is defined as MSR_MC23_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC24_CTL is defined as MSR_MC24_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC25_CTL is defined as MSR_MC25_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC26_CTL is defined as MSR_MC26_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC27_CTL is defined as MSR_MC27_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC28_CTL is defined as MSR_MC28_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC29_CTL is defined as MSR_MC29_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC30_CTL is defined as MSR_MC30_CTL in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC31_CTL is defined as MSR_MC31_CTL in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_IVY_BRIDGE_MC5_CTL 0x00000414
|
|
||||||
#define MSR_IVY_BRIDGE_MC6_CTL 0x00000418
|
|
||||||
#define MSR_IVY_BRIDGE_MC7_CTL 0x0000041C
|
|
||||||
#define MSR_IVY_BRIDGE_MC8_CTL 0x00000420
|
|
||||||
#define MSR_IVY_BRIDGE_MC9_CTL 0x00000424
|
|
||||||
#define MSR_IVY_BRIDGE_MC10_CTL 0x00000428
|
|
||||||
#define MSR_IVY_BRIDGE_MC11_CTL 0x0000042C
|
|
||||||
#define MSR_IVY_BRIDGE_MC12_CTL 0x00000430
|
|
||||||
#define MSR_IVY_BRIDGE_MC13_CTL 0x00000434
|
|
||||||
#define MSR_IVY_BRIDGE_MC14_CTL 0x00000438
|
|
||||||
#define MSR_IVY_BRIDGE_MC15_CTL 0x0000043C
|
|
||||||
#define MSR_IVY_BRIDGE_MC16_CTL 0x00000440
|
|
||||||
#define MSR_IVY_BRIDGE_MC17_CTL 0x00000444
|
|
||||||
#define MSR_IVY_BRIDGE_MC18_CTL 0x00000448
|
|
||||||
#define MSR_IVY_BRIDGE_MC19_CTL 0x0000044C
|
|
||||||
#define MSR_IVY_BRIDGE_MC20_CTL 0x00000450
|
|
||||||
#define MSR_IVY_BRIDGE_MC21_CTL 0x00000454
|
|
||||||
#define MSR_IVY_BRIDGE_MC22_CTL 0x00000458
|
|
||||||
#define MSR_IVY_BRIDGE_MC23_CTL 0x0000045C
|
|
||||||
#define MSR_IVY_BRIDGE_MC24_CTL 0x00000460
|
|
||||||
#define MSR_IVY_BRIDGE_MC25_CTL 0x00000464
|
|
||||||
#define MSR_IVY_BRIDGE_MC26_CTL 0x00000468
|
|
||||||
#define MSR_IVY_BRIDGE_MC27_CTL 0x0000046C
|
|
||||||
#define MSR_IVY_BRIDGE_MC28_CTL 0x00000470
|
|
||||||
#define MSR_IVY_BRIDGE_MC29_CTL 0x00000474
|
|
||||||
#define MSR_IVY_BRIDGE_MC30_CTL 0x00000478
|
|
||||||
#define MSR_IVY_BRIDGE_MC31_CTL 0x0000047C
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
Bank MC20 reports MC error from a specific CBo (core broadcast) and
|
|
||||||
its corresponding slice of L3.
|
|
||||||
|
|
||||||
@param ECX MSR_IVY_BRIDGE_MCi_STATUS
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_MC5_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_IVY_BRIDGE_MC5_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_IVY_BRIDGE_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC6_STATUS is defined as MSR_MC6_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC7_STATUS is defined as MSR_MC7_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC8_STATUS is defined as MSR_MC8_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC9_STATUS is defined as MSR_MC9_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC10_STATUS is defined as MSR_MC10_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC11_STATUS is defined as MSR_MC11_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC12_STATUS is defined as MSR_MC12_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC13_STATUS is defined as MSR_MC13_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC14_STATUS is defined as MSR_MC14_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC15_STATUS is defined as MSR_MC15_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC16_STATUS is defined as MSR_MC16_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC17_STATUS is defined as MSR_MC17_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC18_STATUS is defined as MSR_MC18_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC19_STATUS is defined as MSR_MC19_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC20_STATUS is defined as MSR_MC20_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC21_STATUS is defined as MSR_MC21_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC22_STATUS is defined as MSR_MC22_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC23_STATUS is defined as MSR_MC23_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC24_STATUS is defined as MSR_MC24_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC25_STATUS is defined as MSR_MC25_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC26_STATUS is defined as MSR_MC26_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC27_STATUS is defined as MSR_MC27_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC28_STATUS is defined as MSR_MC28_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC29_STATUS is defined as MSR_MC29_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC30_STATUS is defined as MSR_MC30_STATUS in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC31_STATUS is defined as MSR_MC31_STATUS in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_IVY_BRIDGE_MC5_STATUS 0x00000415
|
|
||||||
#define MSR_IVY_BRIDGE_MC6_STATUS 0x00000419
|
|
||||||
#define MSR_IVY_BRIDGE_MC7_STATUS 0x0000041D
|
|
||||||
#define MSR_IVY_BRIDGE_MC8_STATUS 0x00000421
|
|
||||||
#define MSR_IVY_BRIDGE_MC9_STATUS 0x00000425
|
|
||||||
#define MSR_IVY_BRIDGE_MC10_STATUS 0x00000429
|
|
||||||
#define MSR_IVY_BRIDGE_MC11_STATUS 0x0000042D
|
|
||||||
#define MSR_IVY_BRIDGE_MC12_STATUS 0x00000431
|
|
||||||
#define MSR_IVY_BRIDGE_MC13_STATUS 0x00000435
|
|
||||||
#define MSR_IVY_BRIDGE_MC14_STATUS 0x00000439
|
|
||||||
#define MSR_IVY_BRIDGE_MC15_STATUS 0x0000043D
|
|
||||||
#define MSR_IVY_BRIDGE_MC16_STATUS 0x00000441
|
|
||||||
#define MSR_IVY_BRIDGE_MC17_STATUS 0x00000445
|
|
||||||
#define MSR_IVY_BRIDGE_MC18_STATUS 0x00000449
|
|
||||||
#define MSR_IVY_BRIDGE_MC19_STATUS 0x0000044D
|
|
||||||
#define MSR_IVY_BRIDGE_MC20_STATUS 0x00000451
|
|
||||||
#define MSR_IVY_BRIDGE_MC21_STATUS 0x00000455
|
|
||||||
#define MSR_IVY_BRIDGE_MC22_STATUS 0x00000459
|
|
||||||
#define MSR_IVY_BRIDGE_MC23_STATUS 0x0000045D
|
|
||||||
#define MSR_IVY_BRIDGE_MC24_STATUS 0x00000461
|
|
||||||
#define MSR_IVY_BRIDGE_MC25_STATUS 0x00000465
|
|
||||||
#define MSR_IVY_BRIDGE_MC26_STATUS 0x00000469
|
|
||||||
#define MSR_IVY_BRIDGE_MC27_STATUS 0x0000046D
|
|
||||||
#define MSR_IVY_BRIDGE_MC28_STATUS 0x00000471
|
|
||||||
#define MSR_IVY_BRIDGE_MC29_STATUS 0x00000475
|
|
||||||
#define MSR_IVY_BRIDGE_MC30_STATUS 0x00000479
|
|
||||||
#define MSR_IVY_BRIDGE_MC31_STATUS 0x0000047D
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_IVY_BRIDGE_MCi_ADDR
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_MC5_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_IVY_BRIDGE_MC5_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_IVY_BRIDGE_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC6_ADDR is defined as MSR_MC6_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC7_ADDR is defined as MSR_MC7_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC8_ADDR is defined as MSR_MC8_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC9_ADDR is defined as MSR_MC9_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC10_ADDR is defined as MSR_MC10_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC11_ADDR is defined as MSR_MC11_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC12_ADDR is defined as MSR_MC12_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC13_ADDR is defined as MSR_MC13_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC14_ADDR is defined as MSR_MC14_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC15_ADDR is defined as MSR_MC15_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC16_ADDR is defined as MSR_MC16_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC17_ADDR is defined as MSR_MC17_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC18_ADDR is defined as MSR_MC18_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC19_ADDR is defined as MSR_MC19_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC20_ADDR is defined as MSR_MC20_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC21_ADDR is defined as MSR_MC21_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC22_ADDR is defined as MSR_MC22_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC23_ADDR is defined as MSR_MC23_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC24_ADDR is defined as MSR_MC24_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC25_ADDR is defined as MSR_MC25_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC26_ADDR is defined as MSR_MC26_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC27_ADDR is defined as MSR_MC27_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC28_ADDR is defined as MSR_MC28_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC29_ADDR is defined as MSR_MC29_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC30_ADDR is defined as MSR_MC30_ADDR in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC31_ADDR is defined as MSR_MC31_ADDR in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_IVY_BRIDGE_MC5_ADDR 0x00000416
|
|
||||||
#define MSR_IVY_BRIDGE_MC6_ADDR 0x0000041A
|
|
||||||
#define MSR_IVY_BRIDGE_MC7_ADDR 0x0000041E
|
|
||||||
#define MSR_IVY_BRIDGE_MC8_ADDR 0x00000422
|
|
||||||
#define MSR_IVY_BRIDGE_MC9_ADDR 0x00000426
|
|
||||||
#define MSR_IVY_BRIDGE_MC10_ADDR 0x0000042A
|
|
||||||
#define MSR_IVY_BRIDGE_MC11_ADDR 0x0000042E
|
|
||||||
#define MSR_IVY_BRIDGE_MC12_ADDR 0x00000432
|
|
||||||
#define MSR_IVY_BRIDGE_MC13_ADDR 0x00000436
|
|
||||||
#define MSR_IVY_BRIDGE_MC14_ADDR 0x0000043A
|
|
||||||
#define MSR_IVY_BRIDGE_MC15_ADDR 0x0000043E
|
|
||||||
#define MSR_IVY_BRIDGE_MC16_ADDR 0x00000442
|
|
||||||
#define MSR_IVY_BRIDGE_MC17_ADDR 0x00000446
|
|
||||||
#define MSR_IVY_BRIDGE_MC18_ADDR 0x0000044A
|
|
||||||
#define MSR_IVY_BRIDGE_MC19_ADDR 0x0000044E
|
|
||||||
#define MSR_IVY_BRIDGE_MC20_ADDR 0x00000452
|
|
||||||
#define MSR_IVY_BRIDGE_MC21_ADDR 0x00000456
|
|
||||||
#define MSR_IVY_BRIDGE_MC22_ADDR 0x0000045A
|
|
||||||
#define MSR_IVY_BRIDGE_MC23_ADDR 0x0000045E
|
|
||||||
#define MSR_IVY_BRIDGE_MC24_ADDR 0x00000462
|
|
||||||
#define MSR_IVY_BRIDGE_MC25_ADDR 0x00000466
|
|
||||||
#define MSR_IVY_BRIDGE_MC26_ADDR 0x0000046A
|
|
||||||
#define MSR_IVY_BRIDGE_MC27_ADDR 0x0000046E
|
|
||||||
#define MSR_IVY_BRIDGE_MC28_ADDR 0x00000472
|
|
||||||
#define MSR_IVY_BRIDGE_MC29_ADDR 0x00000476
|
|
||||||
#define MSR_IVY_BRIDGE_MC30_ADDR 0x0000047A
|
|
||||||
#define MSR_IVY_BRIDGE_MC31_ADDR 0x0000047E
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_IVY_BRIDGE_MCi_MISC
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_MC5_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_IVY_BRIDGE_MC5_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_IVY_BRIDGE_MC5_MISC is defined as MSR_MC5_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC6_MISC is defined as MSR_MC6_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC7_MISC is defined as MSR_MC7_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC8_MISC is defined as MSR_MC8_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC9_MISC is defined as MSR_MC9_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC10_MISC is defined as MSR_MC10_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC11_MISC is defined as MSR_MC11_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC12_MISC is defined as MSR_MC12_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC13_MISC is defined as MSR_MC13_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC14_MISC is defined as MSR_MC14_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC15_MISC is defined as MSR_MC15_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC16_MISC is defined as MSR_MC16_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC17_MISC is defined as MSR_MC17_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC18_MISC is defined as MSR_MC18_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC19_MISC is defined as MSR_MC19_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC20_MISC is defined as MSR_MC20_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC21_MISC is defined as MSR_MC21_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC22_MISC is defined as MSR_MC22_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC23_MISC is defined as MSR_MC23_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC24_MISC is defined as MSR_MC24_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC25_MISC is defined as MSR_MC25_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC26_MISC is defined as MSR_MC26_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC27_MISC is defined as MSR_MC27_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC28_MISC is defined as MSR_MC28_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC29_MISC is defined as MSR_MC29_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC30_MISC is defined as MSR_MC30_MISC in SDM.
|
|
||||||
MSR_IVY_BRIDGE_MC31_MISC is defined as MSR_MC31_MISC in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_IVY_BRIDGE_MC5_MISC 0x00000417
|
|
||||||
#define MSR_IVY_BRIDGE_MC6_MISC 0x0000041B
|
|
||||||
#define MSR_IVY_BRIDGE_MC7_MISC 0x0000041F
|
|
||||||
#define MSR_IVY_BRIDGE_MC8_MISC 0x00000423
|
|
||||||
#define MSR_IVY_BRIDGE_MC9_MISC 0x00000427
|
|
||||||
#define MSR_IVY_BRIDGE_MC10_MISC 0x0000042B
|
|
||||||
#define MSR_IVY_BRIDGE_MC11_MISC 0x0000042F
|
|
||||||
#define MSR_IVY_BRIDGE_MC12_MISC 0x00000433
|
|
||||||
#define MSR_IVY_BRIDGE_MC13_MISC 0x00000437
|
|
||||||
#define MSR_IVY_BRIDGE_MC14_MISC 0x0000043B
|
|
||||||
#define MSR_IVY_BRIDGE_MC15_MISC 0x0000043F
|
|
||||||
#define MSR_IVY_BRIDGE_MC16_MISC 0x00000443
|
|
||||||
#define MSR_IVY_BRIDGE_MC17_MISC 0x00000447
|
|
||||||
#define MSR_IVY_BRIDGE_MC18_MISC 0x0000044B
|
|
||||||
#define MSR_IVY_BRIDGE_MC19_MISC 0x0000044F
|
|
||||||
#define MSR_IVY_BRIDGE_MC20_MISC 0x00000453
|
|
||||||
#define MSR_IVY_BRIDGE_MC21_MISC 0x00000457
|
|
||||||
#define MSR_IVY_BRIDGE_MC22_MISC 0x0000045B
|
|
||||||
#define MSR_IVY_BRIDGE_MC23_MISC 0x0000045F
|
|
||||||
#define MSR_IVY_BRIDGE_MC24_MISC 0x00000463
|
|
||||||
#define MSR_IVY_BRIDGE_MC25_MISC 0x00000467
|
|
||||||
#define MSR_IVY_BRIDGE_MC26_MISC 0x0000046B
|
|
||||||
#define MSR_IVY_BRIDGE_MC27_MISC 0x0000046F
|
|
||||||
#define MSR_IVY_BRIDGE_MC28_MISC 0x00000473
|
|
||||||
#define MSR_IVY_BRIDGE_MC29_MISC 0x00000477
|
|
||||||
#define MSR_IVY_BRIDGE_MC30_MISC 0x0000047B
|
|
||||||
#define MSR_IVY_BRIDGE_MC31_MISC 0x0000047F
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Misc MAC information of Integrated I/O. (R/O) see Section 15.3.2.4.
|
Package. Misc MAC information of Integrated I/O. (R/O) see Section 15.3.2.4.
|
||||||
|
|
||||||
|
@ -1172,6 +884,122 @@ typedef union {
|
||||||
} MSR_IVY_BRIDGE_IA32_MC6_MISC_REGISTER;
|
} MSR_IVY_BRIDGE_IA32_MC6_MISC_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
||||||
|
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
||||||
|
|
||||||
|
Bank MC29 through MC31 reports MC error from a specific CBo (core broadcast)
|
||||||
|
and its corresponding slice of L3.
|
||||||
|
|
||||||
|
@param ECX MSR_IVY_BRIDGE_IA32_MCi_CTL
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_IA32_MC29_CTL);
|
||||||
|
AsmWriteMsr64 (MSR_IVY_BRIDGE_IA32_MC29_CTL, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_IVY_BRIDGE_IA32_MC29_CTL is defined as IA32_MC29_CTL in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC30_CTL is defined as IA32_MC30_CTL in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC31_CTL is defined as IA32_MC31_CTL in SDM.
|
||||||
|
@{
|
||||||
|
**/
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC29_CTL 0x00000474
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC30_CTL 0x00000478
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC31_CTL 0x0000047C
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
||||||
|
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
||||||
|
|
||||||
|
Bank MC29 through MC31 reports MC error from a specific CBo (core broadcast)
|
||||||
|
and its corresponding slice of L3.
|
||||||
|
|
||||||
|
@param ECX MSR_IVY_BRIDGE_IA32_MCi_STATUS
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_IA32_MC29_STATUS);
|
||||||
|
AsmWriteMsr64 (MSR_IVY_BRIDGE_IA32_MC29_STATUS, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_IVY_BRIDGE_IA32_MC29_STATUS is defined as IA32_MC29_STATUS in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC30_STATUS is defined as IA32_MC30_STATUS in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC31_STATUS is defined as IA32_MC31_STATUS in SDM.
|
||||||
|
@{
|
||||||
|
**/
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC29_STATUS 0x00000475
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC30_STATUS 0x00000479
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC31_STATUS 0x0000047D
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
||||||
|
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
||||||
|
|
||||||
|
Bank MC29 through MC31 reports MC error from a specific CBo (core broadcast)
|
||||||
|
and its corresponding slice of L3.
|
||||||
|
|
||||||
|
@param ECX MSR_IVY_BRIDGE_IA32_MCi_ADDR
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_IA32_MC29_ADDR);
|
||||||
|
AsmWriteMsr64 (MSR_IVY_BRIDGE_IA32_MC29_ADDR, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_IVY_BRIDGE_IA32_MC29_ADDR is defined as IA32_MC29_ADDR in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC30_ADDR is defined as IA32_MC30_ADDR in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC31_ADDR is defined as IA32_MC31_ADDR in SDM.
|
||||||
|
@{
|
||||||
|
**/
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC29_ADDR 0x00000476
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC30_ADDR 0x0000047A
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC31_ADDR 0x0000047E
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
||||||
|
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
||||||
|
|
||||||
|
Bank MC29 through MC31 reports MC error from a specific CBo (core broadcast)
|
||||||
|
and its corresponding slice of L3.
|
||||||
|
|
||||||
|
@param ECX MSR_IVY_BRIDGE_IA32_MCi_MISC
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_IVY_BRIDGE_IA32_MC29_MISC);
|
||||||
|
AsmWriteMsr64 (MSR_IVY_BRIDGE_IA32_MC29_MISC, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_IVY_BRIDGE_IA32_MC29_MISC is defined as IA32_MC29_MISC in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC30_MISC is defined as IA32_MC30_MISC in SDM.
|
||||||
|
MSR_IVY_BRIDGE_IA32_MC31_MISC is defined as IA32_MC31_MISC in SDM.
|
||||||
|
@{
|
||||||
|
**/
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC29_MISC 0x00000477
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC30_MISC 0x0000047B
|
||||||
|
#define MSR_IVY_BRIDGE_IA32_MC31_MISC 0x0000047F
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Package RAPL Perf Status (R/O).
|
Package. Package RAPL Perf Status (R/O).
|
||||||
|
|
||||||
|
@ -1267,7 +1095,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. See Section 18.7.1.1, "Precise Event Based Sampling (PEBS).".
|
Thread. See Section 18.8.1.1, "Precise Event Based Sampling (PEBS).".
|
||||||
|
|
||||||
@param ECX MSR_IVY_BRIDGE_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_IVY_BRIDGE_PEBS_ENABLE (0x000003F1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-5.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.6.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -254,7 +254,23 @@ typedef union {
|
||||||
/// auto-demote information.
|
/// auto-demote information.
|
||||||
///
|
///
|
||||||
UINT32 C1AutoDemotion:1;
|
UINT32 C1AutoDemotion:1;
|
||||||
UINT32 Reserved4:5;
|
///
|
||||||
|
/// [Bit 27] Enable C3 Undemotion (R/W).
|
||||||
|
///
|
||||||
|
UINT32 C3Undemotion:1;
|
||||||
|
///
|
||||||
|
/// [Bit 28] Enable C1 Undemotion (R/W).
|
||||||
|
///
|
||||||
|
UINT32 C1Undemotion:1;
|
||||||
|
///
|
||||||
|
/// [Bit 29] Package C State Demotion Enable (R/W).
|
||||||
|
///
|
||||||
|
UINT32 CStateDemotion:1;
|
||||||
|
///
|
||||||
|
/// [Bit 30] Package C State UnDemotion Enable (R/W).
|
||||||
|
///
|
||||||
|
UINT32 CStateUndemotion:1;
|
||||||
|
UINT32 Reserved4:1;
|
||||||
UINT32 Reserved5:32;
|
UINT32 Reserved5:32;
|
||||||
} Bits;
|
} Bits;
|
||||||
///
|
///
|
||||||
|
@ -364,7 +380,7 @@ typedef union {
|
||||||
UINT32 Reserved1:2;
|
UINT32 Reserved1:2;
|
||||||
///
|
///
|
||||||
/// [Bit 3] Thread. Automatic Thermal Control Circuit Enable (R/W) See
|
/// [Bit 3] Thread. Automatic Thermal Control Circuit Enable (R/W) See
|
||||||
/// Table 35-2.
|
/// Table 35-2. Default value is 1.
|
||||||
///
|
///
|
||||||
UINT32 AutomaticThermalControlCircuit:1;
|
UINT32 AutomaticThermalControlCircuit:1;
|
||||||
UINT32 Reserved2:3;
|
UINT32 Reserved2:3;
|
||||||
|
@ -378,7 +394,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Thread. Precise Event Based Sampling Unavailable (RO) See
|
/// [Bit 12] Thread. Processor Event Based Sampling Unavailable (RO) See
|
||||||
/// Table 35-2.
|
/// Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
|
@ -744,7 +760,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. Last Branch Record Filtering Select Register (R/W) See Section
|
Core. Last Branch Record Filtering Select Register (R/W) See Section
|
||||||
17.6.2, "Filtering of Last Branch Records.".
|
17.7.2, "Filtering of Last Branch Records.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_LBR_SELECT (0x000001C8)
|
@param ECX MSR_NEHALEM_LBR_SELECT (0x000001C8)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -932,47 +948,27 @@ typedef union {
|
||||||
} MSR_NEHALEM_POWER_CTL_REGISTER;
|
} MSR_NEHALEM_POWER_CTL_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Thread. See Table 35-2. See Section 18.4.2, "Global Counter Control
|
|
||||||
Facilities.".
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_NEHALEM_IA32_PERF_GLOBAL_STAUS);
|
|
||||||
AsmWriteMsr64 (MSR_NEHALEM_IA32_PERF_GLOBAL_STAUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_NEHALEM_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_NEHALEM_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. (RO).
|
Thread. (RO).
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_PERF_GLOBAL_STAUS (0x0000038E)
|
@param ECX MSR_NEHALEM_PERF_GLOBAL_STATUS (0x0000038E)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
Described by the type MSR_NEHALEM_PERF_GLOBAL_STAUS_REGISTER.
|
Described by the type MSR_NEHALEM_PERF_GLOBAL_STATUS_REGISTER.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
Described by the type MSR_NEHALEM_PERF_GLOBAL_STAUS_REGISTER.
|
Described by the type MSR_NEHALEM_PERF_GLOBAL_STATUS_REGISTER.
|
||||||
|
|
||||||
<b>Example usage</b>
|
<b>Example usage</b>
|
||||||
@code
|
@code
|
||||||
MSR_NEHALEM_PERF_GLOBAL_STAUS_REGISTER Msr;
|
MSR_NEHALEM_PERF_GLOBAL_STATUS_REGISTER Msr;
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_NEHALEM_PERF_GLOBAL_STAUS);
|
Msr.Uint64 = AsmReadMsr64 (MSR_NEHALEM_PERF_GLOBAL_STATUS);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_NEHALEM_PERF_GLOBAL_STAUS is defined as MSR_PERF_GLOBAL_STAUS in SDM.
|
@note MSR_NEHALEM_PERF_GLOBAL_STATUS is defined as MSR_PERF_GLOBAL_STATUS in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_NEHALEM_PERF_GLOBAL_STAUS 0x0000038E
|
#define MSR_NEHALEM_PERF_GLOBAL_STATUS 0x0000038E
|
||||||
|
|
||||||
/**
|
/**
|
||||||
MSR information returned for MSR index #MSR_NEHALEM_PERF_GLOBAL_STAUS
|
MSR information returned for MSR index #MSR_NEHALEM_PERF_GLOBAL_STATUS
|
||||||
**/
|
**/
|
||||||
typedef union {
|
typedef union {
|
||||||
///
|
///
|
||||||
|
@ -991,7 +987,7 @@ typedef union {
|
||||||
/// All bit fields as a 64-bit value
|
/// All bit fields as a 64-bit value
|
||||||
///
|
///
|
||||||
UINT64 Uint64;
|
UINT64 Uint64;
|
||||||
} MSR_NEHALEM_PERF_GLOBAL_STAUS_REGISTER;
|
} MSR_NEHALEM_PERF_GLOBAL_STATUS_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1038,7 +1034,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. See Section 18.7.1.1, "Precise Event Based Sampling (PEBS).".
|
Thread. See Section 18.8.1.1, "Processor Event Based Sampling (PEBS).".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_NEHALEM_PEBS_ENABLE (0x000003F1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1108,7 +1104,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. See Section 18.7.1.2, "Load Latency Performance Monitoring
|
Thread. See Section 18.8.1.2, "Load Latency Performance Monitoring
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_PEBS_LD_LAT (0x000003F6)
|
@param ECX MSR_NEHALEM_PEBS_LD_LAT (0x000003F6)
|
||||||
|
@ -1265,257 +1261,12 @@ typedef union {
|
||||||
#define MSR_NEHALEM_CORE_C6_RESIDENCY 0x000003FD
|
#define MSR_NEHALEM_CORE_C6_RESIDENCY 0x000003FD
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_MCi_MISC
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_NEHALEM_MC0_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_NEHALEM_MC0_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_NEHALEM_MC0_MISC is defined as MSR_MC0_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC1_MISC is defined as MSR_MC1_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC2_MISC is defined as MSR_MC2_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC3_MISC is defined as MSR_MC3_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC4_MISC is defined as MSR_MC4_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC5_MISC is defined as MSR_MC5_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC6_MISC is defined as MSR_MC6_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC7_MISC is defined as MSR_MC7_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC8_MISC is defined as MSR_MC8_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC9_MISC is defined as MSR_MC9_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC10_MISC is defined as MSR_MC10_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC11_MISC is defined as MSR_MC11_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC12_MISC is defined as MSR_MC12_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC13_MISC is defined as MSR_MC13_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC14_MISC is defined as MSR_MC14_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC15_MISC is defined as MSR_MC15_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC16_MISC is defined as MSR_MC16_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC17_MISC is defined as MSR_MC17_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC18_MISC is defined as MSR_MC18_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC19_MISC is defined as MSR_MC19_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC20_MISC is defined as MSR_MC20_MISC in SDM.
|
|
||||||
MSR_NEHALEM_MC21_MISC is defined as MSR_MC21_MISC in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_NEHALEM_MC0_MISC 0x00000403
|
|
||||||
#define MSR_NEHALEM_MC1_MISC 0x00000407
|
|
||||||
#define MSR_NEHALEM_MC2_MISC 0x0000040B
|
|
||||||
#define MSR_NEHALEM_MC3_MISC 0x0000040F
|
|
||||||
#define MSR_NEHALEM_MC4_MISC 0x00000413
|
|
||||||
#define MSR_NEHALEM_MC5_MISC 0x00000417
|
|
||||||
#define MSR_NEHALEM_MC6_MISC 0x0000041B
|
|
||||||
#define MSR_NEHALEM_MC7_MISC 0x0000041F
|
|
||||||
#define MSR_NEHALEM_MC8_MISC 0x00000423
|
|
||||||
#define MSR_NEHALEM_MC9_MISC 0x00000427
|
|
||||||
#define MSR_NEHALEM_MC10_MISC 0x0000042B
|
|
||||||
#define MSR_NEHALEM_MC11_MISC 0x0000042F
|
|
||||||
#define MSR_NEHALEM_MC12_MISC 0x00000433
|
|
||||||
#define MSR_NEHALEM_MC13_MISC 0x00000437
|
|
||||||
#define MSR_NEHALEM_MC14_MISC 0x0000043B
|
|
||||||
#define MSR_NEHALEM_MC15_MISC 0x0000043F
|
|
||||||
#define MSR_NEHALEM_MC16_MISC 0x00000443
|
|
||||||
#define MSR_NEHALEM_MC17_MISC 0x00000447
|
|
||||||
#define MSR_NEHALEM_MC18_MISC 0x0000044B
|
|
||||||
#define MSR_NEHALEM_MC19_MISC 0x0000044F
|
|
||||||
#define MSR_NEHALEM_MC20_MISC 0x00000453
|
|
||||||
#define MSR_NEHALEM_MC21_MISC 0x00000457
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_MCi_CTL
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_NEHALEM_MC3_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_NEHALEM_MC3_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_NEHALEM_MC3_CTL is defined as MSR_MC3_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC4_CTL is defined as MSR_MC4_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC6_CTL is defined as MSR_MC6_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC7_CTL is defined as MSR_MC7_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC8_CTL is defined as MSR_MC8_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC9_CTL is defined as MSR_MC9_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC10_CTL is defined as MSR_MC10_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC11_CTL is defined as MSR_MC11_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC12_CTL is defined as MSR_MC12_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC13_CTL is defined as MSR_MC13_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC14_CTL is defined as MSR_MC14_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC15_CTL is defined as MSR_MC15_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC16_CTL is defined as MSR_MC16_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC17_CTL is defined as MSR_MC17_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC18_CTL is defined as MSR_MC18_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC19_CTL is defined as MSR_MC19_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC20_CTL is defined as MSR_MC20_CTL in SDM.
|
|
||||||
MSR_NEHALEM_MC21_CTL is defined as MSR_MC21_CTL in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_NEHALEM_MC3_CTL 0x0000040C
|
|
||||||
#define MSR_NEHALEM_MC4_CTL 0x00000410
|
|
||||||
#define MSR_NEHALEM_MC5_CTL 0x00000414
|
|
||||||
#define MSR_NEHALEM_MC6_CTL 0x00000418
|
|
||||||
#define MSR_NEHALEM_MC7_CTL 0x0000041C
|
|
||||||
#define MSR_NEHALEM_MC8_CTL 0x00000420
|
|
||||||
#define MSR_NEHALEM_MC9_CTL 0x00000424
|
|
||||||
#define MSR_NEHALEM_MC10_CTL 0x00000428
|
|
||||||
#define MSR_NEHALEM_MC11_CTL 0x0000042C
|
|
||||||
#define MSR_NEHALEM_MC12_CTL 0x00000430
|
|
||||||
#define MSR_NEHALEM_MC13_CTL 0x00000434
|
|
||||||
#define MSR_NEHALEM_MC14_CTL 0x00000438
|
|
||||||
#define MSR_NEHALEM_MC15_CTL 0x0000043C
|
|
||||||
#define MSR_NEHALEM_MC16_CTL 0x00000440
|
|
||||||
#define MSR_NEHALEM_MC17_CTL 0x00000444
|
|
||||||
#define MSR_NEHALEM_MC18_CTL 0x00000448
|
|
||||||
#define MSR_NEHALEM_MC19_CTL 0x0000044C
|
|
||||||
#define MSR_NEHALEM_MC20_CTL 0x00000450
|
|
||||||
#define MSR_NEHALEM_MC21_CTL 0x00000454
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
See Section 15.3.2.2, "IA32_MCi_STATUS MSRS," and Chapter 16.
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_MCi_STATUS (0x0000040D)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_NEHALEM_MC3_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_NEHALEM_MC3_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_NEHALEM_MC3_STATUS is defined as MSR_MC3_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC4_STATUS is defined as MSR_MC4_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC6_STATUS is defined as MSR_MC6_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC7_STATUS is defined as MSR_MC7_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC8_STATUS is defined as MSR_MC8_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC9_STATUS is defined as MSR_MC9_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC10_STATUS is defined as MSR_MC10_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC11_STATUS is defined as MSR_MC11_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC12_STATUS is defined as MSR_MC12_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC13_STATUS is defined as MSR_MC13_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC14_STATUS is defined as MSR_MC14_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC15_STATUS is defined as MSR_MC15_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC16_STATUS is defined as MSR_MC16_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC17_STATUS is defined as MSR_MC17_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC18_STATUS is defined as MSR_MC18_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC19_STATUS is defined as MSR_MC19_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC20_STATUS is defined as MSR_MC20_STATUS in SDM.
|
|
||||||
MSR_NEHALEM_MC21_STATUS is defined as MSR_MC21_STATUS in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_NEHALEM_MC3_STATUS 0x0000040D
|
|
||||||
#define MSR_NEHALEM_MC4_STATUS 0x00000411
|
|
||||||
#define MSR_NEHALEM_MC5_STATUS 0x00000415
|
|
||||||
#define MSR_NEHALEM_MC6_STATUS 0x00000419
|
|
||||||
#define MSR_NEHALEM_MC7_STATUS 0x0000041D
|
|
||||||
#define MSR_NEHALEM_MC8_STATUS 0x00000421
|
|
||||||
#define MSR_NEHALEM_MC9_STATUS 0x00000425
|
|
||||||
#define MSR_NEHALEM_MC10_STATUS 0x00000429
|
|
||||||
#define MSR_NEHALEM_MC11_STATUS 0x0000042D
|
|
||||||
#define MSR_NEHALEM_MC12_STATUS 0x00000431
|
|
||||||
#define MSR_NEHALEM_MC13_STATUS 0x00000435
|
|
||||||
#define MSR_NEHALEM_MC14_STATUS 0x00000439
|
|
||||||
#define MSR_NEHALEM_MC15_STATUS 0x0000043D
|
|
||||||
#define MSR_NEHALEM_MC16_STATUS 0x00000441
|
|
||||||
#define MSR_NEHALEM_MC17_STATUS 0x00000445
|
|
||||||
#define MSR_NEHALEM_MC18_STATUS 0x00000449
|
|
||||||
#define MSR_NEHALEM_MC19_STATUS 0x0000044D
|
|
||||||
#define MSR_NEHALEM_MC20_STATUS 0x00000451
|
|
||||||
#define MSR_NEHALEM_MC21_STATUS 0x00000455
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs."
|
|
||||||
|
|
||||||
The MSR_MC3_ADDR register is either not implemented or contains no address
|
|
||||||
if the ADDRV flag in the MSR_MC3_STATUS register is clear. When not
|
|
||||||
implemented in the processor, all reads and writes to this MSR will cause a
|
|
||||||
general-protection exception.
|
|
||||||
|
|
||||||
The MSR_MC4_ADDR register is either not implemented or contains no address
|
|
||||||
if the ADDRV flag in the MSR_MC4_STATUS register is clear. When not
|
|
||||||
implemented in the processor, all reads and writes to this MSR will cause a
|
|
||||||
general-protection exception.
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_MC3_ADDR (0x0000040E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_NEHALEM_MC3_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_NEHALEM_MC3_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_NEHALEM_MC3_ADDR is defined as MSR_MC3_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC4_ADDR is defined as MSR_MC4_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC6_ADDR is defined as MSR_MC6_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC7_ADDR is defined as MSR_MC7_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC8_ADDR is defined as MSR_MC8_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC9_ADDR is defined as MSR_MC9_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC10_ADDR is defined as MSR_MC10_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC11_ADDR is defined as MSR_MC11_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC12_ADDR is defined as MSR_MC12_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC13_ADDR is defined as MSR_MC13_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC14_ADDR is defined as MSR_MC14_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC15_ADDR is defined as MSR_MC15_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC16_ADDR is defined as MSR_MC16_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC17_ADDR is defined as MSR_MC17_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC18_ADDR is defined as MSR_MC18_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC19_ADDR is defined as MSR_MC19_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC20_ADDR is defined as MSR_MC20_ADDR in SDM.
|
|
||||||
MSR_NEHALEM_MC21_ADDR is defined as MSR_MC21_ADDR in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_NEHALEM_MC3_ADDR 0x0000040E
|
|
||||||
#define MSR_NEHALEM_MC4_ADDR 0x00000412
|
|
||||||
#define MSR_NEHALEM_MC5_ADDR 0x00000416
|
|
||||||
#define MSR_NEHALEM_MC6_ADDR 0x0000041A
|
|
||||||
#define MSR_NEHALEM_MC7_ADDR 0x0000041E
|
|
||||||
#define MSR_NEHALEM_MC8_ADDR 0x00000422
|
|
||||||
#define MSR_NEHALEM_MC9_ADDR 0x00000426
|
|
||||||
#define MSR_NEHALEM_MC10_ADDR 0x0000042A
|
|
||||||
#define MSR_NEHALEM_MC11_ADDR 0x0000042E
|
|
||||||
#define MSR_NEHALEM_MC12_ADDR 0x00000432
|
|
||||||
#define MSR_NEHALEM_MC13_ADDR 0x00000436
|
|
||||||
#define MSR_NEHALEM_MC14_ADDR 0x0000043A
|
|
||||||
#define MSR_NEHALEM_MC15_ADDR 0x0000043E
|
|
||||||
#define MSR_NEHALEM_MC16_ADDR 0x00000442
|
|
||||||
#define MSR_NEHALEM_MC17_ADDR 0x00000446
|
|
||||||
#define MSR_NEHALEM_MC18_ADDR 0x0000044A
|
|
||||||
#define MSR_NEHALEM_MC19_ADDR 0x0000044E
|
|
||||||
#define MSR_NEHALEM_MC20_ADDR 0x00000452
|
|
||||||
#define MSR_NEHALEM_MC21_ADDR 0x00000456
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. Last Branch Record n From IP (R/W) One of sixteen pairs of last
|
Thread. Last Branch Record n From IP (R/W) One of sixteen pairs of last
|
||||||
branch record registers on the last branch record stack. This part of the
|
branch record registers on the last branch record stack. The From_IP part of
|
||||||
stack contains pointers to the source instruction for one of the last
|
the stack contains pointers to the source instruction. See also: - Last
|
||||||
sixteen branches, exceptions, or interrupts taken by the processor. See
|
Branch Record Stack TOS at 1C9H - Section 17.7.1 and record format in
|
||||||
also: - Last Branch Record Stack TOS at 1C9H - Section 17.6.1, "LBR
|
Section 17.4.8.1.
|
||||||
Stack.".
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_LASTBRANCH_n_FROM_IP
|
@param ECX MSR_NEHALEM_LASTBRANCH_n_FROM_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1568,8 +1319,7 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
Thread. Last Branch Record n To IP (R/W) One of sixteen pairs of last branch
|
Thread. Last Branch Record n To IP (R/W) One of sixteen pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. This part of the stack
|
||||||
contains pointers to the destination instruction for one of the last sixteen
|
contains pointers to the destination instruction.
|
||||||
branches, exceptions, or interrupts taken by the processor.
|
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_LASTBRANCH_n_TO_IP
|
@param ECX MSR_NEHALEM_LASTBRANCH_n_TO_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1694,7 +1444,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.1, "Uncore Performance Monitoring Management
|
Package. See Section 18.8.2.1, "Uncore Performance Monitoring Management
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_PERF_GLOBAL_CTRL (0x00000391)
|
@param ECX MSR_NEHALEM_UNCORE_PERF_GLOBAL_CTRL (0x00000391)
|
||||||
|
@ -1714,7 +1464,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.1, "Uncore Performance Monitoring Management
|
Package. See Section 18.8.2.1, "Uncore Performance Monitoring Management
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_PERF_GLOBAL_STATUS (0x00000392)
|
@param ECX MSR_NEHALEM_UNCORE_PERF_GLOBAL_STATUS (0x00000392)
|
||||||
|
@ -1734,7 +1484,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.1, "Uncore Performance Monitoring Management
|
Package. See Section 18.8.2.1, "Uncore Performance Monitoring Management
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_PERF_GLOBAL_OVF_CTRL (0x00000393)
|
@param ECX MSR_NEHALEM_UNCORE_PERF_GLOBAL_OVF_CTRL (0x00000393)
|
||||||
|
@ -1754,7 +1504,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.1, "Uncore Performance Monitoring Management
|
Package. See Section 18.8.2.1, "Uncore Performance Monitoring Management
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_FIXED_CTR0 (0x00000394)
|
@param ECX MSR_NEHALEM_UNCORE_FIXED_CTR0 (0x00000394)
|
||||||
|
@ -1774,7 +1524,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.1, "Uncore Performance Monitoring Management
|
Package. See Section 18.8.2.1, "Uncore Performance Monitoring Management
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_FIXED_CTR_CTRL (0x00000395)
|
@param ECX MSR_NEHALEM_UNCORE_FIXED_CTR_CTRL (0x00000395)
|
||||||
|
@ -1794,7 +1544,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.3, "Uncore Address/Opcode Match MSR.".
|
Package. See Section 18.8.2.3, "Uncore Address/Opcode Match MSR.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_ADDR_OPCODE_MATCH (0x00000396)
|
@param ECX MSR_NEHALEM_UNCORE_ADDR_OPCODE_MATCH (0x00000396)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1813,7 +1563,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.2, "Uncore Performance Event Configuration
|
Package. See Section 18.8.2.2, "Uncore Performance Event Configuration
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_PMCi
|
@param ECX MSR_NEHALEM_UNCORE_PMCi
|
||||||
|
@ -1848,7 +1598,7 @@ typedef union {
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. See Section 18.7.2.2, "Uncore Performance Event Configuration
|
Package. See Section 18.8.2.2, "Uncore Performance Event Configuration
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_NEHALEM_UNCORE_PERFEVTSELi
|
@param ECX MSR_NEHALEM_UNCORE_PERFEVTSELi
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-19.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.21.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
#include <Register/ArchitecturalMsr.h>
|
#include <Register/ArchitecturalMsr.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 35.20, "MSRs in Pentium Processors.".
|
See Section 35.22, "MSRs in Pentium Processors.".
|
||||||
|
|
||||||
@param ECX MSR_P6_P5_MC_ADDR (0x00000000)
|
@param ECX MSR_P6_P5_MC_ADDR (0x00000000)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 35.20, "MSRs in Pentium Processors.".
|
See Section 35.22, "MSRs in Pentium Processors.".
|
||||||
|
|
||||||
@param ECX MSR_P6_P5_MC_TYPE (0x00000001)
|
@param ECX MSR_P6_P5_MC_TYPE (0x00000001)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-16.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.18.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -927,8 +927,8 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] PEBS_UNAVILABLE: Precise Event Based Sampling Unavailable (R)
|
/// [Bit 12] PEBS_UNAVILABLE: Processor Event Based Sampling Unavailable
|
||||||
/// See Table 35-2. When set, the processor does not support precise
|
/// (R) See Table 35-2. When set, the processor does not support processor
|
||||||
/// event-based sampling (PEBS); when clear, PEBS is supported.
|
/// event-based sampling (PEBS); when clear, PEBS is supported.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
|
@ -1053,7 +1053,7 @@ typedef union {
|
||||||
0, 1, 2, 3, 4, 6. Unique. Last Exception Record From Linear IP (R) Contains
|
0, 1, 2, 3, 4, 6. Unique. Last Exception Record From Linear IP (R) Contains
|
||||||
a pointer to the last branch instruction that the processor executed prior
|
a pointer to the last branch instruction that the processor executed prior
|
||||||
to the last exception that was generated or the last interrupt that was
|
to the last exception that was generated or the last interrupt that was
|
||||||
handled. See Section 17.10.3, "Last Exception Records.". Unique. From Linear
|
handled. See Section 17.11.3, "Last Exception Records.". Unique. From Linear
|
||||||
IP Linear address of the last branch instruction (If IA32e mode is active).
|
IP Linear address of the last branch instruction (If IA32e mode is active).
|
||||||
From Linear IP Linear address of the last branch instruction. Reserved.
|
From Linear IP Linear address of the last branch instruction. Reserved.
|
||||||
|
|
||||||
|
@ -1076,7 +1076,7 @@ typedef union {
|
||||||
0, 1, 2, 3, 4, 6. Unique. Last Exception Record To Linear IP (R) This area
|
0, 1, 2, 3, 4, 6. Unique. Last Exception Record To Linear IP (R) This area
|
||||||
contains a pointer to the target of the last branch instruction that the
|
contains a pointer to the target of the last branch instruction that the
|
||||||
processor executed prior to the last exception that was generated or the
|
processor executed prior to the last exception that was generated or the
|
||||||
last interrupt that was handled. See Section 17.10.3, "Last Exception
|
last interrupt that was handled. See Section 17.11.3, "Last Exception
|
||||||
Records.". Unique. From Linear IP Linear address of the target of the last
|
Records.". Unique. From Linear IP Linear address of the target of the last
|
||||||
branch instruction (If IA-32e mode is active). From Linear IP Linear address
|
branch instruction (If IA-32e mode is active). From Linear IP Linear address
|
||||||
of the target of the last branch instruction. Reserved.
|
of the target of the last branch instruction. Reserved.
|
||||||
|
@ -1099,7 +1099,7 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Unique. Debug Control (R/W) Controls how several debug
|
0, 1, 2, 3, 4, 6. Unique. Debug Control (R/W) Controls how several debug
|
||||||
features are used. Bit definitions are discussed in the referenced section.
|
features are used. Bit definitions are discussed in the referenced section.
|
||||||
See Section 17.10.1, "MSR_DEBUGCTLA MSR.".
|
See Section 17.11.1, "MSR_DEBUGCTLA MSR.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_DEBUGCTLA (0x000001D9)
|
@param ECX MSR_PENTIUM_4_DEBUGCTLA (0x000001D9)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1121,7 +1121,7 @@ typedef union {
|
||||||
0, 1, 2, 3, 4, 6. Unique. Last Branch Record Stack TOS (R/W) Contains an
|
0, 1, 2, 3, 4, 6. Unique. Last Branch Record Stack TOS (R/W) Contains an
|
||||||
index (0-3 or 0-15) that points to the top of the last branch record stack
|
index (0-3 or 0-15) that points to the top of the last branch record stack
|
||||||
(that is, that points the index of the MSR containing the most recent branch
|
(that is, that points the index of the MSR containing the most recent branch
|
||||||
record). See Section 17.10.2, "LBR Stack for Processors Based on Intel
|
record). See Section 17.11.2, "LBR Stack for Processors Based on Intel
|
||||||
NetBurst(R) Microarchitecture"; and addresses 1DBH-1DEH and 680H-68FH.
|
NetBurst(R) Microarchitecture"; and addresses 1DBH-1DEH and 680H-68FH.
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_LASTBRANCH_TOS (0x000001DA)
|
@param ECX MSR_PENTIUM_4_LASTBRANCH_TOS (0x000001DA)
|
||||||
|
@ -1147,7 +1147,7 @@ typedef union {
|
||||||
exceptions, or interrupts that the processor took. MSR_LASTBRANCH_0 through
|
exceptions, or interrupts that the processor took. MSR_LASTBRANCH_0 through
|
||||||
MSR_LASTBRANCH_3 at 1DBH-1DEH are available only on family 0FH, models
|
MSR_LASTBRANCH_3 at 1DBH-1DEH are available only on family 0FH, models
|
||||||
0H-02H. They have been replaced by the MSRs at 680H68FH and 6C0H-6CFH. See
|
0H-02H. They have been replaced by the MSRs at 680H68FH and 6C0H-6CFH. See
|
||||||
Section 17.9, "Last Branch, Call Stack, Interrupt, and Exception Recording
|
Section 17.10, "Last Branch, Call Stack, Interrupt, and Exception Recording
|
||||||
for Processors based on Skylake Microarchitecture.".
|
for Processors based on Skylake Microarchitecture.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_LASTBRANCH_n
|
@param ECX MSR_PENTIUM_4_LASTBRANCH_n
|
||||||
|
@ -1175,7 +1175,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.2, "Performance Counters.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.2, "Performance Counters.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_BPU_COUNTERn
|
@param ECX MSR_PENTIUM_4_BPU_COUNTERn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1202,7 +1202,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.2, "Performance Counters.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.2, "Performance Counters.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_MS_COUNTERn
|
@param ECX MSR_PENTIUM_4_MS_COUNTERn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1229,7 +1229,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.2, "Performance Counters.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.2, "Performance Counters.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FLAME_COUNTERn (0x00000308)
|
@param ECX MSR_PENTIUM_4_FLAME_COUNTERn (0x00000308)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1256,7 +1256,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.2, "Performance Counters.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.2, "Performance Counters.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IQ_COUNTERn
|
@param ECX MSR_PENTIUM_4_IQ_COUNTERn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1287,7 +1287,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.3, "CCCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.3, "CCCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_BPU_CCCRn
|
@param ECX MSR_PENTIUM_4_BPU_CCCRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1314,7 +1314,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.3, "CCCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.3, "CCCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_MS_CCCRn
|
@param ECX MSR_PENTIUM_4_MS_CCCRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1341,7 +1341,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.3, "CCCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.3, "CCCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FLAME_CCCRn
|
@param ECX MSR_PENTIUM_4_FLAME_CCCRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1368,7 +1368,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.3, "CCCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.3, "CCCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IQ_CCCRn
|
@param ECX MSR_PENTIUM_4_IQ_CCCRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1399,7 +1399,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_BSU_ESCR0 (0x000003A0)
|
@param ECX MSR_PENTIUM_4_BSU_ESCR0 (0x000003A0)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1418,7 +1418,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_BSU_ESCR1 (0x000003A1)
|
@param ECX MSR_PENTIUM_4_BSU_ESCR1 (0x000003A1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1437,7 +1437,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FSB_ESCR0 (0x000003A2)
|
@param ECX MSR_PENTIUM_4_FSB_ESCR0 (0x000003A2)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1456,7 +1456,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FSB_ESCR1 (0x000003A3)
|
@param ECX MSR_PENTIUM_4_FSB_ESCR1 (0x000003A3)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1475,7 +1475,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FIRM_ESCR0 (0x000003A4)
|
@param ECX MSR_PENTIUM_4_FIRM_ESCR0 (0x000003A4)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1494,7 +1494,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FIRM_ESCR1 (0x000003A5)
|
@param ECX MSR_PENTIUM_4_FIRM_ESCR1 (0x000003A5)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1513,7 +1513,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FLAME_ESCR0 (0x000003A6)
|
@param ECX MSR_PENTIUM_4_FLAME_ESCR0 (0x000003A6)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1532,7 +1532,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_FLAME_ESCR1 (0x000003A7)
|
@param ECX MSR_PENTIUM_4_FLAME_ESCR1 (0x000003A7)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1551,7 +1551,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_DAC_ESCR0 (0x000003A8)
|
@param ECX MSR_PENTIUM_4_DAC_ESCR0 (0x000003A8)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1570,7 +1570,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_DAC_ESCR1 (0x000003A9)
|
@param ECX MSR_PENTIUM_4_DAC_ESCR1 (0x000003A9)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1589,7 +1589,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_MOB_ESCR0 (0x000003AA)
|
@param ECX MSR_PENTIUM_4_MOB_ESCR0 (0x000003AA)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1608,7 +1608,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_MOB_ESCR1 (0x000003AB)
|
@param ECX MSR_PENTIUM_4_MOB_ESCR1 (0x000003AB)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1627,7 +1627,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_PMH_ESCR0 (0x000003AC)
|
@param ECX MSR_PENTIUM_4_PMH_ESCR0 (0x000003AC)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1646,7 +1646,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_PMH_ESCR1 (0x000003AD)
|
@param ECX MSR_PENTIUM_4_PMH_ESCR1 (0x000003AD)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1665,7 +1665,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_SAAT_ESCR0 (0x000003AE)
|
@param ECX MSR_PENTIUM_4_SAAT_ESCR0 (0x000003AE)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1684,7 +1684,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_SAAT_ESCR1 (0x000003AF)
|
@param ECX MSR_PENTIUM_4_SAAT_ESCR1 (0x000003AF)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1703,7 +1703,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_U2L_ESCR0 (0x000003B0)
|
@param ECX MSR_PENTIUM_4_U2L_ESCR0 (0x000003B0)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1722,7 +1722,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_U2L_ESCR1 (0x000003B1)
|
@param ECX MSR_PENTIUM_4_U2L_ESCR1 (0x000003B1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1741,7 +1741,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_BPU_ESCR0 (0x000003B2)
|
@param ECX MSR_PENTIUM_4_BPU_ESCR0 (0x000003B2)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1760,7 +1760,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_BPU_ESCR1 (0x000003B3)
|
@param ECX MSR_PENTIUM_4_BPU_ESCR1 (0x000003B3)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1779,7 +1779,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IS_ESCR0 (0x000003B4)
|
@param ECX MSR_PENTIUM_4_IS_ESCR0 (0x000003B4)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1798,7 +1798,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IS_ESCR1 (0x000003B5)
|
@param ECX MSR_PENTIUM_4_IS_ESCR1 (0x000003B5)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1817,7 +1817,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_ITLB_ESCR0 (0x000003B6)
|
@param ECX MSR_PENTIUM_4_ITLB_ESCR0 (0x000003B6)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1836,7 +1836,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_ITLB_ESCR1 (0x000003B7)
|
@param ECX MSR_PENTIUM_4_ITLB_ESCR1 (0x000003B7)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1855,7 +1855,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_CRU_ESCR0 (0x000003B8)
|
@param ECX MSR_PENTIUM_4_CRU_ESCR0 (0x000003B8)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1874,7 +1874,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_CRU_ESCR1 (0x000003B9)
|
@param ECX MSR_PENTIUM_4_CRU_ESCR1 (0x000003B9)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1893,7 +1893,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2. Shared. See Section 18.12.1, "ESCR MSRs." This MSR is not available
|
0, 1, 2. Shared. See Section 18.15.1, "ESCR MSRs." This MSR is not available
|
||||||
on later processors. It is only available on processor family 0FH, models
|
on later processors. It is only available on processor family 0FH, models
|
||||||
01H-02H.
|
01H-02H.
|
||||||
|
|
||||||
|
@ -1914,7 +1914,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2. Shared. See Section 18.12.1, "ESCR MSRs." This MSR is not available
|
0, 1, 2. Shared. See Section 18.15.1, "ESCR MSRs." This MSR is not available
|
||||||
on later processors. It is only available on processor family 0FH, models
|
on later processors. It is only available on processor family 0FH, models
|
||||||
01H-02H.
|
01H-02H.
|
||||||
|
|
||||||
|
@ -1935,7 +1935,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_RAT_ESCR0 (0x000003BC)
|
@param ECX MSR_PENTIUM_4_RAT_ESCR0 (0x000003BC)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1954,7 +1954,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_RAT_ESCR1 (0x000003BD)
|
@param ECX MSR_PENTIUM_4_RAT_ESCR1 (0x000003BD)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1973,7 +1973,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_SSU_ESCR0 (0x000003BE)
|
@param ECX MSR_PENTIUM_4_SSU_ESCR0 (0x000003BE)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1992,7 +1992,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_MS_ESCR0 (0x000003C0)
|
@param ECX MSR_PENTIUM_4_MS_ESCR0 (0x000003C0)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2011,7 +2011,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_MS_ESCR1 (0x000003C1)
|
@param ECX MSR_PENTIUM_4_MS_ESCR1 (0x000003C1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2030,7 +2030,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_TBPU_ESCR0 (0x000003C2)
|
@param ECX MSR_PENTIUM_4_TBPU_ESCR0 (0x000003C2)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2049,7 +2049,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_TBPU_ESCR1 (0x000003C3)
|
@param ECX MSR_PENTIUM_4_TBPU_ESCR1 (0x000003C3)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2068,7 +2068,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_TC_ESCR0 (0x000003C4)
|
@param ECX MSR_PENTIUM_4_TC_ESCR0 (0x000003C4)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2087,7 +2087,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_TC_ESCR1 (0x000003C5)
|
@param ECX MSR_PENTIUM_4_TC_ESCR1 (0x000003C5)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2106,7 +2106,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IX_ESCR0 (0x000003C8)
|
@param ECX MSR_PENTIUM_4_IX_ESCR0 (0x000003C8)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2125,7 +2125,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IX_ESCR1 (0x000003C9)
|
@param ECX MSR_PENTIUM_4_IX_ESCR1 (0x000003C9)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2144,7 +2144,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_ALF_ESCRn
|
@param ECX MSR_PENTIUM_4_ALF_ESCRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2175,7 +2175,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Section 18.12.1, "ESCR MSRs.".
|
0, 1, 2, 3, 4, 6. Shared. See Section 18.15.1, "ESCR MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_TC_PRECISE_EVENT (0x000003F0)
|
@param ECX MSR_PENTIUM_4_TC_PRECISE_EVENT (0x000003F0)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2194,8 +2194,8 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. Precise Event-Based Sampling (PEBS) (R/W)
|
0, 1, 2, 3, 4, 6. Shared. Processor Event Based Sampling (PEBS) (R/W)
|
||||||
Controls the enabling of precise event sampling and replay tagging.
|
Controls the enabling of processor event sampling and replay tagging.
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_PENTIUM_4_PEBS_ENABLE (0x000003F1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2223,7 +2223,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bits 12:0] See Table 19-26.
|
/// [Bits 12:0] See Table 19-33.
|
||||||
///
|
///
|
||||||
UINT32 EventNum:13;
|
UINT32 EventNum:13;
|
||||||
UINT32 Reserved1:11;
|
UINT32 Reserved1:11;
|
||||||
|
@ -2234,7 +2234,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
/// [Bit 25] ENABLE_PEBS_MY_THR (R/W) Enables PEBS for the target logical
|
/// [Bit 25] ENABLE_PEBS_MY_THR (R/W) Enables PEBS for the target logical
|
||||||
/// processor when set; disables PEBS when clear (default). See Section
|
/// processor when set; disables PEBS when clear (default). See Section
|
||||||
/// 18.13.3, "IA32_PEBS_ENABLE MSR," for an explanation of the target
|
/// 18.16.3, "IA32_PEBS_ENABLE MSR," for an explanation of the target
|
||||||
/// logical processor. This bit is called ENABLE_PEBS in IA-32 processors
|
/// logical processor. This bit is called ENABLE_PEBS in IA-32 processors
|
||||||
/// that do not support Intel HyperThreading Technology.
|
/// that do not support Intel HyperThreading Technology.
|
||||||
///
|
///
|
||||||
|
@ -2242,7 +2242,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
/// [Bit 26] ENABLE_PEBS_OTH_THR (R/W) Enables PEBS for the target logical
|
/// [Bit 26] ENABLE_PEBS_OTH_THR (R/W) Enables PEBS for the target logical
|
||||||
/// processor when set; disables PEBS when clear (default). See Section
|
/// processor when set; disables PEBS when clear (default). See Section
|
||||||
/// 18.13.3, "IA32_PEBS_ENABLE MSR," for an explanation of the target
|
/// 18.16.3, "IA32_PEBS_ENABLE MSR," for an explanation of the target
|
||||||
/// logical processor. This bit is reserved for IA-32 processors that do
|
/// logical processor. This bit is reserved for IA-32 processors that do
|
||||||
/// not support Intel Hyper-Threading Technology.
|
/// not support Intel Hyper-Threading Technology.
|
||||||
///
|
///
|
||||||
|
@ -2262,7 +2262,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
0, 1, 2, 3, 4, 6. Shared. See Table 19-26.
|
0, 1, 2, 3, 4, 6. Shared. See Table 19-33.
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_PEBS_MATRIX_VERT (0x000003F2)
|
@param ECX MSR_PENTIUM_4_PEBS_MATRIX_VERT (0x000003F2)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -2288,7 +2288,7 @@ typedef union {
|
||||||
680H-68FH, 6C0H-6CfH are not available in processor releases before family
|
680H-68FH, 6C0H-6CfH are not available in processor releases before family
|
||||||
0FH, model 03H. These MSRs replace MSRs previously located at
|
0FH, model 03H. These MSRs replace MSRs previously located at
|
||||||
1DBH-1DEH.which performed the same function for early releases. See Section
|
1DBH-1DEH.which performed the same function for early releases. See Section
|
||||||
17.9, "Last Branch, Call Stack, Interrupt, and Exception Recording for
|
17.10, "Last Branch, Call Stack, Interrupt, and Exception Recording for
|
||||||
Processors based on Skylake Microarchitecture.".
|
Processors based on Skylake Microarchitecture.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_LASTBRANCH_n_FROM_IP
|
@param ECX MSR_PENTIUM_4_LASTBRANCH_n_FROM_IP
|
||||||
|
@ -2344,7 +2344,7 @@ typedef union {
|
||||||
record registers on the last branch record stack (6C0H-6CFH). This part of
|
record registers on the last branch record stack (6C0H-6CFH). This part of
|
||||||
the stack contains pointers to the destination instruction for one of the
|
the stack contains pointers to the destination instruction for one of the
|
||||||
last 16 branches, exceptions, or interrupts that the processor took. See
|
last 16 branches, exceptions, or interrupts that the processor took. See
|
||||||
Section 17.9, "Last Branch, Call Stack, Interrupt, and Exception Recording
|
Section 17.10, "Last Branch, Call Stack, Interrupt, and Exception Recording
|
||||||
for Processors based on Skylake Microarchitecture.".
|
for Processors based on Skylake Microarchitecture.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_LASTBRANCH_n_TO_IP
|
@param ECX MSR_PENTIUM_4_LASTBRANCH_n_TO_IP
|
||||||
|
@ -2397,7 +2397,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
3, 4. Shared. IFSB BUSQ Event Control and Counter Register (R/W) See
|
3, 4. Shared. IFSB BUSQ Event Control and Counter Register (R/W) See
|
||||||
Section 18.17, "Performance Monitoring on 64-bit Intel Xeon Processor MP
|
Section 18.21, "Performance Monitoring on 64-bit Intel Xeon Processor MP
|
||||||
with Up to 8-MByte L3 Cache.".
|
with Up to 8-MByte L3 Cache.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IFSB_BUSQ0 (0x000107CC)
|
@param ECX MSR_PENTIUM_4_IFSB_BUSQ0 (0x000107CC)
|
||||||
|
@ -2437,7 +2437,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
3, 4. Shared. IFSB SNPQ Event Control and Counter Register (R/W) See
|
3, 4. Shared. IFSB SNPQ Event Control and Counter Register (R/W) See
|
||||||
Section 18.17, "Performance Monitoring on 64-bit Intel Xeon Processor MP
|
Section 18.21, "Performance Monitoring on 64-bit Intel Xeon Processor MP
|
||||||
with Up to 8-MByte L3 Cache.".
|
with Up to 8-MByte L3 Cache.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_IFSB_SNPQ0 (0x000107CE)
|
@param ECX MSR_PENTIUM_4_IFSB_SNPQ0 (0x000107CE)
|
||||||
|
@ -2477,7 +2477,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
3, 4. Shared. EFSB DRDY Event Control and Counter Register (R/W) See
|
3, 4. Shared. EFSB DRDY Event Control and Counter Register (R/W) See
|
||||||
Section 18.17, "Performance Monitoring on 64-bit Intel Xeon Processor MP
|
Section 18.21, "Performance Monitoring on 64-bit Intel Xeon Processor MP
|
||||||
with Up to 8-MByte L3 Cache" for details.
|
with Up to 8-MByte L3 Cache" for details.
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_EFSB_DRDY0 (0x000107D0)
|
@param ECX MSR_PENTIUM_4_EFSB_DRDY0 (0x000107D0)
|
||||||
|
@ -2516,7 +2516,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
3, 4. Shared. IFSB Latency Event Control Register (R/W) See Section 18.17,
|
3, 4. Shared. IFSB Latency Event Control Register (R/W) See Section 18.21,
|
||||||
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
||||||
L3 Cache" for details.
|
L3 Cache" for details.
|
||||||
|
|
||||||
|
@ -2537,7 +2537,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
3, 4. Shared. IFSB Latency Event Counter Register (R/W) See Section 18.17,
|
3, 4. Shared. IFSB Latency Event Counter Register (R/W) See Section 18.21,
|
||||||
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
||||||
L3 Cache.".
|
L3 Cache.".
|
||||||
|
|
||||||
|
@ -2558,7 +2558,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
6. Shared. GBUSQ Event Control and Counter Register (R/W) See Section 18.17,
|
6. Shared. GBUSQ Event Control and Counter Register (R/W) See Section 18.21,
|
||||||
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
||||||
L3 Cache.".
|
L3 Cache.".
|
||||||
|
|
||||||
|
@ -2599,7 +2599,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
6. Shared. GSNPQ Event Control and Counter Register (R/W) See Section
|
6. Shared. GSNPQ Event Control and Counter Register (R/W) See Section
|
||||||
18.17, "Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to
|
18.21, "Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to
|
||||||
8-MByte L3 Cache.".
|
8-MByte L3 Cache.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_4_EMON_L3_CTR_CTL2 (0x000107CE)
|
@param ECX MSR_PENTIUM_4_EMON_L3_CTR_CTL2 (0x000107CE)
|
||||||
|
@ -2638,7 +2638,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
6. Shared. FSB Event Control and Counter Register (R/W) See Section 18.17,
|
6. Shared. FSB Event Control and Counter Register (R/W) See Section 18.21,
|
||||||
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
"Performance Monitoring on 64-bit Intel Xeon Processor MP with Up to 8-MByte
|
||||||
L3 Cache" for details.
|
L3 Cache" for details.
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-18.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.20.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
#include <Register/ArchitecturalMsr.h>
|
#include <Register/ArchitecturalMsr.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 35.20, "MSRs in Pentium Processors.".
|
See Section 35.22, "MSRs in Pentium Processors.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_P5_MC_ADDR (0x00000000)
|
@param ECX MSR_PENTIUM_M_P5_MC_ADDR (0x00000000)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 35.20, "MSRs in Pentium Processors.".
|
See Section 35.22, "MSRs in Pentium Processors.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_P5_MC_TYPE (0x00000001)
|
@param ECX MSR_PENTIUM_M_P5_MC_TYPE (0x00000001)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -184,7 +184,7 @@ typedef union {
|
||||||
Last Branch Record n (R/W) One of 8 last branch record registers on the last
|
Last Branch Record n (R/W) One of 8 last branch record registers on the last
|
||||||
branch record stack: bits 31-0 hold the 'from' address and bits 63-32 hold
|
branch record stack: bits 31-0 hold the 'from' address and bits 63-32 hold
|
||||||
the to address. See also: - Last Branch Record Stack TOS at 1C9H - Section
|
the to address. See also: - Last Branch Record Stack TOS at 1C9H - Section
|
||||||
17.12, "Last Branch, Interrupt, and Exception Recording (Pentium M
|
17.13, "Last Branch, Interrupt, and Exception Recording (Pentium M
|
||||||
Processors)".
|
Processors)".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_LASTBRANCH_n
|
@param ECX MSR_PENTIUM_M_LASTBRANCH_n
|
||||||
|
@ -424,9 +424,9 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Precise Event Based Sampling Unavailable (RO) 1 = Processor
|
/// [Bit 12] Processor Event Based Sampling Unavailable (RO) 1 =
|
||||||
/// does not support precise event-based sampling (PEBS); 0 = PEBS is
|
/// Processor does not support processor event based sampling (PEBS); 0 =
|
||||||
/// supported. The Pentium M processor does not support PEBS.
|
/// PEBS is supported. The Pentium M processor does not support PEBS.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
UINT32 Reserved5:3;
|
UINT32 Reserved5:3;
|
||||||
|
@ -461,7 +461,7 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
Last Branch Record Stack TOS (R/W) Contains an index (bits 0-3) that points
|
Last Branch Record Stack TOS (R/W) Contains an index (bits 0-3) that points
|
||||||
to the MSR containing the most recent branch record. See also: -
|
to the MSR containing the most recent branch record. See also: -
|
||||||
MSR_LASTBRANCH_0_FROM_IP (at 40H) - Section 17.12, "Last Branch, Interrupt,
|
MSR_LASTBRANCH_0_FROM_IP (at 40H) - Section 17.13, "Last Branch, Interrupt,
|
||||||
and Exception Recording (Pentium M Processors)".
|
and Exception Recording (Pentium M Processors)".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_LASTBRANCH_TOS (0x000001C9)
|
@param ECX MSR_PENTIUM_M_LASTBRANCH_TOS (0x000001C9)
|
||||||
|
@ -482,7 +482,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Debug Control (R/W) Controls how several debug features are used. Bit
|
Debug Control (R/W) Controls how several debug features are used. Bit
|
||||||
definitions are discussed in the referenced section. See Section 17.12,
|
definitions are discussed in the referenced section. See Section 17.13,
|
||||||
"Last Branch, Interrupt, and Exception Recording (Pentium M Processors).".
|
"Last Branch, Interrupt, and Exception Recording (Pentium M Processors).".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_DEBUGCTLB (0x000001D9)
|
@param ECX MSR_PENTIUM_M_DEBUGCTLB (0x000001D9)
|
||||||
|
@ -505,8 +505,8 @@ typedef union {
|
||||||
Last Exception Record To Linear IP (R) This area contains a pointer to the
|
Last Exception Record To Linear IP (R) This area contains a pointer to the
|
||||||
target of the last branch instruction that the processor executed prior to
|
target of the last branch instruction that the processor executed prior to
|
||||||
the last exception that was generated or the last interrupt that was
|
the last exception that was generated or the last interrupt that was
|
||||||
handled. See Section 17.12, "Last Branch, Interrupt, and Exception Recording
|
handled. See Section 17.13, "Last Branch, Interrupt, and Exception Recording
|
||||||
(Pentium M Processors)" and Section 17.13.2, "Last Branch and Last Exception
|
(Pentium M Processors)" and Section 17.14.2, "Last Branch and Last Exception
|
||||||
MSRs.".
|
MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_LER_TO_LIP (0x000001DD)
|
@param ECX MSR_PENTIUM_M_LER_TO_LIP (0x000001DD)
|
||||||
|
@ -528,8 +528,8 @@ typedef union {
|
||||||
Last Exception Record From Linear IP (R) Contains a pointer to the last
|
Last Exception Record From Linear IP (R) Contains a pointer to the last
|
||||||
branch instruction that the processor executed prior to the last exception
|
branch instruction that the processor executed prior to the last exception
|
||||||
that was generated or the last interrupt that was handled. See Section
|
that was generated or the last interrupt that was handled. See Section
|
||||||
17.12, "Last Branch, Interrupt, and Exception Recording (Pentium M
|
17.13, "Last Branch, Interrupt, and Exception Recording (Pentium M
|
||||||
Processors)" and Section 17.13.2, "Last Branch and Last Exception MSRs.".
|
Processors)" and Section 17.14.2, "Last Branch and Last Exception MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_M_LER_FROM_LIP (0x000001DE)
|
@param ECX MSR_PENTIUM_M_LER_FROM_LIP (0x000001DE)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-20.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.22.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 17.14, "Time-Stamp Counter.".
|
See Section 17.15, "Time-Stamp Counter.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_TSC (0x00000010)
|
@param ECX MSR_PENTIUM_TSC (0x00000010)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -84,7 +84,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Section 18.20.1, "Control and Event Select Register (CESR).".
|
See Section 18.24.1, "Control and Event Select Register (CESR).".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_CESR (0x00000011)
|
@param ECX MSR_PENTIUM_CESR (0x00000011)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Section 18.20.3, "Events Counted.".
|
Section 18.24.3, "Events Counted.".
|
||||||
|
|
||||||
@param ECX MSR_PENTIUM_CTRn
|
@param ECX MSR_PENTIUM_CTRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-8.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.9.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -508,7 +508,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Thread. Precise Event Based Sampling Unavailable (RO) See
|
/// [Bit 12] Thread. Processor Event Based Sampling Unavailable (RO) See
|
||||||
/// Table 35-2.
|
/// Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
|
@ -734,7 +734,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. Last Branch Record Filtering Select Register (R/W) See Section
|
Thread. Last Branch Record Filtering Select Register (R/W) See Section
|
||||||
17.6.2, "Filtering of Last Branch Records.".
|
17.7.2, "Filtering of Last Branch Records.".
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_LBR_SELECT (0x000001C8)
|
@param ECX MSR_SANDY_BRIDGE_LBR_SELECT (0x000001C8)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -895,7 +895,7 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
Package. Always 0 (CMCI not supported).
|
Package. Always 0 (CMCI not supported).
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_MC4_CTL2 (0x00000284)
|
@param ECX MSR_SANDY_BRIDGE_IA32_MC4_CTL2 (0x00000284)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -903,37 +903,37 @@ typedef union {
|
||||||
@code
|
@code
|
||||||
UINT64 Msr;
|
UINT64 Msr;
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_MC4_CTL2);
|
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL2);
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_MC4_CTL2, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL2, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_MC4_CTL2 is defined as MSR_MC4_CTL2 in SDM.
|
@note MSR_SANDY_BRIDGE_IA32_MC4_CTL2 is defined as IA32_MC4_CTL2 in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_MC4_CTL2 0x00000284
|
#define MSR_SANDY_BRIDGE_IA32_MC4_CTL2 0x00000284
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
See Table 35-2. See Section 18.4.2, "Global Counter Control Facilities.".
|
See Table 35-2. See Section 18.4.2, "Global Counter Control Facilities.".
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
@param ECX MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS (0x0000038E)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS_REGISTER.
|
Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS_REGISTER.
|
Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER.
|
||||||
|
|
||||||
<b>Example usage</b>
|
<b>Example usage</b>
|
||||||
@code
|
@code
|
||||||
MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS_REGISTER Msr;
|
MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER Msr;
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS);
|
Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS);
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS, Msr.Uint64);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS, Msr.Uint64);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
@note MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS is defined as IA32_PERF_GLOBAL_STATUS in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
#define MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS 0x0000038E
|
||||||
|
|
||||||
/**
|
/**
|
||||||
MSR information returned for MSR index
|
MSR information returned for MSR index
|
||||||
#MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS
|
#MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS
|
||||||
**/
|
**/
|
||||||
typedef union {
|
typedef union {
|
||||||
///
|
///
|
||||||
|
@ -1003,7 +1003,7 @@ typedef union {
|
||||||
/// All bit fields as a 64-bit value
|
/// All bit fields as a 64-bit value
|
||||||
///
|
///
|
||||||
UINT64 Uint64;
|
UINT64 Uint64;
|
||||||
} MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STAUS_REGISTER;
|
} MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1190,7 +1190,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. See Section 18.7.1.1, "Precise Event Based Sampling (PEBS).".
|
Thread. See Section 18.8.1.1, "Processor Event Based Sampling (PEBS).".
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_SANDY_BRIDGE_PEBS_ENABLE (0x000003F1)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1264,7 +1264,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. see See Section 18.7.1.2, "Load Latency Performance Monitoring
|
Thread. see See Section 18.8.1.2, "Load Latency Performance Monitoring
|
||||||
Facility.".
|
Facility.".
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_PEBS_LD_LAT (0x000003F6)
|
@param ECX MSR_SANDY_BRIDGE_PEBS_LD_LAT (0x000003F6)
|
||||||
|
@ -1446,25 +1446,25 @@ typedef union {
|
||||||
/**
|
/**
|
||||||
Core. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
Core. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_MC4_CTL (0x00000410)
|
@param ECX MSR_SANDY_BRIDGE_IA32_MC4_CTL (0x00000410)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
Described by the type MSR_SANDY_BRIDGE_MC4_CTL_REGISTER.
|
Described by the type MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
Described by the type MSR_SANDY_BRIDGE_MC4_CTL_REGISTER.
|
Described by the type MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER.
|
||||||
|
|
||||||
<b>Example usage</b>
|
<b>Example usage</b>
|
||||||
@code
|
@code
|
||||||
MSR_SANDY_BRIDGE_MC4_CTL_REGISTER Msr;
|
MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER Msr;
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_MC4_CTL);
|
Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL);
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_MC4_CTL, Msr.Uint64);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL, Msr.Uint64);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_MC4_CTL is defined as MSR_MC4_CTL in SDM.
|
@note MSR_SANDY_BRIDGE_IA32_MC4_CTL is defined as IA32_MC4_CTL in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_MC4_CTL 0x00000410
|
#define MSR_SANDY_BRIDGE_IA32_MC4_CTL 0x00000410
|
||||||
|
|
||||||
/**
|
/**
|
||||||
MSR information returned for MSR index #MSR_SANDY_BRIDGE_MC4_CTL
|
MSR information returned for MSR index #MSR_SANDY_BRIDGE_IA32_MC4_CTL
|
||||||
**/
|
**/
|
||||||
typedef union {
|
typedef union {
|
||||||
///
|
///
|
||||||
|
@ -1497,7 +1497,7 @@ typedef union {
|
||||||
/// All bit fields as a 64-bit value
|
/// All bit fields as a 64-bit value
|
||||||
///
|
///
|
||||||
UINT64 Uint64;
|
UINT64 Uint64;
|
||||||
} MSR_SANDY_BRIDGE_MC4_CTL_REGISTER;
|
} MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1789,7 +1789,8 @@ typedef union {
|
||||||
Thread. Last Branch Record n From IP (R/W) One of sixteen pairs of last
|
Thread. Last Branch Record n From IP (R/W) One of sixteen pairs of last
|
||||||
branch record registers on the last branch record stack. This part of the
|
branch record registers on the last branch record stack. This part of the
|
||||||
stack contains pointers to the source instruction. See also: - Last Branch
|
stack contains pointers to the source instruction. See also: - Last Branch
|
||||||
Record Stack TOS at 1C9H - Section 17.6.1, "LBR Stack.".
|
Record Stack TOS at 1C9H - Section 17.7.1 and record format in Section
|
||||||
|
17.4.8.1.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_LASTBRANCH_n_FROM_IP
|
@param ECX MSR_SANDY_BRIDGE_LASTBRANCH_n_FROM_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1997,22 +1998,26 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bit 0] Core 0 select.
|
/// [Bit 0] Slice 0 select.
|
||||||
///
|
///
|
||||||
UINT32 PMI_Sel_Core0:1;
|
UINT32 PMI_Sel_Slice0:1;
|
||||||
///
|
///
|
||||||
/// [Bit 1] Core 1 select.
|
/// [Bit 1] Slice 1 select.
|
||||||
///
|
///
|
||||||
UINT32 PMI_Sel_Core1:1;
|
UINT32 PMI_Sel_Slice1:1;
|
||||||
///
|
///
|
||||||
/// [Bit 2] Core 2 select.
|
/// [Bit 2] Slice 2 select.
|
||||||
///
|
///
|
||||||
UINT32 PMI_Sel_Core2:1;
|
UINT32 PMI_Sel_Slice2:1;
|
||||||
///
|
///
|
||||||
/// [Bit 3] Core 3 select.
|
/// [Bit 3] Slice 3 select.
|
||||||
///
|
///
|
||||||
UINT32 PMI_Sel_Core3:1;
|
UINT32 PMI_Sel_Slice3:1;
|
||||||
UINT32 Reserved1:15;
|
///
|
||||||
|
/// [Bit 4] Slice 4 select.
|
||||||
|
///
|
||||||
|
UINT32 PMI_Sel_Slice4:1;
|
||||||
|
UINT32 Reserved1:14;
|
||||||
UINT32 Reserved2:10;
|
UINT32 Reserved2:10;
|
||||||
///
|
///
|
||||||
/// [Bit 29] Enable all uncore counters.
|
/// [Bit 29] Enable all uncore counters.
|
||||||
|
@ -2220,7 +2225,8 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bits 3:0] Encoded number of C-Box, derive value by "-1".
|
/// [Bits 3:0] Report the number of C-Box units with performance counters,
|
||||||
|
/// including processor cores and processor graphics".
|
||||||
///
|
///
|
||||||
UINT32 CBox:4;
|
UINT32 CBox:4;
|
||||||
UINT32 Reserved1:28;
|
UINT32 Reserved1:28;
|
||||||
|
@ -2459,9 +2465,9 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 0, counter 0 event select MSR.
|
Package. Uncore C-Box 0, counter n event select MSR.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 (0x00000700)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSELn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2473,14 +2479,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 is defined as MSR_UNC_CBO_0_PERFEVTSEL0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 is defined as MSR_UNC_CBO_0_PERFEVTSEL0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 is defined as MSR_UNC_CBO_0_PERFEVTSEL1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL2 is defined as MSR_UNC_CBO_0_PERFEVTSEL2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL3 is defined as MSR_UNC_CBO_0_PERFEVTSEL3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 0x00000700
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 0x00000700
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 0x00000701
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL2 0x00000702
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL3 0x00000703
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 0, counter 1 event select MSR.
|
Package. Uncore C-Box n, unit status for counter 0-3.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 (0x00000701)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_n_UNIT_STATUS
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2488,18 +2502,28 @@ typedef union {
|
||||||
@code
|
@code
|
||||||
UINT64 Msr;
|
UINT64 Msr;
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1);
|
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS);
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 is defined as MSR_UNC_CBO_0_PERFEVTSEL1 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS is defined as MSR_UNC_CBO_0_UNIT_STATUS in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_UNIT_STATUS is defined as MSR_UNC_CBO_1_UNIT_STATUS in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_UNIT_STATUS is defined as MSR_UNC_CBO_2_UNIT_STATUS in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_UNIT_STATUS is defined as MSR_UNC_CBO_3_UNIT_STATUS in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_UNIT_STATUS is defined as MSR_UNC_CBO_4_UNIT_STATUS in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 0x00000701
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS 0x00000705
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_UNIT_STATUS 0x00000715
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_UNIT_STATUS 0x00000725
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_UNIT_STATUS 0x00000735
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_UNIT_STATUS 0x00000745
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 0, performance counter 0.
|
Package. Uncore C-Box 0, performance counter n.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 (0x00000706)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2511,33 +2535,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 is defined as MSR_UNC_CBO_0_PERFCTR0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 is defined as MSR_UNC_CBO_0_PERFCTR0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 is defined as MSR_UNC_CBO_0_PERFCTR1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR2 is defined as MSR_UNC_CBO_0_PERFCTR2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR3 is defined as MSR_UNC_CBO_0_PERFCTR3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 0x00000706
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 0x00000706
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Uncore C-Box 0, performance counter 1.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 (0x00000707)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 is defined as MSR_UNC_CBO_0_PERFCTR1 in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 0x00000707
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 0x00000707
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR2 0x00000708
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR3 0x00000709
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 1, counter 0 event select MSR.
|
Package. Uncore C-Box 1, counter n event select MSR.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 (0x00000710)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSELn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2549,33 +2562,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 is defined as MSR_UNC_CBO_1_PERFEVTSEL0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 is defined as MSR_UNC_CBO_1_PERFEVTSEL0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 is defined as MSR_UNC_CBO_1_PERFEVTSEL1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL2 is defined as MSR_UNC_CBO_1_PERFEVTSEL2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL3 is defined as MSR_UNC_CBO_1_PERFEVTSEL3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 0x00000710
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 0x00000710
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Uncore C-Box 1, counter 1 event select MSR.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 (0x00000711)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 is defined as MSR_UNC_CBO_1_PERFEVTSEL1 in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 0x00000711
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 0x00000711
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL2 0x00000712
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL3 0x00000713
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 1, performance counter 0.
|
Package. Uncore C-Box 1, performance counter n.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 (0x00000716)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2587,33 +2589,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 is defined as MSR_UNC_CBO_1_PERFCTR0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 is defined as MSR_UNC_CBO_1_PERFCTR0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 is defined as MSR_UNC_CBO_1_PERFCTR1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR2 is defined as MSR_UNC_CBO_1_PERFCTR2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR3 is defined as MSR_UNC_CBO_1_PERFCTR3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 0x00000716
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 0x00000716
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Uncore C-Box 1, performance counter 1.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 (0x00000717)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 is defined as MSR_UNC_CBO_1_PERFCTR1 in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 0x00000717
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 0x00000717
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR2 0x00000718
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR3 0x00000719
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 2, counter 0 event select MSR.
|
Package. Uncore C-Box 2, counter n event select MSR.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 (0x00000720)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSELn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2625,33 +2616,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 is defined as MSR_UNC_CBO_2_PERFEVTSEL0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 is defined as MSR_UNC_CBO_2_PERFEVTSEL0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 is defined as MSR_UNC_CBO_2_PERFEVTSEL1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL2 is defined as MSR_UNC_CBO_2_PERFEVTSEL2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL3 is defined as MSR_UNC_CBO_2_PERFEVTSEL3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 0x00000720
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 0x00000720
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Uncore C-Box 2, counter 1 event select MSR.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 (0x00000721)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 is defined as MSR_UNC_CBO_2_PERFEVTSEL1 in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 0x00000721
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 0x00000721
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL2 0x00000722
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL3 0x00000723
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 2, performance counter 0.
|
Package. Uncore C-Box 2, performance counter n.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 (0x00000726)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2663,33 +2643,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 is defined as MSR_UNC_CBO_2_PERFCTR0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 is defined as MSR_UNC_CBO_2_PERFCTR0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 is defined as MSR_UNC_CBO_2_PERFCTR1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR2 is defined as MSR_UNC_CBO_2_PERFCTR2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR3 is defined as MSR_UNC_CBO_2_PERFCTR3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 0x00000726
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 0x00000726
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Uncore C-Box 2, performance counter 1.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 (0x00000727)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 is defined as MSR_UNC_CBO_2_PERFCTR1 in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 0x00000727
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 0x00000727
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR2 0x00000728
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR3 0x00000729
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 3, counter 0 event select MSR.
|
Package. Uncore C-Box 3, counter n event select MSR.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 (0x00000730)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSELn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2701,33 +2670,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 is defined as MSR_UNC_CBO_3_PERFEVTSEL0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 is defined as MSR_UNC_CBO_3_PERFEVTSEL0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 is defined as MSR_UNC_CBO_3_PERFEVTSEL1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL2 is defined as MSR_UNC_CBO_3_PERFEVTSEL2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL3 is defined as MSR_UNC_CBO_3_PERFEVTSEL3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 0x00000730
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 0x00000730
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Uncore C-Box 3, counter 1 event select MSR.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 (0x00000731)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 is defined as MSR_UNC_CBO_3_PERFEVTSEL1 in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 0x00000731
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 0x00000731
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL2 0x00000732
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL3 0x00000733
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 3, performance counter 0.
|
Package. Uncore C-Box 3, performance counter n.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 (0x00000736)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTRn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2739,14 +2697,22 @@ typedef union {
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 is defined as MSR_UNC_CBO_3_PERFCTR0 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 is defined as MSR_UNC_CBO_3_PERFCTR0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 is defined as MSR_UNC_CBO_3_PERFCTR1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR2 is defined as MSR_UNC_CBO_3_PERFCTR2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR3 is defined as MSR_UNC_CBO_3_PERFCTR3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 0x00000736
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 0x00000736
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 0x00000737
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR2 0x00000738
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR3 0x00000739
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Uncore C-Box 3, performance counter 1.
|
Package. Uncore C-Box 4, counter n event select MSR.
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 (0x00000737)
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSELn
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
@ -2754,12 +2720,47 @@ typedef union {
|
||||||
@code
|
@code
|
||||||
UINT64 Msr;
|
UINT64 Msr;
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1);
|
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0);
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1, Msr);
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0, Msr);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 is defined as MSR_UNC_CBO_3_PERFCTR1 in SDM.
|
@note MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0 is defined as MSR_UNC_CBO_4_PERFEVTSEL0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL1 is defined as MSR_UNC_CBO_4_PERFEVTSEL1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL2 is defined as MSR_UNC_CBO_4_PERFEVTSEL2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL3 is defined as MSR_UNC_CBO_4_PERFEVTSEL3 in SDM.
|
||||||
|
@{
|
||||||
**/
|
**/
|
||||||
#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 0x00000737
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0 0x00000740
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL1 0x00000741
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL2 0x00000742
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL3 0x00000743
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. Uncore C-Box 4, performance counter n.
|
||||||
|
|
||||||
|
@param ECX MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTRn
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0);
|
||||||
|
AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0 is defined as MSR_UNC_CBO_4_PERFCTR0 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR1 is defined as MSR_UNC_CBO_4_PERFCTR1 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR2 is defined as MSR_UNC_CBO_4_PERFCTR2 in SDM.
|
||||||
|
MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR3 is defined as MSR_UNC_CBO_4_PERFCTR3 in SDM.
|
||||||
|
@{
|
||||||
|
**/
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0 0x00000746
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR1 0x00000747
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR2 0x00000748
|
||||||
|
#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR3 0x00000749
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2841,7 +2842,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
/// [Bit 0] ENABLE_PEBS_NUM_ALT (RW) Write 1 to enable alternate PEBS
|
/// [Bit 0] ENABLE_PEBS_NUM_ALT (RW) Write 1 to enable alternate PEBS
|
||||||
/// counting logic for specific events requiring additional configuration,
|
/// counting logic for specific events requiring additional configuration,
|
||||||
/// see Table 19-9.
|
/// see Table 19-15.
|
||||||
///
|
///
|
||||||
UINT32 ENABLE_PEBS_NUM_ALT:1;
|
UINT32 ENABLE_PEBS_NUM_ALT:1;
|
||||||
UINT32 Reserved1:31;
|
UINT32 Reserved1:31;
|
||||||
|
@ -2858,202 +2859,6 @@ typedef union {
|
||||||
} MSR_SANDY_BRIDGE_PEBS_NUM_ALT_REGISTER;
|
} MSR_SANDY_BRIDGE_PEBS_NUM_ALT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_MCi_CTL
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_MC5_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_MC5_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC6_CTL is defined as MSR_MC6_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC7_CTL is defined as MSR_MC7_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC8_CTL is defined as MSR_MC8_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC9_CTL is defined as MSR_MC9_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC10_CTL is defined as MSR_MC10_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC11_CTL is defined as MSR_MC11_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC12_CTL is defined as MSR_MC12_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC13_CTL is defined as MSR_MC13_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC14_CTL is defined as MSR_MC14_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC15_CTL is defined as MSR_MC15_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC16_CTL is defined as MSR_MC16_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC17_CTL is defined as MSR_MC17_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC18_CTL is defined as MSR_MC18_CTL in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC19_CTL is defined as MSR_MC19_CTL in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_MC5_CTL 0x00000414
|
|
||||||
#define MSR_SANDY_BRIDGE_MC6_CTL 0x00000418
|
|
||||||
#define MSR_SANDY_BRIDGE_MC7_CTL 0x0000041C
|
|
||||||
#define MSR_SANDY_BRIDGE_MC8_CTL 0x00000420
|
|
||||||
#define MSR_SANDY_BRIDGE_MC9_CTL 0x00000424
|
|
||||||
#define MSR_SANDY_BRIDGE_MC10_CTL 0x00000428
|
|
||||||
#define MSR_SANDY_BRIDGE_MC11_CTL 0x0000042C
|
|
||||||
#define MSR_SANDY_BRIDGE_MC12_CTL 0x00000430
|
|
||||||
#define MSR_SANDY_BRIDGE_MC13_CTL 0x00000434
|
|
||||||
#define MSR_SANDY_BRIDGE_MC14_CTL 0x00000438
|
|
||||||
#define MSR_SANDY_BRIDGE_MC15_CTL 0x0000043C
|
|
||||||
#define MSR_SANDY_BRIDGE_MC16_CTL 0x00000440
|
|
||||||
#define MSR_SANDY_BRIDGE_MC17_CTL 0x00000444
|
|
||||||
#define MSR_SANDY_BRIDGE_MC18_CTL 0x00000448
|
|
||||||
#define MSR_SANDY_BRIDGE_MC19_CTL 0x0000044C
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS," and Chapter 16.
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_MCi_STATUS
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_MC5_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_MC5_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC6_STATUS is defined as MSR_MC6_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC7_STATUS is defined as MSR_MC7_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC8_STATUS is defined as MSR_MC8_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC9_STATUS is defined as MSR_MC9_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC10_STATUS is defined as MSR_MC10_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC11_STATUS is defined as MSR_MC11_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC12_STATUS is defined as MSR_MC12_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC13_STATUS is defined as MSR_MC13_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC14_STATUS is defined as MSR_MC14_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC15_STATUS is defined as MSR_MC15_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC16_STATUS is defined as MSR_MC16_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC17_STATUS is defined as MSR_MC17_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC18_STATUS is defined as MSR_MC18_STATUS in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC19_STATUS is defined as MSR_MC19_STATUS in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_MC5_STATUS 0x00000415
|
|
||||||
#define MSR_SANDY_BRIDGE_MC6_STATUS 0x00000419
|
|
||||||
#define MSR_SANDY_BRIDGE_MC7_STATUS 0x0000041D
|
|
||||||
#define MSR_SANDY_BRIDGE_MC8_STATUS 0x00000421
|
|
||||||
#define MSR_SANDY_BRIDGE_MC9_STATUS 0x00000425
|
|
||||||
#define MSR_SANDY_BRIDGE_MC10_STATUS 0x00000429
|
|
||||||
#define MSR_SANDY_BRIDGE_MC11_STATUS 0x0000042D
|
|
||||||
#define MSR_SANDY_BRIDGE_MC12_STATUS 0x00000431
|
|
||||||
#define MSR_SANDY_BRIDGE_MC13_STATUS 0x00000435
|
|
||||||
#define MSR_SANDY_BRIDGE_MC14_STATUS 0x00000439
|
|
||||||
#define MSR_SANDY_BRIDGE_MC15_STATUS 0x0000043D
|
|
||||||
#define MSR_SANDY_BRIDGE_MC16_STATUS 0x00000441
|
|
||||||
#define MSR_SANDY_BRIDGE_MC17_STATUS 0x00000445
|
|
||||||
#define MSR_SANDY_BRIDGE_MC18_STATUS 0x00000449
|
|
||||||
#define MSR_SANDY_BRIDGE_MC19_STATUS 0x0000044D
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_MCi_ADDR
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_MC5_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_MC5_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC6_ADDR is defined as MSR_MC6_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC7_ADDR is defined as MSR_MC7_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC8_ADDR is defined as MSR_MC8_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC9_ADDR is defined as MSR_MC9_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC10_ADDR is defined as MSR_MC10_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC11_ADDR is defined as MSR_MC11_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC12_ADDR is defined as MSR_MC12_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC13_ADDR is defined as MSR_MC13_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC14_ADDR is defined as MSR_MC14_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC15_ADDR is defined as MSR_MC15_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC16_ADDR is defined as MSR_MC16_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC17_ADDR is defined as MSR_MC17_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC18_ADDR is defined as MSR_MC18_ADDR in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC19_ADDR is defined as MSR_MC19_ADDR in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_MC5_ADDR 0x00000416
|
|
||||||
#define MSR_SANDY_BRIDGE_MC6_ADDR 0x0000041A
|
|
||||||
#define MSR_SANDY_BRIDGE_MC7_ADDR 0x0000041E
|
|
||||||
#define MSR_SANDY_BRIDGE_MC8_ADDR 0x00000422
|
|
||||||
#define MSR_SANDY_BRIDGE_MC9_ADDR 0x00000426
|
|
||||||
#define MSR_SANDY_BRIDGE_MC10_ADDR 0x0000042A
|
|
||||||
#define MSR_SANDY_BRIDGE_MC11_ADDR 0x0000042E
|
|
||||||
#define MSR_SANDY_BRIDGE_MC12_ADDR 0x00000432
|
|
||||||
#define MSR_SANDY_BRIDGE_MC13_ADDR 0x00000436
|
|
||||||
#define MSR_SANDY_BRIDGE_MC14_ADDR 0x0000043A
|
|
||||||
#define MSR_SANDY_BRIDGE_MC15_ADDR 0x0000043E
|
|
||||||
#define MSR_SANDY_BRIDGE_MC16_ADDR 0x00000442
|
|
||||||
#define MSR_SANDY_BRIDGE_MC17_ADDR 0x00000446
|
|
||||||
#define MSR_SANDY_BRIDGE_MC18_ADDR 0x0000044A
|
|
||||||
#define MSR_SANDY_BRIDGE_MC19_ADDR 0x0000044E
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_SANDY_BRIDGE_MCi_MISC
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_MC5_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_SANDY_BRIDGE_MC5_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SANDY_BRIDGE_MC5_MISC is defined as MSR_MC5_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC6_MISC is defined as MSR_MC6_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC7_MISC is defined as MSR_MC7_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC8_MISC is defined as MSR_MC8_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC9_MISC is defined as MSR_MC9_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC10_MISC is defined as MSR_MC10_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC11_MISC is defined as MSR_MC11_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC12_MISC is defined as MSR_MC12_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC13_MISC is defined as MSR_MC13_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC14_MISC is defined as MSR_MC14_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC15_MISC is defined as MSR_MC15_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC16_MISC is defined as MSR_MC16_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC17_MISC is defined as MSR_MC17_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC18_MISC is defined as MSR_MC18_MISC in SDM.
|
|
||||||
MSR_SANDY_BRIDGE_MC19_MISC is defined as MSR_MC19_MISC in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SANDY_BRIDGE_MC5_MISC 0x00000417
|
|
||||||
#define MSR_SANDY_BRIDGE_MC6_MISC 0x0000041B
|
|
||||||
#define MSR_SANDY_BRIDGE_MC7_MISC 0x0000041F
|
|
||||||
#define MSR_SANDY_BRIDGE_MC8_MISC 0x00000423
|
|
||||||
#define MSR_SANDY_BRIDGE_MC9_MISC 0x00000427
|
|
||||||
#define MSR_SANDY_BRIDGE_MC10_MISC 0x0000042B
|
|
||||||
#define MSR_SANDY_BRIDGE_MC11_MISC 0x0000042F
|
|
||||||
#define MSR_SANDY_BRIDGE_MC12_MISC 0x00000433
|
|
||||||
#define MSR_SANDY_BRIDGE_MC13_MISC 0x00000437
|
|
||||||
#define MSR_SANDY_BRIDGE_MC14_MISC 0x0000043B
|
|
||||||
#define MSR_SANDY_BRIDGE_MC15_MISC 0x0000043F
|
|
||||||
#define MSR_SANDY_BRIDGE_MC16_MISC 0x00000443
|
|
||||||
#define MSR_SANDY_BRIDGE_MC17_MISC 0x00000447
|
|
||||||
#define MSR_SANDY_BRIDGE_MC18_MISC 0x0000044B
|
|
||||||
#define MSR_SANDY_BRIDGE_MC19_MISC 0x0000044F
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Package RAPL Perf Status (R/O).
|
Package. Package RAPL Perf Status (R/O).
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-4.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.4.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
#include <Register/ArchitecturalMsr.h>
|
#include <Register/ArchitecturalMsr.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Model Specific Platform ID (R).
|
Module. Model Specific Platform ID (R).
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_PLATFORM_ID (0x00000017)
|
@param ECX MSR_SILVERMONT_PLATFORM_ID (0x00000017)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -74,8 +74,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Processor Hard Power-On Configuration (R/W) Enables and disables
|
Module. Processor Hard Power-On Configuration (R/W) Writes ignored.
|
||||||
processor features; (R) indicates current processor configuration.
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_EBL_CR_POWERON (0x0000002A)
|
@param ECX MSR_SILVERMONT_EBL_CR_POWERON (0x0000002A)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -102,69 +101,8 @@ typedef union {
|
||||||
/// Individual bit fields
|
/// Individual bit fields
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
UINT32 Reserved1:1;
|
UINT32 Reserved1:32;
|
||||||
///
|
UINT32 Reserved2:32;
|
||||||
/// [Bit 1] Data Error Checking Enable (R/W) 1 = Enabled; 0 = Disabled
|
|
||||||
/// Always 0.
|
|
||||||
///
|
|
||||||
UINT32 DataErrorCheckingEnable:1;
|
|
||||||
///
|
|
||||||
/// [Bit 2] Response Error Checking Enable (R/W) 1 = Enabled; 0 = Disabled
|
|
||||||
/// Always 0.
|
|
||||||
///
|
|
||||||
UINT32 ResponseErrorCheckingEnable:1;
|
|
||||||
///
|
|
||||||
/// [Bit 3] AERR# Drive Enable (R/W) 1 = Enabled; 0 = Disabled Always 0.
|
|
||||||
///
|
|
||||||
UINT32 AERR_DriveEnable:1;
|
|
||||||
///
|
|
||||||
/// [Bit 4] BERR# Enable for initiator bus requests (R/W) 1 = Enabled; 0 =
|
|
||||||
/// Disabled Always 0.
|
|
||||||
///
|
|
||||||
UINT32 BERR_Enable:1;
|
|
||||||
UINT32 Reserved2:1;
|
|
||||||
UINT32 Reserved3:1;
|
|
||||||
///
|
|
||||||
/// [Bit 7] BINIT# Driver Enable (R/W) 1 = Enabled; 0 = Disabled Always 0.
|
|
||||||
///
|
|
||||||
UINT32 BINIT_DriverEnable:1;
|
|
||||||
UINT32 Reserved4:1;
|
|
||||||
///
|
|
||||||
/// [Bit 9] Execute BIST (R/O) 1 = Enabled; 0 = Disabled.
|
|
||||||
///
|
|
||||||
UINT32 ExecuteBIST:1;
|
|
||||||
///
|
|
||||||
/// [Bit 10] AERR# Observation Enabled (R/O) 1 = Enabled; 0 = Disabled
|
|
||||||
/// Always 0.
|
|
||||||
///
|
|
||||||
UINT32 AERR_ObservationEnabled:1;
|
|
||||||
UINT32 Reserved5:1;
|
|
||||||
///
|
|
||||||
/// [Bit 12] BINIT# Observation Enabled (R/O) 1 = Enabled; 0 = Disabled
|
|
||||||
/// Always 0.
|
|
||||||
///
|
|
||||||
UINT32 BINIT_ObservationEnabled:1;
|
|
||||||
UINT32 Reserved6:1;
|
|
||||||
///
|
|
||||||
/// [Bit 14] 1 MByte Power on Reset Vector (R/O) 1 = 1 MByte; 0 = 4 GBytes.
|
|
||||||
///
|
|
||||||
UINT32 ResetVector:1;
|
|
||||||
UINT32 Reserved7:1;
|
|
||||||
///
|
|
||||||
/// [Bits 17:16] APIC Cluster ID (R/O) Always 00B.
|
|
||||||
///
|
|
||||||
UINT32 APICClusterID:2;
|
|
||||||
UINT32 Reserved8:2;
|
|
||||||
///
|
|
||||||
/// [Bits 21:20] Symmetric Arbitration ID (R/O) Always 00B.
|
|
||||||
///
|
|
||||||
UINT32 SymmetricArbitrationID:2;
|
|
||||||
///
|
|
||||||
/// [Bits 26:22] Integer Bus Frequency Ratio (R/O).
|
|
||||||
///
|
|
||||||
UINT32 IntegerBusFrequencyRatio:5;
|
|
||||||
UINT32 Reserved9:5;
|
|
||||||
UINT32 Reserved10:32;
|
|
||||||
} Bits;
|
} Bits;
|
||||||
///
|
///
|
||||||
/// All bit fields as a 32-bit value
|
/// All bit fields as a 32-bit value
|
||||||
|
@ -222,13 +160,65 @@ typedef union {
|
||||||
} MSR_SILVERMONT_SMI_COUNT_REGISTER;
|
} MSR_SILVERMONT_SMI_COUNT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Core. Control Features in Intel 64 Processor (R/W). See Table 35-2.
|
||||||
|
|
||||||
|
@param ECX MSR_IA32_SILVERMONT_FEATURE_CONTROL (0x0000003A)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type
|
||||||
|
MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type
|
||||||
|
MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_IA32_FEATURE_CONTROL);
|
||||||
|
AsmWriteMsr64 (MSR_SILVERMONT_IA32_FEATURE_CONTROL, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_SILVERMONT_IA32_FEATURE_CONTROL is defined as IA32_FEATURE_CONTROL in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_SILVERMONT_IA32_FEATURE_CONTROL 0x0000003A
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_SILVERMONT_IA32_FEATURE_CONTROL
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bit 0] Lock (R/WL).
|
||||||
|
///
|
||||||
|
UINT32 Lock:1;
|
||||||
|
UINT32 Reserved1:1;
|
||||||
|
///
|
||||||
|
/// [Bit 2] Enable VMX outside SMX operation (R/WL).
|
||||||
|
///
|
||||||
|
UINT32 EnableVmxOutsideSmx:1;
|
||||||
|
UINT32 Reserved2:29;
|
||||||
|
UINT32 Reserved3:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_SILVERMONT_IA32_FEATURE_CONTROL_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. Last Branch Record n From IP (R/W) One of eight pairs of last branch
|
Core. Last Branch Record n From IP (R/W) One of eight pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. The From_IP part of the
|
||||||
contains pointers to the source instruction for one of the last eight
|
stack contains pointers to the source instruction. See also: - Last Branch
|
||||||
branches, exceptions, or interrupts taken by the processor. See also: -
|
Record Stack TOS at 1C9H - Section 17.5 and record format in Section
|
||||||
Last Branch Record Stack TOS at 1C9H - Section 17.12, "Last Branch,
|
17.4.8.1.
|
||||||
Interrupt, and Exception Recording (Pentium M Processors).".
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_LASTBRANCH_n_FROM_IP
|
@param ECX MSR_SILVERMONT_LASTBRANCH_n_FROM_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -264,9 +254,8 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. Last Branch Record n To IP (R/W) One of eight pairs of last branch
|
Core. Last Branch Record n To IP (R/W) One of eight pairs of last branch
|
||||||
record registers on the last branch record stack. This part of the stack
|
record registers on the last branch record stack. The To_IP part of the
|
||||||
contains pointers to the destination instruction for one of the last eight
|
stack contains pointers to the destination instruction.
|
||||||
branches, exceptions, or interrupts taken by the processor.
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_LASTBRANCH_n_TO_IP
|
@param ECX MSR_SILVERMONT_LASTBRANCH_n_TO_IP
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -301,7 +290,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Scalable Bus Speed(RO) This field indicates the intended scalable
|
Module. Scalable Bus Speed(RO) This field indicates the intended scalable
|
||||||
bus clock speed for processors based on Silvermont microarchitecture:.
|
bus clock speed for processors based on Silvermont microarchitecture:.
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_FSB_FREQ (0x000000CD)
|
@param ECX MSR_SILVERMONT_FSB_FREQ (0x000000CD)
|
||||||
|
@ -367,7 +356,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. C-State Configuration Control (R/W) Note: C-state values are
|
Module. C-State Configuration Control (R/W) Note: C-state values are
|
||||||
processor specific C-state code names, unrelated to MWAIT extension C-state
|
processor specific C-state code names, unrelated to MWAIT extension C-state
|
||||||
parameters or ACPI CStates. See http://biosbits.org.
|
parameters or ACPI CStates. See http://biosbits.org.
|
||||||
|
|
||||||
|
@ -433,7 +422,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Power Management IO Redirection in C-state (R/W) See
|
Module. Power Management IO Redirection in C-state (R/W) See
|
||||||
http://biosbits.org.
|
http://biosbits.org.
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_PMG_IO_CAPTURE_BASE (0x000000E4)
|
@param ECX MSR_SILVERMONT_PMG_IO_CAPTURE_BASE (0x000000E4)
|
||||||
|
@ -493,7 +482,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared.
|
Module.
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_BBL_CR_CTL3 (0x0000011E)
|
@param ECX MSR_SILVERMONT_BBL_CR_CTL3 (0x0000011E)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -639,8 +628,8 @@ typedef union {
|
||||||
UINT32 FastStrings:1;
|
UINT32 FastStrings:1;
|
||||||
UINT32 Reserved1:2;
|
UINT32 Reserved1:2;
|
||||||
///
|
///
|
||||||
/// [Bit 3] Shared. Automatic Thermal Control Circuit Enable (R/W) See
|
/// [Bit 3] Module. Automatic Thermal Control Circuit Enable (R/W) See
|
||||||
/// Table 35-2.
|
/// Table 35-2. Default value is 0.
|
||||||
///
|
///
|
||||||
UINT32 AutomaticThermalControlCircuit:1;
|
UINT32 AutomaticThermalControlCircuit:1;
|
||||||
UINT32 Reserved2:3;
|
UINT32 Reserved2:3;
|
||||||
|
@ -654,13 +643,13 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Core. Precise Event Based Sampling Unavailable (RO) See Table
|
/// [Bit 12] Core. Processor Event Based Sampling Unavailable (RO) See
|
||||||
/// 35-2.
|
/// Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
UINT32 Reserved4:3;
|
UINT32 Reserved4:3;
|
||||||
///
|
///
|
||||||
/// [Bit 16] Shared. Enhanced Intel SpeedStep Technology Enable (R/W) See
|
/// [Bit 16] Module. Enhanced Intel SpeedStep Technology Enable (R/W) See
|
||||||
/// Table 35-2.
|
/// Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 EIST:1;
|
UINT32 EIST:1;
|
||||||
|
@ -675,7 +664,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 LimitCpuidMaxval:1;
|
UINT32 LimitCpuidMaxval:1;
|
||||||
///
|
///
|
||||||
/// [Bit 23] Shared. xTPR Message Disable (R/W) See Table 35-2.
|
/// [Bit 23] Module. xTPR Message Disable (R/W) See Table 35-2.
|
||||||
///
|
///
|
||||||
UINT32 xTPR_Message_Disable:1;
|
UINT32 xTPR_Message_Disable:1;
|
||||||
UINT32 Reserved7:8;
|
UINT32 Reserved7:8;
|
||||||
|
@ -686,7 +675,7 @@ typedef union {
|
||||||
UINT32 XD:1;
|
UINT32 XD:1;
|
||||||
UINT32 Reserved9:3;
|
UINT32 Reserved9:3;
|
||||||
///
|
///
|
||||||
/// [Bit 38] Shared. Turbo Mode Disable (R/W) When set to 1 on processors
|
/// [Bit 38] Module. Turbo Mode Disable (R/W) When set to 1 on processors
|
||||||
/// that support Intel Turbo Boost Technology, the turbo mode feature is
|
/// that support Intel Turbo Boost Technology, the turbo mode feature is
|
||||||
/// disabled and the IDA_Enable feature flag will be clear (CPUID.06H:
|
/// disabled and the IDA_Enable feature flag will be clear (CPUID.06H:
|
||||||
/// EAX[1]=0). When set to a 0 on processors that support IDA, CPUID.06H:
|
/// EAX[1]=0). When set to a 0 on processors that support IDA, CPUID.06H:
|
||||||
|
@ -763,7 +752,62 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Offcore Response Event Select Register (R/W).
|
Miscellaneous Feature Control (R/W).
|
||||||
|
|
||||||
|
@param ECX MSR_SILVERMONT_MISC_FEATURE_CONTROL (0x000001A4)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_MISC_FEATURE_CONTROL);
|
||||||
|
AsmWriteMsr64 (MSR_SILVERMONT_MISC_FEATURE_CONTROL, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_SILVERMONT_MISC_FEATURE_CONTROL is defined as MSR_MISC_FEATURE_CONTROL in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_SILVERMONT_MISC_FEATURE_CONTROL 0x000001A4
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_SILVERMONT_MISC_FEATURE_CONTROL
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bit 0] Core. L2 Hardware Prefetcher Disable (R/W) If 1, disables the
|
||||||
|
/// L2 hardware prefetcher, which fetches additional lines of code or data
|
||||||
|
/// into the L2 cache.
|
||||||
|
///
|
||||||
|
UINT32 L2HardwarePrefetcherDisable:1;
|
||||||
|
UINT32 Reserved1:1;
|
||||||
|
///
|
||||||
|
/// [Bit 2] Core. DCU Hardware Prefetcher Disable (R/W) If 1, disables
|
||||||
|
/// the L1 data cache prefetcher, which fetches the next cache line into
|
||||||
|
/// L1 data cache.
|
||||||
|
///
|
||||||
|
UINT32 DCUHardwarePrefetcherDisable:1;
|
||||||
|
UINT32 Reserved2:29;
|
||||||
|
UINT32 Reserved3:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_SILVERMONT_MISC_FEATURE_CONTROL_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Module. Offcore Response Event Select Register (R/W).
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_OFFCORE_RSP_0 (0x000001A6)
|
@param ECX MSR_SILVERMONT_OFFCORE_RSP_0 (0x000001A6)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -782,7 +826,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Offcore Response Event Select Register (R/W).
|
Module. Offcore Response Event Select Register (R/W).
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_OFFCORE_RSP_1 (0x000001A7)
|
@param ECX MSR_SILVERMONT_OFFCORE_RSP_1 (0x000001A7)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -876,10 +920,89 @@ typedef union {
|
||||||
} MSR_SILVERMONT_TURBO_RATIO_LIMIT_REGISTER;
|
} MSR_SILVERMONT_TURBO_RATIO_LIMIT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Core. Last Branch Record Filtering Select Register (R/W) See Section
|
||||||
|
17.7.2, "Filtering of Last Branch Records.".
|
||||||
|
|
||||||
|
@param ECX MSR_SILVERMONT_LBR_SELECT (0x000001C8)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_SILVERMONT_LBR_SELECT_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_SILVERMONT_LBR_SELECT_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_SILVERMONT_LBR_SELECT_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_SILVERMONT_LBR_SELECT);
|
||||||
|
AsmWriteMsr64 (MSR_SILVERMONT_LBR_SELECT, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_SILVERMONT_LBR_SELECT is defined as MSR_LBR_SELECT in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_SILVERMONT_LBR_SELECT 0x000001C8
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_SILVERMONT_LBR_SELECT
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bit 0] CPL_EQ_0.
|
||||||
|
///
|
||||||
|
UINT32 CPL_EQ_0:1;
|
||||||
|
///
|
||||||
|
/// [Bit 1] CPL_NEQ_0.
|
||||||
|
///
|
||||||
|
UINT32 CPL_NEQ_0:1;
|
||||||
|
///
|
||||||
|
/// [Bit 2] JCC.
|
||||||
|
///
|
||||||
|
UINT32 JCC:1;
|
||||||
|
///
|
||||||
|
/// [Bit 3] NEAR_REL_CALL.
|
||||||
|
///
|
||||||
|
UINT32 NEAR_REL_CALL:1;
|
||||||
|
///
|
||||||
|
/// [Bit 4] NEAR_IND_CALL.
|
||||||
|
///
|
||||||
|
UINT32 NEAR_IND_CALL:1;
|
||||||
|
///
|
||||||
|
/// [Bit 5] NEAR_RET.
|
||||||
|
///
|
||||||
|
UINT32 NEAR_RET:1;
|
||||||
|
///
|
||||||
|
/// [Bit 6] NEAR_IND_JMP.
|
||||||
|
///
|
||||||
|
UINT32 NEAR_IND_JMP:1;
|
||||||
|
///
|
||||||
|
/// [Bit 7] NEAR_REL_JMP.
|
||||||
|
///
|
||||||
|
UINT32 NEAR_REL_JMP:1;
|
||||||
|
///
|
||||||
|
/// [Bit 8] FAR_BRANCH.
|
||||||
|
///
|
||||||
|
UINT32 FAR_BRANCH:1;
|
||||||
|
UINT32 Reserved1:23;
|
||||||
|
UINT32 Reserved2:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_SILVERMONT_LBR_SELECT_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. Last Branch Record Stack TOS (R/W) Contains an index (bits 0-2) that
|
Core. Last Branch Record Stack TOS (R/W) Contains an index (bits 0-2) that
|
||||||
points to the MSR containing the most recent branch record. See
|
points to the MSR containing the most recent branch record. See
|
||||||
MSR_LASTBRANCH_0_FROM_IP (at 40H).
|
MSR_LASTBRANCH_0_FROM_IP.
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_LASTBRANCH_TOS (0x000001C9)
|
@param ECX MSR_SILVERMONT_LASTBRANCH_TOS (0x000001C9)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -939,27 +1062,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. See Table 35-2. See Section 18.4.2, "Global Counter Control
|
Core. See Table 35-2. See Section 18.4.4, "Processor Event Based Sampling
|
||||||
Facilities.".
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SILVERMONT_IA32_PERF_GLOBAL_STAUS);
|
|
||||||
AsmWriteMsr64 (MSR_SILVERMONT_IA32_PERF_GLOBAL_STAUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SILVERMONT_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_SILVERMONT_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Table 35-2. See Section 18.4.4, "Precise Event Based Sampling
|
|
||||||
(PEBS).".
|
(PEBS).".
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_PEBS_ENABLE (0x000003F1)
|
@param ECX MSR_SILVERMONT_PEBS_ENABLE (0x000003F1)
|
||||||
|
@ -988,7 +1091,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bit 0] Enable PEBS on IA32_PMC0. (R/W).
|
/// [Bit 0] Enable PEBS for precise event on IA32_PMC0. (R/W).
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
UINT32 Reserved1:31;
|
UINT32 Reserved1:31;
|
||||||
|
@ -1049,84 +1152,6 @@ typedef union {
|
||||||
#define MSR_SILVERMONT_CORE_C6_RESIDENCY 0x000003FD
|
#define MSR_SILVERMONT_CORE_C6_RESIDENCY 0x000003FD
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_MCi_CTL
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SILVERMONT_MC3_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_SILVERMONT_MC3_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SILVERMONT_MC3_CTL is defined as MSR_MC3_CTL in SDM.
|
|
||||||
MSR_SILVERMONT_MC4_CTL is defined as MSR_MC4_CTL in SDM.
|
|
||||||
MSR_SILVERMONT_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SILVERMONT_MC3_CTL 0x0000040C
|
|
||||||
#define MSR_SILVERMONT_MC4_CTL 0x00000410
|
|
||||||
#define MSR_SILVERMONT_MC5_CTL 0x00000414
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_MCi_STATUS
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SILVERMONT_MC3_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_SILVERMONT_MC3_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SILVERMONT_MC3_STATUS is defined as MSR_MC3_STATUS in SDM.
|
|
||||||
MSR_SILVERMONT_MC4_STATUS is defined as MSR_MC4_STATUS in SDM.
|
|
||||||
MSR_SILVERMONT_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SILVERMONT_MC3_STATUS 0x0000040D
|
|
||||||
#define MSR_SILVERMONT_MC4_STATUS 0x00000411
|
|
||||||
#define MSR_SILVERMONT_MC5_STATUS 0x00000415
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MCi_ADDR register
|
|
||||||
is either not implemented or contains no address if the ADDRV flag in the
|
|
||||||
MSR_MCi_STATUS register is clear. When not implemented in the processor, all
|
|
||||||
reads and writes to this MSR will cause a general-protection exception.
|
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_MCi_ADDR
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_SILVERMONT_MC3_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_SILVERMONT_MC3_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_SILVERMONT_MC3_ADDR is defined as MSR_MC3_ADDR in SDM.
|
|
||||||
MSR_SILVERMONT_MC4_ADDR is defined as MSR_MC4_ADDR in SDM.
|
|
||||||
MSR_SILVERMONT_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_SILVERMONT_MC3_ADDR 0x0000040E
|
|
||||||
#define MSR_SILVERMONT_MC4_ADDR 0x00000412
|
|
||||||
#define MSR_SILVERMONT_MC5_ADDR 0x00000416
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. Capability Reporting Register of EPT and VPID (R/O) See Table 35-2.
|
Core. Capability Reporting Register of EPT and VPID (R/O) See Table 35-2.
|
||||||
|
|
||||||
|
@ -1279,7 +1304,7 @@ typedef union {
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bits 14:0] Package Power Limit #1. (R/W) See Section 14.9.3, "Package
|
/// [Bits 14:0] Package Power Limit #1. (R/W) See Section 14.9.3, "Package
|
||||||
/// RAPL Domain." and MSR_RAPL_POWER_UNIT in Table 35-7.
|
/// RAPL Domain." and MSR_RAPL_POWER_UNIT in Table 35-8.
|
||||||
///
|
///
|
||||||
UINT32 Limit:15;
|
UINT32 Limit:15;
|
||||||
///
|
///
|
||||||
|
@ -1313,7 +1338,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. PKG Energy Status (R/O) See Section 14.9.3, "Package RAPL Domain."
|
Package. PKG Energy Status (R/O) See Section 14.9.3, "Package RAPL Domain."
|
||||||
and MSR_RAPL_POWER_UNIT in Table 35-7.
|
and MSR_RAPL_POWER_UNIT in Table 35-8.
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_PKG_ENERGY_STATUS (0x00000611)
|
@param ECX MSR_SILVERMONT_PKG_ENERGY_STATUS (0x00000611)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1332,7 +1357,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL
|
Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL
|
||||||
Domains." and MSR_RAPL_POWER_UNIT in Table 35-7.
|
Domains." and MSR_RAPL_POWER_UNIT in Table 35-8.
|
||||||
|
|
||||||
@param ECX MSR_SILVERMONT_PP0_ENERGY_STATUS (0x00000639)
|
@param ECX MSR_SILVERMONT_PP0_ENERGY_STATUS (0x00000639)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1489,7 +1514,7 @@ typedef union {
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bits 14:0] PP0 Power Limit #1. (R/W) See Section 14.9.4, "PP0/PP1
|
/// [Bits 14:0] PP0 Power Limit #1. (R/W) See Section 14.9.4, "PP0/PP1
|
||||||
/// RAPL Domains." and MSR_RAPL_POWER_UNIT in Table 35-7.
|
/// RAPL Domains." and MSR_RAPL_POWER_UNIT in Table 35-8.
|
||||||
///
|
///
|
||||||
UINT32 Limit:15;
|
UINT32 Limit:15;
|
||||||
///
|
///
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-6.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.7.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-13.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.14.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -55,11 +55,11 @@ typedef union {
|
||||||
///
|
///
|
||||||
struct {
|
struct {
|
||||||
///
|
///
|
||||||
/// [Bit 0] LockOut (R/WO) See Table 35-21.
|
/// [Bit 0] LockOut (R/WO) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 LockOut:1;
|
UINT32 LockOut:1;
|
||||||
///
|
///
|
||||||
/// [Bit 1] Enable_PPIN (R/W) See Table 35-21.
|
/// [Bit 1] Enable_PPIN (R/W) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 Enable_PPIN:1;
|
UINT32 Enable_PPIN:1;
|
||||||
UINT32 Reserved1:30;
|
UINT32 Reserved1:30;
|
||||||
|
@ -78,7 +78,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Protected Processor Inventory Number (R/O). Protected Processor
|
Package. Protected Processor Inventory Number (R/O). Protected Processor
|
||||||
Inventory Number (R/O) See Table 35-21.
|
Inventory Number (R/O) See Table 35-24.
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_PPIN (0x0000004F)
|
@param ECX MSR_XEON_D_PPIN (0x0000004F)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -125,33 +125,33 @@ typedef union {
|
||||||
struct {
|
struct {
|
||||||
UINT32 Reserved1:8;
|
UINT32 Reserved1:8;
|
||||||
///
|
///
|
||||||
/// [Bits 15:8] Package. Maximum Non-Turbo Ratio (R/O) See Table 35-21.
|
/// [Bits 15:8] Package. Maximum Non-Turbo Ratio (R/O) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 MaximumNonTurboRatio:8;
|
UINT32 MaximumNonTurboRatio:8;
|
||||||
UINT32 Reserved2:7;
|
UINT32 Reserved2:7;
|
||||||
///
|
///
|
||||||
/// [Bit 23] Package. PPIN_CAP (R/O) See Table 35-21.
|
/// [Bit 23] Package. PPIN_CAP (R/O) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 PPIN_CAP:1;
|
UINT32 PPIN_CAP:1;
|
||||||
UINT32 Reserved3:4;
|
UINT32 Reserved3:4;
|
||||||
///
|
///
|
||||||
/// [Bit 28] Package. Programmable Ratio Limit for Turbo Mode (R/O) See
|
/// [Bit 28] Package. Programmable Ratio Limit for Turbo Mode (R/O) See
|
||||||
/// Table 35-21.
|
/// Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 RatioLimit:1;
|
UINT32 RatioLimit:1;
|
||||||
///
|
///
|
||||||
/// [Bit 29] Package. Programmable TDP Limit for Turbo Mode (R/O) See
|
/// [Bit 29] Package. Programmable TDP Limit for Turbo Mode (R/O) See
|
||||||
/// Table 35-21.
|
/// Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 TDPLimit:1;
|
UINT32 TDPLimit:1;
|
||||||
///
|
///
|
||||||
/// [Bit 30] Package. Programmable TJ OFFSET (R/O) See Table 35-21.
|
/// [Bit 30] Package. Programmable TJ OFFSET (R/O) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 TJOFFSET:1;
|
UINT32 TJOFFSET:1;
|
||||||
UINT32 Reserved4:1;
|
UINT32 Reserved4:1;
|
||||||
UINT32 Reserved5:8;
|
UINT32 Reserved5:8;
|
||||||
///
|
///
|
||||||
/// [Bits 47:40] Package. Maximum Efficiency Ratio (R/O) See Table 35-21.
|
/// [Bits 47:40] Package. Maximum Efficiency Ratio (R/O) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 MaximumEfficiencyRatio:8;
|
UINT32 MaximumEfficiencyRatio:8;
|
||||||
UINT32 Reserved6:16;
|
UINT32 Reserved6:16;
|
||||||
|
@ -417,11 +417,11 @@ typedef union {
|
||||||
struct {
|
struct {
|
||||||
UINT32 Reserved1:16;
|
UINT32 Reserved1:16;
|
||||||
///
|
///
|
||||||
/// [Bits 23:16] Temperature Target (RO) See Table 35-21.
|
/// [Bits 23:16] Temperature Target (RO) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 TemperatureTarget:8;
|
UINT32 TemperatureTarget:8;
|
||||||
///
|
///
|
||||||
/// [Bits 27:24] TCC Activation Offset (R/W) See Table 35-21.
|
/// [Bits 27:24] TCC Activation Offset (R/W) See Table 35-24.
|
||||||
///
|
///
|
||||||
UINT32 TCCActivationOffset:4;
|
UINT32 TCCActivationOffset:4;
|
||||||
UINT32 Reserved2:4;
|
UINT32 Reserved2:4;
|
||||||
|
@ -654,22 +654,49 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. DRAM Energy Status (R/O) See Section 14.9.5, "DRAM RAPL Domain.".
|
Package. DRAM Energy Status (R/O) Energy consumed by DRAM devices.
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_DRAM_ENERGY_STATUS (0x00000619)
|
@param ECX MSR_XEON_D_DRAM_ENERGY_STATUS (0x00000619)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_D_DRAM_ENERGY_STATUS_REGISTER.
|
||||||
@param EDX Upper 32-bits of MSR value.
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_D_DRAM_ENERGY_STATUS_REGISTER.
|
||||||
|
|
||||||
<b>Example usage</b>
|
<b>Example usage</b>
|
||||||
@code
|
@code
|
||||||
UINT64 Msr;
|
MSR_XEON_D_DRAM_ENERGY_STATUS_REGISTER Msr;
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_D_DRAM_ENERGY_STATUS);
|
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_D_DRAM_ENERGY_STATUS);
|
||||||
@endcode
|
@endcode
|
||||||
@note MSR_XEON_D_DRAM_ENERGY_STATUS is defined as MSR_DRAM_ENERGY_STATUS in SDM.
|
@note MSR_XEON_D_DRAM_ENERGY_STATUS is defined as MSR_DRAM_ENERGY_STATUS in SDM.
|
||||||
**/
|
**/
|
||||||
#define MSR_XEON_D_DRAM_ENERGY_STATUS 0x00000619
|
#define MSR_XEON_D_DRAM_ENERGY_STATUS 0x00000619
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_XEON_D_DRAM_ENERGY_STATUS
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bits 31:0] Energy in 15.3 micro-joules. Requires BIOS configuration
|
||||||
|
/// to enable DRAM RAPL mode 0 (Direct VR).
|
||||||
|
///
|
||||||
|
UINT32 Energy:32;
|
||||||
|
UINT32 Reserved:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_XEON_D_DRAM_ENERGY_STATUS_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. DRAM Performance Throttling Status (R/O) See Section 14.9.5, "DRAM
|
Package. DRAM Performance Throttling Status (R/O) See Section 14.9.5, "DRAM
|
||||||
|
@ -709,6 +736,24 @@ typedef union {
|
||||||
#define MSR_XEON_D_DRAM_POWER_INFO 0x0000061C
|
#define MSR_XEON_D_DRAM_POWER_INFO 0x0000061C
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Package. Reserved (R/O) Reads return 0.
|
||||||
|
|
||||||
|
@param ECX MSR_XEON_D_PP0_ENERGY_STATUS (0x00000639)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_XEON_D_PP0_ENERGY_STATUS);
|
||||||
|
@endcode
|
||||||
|
@note MSR_XEON_D_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_XEON_D_PP0_ENERGY_STATUS 0x00000639
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Indicator of Frequency Clipping in Processor Cores (R/W) (frequency
|
Package. Indicator of Frequency Clipping in Processor Cores (R/W) (frequency
|
||||||
refers to processor core frequency).
|
refers to processor core frequency).
|
||||||
|
@ -891,7 +936,7 @@ typedef union {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
THREAD. Monitoring Event Select Register (R/W) if CPUID.(EAX=07H,
|
THREAD. Monitoring Event Select Register (R/W) if CPUID.(EAX=07H,
|
||||||
ECX=0):EBX.PQM[bit 12] = 1.
|
ECX=0):EBX.RDT-M[bit 12] = 1.
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_IA32_QM_EVTSEL (0x00000C8D)
|
@param ECX MSR_XEON_D_IA32_QM_EVTSEL (0x00000C8D)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1109,385 +1154,6 @@ typedef union {
|
||||||
} MSR_XEON_D_TURBO_RATIO_LIMIT3_REGISTER;
|
} MSR_XEON_D_TURBO_RATIO_LIMIT3_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
* Bank MC5 reports MC error from the Intel QPI 0 module.
|
|
||||||
* Bank MC6 reports MC error from the integrated I/O module.
|
|
||||||
* Bank MC7 reports MC error from the home agent HA 0.
|
|
||||||
* Bank MC8 reports MC error from the home agent HA 1.
|
|
||||||
* Banks MC9 through MC16 report MC error from each channel of the integrated
|
|
||||||
memory controllers.
|
|
||||||
* Bank MC17 reports MC error from the following pair of CBo/L3 Slices
|
|
||||||
(if the pair is present): CBo0, CBo3, CBo6, CBo9, CBo12, CBo15.
|
|
||||||
* Bank MC18 reports MC error from the following pair of CBo/L3 Slices
|
|
||||||
(if the pair is present): CBo1, CBo4, CBo7, CBo10, CBo13, CBo16.
|
|
||||||
* Bank MC19 reports MC error from the following pair of CBo/L3 Slices
|
|
||||||
(if the pair is present): CBo2, CBo5, CBo8, CBo11, CBo14, CBo17.
|
|
||||||
* Bank MC20 reports MC error from the Intel QPI 1 module.
|
|
||||||
* Bank MC21 reports MC error from the Intel QPI 2 module.
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_MCi_CTL
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_D_MC5_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_MC5_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC6_CTL is defined as MSR_MC6_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC7_CTL is defined as MSR_MC7_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC8_CTL is defined as MSR_MC8_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC9_CTL is defined as MSR_MC9_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC10_CTL is defined as MSR_MC10_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC11_CTL is defined as MSR_MC11_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC12_CTL is defined as MSR_MC12_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC13_CTL is defined as MSR_MC13_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC14_CTL is defined as MSR_MC14_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC15_CTL is defined as MSR_MC15_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC16_CTL is defined as MSR_MC16_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC17_CTL is defined as MSR_MC17_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC18_CTL is defined as MSR_MC18_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC19_CTL is defined as MSR_MC19_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC20_CTL is defined as MSR_MC20_CTL in SDM.
|
|
||||||
MSR_XEON_D_MC21_CTL is defined as MSR_MC21_CTL in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_MC5_CTL 0x00000414
|
|
||||||
#define MSR_XEON_D_MC6_CTL 0x00000418
|
|
||||||
#define MSR_XEON_D_MC7_CTL 0x0000041C
|
|
||||||
#define MSR_XEON_D_MC8_CTL 0x00000420
|
|
||||||
#define MSR_XEON_D_MC9_CTL 0x00000424
|
|
||||||
#define MSR_XEON_D_MC10_CTL 0x00000428
|
|
||||||
#define MSR_XEON_D_MC11_CTL 0x0000042C
|
|
||||||
#define MSR_XEON_D_MC12_CTL 0x00000430
|
|
||||||
#define MSR_XEON_D_MC13_CTL 0x00000434
|
|
||||||
#define MSR_XEON_D_MC14_CTL 0x00000438
|
|
||||||
#define MSR_XEON_D_MC15_CTL 0x0000043C
|
|
||||||
#define MSR_XEON_D_MC16_CTL 0x00000440
|
|
||||||
#define MSR_XEON_D_MC17_CTL 0x00000444
|
|
||||||
#define MSR_XEON_D_MC18_CTL 0x00000448
|
|
||||||
#define MSR_XEON_D_MC19_CTL 0x0000044C
|
|
||||||
#define MSR_XEON_D_MC20_CTL 0x00000450
|
|
||||||
#define MSR_XEON_D_MC21_CTL 0x00000454
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_MCi_STATUS
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_D_MC6_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_MC6_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC6_STATUS is defined as MSR_MC6_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC7_STATUS is defined as MSR_MC7_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC8_STATUS is defined as MSR_MC8_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC9_STATUS is defined as MSR_MC9_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC10_STATUS is defined as MSR_MC10_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC11_STATUS is defined as MSR_MC11_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC12_STATUS is defined as MSR_MC12_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC13_STATUS is defined as MSR_MC13_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC14_STATUS is defined as MSR_MC14_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC15_STATUS is defined as MSR_MC15_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC16_STATUS is defined as MSR_MC16_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC17_STATUS is defined as MSR_MC17_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC18_STATUS is defined as MSR_MC18_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC19_STATUS is defined as MSR_MC19_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC20_STATUS is defined as MSR_MC20_STATUS in SDM.
|
|
||||||
MSR_XEON_D_MC21_STATUS is defined as MSR_MC21_STATUS in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_MC5_STATUS 0x00000415
|
|
||||||
#define MSR_XEON_D_MC6_STATUS 0x00000419
|
|
||||||
#define MSR_XEON_D_MC7_STATUS 0x0000041D
|
|
||||||
#define MSR_XEON_D_MC8_STATUS 0x00000421
|
|
||||||
#define MSR_XEON_D_MC9_STATUS 0x00000425
|
|
||||||
#define MSR_XEON_D_MC10_STATUS 0x00000429
|
|
||||||
#define MSR_XEON_D_MC11_STATUS 0x0000042D
|
|
||||||
#define MSR_XEON_D_MC12_STATUS 0x00000431
|
|
||||||
#define MSR_XEON_D_MC13_STATUS 0x00000435
|
|
||||||
#define MSR_XEON_D_MC14_STATUS 0x00000439
|
|
||||||
#define MSR_XEON_D_MC15_STATUS 0x0000043D
|
|
||||||
#define MSR_XEON_D_MC16_STATUS 0x00000441
|
|
||||||
#define MSR_XEON_D_MC17_STATUS 0x00000445
|
|
||||||
#define MSR_XEON_D_MC18_STATUS 0x00000449
|
|
||||||
#define MSR_XEON_D_MC19_STATUS 0x0000044D
|
|
||||||
#define MSR_XEON_D_MC20_STATUS 0x00000451
|
|
||||||
#define MSR_XEON_D_MC21_STATUS 0x00000455
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_MCi_ADDR
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_D_MC6_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_MC6_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC6_ADDR is defined as MSR_MC6_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC7_ADDR is defined as MSR_MC7_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC8_ADDR is defined as MSR_MC8_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC9_ADDR is defined as MSR_MC9_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC10_ADDR is defined as MSR_MC10_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC11_ADDR is defined as MSR_MC11_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC12_ADDR is defined as MSR_MC12_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC13_ADDR is defined as MSR_MC13_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC14_ADDR is defined as MSR_MC14_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC15_ADDR is defined as MSR_MC15_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC16_ADDR is defined as MSR_MC16_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC17_ADDR is defined as MSR_MC17_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC18_ADDR is defined as MSR_MC18_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC19_ADDR is defined as MSR_MC19_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC20_ADDR is defined as MSR_MC20_ADDR in SDM.
|
|
||||||
MSR_XEON_D_MC21_ADDR is defined as MSR_MC21_ADDR in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_MC5_ADDR 0x00000416
|
|
||||||
#define MSR_XEON_D_MC6_ADDR 0x0000041A
|
|
||||||
#define MSR_XEON_D_MC7_ADDR 0x0000041E
|
|
||||||
#define MSR_XEON_D_MC8_ADDR 0x00000422
|
|
||||||
#define MSR_XEON_D_MC9_ADDR 0x00000426
|
|
||||||
#define MSR_XEON_D_MC10_ADDR 0x0000042A
|
|
||||||
#define MSR_XEON_D_MC11_ADDR 0x0000042E
|
|
||||||
#define MSR_XEON_D_MC12_ADDR 0x00000432
|
|
||||||
#define MSR_XEON_D_MC13_ADDR 0x00000436
|
|
||||||
#define MSR_XEON_D_MC14_ADDR 0x0000043A
|
|
||||||
#define MSR_XEON_D_MC15_ADDR 0x0000043E
|
|
||||||
#define MSR_XEON_D_MC16_ADDR 0x00000442
|
|
||||||
#define MSR_XEON_D_MC17_ADDR 0x00000446
|
|
||||||
#define MSR_XEON_D_MC18_ADDR 0x0000044A
|
|
||||||
#define MSR_XEON_D_MC19_ADDR 0x0000044E
|
|
||||||
#define MSR_XEON_D_MC20_ADDR 0x00000452
|
|
||||||
#define MSR_XEON_D_MC21_ADDR 0x00000456
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs." through Section
|
|
||||||
15.3.2.4, "IA32_MCi_MISC MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_MCi_MISC
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_D_MC6_MISC);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_MC6_MISC, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_MC5_MISC is defined as MSR_MC5_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC6_MISC is defined as MSR_MC6_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC7_MISC is defined as MSR_MC7_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC8_MISC is defined as MSR_MC8_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC9_MISC is defined as MSR_MC9_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC10_MISC is defined as MSR_MC10_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC11_MISC is defined as MSR_MC11_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC12_MISC is defined as MSR_MC12_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC13_MISC is defined as MSR_MC13_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC14_MISC is defined as MSR_MC14_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC15_MISC is defined as MSR_MC15_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC16_MISC is defined as MSR_MC16_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC17_MISC is defined as MSR_MC17_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC18_MISC is defined as MSR_MC18_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC19_MISC is defined as MSR_MC19_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC20_MISC is defined as MSR_MC20_MISC in SDM.
|
|
||||||
MSR_XEON_D_MC21_MISC is defined as MSR_MC21_MISC in SDM.
|
|
||||||
@{
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_MC5_MISC 0x00000417
|
|
||||||
#define MSR_XEON_D_MC6_MISC 0x0000041B
|
|
||||||
#define MSR_XEON_D_MC7_MISC 0x0000041F
|
|
||||||
#define MSR_XEON_D_MC8_MISC 0x00000423
|
|
||||||
#define MSR_XEON_D_MC9_MISC 0x00000427
|
|
||||||
#define MSR_XEON_D_MC10_MISC 0x0000042B
|
|
||||||
#define MSR_XEON_D_MC11_MISC 0x0000042F
|
|
||||||
#define MSR_XEON_D_MC12_MISC 0x00000433
|
|
||||||
#define MSR_XEON_D_MC13_MISC 0x00000437
|
|
||||||
#define MSR_XEON_D_MC14_MISC 0x0000043B
|
|
||||||
#define MSR_XEON_D_MC15_MISC 0x0000043F
|
|
||||||
#define MSR_XEON_D_MC16_MISC 0x00000443
|
|
||||||
#define MSR_XEON_D_MC17_MISC 0x00000447
|
|
||||||
#define MSR_XEON_D_MC18_MISC 0x0000044B
|
|
||||||
#define MSR_XEON_D_MC19_MISC 0x0000044F
|
|
||||||
#define MSR_XEON_D_MC20_MISC 0x00000453
|
|
||||||
#define MSR_XEON_D_MC21_MISC 0x00000457
|
|
||||||
/// @}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Note: C-state values are processor specific C-state code names,
|
|
||||||
unrelated to MWAIT extension C-state parameters or ACPI C-States.
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_PKG_C8_RESIDENCY (0x00000630)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
Described by the type MSR_XEON_D_PKG_C8_RESIDENCY_REGISTER.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
Described by the type MSR_XEON_D_PKG_C8_RESIDENCY_REGISTER.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
MSR_XEON_D_PKG_C8_RESIDENCY_REGISTER Msr;
|
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_D_PKG_C8_RESIDENCY);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_PKG_C8_RESIDENCY, Msr.Uint64);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_PKG_C8_RESIDENCY is defined as MSR_PKG_C8_RESIDENCY in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_PKG_C8_RESIDENCY 0x00000630
|
|
||||||
|
|
||||||
/**
|
|
||||||
MSR information returned for MSR index #MSR_XEON_D_PKG_C8_RESIDENCY
|
|
||||||
**/
|
|
||||||
typedef union {
|
|
||||||
///
|
|
||||||
/// Individual bit fields
|
|
||||||
///
|
|
||||||
struct {
|
|
||||||
///
|
|
||||||
/// [Bits 31:0] Package C8 Residency Counter. (R/O) Value since last reset
|
|
||||||
/// that this package is in processor-specific C8 states. Count at the
|
|
||||||
/// same frequency as the TSC.
|
|
||||||
///
|
|
||||||
UINT32 C8ResidencyCounter:32;
|
|
||||||
///
|
|
||||||
/// [Bits 59:32] Package C8 Residency Counter. (R/O) Value since last
|
|
||||||
/// reset that this package is in processor-specific C8 states. Count at
|
|
||||||
/// the same frequency as the TSC.
|
|
||||||
///
|
|
||||||
UINT32 C8ResidencyCounterHi:28;
|
|
||||||
UINT32 Reserved:4;
|
|
||||||
} Bits;
|
|
||||||
///
|
|
||||||
/// All bit fields as a 64-bit value
|
|
||||||
///
|
|
||||||
UINT64 Uint64;
|
|
||||||
} MSR_XEON_D_PKG_C8_RESIDENCY_REGISTER;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Note: C-state values are processor specific C-state code names,
|
|
||||||
unrelated to MWAIT extension C-state parameters or ACPI C-States.
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_PKG_C9_RESIDENCY (0x00000631)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
Described by the type MSR_XEON_D_PKG_C9_RESIDENCY_REGISTER.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
Described by the type MSR_XEON_D_PKG_C9_RESIDENCY_REGISTER.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
MSR_XEON_D_PKG_C9_RESIDENCY_REGISTER Msr;
|
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_D_PKG_C9_RESIDENCY);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_PKG_C9_RESIDENCY, Msr.Uint64);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_PKG_C9_RESIDENCY is defined as MSR_PKG_C9_RESIDENCY in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_PKG_C9_RESIDENCY 0x00000631
|
|
||||||
|
|
||||||
/**
|
|
||||||
MSR information returned for MSR index #MSR_XEON_D_PKG_C9_RESIDENCY
|
|
||||||
**/
|
|
||||||
typedef union {
|
|
||||||
///
|
|
||||||
/// Individual bit fields
|
|
||||||
///
|
|
||||||
struct {
|
|
||||||
///
|
|
||||||
/// [Bits 31:0] Package C9 Residency Counter. (R/O) Value since last reset
|
|
||||||
/// that this package is in processor-specific C9 states. Count at the
|
|
||||||
/// same frequency as the TSC.
|
|
||||||
///
|
|
||||||
UINT32 C9ResidencyCounter:32;
|
|
||||||
///
|
|
||||||
/// [Bits 59:32] Package C9 Residency Counter. (R/O) Value since last
|
|
||||||
/// reset that this package is in processor-specific C9 states. Count at
|
|
||||||
/// the same frequency as the TSC.
|
|
||||||
///
|
|
||||||
UINT32 C9ResidencyCounterHi:28;
|
|
||||||
UINT32 Reserved:4;
|
|
||||||
} Bits;
|
|
||||||
///
|
|
||||||
/// All bit fields as a 64-bit value
|
|
||||||
///
|
|
||||||
UINT64 Uint64;
|
|
||||||
} MSR_XEON_D_PKG_C9_RESIDENCY_REGISTER;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. Note: C-state values are processor specific C-state code names,
|
|
||||||
unrelated to MWAIT extension C-state parameters or ACPI C-States.
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_D_PKG_C10_RESIDENCY (0x00000632)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
Described by the type MSR_XEON_D_PKG_C10_RESIDENCY_REGISTER.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
Described by the type MSR_XEON_D_PKG_C10_RESIDENCY_REGISTER.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
MSR_XEON_D_PKG_C10_RESIDENCY_REGISTER Msr;
|
|
||||||
|
|
||||||
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_D_PKG_C10_RESIDENCY);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_D_PKG_C10_RESIDENCY, Msr.Uint64);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_D_PKG_C10_RESIDENCY is defined as MSR_PKG_C10_RESIDENCY in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_D_PKG_C10_RESIDENCY 0x00000632
|
|
||||||
|
|
||||||
/**
|
|
||||||
MSR information returned for MSR index #MSR_XEON_D_PKG_C10_RESIDENCY
|
|
||||||
**/
|
|
||||||
typedef union {
|
|
||||||
///
|
|
||||||
/// Individual bit fields
|
|
||||||
///
|
|
||||||
struct {
|
|
||||||
///
|
|
||||||
/// [Bits 31:0] Package C10 Residency Counter. (R/O) Value since last
|
|
||||||
/// reset that this package is in processor-specific C10 states. Count at
|
|
||||||
/// the same frequency as the TSC.
|
|
||||||
///
|
|
||||||
UINT32 C10ResidencyCounter:32;
|
|
||||||
///
|
|
||||||
/// [Bits 59:32] Package C10 Residency Counter. (R/O) Value since last
|
|
||||||
/// reset that this package is in processor-specific C10 states. Count at
|
|
||||||
/// the same frequency as the TSC.
|
|
||||||
///
|
|
||||||
UINT32 C10ResidencyCounterHi:28;
|
|
||||||
UINT32 Reserved:4;
|
|
||||||
} Bits;
|
|
||||||
///
|
|
||||||
/// All bit fields as a 64-bit value
|
|
||||||
///
|
|
||||||
UINT64 Uint64;
|
|
||||||
} MSR_XEON_D_PKG_C10_RESIDENCY_REGISTER;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Cache Allocation Technology Configuration (R/W).
|
Package. Cache Allocation Technology Configuration (R/W).
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-7.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.8.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -26,6 +26,78 @@
|
||||||
|
|
||||||
#include <Register/ArchitecturalMsr.h>
|
#include <Register/ArchitecturalMsr.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP
|
||||||
|
handler to handle unsuccessful read of this MSR.
|
||||||
|
|
||||||
|
@param ECX MSR_XEON_E7_FEATURE_CONFIG (0x0000013C)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_E7_FEATURE_CONFIG_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_E7_FEATURE_CONFIG_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_XEON_E7_FEATURE_CONFIG_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_E7_FEATURE_CONFIG);
|
||||||
|
AsmWriteMsr64 (MSR_XEON_E7_FEATURE_CONFIG, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_XEON_E7_FEATURE_CONFIG is defined as MSR_FEATURE_CONFIG in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_XEON_E7_FEATURE_CONFIG 0x0000013C
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_XEON_E7_FEATURE_CONFIG
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bits 1:0] AES Configuration (RW-L) Upon a successful read of this
|
||||||
|
/// MSR, the configuration of AES instruction set availability is as
|
||||||
|
/// follows: 11b: AES instructions are not available until next RESET.
|
||||||
|
/// otherwise, AES instructions are available. Note, AES instruction set
|
||||||
|
/// is not available if read is unsuccessful. If the configuration is not
|
||||||
|
/// 01b, AES instruction can be mis-configured if a privileged agent
|
||||||
|
/// unintentionally writes 11b.
|
||||||
|
///
|
||||||
|
UINT32 AESConfiguration:2;
|
||||||
|
UINT32 Reserved1:30;
|
||||||
|
UINT32 Reserved2:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_XEON_E7_FEATURE_CONFIG_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Thread. Offcore Response Event Select Register (R/W).
|
||||||
|
|
||||||
|
@param ECX MSR_XEON_E7_OFFCORE_RSP_1 (0x000001A7)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
UINT64 Msr;
|
||||||
|
|
||||||
|
Msr = AsmReadMsr64 (MSR_XEON_E7_OFFCORE_RSP_1);
|
||||||
|
AsmWriteMsr64 (MSR_XEON_E7_OFFCORE_RSP_1, Msr);
|
||||||
|
@endcode
|
||||||
|
@note MSR_XEON_E7_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_XEON_E7_OFFCORE_RSP_1 0x000001A7
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Reserved Attempt to read/write will cause #UD.
|
Package. Reserved Attempt to read/write will cause #UD.
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
@par Specification Reference:
|
@par Specification Reference:
|
||||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-15.
|
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.17.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@ -301,6 +301,58 @@ typedef union {
|
||||||
} MSR_XEON_PHI_FEATURE_CONFIG_REGISTER;
|
} MSR_XEON_PHI_FEATURE_CONFIG_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
THREAD. Enhanced SMM Capabilities (SMM-RO) Reports SMM capability
|
||||||
|
Enhancement. Accessible only while in SMM.
|
||||||
|
|
||||||
|
@param ECX MSR_XEON_PHI_SMM_MCA_CAP (0x0000017D)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_PHI_SMM_MCA_CAP_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_PHI_SMM_MCA_CAP_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_XEON_PHI_SMM_MCA_CAP_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_PHI_SMM_MCA_CAP);
|
||||||
|
AsmWriteMsr64 (MSR_XEON_PHI_SMM_MCA_CAP, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_XEON_PHI_SMM_MCA_CAP is defined as MSR_SMM_MCA_CAP in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_XEON_PHI_SMM_MCA_CAP 0x0000017D
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_XEON_PHI_SMM_MCA_CAP
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
UINT32 Reserved1:32;
|
||||||
|
UINT32 Reserved2:26;
|
||||||
|
///
|
||||||
|
/// [Bit 58] SMM_Code_Access_Chk (SMM-RO) If set to 1 indicates that the
|
||||||
|
/// SMM code access restriction is supported and a host-space interface
|
||||||
|
/// available to SMM handler.
|
||||||
|
///
|
||||||
|
UINT32 SMM_Code_Access_Chk:1;
|
||||||
|
///
|
||||||
|
/// [Bit 59] Long_Flow_Indication (SMM-RO) If set to 1 indicates that the
|
||||||
|
/// SMM long flow indicator is supported and a host-space interface
|
||||||
|
/// available to SMM handler.
|
||||||
|
///
|
||||||
|
UINT32 Long_Flow_Indication:1;
|
||||||
|
UINT32 Reserved3:4;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_XEON_PHI_SMM_MCA_CAP_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. Enable Misc. Processor Features (R/W) Allows a variety of processor
|
Thread. Enable Misc. Processor Features (R/W) Allows a variety of processor
|
||||||
functions to be enabled and disabled.
|
functions to be enabled and disabled.
|
||||||
|
@ -336,7 +388,8 @@ typedef union {
|
||||||
UINT32 FastStrings:1;
|
UINT32 FastStrings:1;
|
||||||
UINT32 Reserved1:2;
|
UINT32 Reserved1:2;
|
||||||
///
|
///
|
||||||
/// [Bit 3] Automatic Thermal Control Circuit Enable (R/W).
|
/// [Bit 3] Automatic Thermal Control Circuit Enable (R/W) Default value
|
||||||
|
/// is 1.
|
||||||
///
|
///
|
||||||
UINT32 AutomaticThermalControlCircuit:1;
|
UINT32 AutomaticThermalControlCircuit:1;
|
||||||
UINT32 Reserved2:3;
|
UINT32 Reserved2:3;
|
||||||
|
@ -350,7 +403,7 @@ typedef union {
|
||||||
///
|
///
|
||||||
UINT32 BTS:1;
|
UINT32 BTS:1;
|
||||||
///
|
///
|
||||||
/// [Bit 12] Precise Event Based Sampling Unavailable (RO).
|
/// [Bit 12] Processor Event Based Sampling Unavailable (RO).
|
||||||
///
|
///
|
||||||
UINT32 PEBS:1;
|
UINT32 PEBS:1;
|
||||||
UINT32 Reserved4:3;
|
UINT32 Reserved4:3;
|
||||||
|
@ -443,6 +496,58 @@ typedef union {
|
||||||
} MSR_XEON_PHI_TEMPERATURE_TARGET_REGISTER;
|
} MSR_XEON_PHI_TEMPERATURE_TARGET_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Miscellaneous Feature Control (R/W).
|
||||||
|
|
||||||
|
@param ECX MSR_XEON_PHI_MISC_FEATURE_CONTROL (0x000001A4)
|
||||||
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_PHI_MISC_FEATURE_CONTROL_REGISTER.
|
||||||
|
@param EDX Upper 32-bits of MSR value.
|
||||||
|
Described by the type MSR_XEON_PHI_MISC_FEATURE_CONTROL_REGISTER.
|
||||||
|
|
||||||
|
<b>Example usage</b>
|
||||||
|
@code
|
||||||
|
MSR_XEON_PHI_MISC_FEATURE_CONTROL_REGISTER Msr;
|
||||||
|
|
||||||
|
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_PHI_MISC_FEATURE_CONTROL);
|
||||||
|
AsmWriteMsr64 (MSR_XEON_PHI_MISC_FEATURE_CONTROL, Msr.Uint64);
|
||||||
|
@endcode
|
||||||
|
@note MSR_XEON_PHI_MISC_FEATURE_CONTROL is defined as MSR_MISC_FEATURE_CONTROL in SDM.
|
||||||
|
**/
|
||||||
|
#define MSR_XEON_PHI_MISC_FEATURE_CONTROL 0x000001A4
|
||||||
|
|
||||||
|
/**
|
||||||
|
MSR information returned for MSR index #MSR_XEON_PHI_MISC_FEATURE_CONTROL
|
||||||
|
**/
|
||||||
|
typedef union {
|
||||||
|
///
|
||||||
|
/// Individual bit fields
|
||||||
|
///
|
||||||
|
struct {
|
||||||
|
///
|
||||||
|
/// [Bit 0] Core. DCU Hardware Prefetcher Disable (R/W) If 1, disables the
|
||||||
|
/// L1 data cache prefetcher.
|
||||||
|
///
|
||||||
|
UINT32 DCUHardwarePrefetcherDisable:1;
|
||||||
|
///
|
||||||
|
/// [Bit 1] Core. L2 Hardware Prefetcher Disable (R/W) If 1, disables the
|
||||||
|
/// L2 hardware prefetcher.
|
||||||
|
///
|
||||||
|
UINT32 L2HardwarePrefetcherDisable:1;
|
||||||
|
UINT32 Reserved1:30;
|
||||||
|
UINT32 Reserved2:32;
|
||||||
|
} Bits;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 32-bit value
|
||||||
|
///
|
||||||
|
UINT32 Uint32;
|
||||||
|
///
|
||||||
|
/// All bit fields as a 64-bit value
|
||||||
|
///
|
||||||
|
UINT64 Uint64;
|
||||||
|
} MSR_XEON_PHI_MISC_FEATURE_CONTROL_REGISTER;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Shared. Offcore Response Event Select Register (R/W).
|
Shared. Offcore Response Event Select Register (R/W).
|
||||||
|
|
||||||
|
@ -682,25 +787,6 @@ typedef union {
|
||||||
#define MSR_XEON_PHI_LER_TO_LIP 0x000001DE
|
#define MSR_XEON_PHI_LER_TO_LIP 0x000001DE
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Thread. See Table 35-2.
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_IA32_PERF_GLOBAL_STAUS (0x0000038E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_IA32_PERF_GLOBAL_STAUS);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_IA32_PERF_GLOBAL_STAUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_IA32_PERF_GLOBAL_STAUS is defined as IA32_PERF_GLOBAL_STAUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_IA32_PERF_GLOBAL_STAUS 0x0000038E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Thread. See Table 35-2.
|
Thread. See Table 35-2.
|
||||||
|
|
||||||
|
@ -840,180 +926,6 @@ typedef union {
|
||||||
#define MSR_XEON_PHI_CORE_C6_RESIDENCY 0x000003FF
|
#define MSR_XEON_PHI_CORE_C6_RESIDENCY 0x000003FF
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC3_CTL (0x0000040C)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC3_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC3_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC3_CTL is defined as MSR_MC3_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC3_CTL 0x0000040C
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC3_STATUS (0x0000040D)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC3_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC3_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC3_STATUS is defined as MSR_MC3_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC3_STATUS 0x0000040D
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC3_ADDR (0x0000040E)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC3_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC3_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC3_ADDR is defined as MSR_MC3_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC3_ADDR 0x0000040E
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC4_CTL (0x00000410)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC4_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC4_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC4_CTL is defined as MSR_MC4_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC4_CTL 0x00000410
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC4_STATUS (0x00000411)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC4_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC4_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC4_STATUS is defined as MSR_MC4_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC4_STATUS 0x00000411
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Core. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs." The MSR_MC4_ADDR register
|
|
||||||
is either not implemented or contains no address if the ADDRV flag in the
|
|
||||||
MSR_MC4_STATUS register is clear. When not implemented in the processor, all
|
|
||||||
reads and writes to this MSR will cause a general-protection exception.
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC4_ADDR (0x00000412)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC4_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC4_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC4_ADDR is defined as MSR_MC4_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC4_ADDR 0x00000412
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC5_CTL (0x00000414)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC5_CTL);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC5_CTL, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC5_CTL is defined as MSR_MC5_CTL in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC5_CTL 0x00000414
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.2, "IA32_MCi_STATUS MSRS.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC5_STATUS (0x00000415)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC5_STATUS);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC5_STATUS, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC5_STATUS is defined as MSR_MC5_STATUS in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC5_STATUS 0x00000415
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Package. See Section 15.3.2.3, "IA32_MCi_ADDR MSRs.".
|
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_MC5_ADDR (0x00000416)
|
|
||||||
@param EAX Lower 32-bits of MSR value.
|
|
||||||
@param EDX Upper 32-bits of MSR value.
|
|
||||||
|
|
||||||
<b>Example usage</b>
|
|
||||||
@code
|
|
||||||
UINT64 Msr;
|
|
||||||
|
|
||||||
Msr = AsmReadMsr64 (MSR_XEON_PHI_MC5_ADDR);
|
|
||||||
AsmWriteMsr64 (MSR_XEON_PHI_MC5_ADDR, Msr);
|
|
||||||
@endcode
|
|
||||||
@note MSR_XEON_PHI_MC5_ADDR is defined as MSR_MC5_ADDR in SDM.
|
|
||||||
**/
|
|
||||||
#define MSR_XEON_PHI_MC5_ADDR 0x00000416
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Core. Capability Reporting Register of EPT and VPID (R/O) See Table 35-2.
|
Core. Capability Reporting Register of EPT and VPID (R/O) See Table 35-2.
|
||||||
|
|
||||||
|
@ -1323,7 +1235,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. Base TDP Ratio (R/O) See Table 35-20.
|
Package. Base TDP Ratio (R/O) See Table 35-23.
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_CONFIG_TDP_NOMINAL (0x00000648)
|
@param ECX MSR_XEON_PHI_CONFIG_TDP_NOMINAL (0x00000648)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1341,7 +1253,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. ConfigTDP Level 1 ratio and power level (R/O). See Table 35-20.
|
Package. ConfigTDP Level 1 ratio and power level (R/O). See Table 35-23.
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_CONFIG_TDP_LEVEL1 (0x00000649)
|
@param ECX MSR_XEON_PHI_CONFIG_TDP_LEVEL1 (0x00000649)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1359,7 +1271,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. ConfigTDP Level 2 ratio and power level (R/O). See Table 35-20.
|
Package. ConfigTDP Level 2 ratio and power level (R/O). See Table 35-23.
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_CONFIG_TDP_LEVEL2 (0x0000064A)
|
@param ECX MSR_XEON_PHI_CONFIG_TDP_LEVEL2 (0x0000064A)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1377,7 +1289,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. ConfigTDP Control (R/W) See Table 35-20.
|
Package. ConfigTDP Control (R/W) See Table 35-23.
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_CONFIG_TDP_CONTROL (0x0000064B)
|
@param ECX MSR_XEON_PHI_CONFIG_TDP_CONTROL (0x0000064B)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
@ -1396,7 +1308,7 @@ typedef union {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Package. ConfigTDP Control (R/W) See Table 35-20.
|
Package. ConfigTDP Control (R/W) See Table 35-23.
|
||||||
|
|
||||||
@param ECX MSR_XEON_PHI_TURBO_ACTIVATION_RATIO (0x0000064C)
|
@param ECX MSR_XEON_PHI_TURBO_ACTIVATION_RATIO (0x0000064C)
|
||||||
@param EAX Lower 32-bits of MSR value.
|
@param EAX Lower 32-bits of MSR value.
|
||||||
|
|
Loading…
Reference in New Issue