hv: add more MSR definitions

- add definitions of all architectural MSRs
- add definitions of majority of non architectural MSRs

The non-architectural MSR definitions are specific to particular CPU model
or family.

e.g. MSR 0xE01 could refer to different MSRs in difference processors, and
in this patch, MSR_R0_PMON_BOX_STATUS is chosen without any particular reasons.
  MSR_R0_PMON_BOX_STATUS in Xeon Processor 7500 Series
  MSR_C0_PMON_EVNTSEL0 in Xeon E5 V3 family
  MSR_UNC_PERF_GLOBAL_CTRL in 6th plus generations Core Processors

Tracked-On: #1867
Signed-off-by: Zide Chen <zide.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Zide Chen 2019-01-15 14:45:52 -08:00 committed by wenlingz
parent 6372548e11
commit b22c8b696b

View File

@ -47,7 +47,7 @@
#define MSR_IA32_MTRR_CAP 0x000000FEU
#define MSR_IA32_ARCH_CAPABILITIES 0x0000010AU
#define MSR_IA32_FLUSH_CMD 0x0000010BU
#define MISC_FEATURE_ENABLES 0x00000140U
#define MSR_MISC_FEATURE_ENABLES 0x00000140U
#define MSR_IA32_SYSENTER_CS 0x00000174U
#define MSR_IA32_SYSENTER_ESP 0x00000175U
#define MSR_IA32_SYSENTER_EIP 0x00000176U
@ -65,6 +65,8 @@
#define MSR_IA32_THERM_STATUS 0x0000019CU
#define MSR_IA32_MISC_ENABLE 0x000001A0U
#define MSR_IA32_ENERGY_PERF_BIAS 0x000001B0U
#define MSR_IA32_PACKAGE_THERM_STATUS 0x000001B1U
#define MSR_IA32_PACKAGE_THERM_INTERRUPT 0x000001B2U
#define MSR_IA32_DEBUGCTL 0x000001D9U
#define MSR_IA32_SMRR_PHYSBASE 0x000001F2U
#define MSR_IA32_SMRR_PHYSMASK 0x000001F3U
@ -125,6 +127,7 @@
#define MSR_IA32_MC19_CTL2 0x00000293U
#define MSR_IA32_MC20_CTL2 0x00000294U
#define MSR_IA32_MC21_CTL2 0x00000295U
#define MSR_IA32_MC31_CTL2 0x0000029FU
#define MSR_IA32_MTRR_DEF_TYPE 0x000002FFU
#define MSR_SGXOWNEREPOCH0 0x00000300U
#define MSR_SGXOWNEREPOCH1 0x00000301U
@ -227,6 +230,10 @@
#define MSR_IA32_MC21_STATUS 0x00000455U
#define MSR_IA32_MC21_ADDR 0x00000456U
#define MSR_IA32_MC21_MISC 0x00000457U
#define MSR_IA32_MC28_CTL 0x00000470U
#define MSR_IA32_MC28_STATUS 0x00000471U
#define MSR_IA32_MC28_ADDR 0x00000472U
#define MSR_IA32_MC28_MISC 0x00000473U
#define MSR_IA32_VMX_BASIC 0x00000480U
#define MSR_IA32_VMX_PINBASED_CTLS 0x00000481U
#define MSR_IA32_VMX_PROCBASED_CTLS 0x00000482U
@ -329,44 +336,180 @@
#define MSR_IA32_QM_CTR 0x00000C8EU
#define MSR_IA32_PQR_ASSOC 0x00000C8FU
#define MSR_IA32_L3_MASK_0 0x00000C90U
#define MSR_IA32_XSS 0x00000DA0U
#define MSR_IA32_PKG_HDC_CTL 0x00000DB0U
#define MSR_IA32_PM_CTL1 0x00000DB1U
#define MSR_IA32_THREAD_STALL 0x00000DB2U
#define MSR_IA32_L2_MASK_0 0x00000D10U
#define MSR_IA32_BNDCFGS 0x00000D90U
#define MSR_IA32_EFER 0xC0000080U
#define MSR_IA32_STAR 0xC0000081U
#define MSR_IA32_LSTAR 0xC0000082U
#define MSR_IA32_CSTAR 0xC0000083U
#define MSR_IA32_FMASK 0xC0000084U
#define MSR_IA32_FS_BASE 0xC0000100U
#define MSR_IA32_GS_BASE 0xC0000101U
#define MSR_IA32_KERNEL_GS_BASE 0xC0000102U
#define MSR_IA32_TSC_AUX 0xC0000103U
/* ATOM specific MSRs */
#define MSR_ATOM_EBL_CR_POWERON 0x0000002AU
#define MSR_ATOM_LASTBRANCH_0_FROM_IP 0x00000040U
#define MSR_ATOM_LASTBRANCH_1_FROM_IP 0x00000041U
#define MSR_ATOM_LASTBRANCH_2_FROM_IP 0x00000042U
#define MSR_ATOM_LASTBRANCH_3_FROM_IP 0x00000043U
#define MSR_ATOM_LASTBRANCH_4_FROM_IP 0x00000044U
#define MSR_ATOM_LASTBRANCH_5_FROM_IP 0x00000045U
#define MSR_ATOM_LASTBRANCH_6_FROM_IP 0x00000046U
#define MSR_ATOM_LASTBRANCH_7_FROM_IP 0x00000047U
#define MSR_ATOM_LASTBRANCH_0_TO_LIP 0x00000060U
#define MSR_ATOM_LASTBRANCH_1_TO_LIP 0x00000061U
#define MSR_ATOM_LASTBRANCH_2_TO_LIP 0x00000062U
#define MSR_ATOM_LASTBRANCH_3_TO_LIP 0x00000063U
#define MSR_ATOM_LASTBRANCH_4_TO_LIP 0x00000064U
#define MSR_ATOM_LASTBRANCH_5_TO_LIP 0x00000065U
#define MSR_ATOM_LASTBRANCH_6_TO_LIP 0x00000066U
#define MSR_ATOM_LASTBRANCH_7_TO_LIP 0x00000067U
/* Scalable bus speed */
#define MSR_ATOM_FSB_FREQ 0x000000CDU
/* non-architectural MSRs */
#define MSR_EBL_CR_POWERON 0x0000002AU
#define MSR_EBC_SOFT_POWERON 0x0000002BU
#define MSR_EBC_FREQUENCY_ID 0x0000002CU
#define MSR_SMI_COUNT 0x00000034U
#define MSR_CORE_THREAD_COUNT 0x00000035U
#define MSR_LASTBRANCH_0_FROM_IP 0x00000040U
#define MSR_LASTBRANCH_1_FROM_IP 0x00000041U
#define MSR_LASTBRANCH_2_FROM_IP 0x00000042U
#define MSR_LASTBRANCH_3_FROM_IP 0x00000043U
#define MSR_LASTBRANCH_4_FROM_IP 0x00000044U
#define MSR_LASTBRANCH_5_FROM_IP 0x00000045U
#define MSR_LASTBRANCH_6_FROM_IP 0x00000046U
#define MSR_LASTBRANCH_7_FROM_IP 0x00000047U
#define MSR_PPIN_CTL 0x0000004EU
#define MSR_PPIN 0x0000004FU
#define MSR_THREAD_ID_INFO 0x00000053U
#define MSR_LASTBRANCH_0_TO_LIP 0x00000060U
#define MSR_LASTBRANCH_1_TO_LIP 0x00000061U
#define MSR_LASTBRANCH_2_TO_LIP 0x00000062U
#define MSR_LASTBRANCH_3_TO_LIP 0x00000063U
#define MSR_LASTBRANCH_4_TO_LIP 0x00000064U
#define MSR_LASTBRANCH_5_TO_LIP 0x00000065U
#define MSR_LASTBRANCH_6_TO_LIP 0x00000066U
#define MSR_LASTBRANCH_7_TO_LIP 0x00000067U
#define MSR_TRACE_HUB_STH_ACPIBAR_BASE 0x00000080U
#define MSR_FSB_FREQ 0x000000CDU
#define MSR_PLATFORM_INFO 0x000000CEU
/* L2 hardware enabled */
#define MSR_ATOM_BBL_CR_CTL3 0x0000011EU
#define MSR_ATOM_THERM2_CTL 0x0000019DU
#define MSR_ATOM_LASTBRANCH_TOS 0x000001C9U
#define MSR_ATOM_LER_FROM_LIP 0x000001DDU
#define MSR_ATOM_LER_TO_LIP 0x000001DEU
#define MSR_PKG_CST_CONFIG_CONTROL 0x000000E2U
#define MSR_PMG_IO_CAPTURE_BASE 0x000000E4U
#define MSR_UNDOCUMENTED_TJMAX 0x000000EEU
#define MSR_BBL_CR_CTL 0x00000119U
#define MSR_BBL_CR_CTL3 0x0000011EU
#define MSR_FEATURE_CONFIG 0x0000013CU
#define MSR_SMM_MCA_CAP 0x0000017DU
#define MSR_ERROR_CONTROL 0x0000017FU
#define MSR_THERM2_CTL 0x0000019DU
#define MSR_PLATFORM_BRV 0x000001A1U
#define MSR_TEMPERATURE_TARGET 0x000001A2U
#define MSR_MISC_FEATURE_CONTROL 0x000001A4U
#define MSR_OFFCORE_RSP_0 0x000001A6U
#define MSR_OFFCORE_RSP_1 0x000001A7U
#define MSR_MISC_PWR_MGMT 0x000001AAU
#define MSR_TURBO_POWER_CURRENT_LIMIT 0x000001ACU
#define MSR_TURBO_RATIO_LIMIT 0x000001ADU
#define MSR_TURBO_GROUP_CORECNT 0x000001AEU
#define MSR_TURBO_RATIO_LIMIT2 0x000001AFU
#define MSR_LBR_SELECT 0x000001C8U
#define MSR_LASTBRANCH_TOS 0x000001DAU
#define MSR_LASTBRANCH_0 0x000001DBU
#define MSR_LASTBRANCH_1 0x000001DCU
#define MSR_LASTBRANCH_2 0x000001DDU
#define MSR_LASTBRANCH_3 0x000001DEU
#define MSR_PRMRR_VALID_CONFIG 0x000001FBU
#define MSR_POWER_CTL 0x000001FCU
#define MSR_BR_DETECT_CTRL 0x00000350U
#define MSR_BR_DETECT_STATUS 0x00000351U
#define MSR_UNCORE_PERF_GLOBAL_OVF_CTRL 0x00000393U
#define MSR_UNCORE_FIXED_CTR0 0x00000394U
#define MSR_UNCORE_FIXED_CTR_CTRL 0x00000395U
#define MSR_UNCORE_ADDR_OPCODE_MATCH 0x00000396U
#define MSR_UNCORE_PMC0 0x000003B0U
#define MSR_UNCORE_PMC1 0x000003B1U
#define MSR_UNCORE_PMC2 0x000003B2U
#define MSR_UNCORE_PMC3 0x000003B3U
#define MSR_UNCORE_PMC4 0x000003B4U
#define MSR_UNCORE_PMC5 0x000003B5U
#define MSR_UNCORE_PMC6 0x000003B6U
#define MSR_UNCORE_PMC7 0x000003B7U
#define MSR_UNCORE_PERFEVTSEL0 0x000003C0U
#define MSR_UNCORE_PERFEVTSEL1 0x000003C1U
#define MSR_UNCORE_PERFEVTSEL2 0x000003C2U
#define MSR_UNCORE_PERFEVTSEL3 0x000003C3U
#define MSR_UNCORE_PERFEVTSEL4 0x000003C4U
#define MSR_UNCORE_PERFEVTSEL5 0x000003C5U
#define MSR_UNCORE_PERFEVTSEL6 0x000003C6U
#define MSR_UNCORE_PERFEVTSEL7 0x000003C7U
#define MSR_PEBS_LD_LAT 0x000003F6U
#define MSR_PEBS_FRONTEND 0x000003F7U
#define MSR_PKG_C2_RESIDENCY 0x000003F8U
#define MSR_PKG_C4_RESIDENCY 0x000003F9U
#define MSR_PKG_C6_RESIDENCY 0x000003FAU
#define MSR_CORE_C3_RESIDENCY 0x000003FCU
#define MSR_CORE_C6_RESIDENCY 0x000003FDU
#define MSR_CORE_C7_RESIDENCY 0x000003FEU
#define MSR_SMM_FEATURE_CONTROL 0x000004E0U
#define MSR_SMM_DELAYED 0x000004E2U
#define MSR_SMM_BLOCKED 0x000004E3U
#define MSR_RAPL_POWER_UNIT 0x00000606U
#define MSR_PKGC3_IRTL 0x0000060AU
#define MSR_PKGC_IRTL1 0x0000060BU
#define MSR_PKGC_IRTL2 0x0000060CU
#define MSR_ATOM_PKG_C2_RESIDENCY 0x0000060DU
#define MSR_PKG_POWER_LIMIT 0x00000610U
#define MSR_PKG_ENERGY_STATUS 0x00000611U
#define MSR_PKG_PERF_STATUS 0x00000613U
#define MSR_PKG_POWER_INFO 0x00000614U
#define MSR_DRAM_POWER_LIMIT 0x00000618U
#define MSR_DRAM_ENERGY_STATUS 0x00000619U
#define MSR_DRAM_PERF_STATUS 0x0000061BU
#define MSR_DRAM_POWER_INFO 0x0000061CU
#define MSR_PCIE_PLL_RATIO 0x0000061EU
#define MSR_UNCORE_RATIO_LIMIT 0x00000620U
#define MSR_PKG_C8_RESIDENCY 0x00000630U
#define MSR_PKG_C9_RESIDENCY 0x00000631U
#define MSR_PKG_C10_RESIDENCY 0x00000632U
#define MSR_PKGC8_IRTL 0x00000633U
#define MSR_PKGC9_IRTL 0x00000634U
#define MSR_PKGC10_IRTL 0x00000635U
#define MSR_PP0_POWER_LIMIT 0x00000638U
#define MSR_PP0_ENERGY_STATUS 0x00000639U
#define MSR_PP0_POLICY 0x0000063AU
#define MSR_PP1_POWER_LIMIT 0x00000640U
#define MSR_PP1_ENERGY_STATUS 0x00000641U
#define MSR_PP1_POLICY 0x00000642U
#define MSR_CONFIG_TDP_NOMINAL 0x00000648U
#define MSR_CONFIG_TDP_LEVEL1 0x00000649U
#define MSR_CONFIG_TDP_LEVEL2 0x0000064AU
#define MSR_CONFIG_TDP_CONTROL 0x0000064BU
#define MSR_TURBO_ACTIVATION_RATIO 0x0000064CU
#define MSR_PLATFORM_ENERGY_COUNTER 0x0000064DU
#define MSR_PPERF 0x0000064EU
#define MSR_ATOM_CORE_PERF_LIMIT_REASONS 0X0000064FU
#define MSR_PKG_HDC_CONFIG 0x00000652U
#define MSR_CORE_HDC_RESIDENCY 0x00000653U
#define MSR_PKG_HDC_SHALLOW_RESIDENCY 0x00000655U
#define MSR_PKG_HDC_DEEP_RESIDENCY 0x00000656U
#define MSR_WEIGHTED_CORE_C0 0x00000658U
#define MSR_ANY_CORE_C0 0x00000659U
#define MSR_ANY_GFXE_C0 0x0000065AU
#define MSR_CORE_GFXE_OVERLAP_C0 0x0000065BU
#define MSR_PLATFORM_POWER_LIMIT 0x0000065CU
#define MSR_CORE_C1_RESIDENCY 0x00000660U
#define MSR_MC6_RESIDENCY_COUNTER 0x00000664U
#define MSR_CC6_DEMOTION_POLICY_CONFIG 0x00000668U
#define MSR_MC6_DEMOTION_POLICY_CONFIG 0x00000669U
#define MSR_ATOM_PKG_POWER_INFO 0x0000066EU
#define MSR_RING_PERF_LIMIT_REASONS 0x00000681U
#define MSR_CORE_PERF_LIMIT_REASONS 0x00000690U
#define MSR_LASTBRANCH_31_FROM_IP 0x0000069FU
#define MSR_GRAPHICS_PERF_LIMIT_REASONS 0x000006B0U
#define MSR_LASTBRANCH_0_TO_IP 0x000006C0U
#define MSR_LASTBRANCH_31_TO_IP 0x000006DFU
#define MSR_IA32_L2_QOS_MASK_0 0x00000D10U
#define MSR_IA32_L2_QOS_MASK_1 0x00000D11U
#define MSR_IA32_L2_QOS_MASK_2 0x00000D12U
#define MSR_IA32_L2_QOS_MASK_3 0x00000D13U
#define MSR_LASTBRANCH_INFO_0 0x00000DC0U
#define MSR_LASTBRANCH_INFO_31 0x00000DDFU
#define MSR_R0_PMON_BOX_STATUS 0x00000E01U
#define MSR_EMON_L3_CTR_CTL0 0x000107CCU
#define MSR_EMON_L3_CTR_CTL1 0x000107CDU
#define MSR_EMON_L3_CTR_CTL2 0x000107CEU
#define MSR_EMON_L3_CTR_CTL3 0x000107CFU
#define MSR_EMON_L3_CTR_CTL4 0x000107D0U
#define MSR_EMON_L3_CTR_CTL5 0x000107D1U
#define MSR_EMON_L3_CTR_CTL6 0x000107D2U
#define MSR_EMON_L3_CTR_CTL7 0x000107D3U
#ifdef PROFILING_ON
/* Core (and Goldmont) specific MSRs */