18#ifndef __SKYLAKE_MSR_H__
19#define __SKYLAKE_MSR_H__
32#define IS_SKYLAKE_PROCESSOR(DisplayFamily, DisplayModel) \
33 (DisplayFamily == 0x06 && \
35 DisplayModel == 0x4E || \
36 DisplayModel == 0x5E || \
37 DisplayModel == 0x55 || \
38 DisplayModel == 0x8E || \
39 DisplayModel == 0x9E || \
40 DisplayModel == 0x66 \
62#define MSR_SKYLAKE_TURBO_RATIO_LIMIT 0x000001AD
121#define MSR_SKYLAKE_LASTBRANCH_TOS 0x000001C9
140#define MSR_SKYLAKE_POWER_CTL 0x000001FC
150 UINT32 Reserved1 : 1;
157 UINT32 Reserved2 : 17;
177 UINT32 Reserved3 : 11;
178 UINT32 Reserved4 : 32;
209#define MSR_SKYLAKE_SGXOWNEREPOCH0 0x00000300
214#define MSR_SKYLAKE_SGXOWNER0 MSR_SKYLAKE_SGXOWNEREPOCH0
235#define MSR_SKYLAKE_SGXOWNEREPOCH1 0x00000301
240#define MSR_SKYLAKE_SGXOWNER1 MSR_SKYLAKE_SGXOWNEREPOCH1
261#define MSR_SKYLAKE_IA32_PERF_GLOBAL_STATUS 0x0000038E
303 UINT32 Reserved1 : 24;
316 UINT32 Reserved2 : 20;
321 UINT32 Reserved3 : 2;
372#define MSR_SKYLAKE_IA32_PERF_GLOBAL_STATUS_RESET 0x00000390
415 UINT32 Reserved1 : 24;
428 UINT32 Reserved2 : 20;
433 UINT32 Reserved3 : 2;
484#define MSR_SKYLAKE_IA32_PERF_GLOBAL_STATUS_SET 0x00000391
527 UINT32 Reserved1 : 24;
540 UINT32 Reserved2 : 20;
545 UINT32 Reserved3 : 2;
566 UINT32 Reserved4 : 1;
592#define MSR_SKYLAKE_PEBS_FRONTEND 0x000003F7
606 UINT32 Reserved1 : 1;
611 UINT32 Reserved2 : 3;
620 UINT32 Reserved3 : 9;
621 UINT32 Reserved4 : 32;
649#define MSR_SKYLAKE_PP0_ENERGY_STATUS 0x00000639
670#define MSR_SKYLAKE_PLATFORM_ENERGY_COUNTER 0x0000064D
689 UINT32 Reserved : 32;
717#define MSR_SKYLAKE_PPERF 0x0000064E
738#define MSR_SKYLAKE_CORE_PERF_LIMIT_REASONS 0x0000064F
758 UINT32 Reserved1 : 2;
788 UINT32 Reserved2 : 1;
813 UINT32 Reserved3 : 2;
826 UINT32 Reserved4 : 2;
858 UINT32 Reserved5 : 1;
886 UINT32 Reserved6 : 2;
887 UINT32 Reserved7 : 32;
917#define MSR_SKYLAKE_PKG_HDC_CONFIG 0x00000652
932 UINT32 Reserved1 : 29;
933 UINT32 Reserved2 : 32;
960#define MSR_SKYLAKE_CORE_HDC_RESIDENCY 0x00000653
978#define MSR_SKYLAKE_PKG_HDC_SHALLOW_RESIDENCY 0x00000655
995#define MSR_SKYLAKE_PKG_HDC_DEEP_RESIDENCY 0x00000656
1015#define MSR_SKYLAKE_WEIGHTED_CORE_C0 0x00000658
1034#define MSR_SKYLAKE_ANY_CORE_C0 0x00000659
1053#define MSR_SKYLAKE_ANY_GFXE_C0 0x0000065A
1073#define MSR_SKYLAKE_CORE_GFXE_OVERLAP_C0 0x0000065B
1099#define MSR_SKYLAKE_PLATFORM_POWER_LIMIT 0x0000065C
1142 UINT32 Reserved1 : 8;
1162 UINT32 Reserved2 : 14;
1210#define MSR_SKYLAKE_LASTBRANCH_16_FROM_IP 0x00000690
1211#define MSR_SKYLAKE_LASTBRANCH_17_FROM_IP 0x00000691
1212#define MSR_SKYLAKE_LASTBRANCH_18_FROM_IP 0x00000692
1213#define MSR_SKYLAKE_LASTBRANCH_19_FROM_IP 0x00000693
1214#define MSR_SKYLAKE_LASTBRANCH_20_FROM_IP 0x00000694
1215#define MSR_SKYLAKE_LASTBRANCH_21_FROM_IP 0x00000695
1216#define MSR_SKYLAKE_LASTBRANCH_22_FROM_IP 0x00000696
1217#define MSR_SKYLAKE_LASTBRANCH_23_FROM_IP 0x00000697
1218#define MSR_SKYLAKE_LASTBRANCH_24_FROM_IP 0x00000698
1219#define MSR_SKYLAKE_LASTBRANCH_25_FROM_IP 0x00000699
1220#define MSR_SKYLAKE_LASTBRANCH_26_FROM_IP 0x0000069A
1221#define MSR_SKYLAKE_LASTBRANCH_27_FROM_IP 0x0000069B
1222#define MSR_SKYLAKE_LASTBRANCH_28_FROM_IP 0x0000069C
1223#define MSR_SKYLAKE_LASTBRANCH_29_FROM_IP 0x0000069D
1224#define MSR_SKYLAKE_LASTBRANCH_30_FROM_IP 0x0000069E
1225#define MSR_SKYLAKE_LASTBRANCH_31_FROM_IP 0x0000069F
1247#define MSR_SKYLAKE_GRAPHICS_PERF_LIMIT_REASONS 0x000006B0
1268 UINT32 Reserved1 : 3;
1289 UINT32 Reserved2 : 1;
1307 UINT32 Reserved3 : 3;
1320 UINT32 Reserved4 : 3;
1346 UINT32 Reserved5 : 1;
1368 UINT32 Reserved6 : 3;
1369 UINT32 Reserved7 : 32;
1400#define MSR_SKYLAKE_RING_PERF_LIMIT_REASONS 0x000006B1
1420 UINT32 Reserved1 : 3;
1441 UINT32 Reserved2 : 1;
1454 UINT32 Reserved3 : 4;
1467 UINT32 Reserved4 : 3;
1493 UINT32 Reserved5 : 1;
1508 UINT32 Reserved6 : 4;
1509 UINT32 Reserved7 : 32;
1556#define MSR_SKYLAKE_LASTBRANCH_16_TO_IP 0x000006D0
1557#define MSR_SKYLAKE_LASTBRANCH_17_TO_IP 0x000006D1
1558#define MSR_SKYLAKE_LASTBRANCH_18_TO_IP 0x000006D2
1559#define MSR_SKYLAKE_LASTBRANCH_19_TO_IP 0x000006D3
1560#define MSR_SKYLAKE_LASTBRANCH_20_TO_IP 0x000006D4
1561#define MSR_SKYLAKE_LASTBRANCH_21_TO_IP 0x000006D5
1562#define MSR_SKYLAKE_LASTBRANCH_22_TO_IP 0x000006D6
1563#define MSR_SKYLAKE_LASTBRANCH_23_TO_IP 0x000006D7
1564#define MSR_SKYLAKE_LASTBRANCH_24_TO_IP 0x000006D8
1565#define MSR_SKYLAKE_LASTBRANCH_25_TO_IP 0x000006D9
1566#define MSR_SKYLAKE_LASTBRANCH_26_TO_IP 0x000006DA
1567#define MSR_SKYLAKE_LASTBRANCH_27_TO_IP 0x000006DB
1568#define MSR_SKYLAKE_LASTBRANCH_28_TO_IP 0x000006DC
1569#define MSR_SKYLAKE_LASTBRANCH_29_TO_IP 0x000006DD
1570#define MSR_SKYLAKE_LASTBRANCH_30_TO_IP 0x000006DE
1571#define MSR_SKYLAKE_LASTBRANCH_31_TO_IP 0x000006DF
1626#define MSR_SKYLAKE_LBR_INFO_0 0x00000DC0
1627#define MSR_SKYLAKE_LBR_INFO_1 0x00000DC1
1628#define MSR_SKYLAKE_LBR_INFO_2 0x00000DC2
1629#define MSR_SKYLAKE_LBR_INFO_3 0x00000DC3
1630#define MSR_SKYLAKE_LBR_INFO_4 0x00000DC4
1631#define MSR_SKYLAKE_LBR_INFO_5 0x00000DC5
1632#define MSR_SKYLAKE_LBR_INFO_6 0x00000DC6
1633#define MSR_SKYLAKE_LBR_INFO_7 0x00000DC7
1634#define MSR_SKYLAKE_LBR_INFO_8 0x00000DC8
1635#define MSR_SKYLAKE_LBR_INFO_9 0x00000DC9
1636#define MSR_SKYLAKE_LBR_INFO_10 0x00000DCA
1637#define MSR_SKYLAKE_LBR_INFO_11 0x00000DCB
1638#define MSR_SKYLAKE_LBR_INFO_12 0x00000DCC
1639#define MSR_SKYLAKE_LBR_INFO_13 0x00000DCD
1640#define MSR_SKYLAKE_LBR_INFO_14 0x00000DCE
1641#define MSR_SKYLAKE_LBR_INFO_15 0x00000DCF
1642#define MSR_SKYLAKE_LBR_INFO_16 0x00000DD0
1643#define MSR_SKYLAKE_LBR_INFO_17 0x00000DD1
1644#define MSR_SKYLAKE_LBR_INFO_18 0x00000DD2
1645#define MSR_SKYLAKE_LBR_INFO_19 0x00000DD3
1646#define MSR_SKYLAKE_LBR_INFO_20 0x00000DD4
1647#define MSR_SKYLAKE_LBR_INFO_21 0x00000DD5
1648#define MSR_SKYLAKE_LBR_INFO_22 0x00000DD6
1649#define MSR_SKYLAKE_LBR_INFO_23 0x00000DD7
1650#define MSR_SKYLAKE_LBR_INFO_24 0x00000DD8
1651#define MSR_SKYLAKE_LBR_INFO_25 0x00000DD9
1652#define MSR_SKYLAKE_LBR_INFO_26 0x00000DDA
1653#define MSR_SKYLAKE_LBR_INFO_27 0x00000DDB
1654#define MSR_SKYLAKE_LBR_INFO_28 0x00000DDC
1655#define MSR_SKYLAKE_LBR_INFO_29 0x00000DDD
1656#define MSR_SKYLAKE_LBR_INFO_30 0x00000DDE
1657#define MSR_SKYLAKE_LBR_INFO_31 0x00000DDF
1678#define MSR_SKYLAKE_UNC_PERF_FIXED_CTRL 0x00000394
1688 UINT32 Reserved1 : 20;
1693 UINT32 Reserved2 : 1;
1698 UINT32 Reserved3 : 9;
1699 UINT32 Reserved4 : 32;
1729#define MSR_SKYLAKE_UNC_PERF_FIXED_CTR 0x00000395
1747 UINT32 Reserved : 20;
1772#define MSR_SKYLAKE_UNC_CBO_CONFIG 0x00000396
1787 UINT32 Reserved1 : 28;
1788 UINT32 Reserved2 : 32;
1816#define MSR_SKYLAKE_UNC_ARB_PERFCTR0 0x000003B0
1834#define MSR_SKYLAKE_UNC_ARB_PERFCTR1 0x000003B1
1852#define MSR_SKYLAKE_UNC_ARB_PERFEVTSEL0 0x000003B2
1870#define MSR_SKYLAKE_UNC_ARB_PERFEVTSEL1 0x000003B3
1888#define MSR_SKYLAKE_UNC_CBO_0_PERFEVTSEL0 0x00000700
1906#define MSR_SKYLAKE_UNC_CBO_0_PERFEVTSEL1 0x00000701
1924#define MSR_SKYLAKE_UNC_CBO_0_PERFCTR0 0x00000706
1942#define MSR_SKYLAKE_UNC_CBO_0_PERFCTR1 0x00000707
1960#define MSR_SKYLAKE_UNC_CBO_1_PERFEVTSEL0 0x00000710
1978#define MSR_SKYLAKE_UNC_CBO_1_PERFEVTSEL1 0x00000711
1996#define MSR_SKYLAKE_UNC_CBO_1_PERFCTR0 0x00000716
2014#define MSR_SKYLAKE_UNC_CBO_1_PERFCTR1 0x00000717
2032#define MSR_SKYLAKE_UNC_CBO_2_PERFEVTSEL0 0x00000720
2050#define MSR_SKYLAKE_UNC_CBO_2_PERFEVTSEL1 0x00000721
2068#define MSR_SKYLAKE_UNC_CBO_2_PERFCTR0 0x00000726
2086#define MSR_SKYLAKE_UNC_CBO_2_PERFCTR1 0x00000727
2104#define MSR_SKYLAKE_UNC_CBO_3_PERFEVTSEL0 0x00000730
2122#define MSR_SKYLAKE_UNC_CBO_3_PERFEVTSEL1 0x00000731
2140#define MSR_SKYLAKE_UNC_CBO_3_PERFCTR0 0x00000736
2158#define MSR_SKYLAKE_UNC_CBO_3_PERFCTR1 0x00000737
2178#define MSR_SKYLAKE_UNC_PERF_GLOBAL_CTRL 0x00000E01
2208 UINT32 Reserved1 : 14;
2209 UINT32 Reserved2 : 10;
2222 UINT32 Reserved3 : 32;
2252#define MSR_SKYLAKE_UNC_PERF_GLOBAL_STATUS 0x00000E02
2270 UINT32 Reserved1 : 1;
2275 UINT32 Reserved2 : 28;
2276 UINT32 Reserved3 : 32;
2305#define MSR_SKYLAKE_TRACE_HUB_STH_ACPIBAR_BASE 0x00000080
2322 UINT32 Reserved : 17;
2356#define MSR_SKYLAKE_PRMRR_PHYS_BASE 0x000001F4
2370 UINT32 Reserved1 : 9;
2379 UINT32 Reserved2 : 18;
2405#define MSR_SKYLAKE_PRMRR_PHYS_MASK 0x000001F5
2415 UINT32 Reserved1 : 10;
2432 UINT32 Reserved2 : 18;
2457#define MSR_SKYLAKE_PRMRR_VALID_CONFIG 0x000001FB
2471 UINT32 Reserved1 : 4;
2484 UINT32 Reserved2 : 24;
2485 UINT32 Reserved3 : 32;
2517#define MSR_SKYLAKE_UNCORE_PRMRR_PHYS_BASE 0x000002F4
2527 UINT32 Reserved1 : 12;
2538 UINT32 Reserved2 : 25;
2564#define MSR_SKYLAKE_UNCORE_PRMRR_PHYS_MASK 0x000002F5
2574 UINT32 Reserved1 : 10;
2585 UINT32 Reserved2 : 20;
2586 UINT32 Reserved3 : 32;
2616#define MSR_SKYLAKE_RING_RATIO_LIMIT 0x00000620
2631 UINT32 Reserved1 : 1;
2637 UINT32 Reserved2 : 17;
2638 UINT32 Reserved3 : 32;
2667#define MSR_SKYLAKE_BR_DETECT_CTRL 0x00000350
2700 UINT32 Reserved1 : 4;
2708 UINT32 Reserved2 : 6;
2722 UINT32 Reserved3 : 5;
2723 UINT32 Reserved4 : 32;
2752#define MSR_SKYLAKE_BR_DETECT_STATUS 0x00000351
2773 UINT32 Reserved1 : 6;
2786 UINT32 Reserved2 : 6;
2793 UINT32 Reserved3 : 6;
2814 UINT32 Reserved4 : 16;
2842#define MSR_SKYLAKE_PKG_C3_RESIDENCY 0x000003F8
2865#define MSR_SKYLAKE_CORE_C1_RESIDENCY 0x00000660
2881#define MSR_SKYLAKE_CORE_C3_RESIDENCY 0x00000662
2900#define MSR_SKYLAKE_PPIN_CTL 0x0000004E
2918 UINT32 Reserved1 : 30;
2919 UINT32 Reserved2 : 32;
2946#define MSR_SKYLAKE_PPIN 0x0000004F
2966#define MSR_SKYLAKE_PLATFORM_INFO 0x000000CE
2976 UINT32 Reserved1 : 8;
2981 UINT32 Reserved2 : 7;
2986 UINT32 Reserved3 : 4;
3001 UINT32 Reserved4 : 1;
3002 UINT32 Reserved5 : 8;
3007 UINT32 Reserved6 : 16;
3034#define MSR_SKYLAKE_PKG_CST_CONFIG_CONTROL 0x000000E2
3054 UINT32 Reserved1 : 7;
3059 UINT32 Reserved2 : 4;
3069 UINT32 Reserved3 : 8;
3094 UINT32 Reserved4 : 1;
3095 UINT32 Reserved5 : 32;
3123#define MSR_SKYLAKE_IA32_MCG_CAP 0x00000179
3153 UINT32 Reserved1 : 4;
3170 UINT32 Reserved2 : 5;
3171 UINT32 Reserved3 : 32;
3201#define MSR_SKYLAKE_SMM_MCA_CAP 0x0000017D
3211 UINT32 Reserved1 : 32;
3212 UINT32 Reserved2 : 26;
3225 UINT32 Reserved3 : 4;
3250#define MSR_SKYLAKE_TEMPERATURE_TARGET 0x000001A2
3260 UINT32 Reserved1 : 16;
3269 UINT32 Reserved2 : 4;
3270 UINT32 Reserved3 : 32;
3303#define MSR_SKYLAKE_TURBO_RATIO_LIMIT_CORES 0x000001AE
3376#define MSR_SKYLAKE_RAPL_POWER_UNIT 0x00000606
3390 UINT32 Reserved1 : 4;
3398 UINT32 Reserved2 : 3;
3404 UINT32 Reserved3 : 12;
3405 UINT32 Reserved4 : 32;
3433#define MSR_SKYLAKE_DRAM_POWER_LIMIT 0x00000618
3451#define MSR_SKYLAKE_DRAM_ENERGY_STATUS 0x00000619
3466 UINT32 Reserved : 32;
3493#define MSR_SKYLAKE_DRAM_PERF_STATUS 0x0000061B
3510#define MSR_SKYLAKE_DRAM_POWER_INFO 0x0000061C
3532#define MSR_SKYLAKE_MSRUNCORE_RATIO_LIMIT 0x00000620
3547 UINT32 Reserved1 : 1;
3553 UINT32 Reserved2 : 17;
3554 UINT32 Reserved3 : 32;
3580#define MSR_SKYLAKE_PP0_ENERGY_STATUS 0x00000639
3600#define MSR_SKYLAKE_IA32_QM_EVTSEL 0x00000C8D
3616 UINT32 Reserved1 : 24;
3621 UINT32 Reserved2 : 22;
3646#define MSR_SKYLAKE_IA32_PQR_ASSOC 0x00000C8F
3660 UINT32 Reserved1 : 22;
3665 UINT32 Reserved2 : 12;
3691#define MSR_SKYLAKE_IA32_L3_QOS_MASK_0 0x00000C90
3692#define MSR_SKYLAKE_IA32_L3_QOS_MASK_1 0x00000C91
3693#define MSR_SKYLAKE_IA32_L3_QOS_MASK_2 0x00000C92
3694#define MSR_SKYLAKE_IA32_L3_QOS_MASK_3 0x00000C93
3695#define MSR_SKYLAKE_IA32_L3_QOS_MASK_4 0x00000C94
3696#define MSR_SKYLAKE_IA32_L3_QOS_MASK_5 0x00000C95
3697#define MSR_SKYLAKE_IA32_L3_QOS_MASK_6 0x00000C96
3698#define MSR_SKYLAKE_IA32_L3_QOS_MASK_7 0x00000C97
3699#define MSR_SKYLAKE_IA32_L3_QOS_MASK_8 0x00000C98
3700#define MSR_SKYLAKE_IA32_L3_QOS_MASK_9 0x00000C99
3701#define MSR_SKYLAKE_IA32_L3_QOS_MASK_10 0x00000C9A
3702#define MSR_SKYLAKE_IA32_L3_QOS_MASK_11 0x00000C9B
3703#define MSR_SKYLAKE_IA32_L3_QOS_MASK_12 0x00000C9C
3704#define MSR_SKYLAKE_IA32_L3_QOS_MASK_13 0x00000C9D
3705#define MSR_SKYLAKE_IA32_L3_QOS_MASK_14 0x00000C9E
3706#define MSR_SKYLAKE_IA32_L3_QOS_MASK_15 0x00000C9F
3720 UINT32 Reserved2 : 12;
3721 UINT32 Reserved3 : 32;
UINT32 BranchMonitoringEventSignaled
UINT32 MaxTurboLimitStatus
UINT32 ResidencyStateRegulationStatus
UINT32 VRThermAlertStatus
UINT32 RunningAverageThermalLimitStatus
UINT32 TurboTransitionAttenuationLog
UINT32 VRThermalDesignCurrentLog
UINT32 TurboTransitionAttenuationStatus
UINT32 VRThermDesignCurrentStatus
UINT32 ResidencyStateRegulationLog
UINT32 RunningAverageThermalLimitLog
UINT32 VRThermalDesignCurrentStatus
UINT32 RunningAverageThermalLimitStatus
UINT32 VRThermalDesignCurrentLog
UINT32 InefficientOperationStatus
UINT32 RunningAverageThermalLimitLog
UINT32 VRThermAlertStatus
UINT32 InefficientOperationLog
UINT32 EventCodeSelectHigh
UINT32 EnableC3Undemotion
UINT32 MWAITRedirectionEnable
UINT32 EnableC1Undemotion
UINT32 C3StateAutoDemotionEnable
UINT32 CStateDemotionEnable
UINT32 CStateUnDemotionEnable
UINT32 AutomaticC_StateConversionEnable
UINT32 C1StateAutoDemotionEnable
UINT32 MaximumEfficiencyRatio
UINT32 ProgrammableRatioLimit
UINT32 ProgrammableTDPLimit
UINT32 ProgrammableTJOFFSET
UINT32 MaximumNon_TurboRatio
UINT32 PlatformPowerLimit2
UINT32 PlatformClampingLimitation1
UINT32 EnablePlatformPowerLimit1
UINT32 PlatformPowerLimit1
UINT32 EnablePlatformPowerLimit2
UINT32 PlatformClampingLimitation2
UINT32 DisableEnergyEfficiencyOptimization
UINT32 MemTypePRMRRBASEMemType
UINT32 BasePRMRRBaseAddress
UINT32 RunningAverageThermalLimitLog
UINT32 RunningAverageThermalLimitStatus
UINT32 VRThermalDesignCurrentStatus
UINT32 VRThermalDesignCurrentLog
UINT32 VRThermAlertStatus
UINT32 Long_Flow_Indication
UINT32 SMM_Code_Access_Chk
UINT32 TCCActivationOffset
UINT32 ACPIBAR_BASE_ADDRESS