[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH 12/22] x86/msr-index: define more architectural MSRs



From: Edwin Török <edvin.torok@xxxxxxxxxx>

Add most architectural MSRs, except those behind CPUID features that are
not yet implemented, such as TME, SGX.

Based on "2.1 Architectural MSRs" of Intel SDM volume 4

Signed-off-by: Edwin Török <edvin.torok@xxxxxxxxxx>
---
 xen/arch/x86/include/asm/msr-index.h | 54 +++++++++++++++++++++++++---
 1 file changed, 50 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/msr-index.h 
b/xen/arch/x86/include/asm/msr-index.h
index 0dfb5b499f..061b07c7ae 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -58,6 +58,14 @@
 #define  PRED_CMD_IBPB                      (_AC(1, ULL) <<  0)
 #define  PRED_CMD_SBPB                      (_AC(1, ULL) <<  7)
 
+#define MSR_IA32_SMM_MONITOR_CTL            0x0000009b
+#define MSR_IA32_SMBASE                     0x0000009e
+#define MSR_IA32_SMRR_PHYSBASE              0x000001f2
+#define MSR_IA32_SMRR_PHYSMASK              0x000001f3
+#define MSR_IA32_PLATFORM_DCA_CAP           0x000001f8
+#define MSR_IA32_CPU_DCA_CAP                0x000001f9
+#define MSR_IA32_DCA_0_CAP                  0x000001fa
+
 #define MSR_PPIN_CTL                        0x0000004e
 #define  PPIN_LOCKOUT                       (_AC(1, ULL) <<  0)
 #define  PPIN_ENABLE                        (_AC(1, ULL) <<  1)
@@ -267,13 +275,21 @@
 #define MSR_IA32_MCG_CAP               0x00000179
 #define MSR_IA32_MCG_STATUS            0x0000017a
 #define MSR_IA32_MCG_CTL               0x0000017b
-#define MSR_IA32_MCG_EXT_CTL   0x000004d0
+#define MSR_IA32_MCG_EXT_CTL           0x000004d0
 
 #define MSR_IA32_PEBS_ENABLE           0x000003f1
 #define MSR_IA32_DS_AREA               0x00000600
 #define MSR_IA32_PERF_CAPABILITIES     0x00000345
 /* Lower 6 bits define the format of the address in the LBR stack */
-#define MSR_IA32_PERF_CAP_LBR_FORMAT   0x3f
+#define MSR_IA32_PERF_CAP_LBR_FORMAT           0x3f
+#define MSR_IA32_PERF_CAP_PEBS_TRAP            (_AC(1,ULL) << 6)
+#define MSR_IA32_PERF_CAP_PEBS_SAVE_ARCH_REGS  (_AC(1,ULL) << 7)
+#define MSR_IA32_PERF_CAP_PEBS_RECORD_FORMAT   0xf00
+#define MSR_IA32_PERF_CAP_FREEZE_WHILE_SMM     (_AC(1,ULL) << 12)
+#define MSR_IA32_PERF_CAP_FULLWIDTH_PMC        (_AC(1,ULL) << 13)
+#define MSR_IA32_PERF_CAP_PEBS_BASELINE                (_AC(1,ULL) << 14)
+#define MSR_IA32_PERF_CAP_PERF_METRICS         (_AC(1,ULL) << 15)
+#define MSR_IA32_PERF_CAP_PEBS_TO_PT           (_AC(1,ULL) << 16)
 
 #define MSR_IA32_BNDCFGS               0x00000d90
 #define IA32_BNDCFGS_ENABLE            0x00000001
@@ -307,6 +323,8 @@
 #define IA32_DEBUGCTLMSR_BTS_OFF_USR   (1<<10) /* BTS off if CPL > 0 */
 #define IA32_DEBUGCTLMSR_FREEZE_LBRS_ON_PMI    (1<<11) /* LBR stack frozen on 
PMI */
 #define IA32_DEBUGCTLMSR_FREEZE_PERFMON_ON_PMI (1<<12) /*  Global counter 
control ENABLE bit frozen on PMI */
+#define IA32_DEBUGCTLMSR_ENABLE_UNCORE_PMI     (1<<13) /* Enable uncore PMI */
+#define IA32_DEBUGCTLMSR_FREEZE_WHILE_SMM      (1<<14) /* Freeze perfmon/trace 
while in SMM */
 #define IA32_DEBUGCTLMSR_RTM                   (1<<15) /* RTM debugging enable 
*/
 
 #define MSR_IA32_LASTBRANCHFROMIP      0x000001db
@@ -469,6 +487,7 @@
 #define MSR_VIA_RNG                    0x0000110b
 
 /* Intel defined MSRs. */
+#define MSR_IA32_MONITOR_FILTER_SIZE   0x00000006
 #define MSR_IA32_TSC                   0x00000010
 #define MSR_IA32_PLATFORM_ID           0x00000017
 #define MSR_IA32_EBL_CR_POWERON                0x0000002a
@@ -491,6 +510,7 @@
 #define MSR_IA32_PERF_STATUS           0x00000198
 #define MSR_IA32_PERF_CTL              0x00000199
 
+#define MSR_IA32_UMWAIT_CONTROL                0x000000e1
 #define MSR_IA32_MPERF                 0x000000e7
 #define MSR_IA32_APERF                 0x000000e8
 
@@ -498,6 +518,7 @@
 #define MSR_IA32_THERM_INTERRUPT       0x0000019b
 #define MSR_IA32_THERM_STATUS          0x0000019c
 #define MSR_IA32_MISC_ENABLE           0x000001a0
+#define MSR_IA32_MISC_ENABLE_FAST_STRINGS (1<<0)
 #define MSR_IA32_MISC_ENABLE_PERF_AVAIL   (1<<7)
 #define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL  (1<<11)
 #define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1<<12)
@@ -508,15 +529,38 @@
 #define MSR_IA32_MISC_ENABLE_TURBO_DISENGAGE (_AC(1, ULL) << 38)
 
 #define MSR_IA32_TSC_DEADLINE          0x000006E0
+
+#define MSR_IA32_PM_ENABLE             0x00000770
+#define MSR_IA32_HWP_CAPABILITIES      0x00000771
+#define MSR_IA32_HWP_REQUEST_PKG       0x00000772
+#define MSR_IA32_HWP_INTERRUPT         0x00000773
+#define MSR_IA32_HWP_REQUEST           0x00000774
+#define MSR_IA32_PECI_HWP_REQUEST_INFO 0x00000775
+#define MSR_IA32_HWP_STATUS            0x00000777
+
+#define MSR_IA32_PKG_HDC_CTL           0x00000db0
+#define MSR_IA32_PM_CTL1               0x00000db1
+#define MSR_IA32_THREAD_STALL          0x00000db2
+#define MSR_IA32_HW_FEEDBACK_PTR       0x000017d0
+#define MSR_IA32_HW_FEEDBACK_CONFIG    0x000017d1
+
+#define MSR_TEMPERATURE_TARGET         0x000001a2
+#define MSR_TURBO_RATIO_LIMIT          0x000001ad
+#define MSR_TURBO_RATIO_LIMIT1         0x000001ae
+#define MSR_TURBO_RATIO_LIMIT2         0x000001af
+
 #define MSR_IA32_ENERGY_PERF_BIAS      0x000001b0
+#define MSR_IA32_PACKAGE_THERM_STATUS  0x000001b1
+#define MSR_IA32_PACKAGE_THERM_INTERRUPT 0x000001b2
 
 /* Platform Shared Resource MSRs */
+#define MSR_IA32_PSR_L3_QOS_CFG                0x00000c81
+#define MSR_IA32_PSR_L2_QOS_CFG                0x00000c82
 #define MSR_IA32_CMT_EVTSEL            0x00000c8d
 #define MSR_IA32_CMT_EVTSEL_UE_MASK    0x0000ffff
 #define MSR_IA32_CMT_CTR               0x00000c8e
 #define MSR_IA32_PSR_ASSOC             0x00000c8f
-#define MSR_IA32_PSR_L3_QOS_CFG        0x00000c81
-#define MSR_IA32_PSR_L3_MASK(n)        (0x00000c90 + (n))
+#define MSR_IA32_PSR_L3_MASK(n)                (0x00000c90 + (n))
 #define MSR_IA32_PSR_L3_MASK_CODE(n)   (0x00000c90 + (n) * 2 + 1)
 #define MSR_IA32_PSR_L3_MASK_DATA(n)   (0x00000c90 + (n) * 2)
 #define MSR_IA32_PSR_L2_MASK(n)                (0x00000d10 + (n))
@@ -682,6 +726,8 @@
 #define MSR_CORE_PERF_GLOBAL_STATUS    0x0000038e
 #define MSR_CORE_PERF_GLOBAL_CTRL      0x0000038f
 #define MSR_CORE_PERF_GLOBAL_OVF_CTRL  0x00000390
+#define MSR_CORE_PERF_GLOBAL_STATUS_SET        0x00000391
+#define MSR_CORE_PERF_GLOBAL_INUSE     0x00000392
 
 /* Intel cpuid spoofing MSRs */
 #define MSR_INTEL_MASK_V1_CPUID1        0x00000478
-- 
2.41.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.