10437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef _ASM_X86_MSR_INDEX_H
20437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _ASM_X86_MSR_INDEX_H
30437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
40437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* CPU model specific register (MSR) numbers */
50437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
60437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* x86-64 specific MSRs */
70437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_EFER		0xc0000080 /* extended feature register */
80437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_STAR		0xc0000081 /* legacy mode SYSCALL target */
90437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LSTAR		0xc0000082 /* long mode SYSCALL target */
100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CSTAR		0xc0000083 /* compat mode SYSCALL target */
110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_SYSCALL_MASK	0xc0000084 /* EFLAGS mask for syscall */
120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_FS_BASE		0xc0000100 /* 64bit FS base */
130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_GS_BASE		0xc0000101 /* 64bit GS base */
140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_KERNEL_GS_BASE	0xc0000102 /* SwapGS GS shadow */
150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_TSC_AUX		0xc0000103 /* Auxiliary TSC */
160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* EFER bits: */
180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_SCE		0  /* SYSCALL/SYSRET */
190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_LME		8  /* Long mode enable */
200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_LMA		10 /* Long mode active (read-only) */
210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_NX		11 /* No execute enable */
220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_SVME		12 /* Enable virtualization */
230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_LMSLE		13 /* Long Mode Segment Limit Enable */
240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _EFER_FFXSR		14 /* Enable Fast FXSAVE/FXRSTOR */
250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_SCE		(1<<_EFER_SCE)
270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_LME		(1<<_EFER_LME)
280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_LMA		(1<<_EFER_LMA)
290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_NX			(1<<_EFER_NX)
300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_SVME		(1<<_EFER_SVME)
310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_LMSLE		(1<<_EFER_LMSLE)
320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFER_FFXSR		(1<<_EFER_FFXSR)
330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Intel MSRs. Some also available on other CPUs */
350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PERFCTR0		0x000000c1
360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PERFCTR1		0x000000c2
370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_FSB_FREQ			0x000000cd
380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_NHM_PLATFORM_INFO		0x000000ce
390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_NHM_SNB_PKG_CST_CFG_CTL	0x000000e2
410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define NHM_C3_AUTO_DEMOTE		(1UL << 25)
420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define NHM_C1_AUTO_DEMOTE		(1UL << 26)
430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ATM_LNC_C6_AUTO_DEMOTE		(1UL << 25)
440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SNB_C1_AUTO_UNDEMOTE		(1UL << 27)
450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SNB_C3_AUTO_UNDEMOTE		(1UL << 28)
460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PLATFORM_INFO		0x000000ce
480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRcap			0x000000fe
490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_BBL_CR_CTL		0x00000119
500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_BBL_CR_CTL3		0x0000011e
510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_SYSENTER_CS		0x00000174
530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_SYSENTER_ESP		0x00000175
540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_SYSENTER_EIP		0x00000176
550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_CAP		0x00000179
570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_STATUS		0x0000017a
580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_CTL		0x0000017b
590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_OFFCORE_RSP_0		0x000001a6
610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_OFFCORE_RSP_1		0x000001a7
620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_NHM_TURBO_RATIO_LIMIT	0x000001ad
630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IVT_TURBO_RATIO_LIMIT	0x000001ae
640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LBR_SELECT			0x000001c8
660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LBR_TOS			0x000001c9
670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LBR_NHM_FROM		0x00000680
680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LBR_NHM_TO			0x000006c0
690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LBR_CORE_FROM		0x00000040
700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_LBR_CORE_TO			0x00000060
710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PEBS_ENABLE		0x000003f1
730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_DS_AREA		0x00000600
740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PERF_CAPABILITIES	0x00000345
750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PEBS_LD_LAT_THRESHOLD	0x000003f6
760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix64K_00000		0x00000250
780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix16K_80000		0x00000258
790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix16K_A0000		0x00000259
800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_C0000		0x00000268
810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_C8000		0x00000269
820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_D0000		0x0000026a
830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_D8000		0x0000026b
840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_E0000		0x0000026c
850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_E8000		0x0000026d
860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_F0000		0x0000026e
870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRfix4K_F8000		0x0000026f
880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_MTRRdefType			0x000002ff
890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
900437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_CR_PAT			0x00000277
910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_DEBUGCTLMSR		0x000001d9
930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_LASTBRANCHFROMIP	0x000001db
940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_LASTBRANCHTOIP		0x000001dc
950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_LASTINTFROMIP		0x000001dd
960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_LASTINTTOIP		0x000001de
970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* DEBUGCTLMSR bits (others vary by model): */
990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_LBR			(1UL <<  0) /* last branch recording */
1000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_BTF			(1UL <<  1) /* single-step on branches */
1010437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_TR			(1UL <<  6)
1020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_BTS			(1UL <<  7)
1030437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_BTINT		(1UL <<  8)
1040437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_BTS_OFF_OS		(1UL <<  9)
1050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_BTS_OFF_USR		(1UL << 10)
1060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DEBUGCTLMSR_FREEZE_LBRS_ON_PMI	(1UL << 11)
1070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_POWER_CTL		0x000001fc
1090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MC0_CTL		0x00000400
1110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MC0_STATUS		0x00000401
1120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MC0_ADDR		0x00000402
1130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MC0_MISC		0x00000403
1140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* C-state Residency Counters */
1160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C3_RESIDENCY		0x000003f8
1170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C6_RESIDENCY		0x000003f9
1180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C7_RESIDENCY		0x000003fa
1190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_C3_RESIDENCY		0x000003fc
1200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_C6_RESIDENCY		0x000003fd
1210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_C7_RESIDENCY		0x000003fe
1220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C2_RESIDENCY		0x0000060d
1230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C8_RESIDENCY		0x00000630
1240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C9_RESIDENCY		0x00000631
1250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_C10_RESIDENCY		0x00000632
1260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Run Time Average Power Limiting (RAPL) Interface */
1280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_RAPL_POWER_UNIT		0x00000606
1300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_POWER_LIMIT		0x00000610
1320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_ENERGY_STATUS		0x00000611
1330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_PERF_STATUS		0x00000613
1340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PKG_POWER_INFO		0x00000614
1350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_DRAM_POWER_LIMIT		0x00000618
1370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_DRAM_ENERGY_STATUS		0x00000619
1380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_DRAM_PERF_STATUS		0x0000061b
1390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_DRAM_POWER_INFO		0x0000061c
1400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP0_POWER_LIMIT		0x00000638
1420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP0_ENERGY_STATUS		0x00000639
1430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP0_POLICY			0x0000063a
1440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP0_PERF_STATUS		0x0000063b
1450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP1_POWER_LIMIT		0x00000640
1470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP1_ENERGY_STATUS		0x00000641
1480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_PP1_POLICY			0x00000642
1490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
150e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris#define MSR_CORE_C1_RES			0x00000660
151e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris
1527c0b639731767acd9b3788628d81174c641fa6b9Christopher Ferris#define MSR_CC6_DEMOTION_POLICY_CONFIG	0x00000668
1537c0b639731767acd9b3788628d81174c641fa6b9Christopher Ferris#define MSR_MC6_DEMOTION_POLICY_CONFIG	0x00000669
1547c0b639731767acd9b3788628d81174c641fa6b9Christopher Ferris
1550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_MC0_MASK		0xc0010044
1560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCx_CTL(x)		(MSR_IA32_MC0_CTL + 4*(x))
1580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCx_STATUS(x)		(MSR_IA32_MC0_STATUS + 4*(x))
1590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCx_ADDR(x)		(MSR_IA32_MC0_ADDR + 4*(x))
1600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCx_MISC(x)		(MSR_IA32_MC0_MISC + 4*(x))
1610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_MCx_MASK(x)		(MSR_AMD64_MC0_MASK + (x))
1630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* These are consecutive and not in the normal 4er MCE bank block */
1650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MC0_CTL2		0x00000280
1660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCx_CTL2(x)		(MSR_IA32_MC0_CTL2 + (x))
1670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P6_PERFCTR0			0x000000c1
1690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P6_PERFCTR1			0x000000c2
1700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P6_EVNTSEL0			0x00000186
1710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P6_EVNTSEL1			0x00000187
1720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_KNC_PERFCTR0               0x00000020
1740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_KNC_PERFCTR1               0x00000021
1750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_KNC_EVNTSEL0               0x00000028
1760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_KNC_EVNTSEL1               0x00000029
1770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
178e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris/* Alternative perfctr range with full access. */
179e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris#define MSR_IA32_PMC0			0x000004c1
180e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris
1810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* AMD64 MSRs. Not complete. See the architecture manual for a more
1820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris   complete list. */
1830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_PATCH_LEVEL		0x0000008b
1850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_TSC_RATIO		0xc0000104
1860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_NB_CFG		0xc001001f
1870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_PATCH_LOADER		0xc0010020
1880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_OSVW_ID_LENGTH	0xc0010140
1890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_OSVW_STATUS		0xc0010141
190e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris#define MSR_AMD64_LS_CFG		0xc0011020
1910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_DC_CFG		0xc0011022
1920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_BU_CFG2		0xc001102a
1930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSFETCHCTL		0xc0011030
1940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSFETCHLINAD		0xc0011031
1950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSFETCHPHYSAD	0xc0011032
1960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSFETCH_REG_COUNT	3
1970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSFETCH_REG_MASK	((1UL<<MSR_AMD64_IBSFETCH_REG_COUNT)-1)
1980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOPCTL		0xc0011033
1990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOPRIP		0xc0011034
2000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOPDATA		0xc0011035
2010437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOPDATA2		0xc0011036
2020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOPDATA3		0xc0011037
2030437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSDCLINAD		0xc0011038
2040437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSDCPHYSAD		0xc0011039
2050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOP_REG_COUNT	7
2060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSOP_REG_MASK	((1UL<<MSR_AMD64_IBSOP_REG_COUNT)-1)
2070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSCTL		0xc001103a
2080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBSBRTARGET		0xc001103b
2090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD64_IBS_REG_COUNT_MAX	8 /* includes MSR_AMD64_IBSBRTARGET */
2100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Fam 16h MSRs */
2120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_F16H_L2I_PERF_CTL		0xc0010230
2130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_F16H_L2I_PERF_CTR		0xc0010231
2140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Fam 15h MSRs */
2160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_F15H_PERF_CTL		0xc0010200
2170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_F15H_PERF_CTR		0xc0010201
2180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_F15H_NB_PERF_CTL		0xc0010240
2190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_F15H_NB_PERF_CTR		0xc0010241
2200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Fam 10h MSRs */
2220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_FAM10H_MMIO_CONF_BASE	0xc0010058
2230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FAM10H_MMIO_CONF_ENABLE		(1<<0)
2240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FAM10H_MMIO_CONF_BUSRANGE_MASK	0xf
2250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FAM10H_MMIO_CONF_BUSRANGE_SHIFT 2
2260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FAM10H_MMIO_CONF_BASE_MASK	0xfffffffULL
2270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FAM10H_MMIO_CONF_BASE_SHIFT	20
2280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_FAM10H_NODE_ID		0xc001100c
2290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* K8 MSRs */
2310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K8_TOP_MEM1			0xc001001a
2320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K8_TOP_MEM2			0xc001001d
2330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K8_SYSCFG			0xc0010010
2340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K8_INT_PENDING_MSG		0xc0010055
2350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* C1E active bits in int pending message */
2360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define K8_INTP_C1E_ACTIVE_MASK		0x18000000
2370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K8_TSEG_ADDR		0xc0010112
2380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define K8_MTRRFIXRANGE_DRAM_ENABLE	0x00040000 /* MtrrFixDramEn bit    */
2390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define K8_MTRRFIXRANGE_DRAM_MODIFY	0x00080000 /* MtrrFixDramModEn bit */
2400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define K8_MTRR_RDMEM_WRMEM_MASK	0x18181818 /* Mask: RdMem|WrMem    */
2410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* K7 MSRs */
2430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_EVNTSEL0			0xc0010000
2440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_PERFCTR0			0xc0010004
2450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_EVNTSEL1			0xc0010001
2460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_PERFCTR1			0xc0010005
2470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_EVNTSEL2			0xc0010002
2480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_PERFCTR2			0xc0010006
2490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_EVNTSEL3			0xc0010003
2500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_PERFCTR3			0xc0010007
2510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_CLK_CTL			0xc001001b
2520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_HWCR			0xc0010015
2530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_FID_VID_CTL		0xc0010041
2540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K7_FID_VID_STATUS		0xc0010042
2550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* K6 MSRs */
2570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K6_WHCR			0xc0000082
2580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K6_UWCCR			0xc0000085
2590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K6_EPMR			0xc0000086
2600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K6_PSOR			0xc0000087
2610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_K6_PFIR			0xc0000088
2620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Centaur-Hauls/IDT defined MSRs. */
2640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_FCR1			0x00000107
2650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_FCR2			0x00000108
2660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_FCR3			0x00000109
2670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_FCR4			0x0000010a
2680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR0			0x00000110
2700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR1			0x00000111
2710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR2			0x00000112
2720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR3			0x00000113
2730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR4			0x00000114
2740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR5			0x00000115
2750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR6			0x00000116
2760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR7			0x00000117
2770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IDT_MCR_CTRL		0x00000120
2780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* VIA Cyrix defined MSRs*/
2800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VIA_FCR			0x00001107
2810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VIA_LONGHAUL		0x0000110a
2820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VIA_RNG			0x0000110b
2830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VIA_BCR2			0x00001147
2840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Transmeta defined MSRs */
2860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_TMTA_LONGRUN_CTRL		0x80868010
2870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_TMTA_LONGRUN_FLAGS		0x80868011
2880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_TMTA_LRTI_READOUT		0x80868018
2890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_TMTA_LRTI_VOLT_MHZ		0x8086801a
2900437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
2910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Intel defined MSRs. */
2920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_P5_MC_ADDR		0x00000000
2930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_P5_MC_TYPE		0x00000001
2940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_TSC			0x00000010
2950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PLATFORM_ID		0x00000017
2960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_EBL_CR_POWERON		0x0000002a
2970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_EBC_FREQUENCY_ID		0x0000002c
2980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_SMI_COUNT			0x00000034
2990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_FEATURE_CONTROL        0x0000003a
3000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_TSC_ADJUST             0x0000003b
301314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_BNDCFGS		0x00000d90
3020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3037c0b639731767acd9b3788628d81174c641fa6b9Christopher Ferris#define MSR_IA32_XSS			0x00000da0
3047c0b639731767acd9b3788628d81174c641fa6b9Christopher Ferris
3050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FEATURE_CONTROL_LOCKED				(1<<0)
3060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FEATURE_CONTROL_VMXON_ENABLED_INSIDE_SMX	(1<<1)
3070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX	(1<<2)
3080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_APICBASE		0x0000001b
3100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_APICBASE_BSP		(1<<8)
3110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_APICBASE_ENABLE	(1<<11)
3120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_APICBASE_BASE		(0xfffff<<12)
3130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_TSCDEADLINE		0x000006e0
3150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_UCODE_WRITE		0x00000079
3170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_UCODE_REV		0x0000008b
3180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PERF_STATUS		0x00000198
3200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PERF_CTL		0x00000199
3210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD_PSTATE_DEF_BASE		0xc0010064
3220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD_PERF_STATUS		0xc0010063
3230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_AMD_PERF_CTL		0xc0010062
3240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MPERF			0x000000e7
3260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_APERF			0x000000e8
3270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_THERM_CONTROL		0x0000019a
3290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_THERM_INTERRUPT	0x0000019b
3300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_INT_HIGH_ENABLE		(1 << 0)
3320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_INT_LOW_ENABLE		(1 << 1)
3330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_INT_PLN_ENABLE		(1 << 24)
3340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_THERM_STATUS		0x0000019c
3360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_STATUS_PROCHOT		(1 << 0)
3380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_STATUS_POWER_LIMIT	(1 << 10)
3390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_THERM2_CTL			0x0000019d
3410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_THERM2_CTL_TM_SELECT	(1ULL << 16)
3430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MISC_ENABLE		0x000001a0
3450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_TEMPERATURE_TARGET	0x000001a2
3470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_ENERGY_PERF_BIAS	0x000001b0
3490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ENERGY_PERF_BIAS_PERFORMANCE	0
3500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ENERGY_PERF_BIAS_NORMAL		6
3510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ENERGY_PERF_BIAS_POWERSAVE	15
3520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PACKAGE_THERM_STATUS		0x000001b1
3540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PACKAGE_THERM_STATUS_PROCHOT		(1 << 0)
3560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PACKAGE_THERM_STATUS_POWER_LIMIT	(1 << 10)
3570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_PACKAGE_THERM_INTERRUPT	0x000001b2
3590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PACKAGE_THERM_INT_HIGH_ENABLE		(1 << 0)
3610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PACKAGE_THERM_INT_LOW_ENABLE		(1 << 1)
3620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PACKAGE_THERM_INT_PLN_ENABLE		(1 << 24)
3630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Thermal Thresholds Support */
3650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_INT_THRESHOLD0_ENABLE    (1 << 15)
3660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_SHIFT_THRESHOLD0        8
3670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_MASK_THRESHOLD0          (0x7f << THERM_SHIFT_THRESHOLD0)
3680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_INT_THRESHOLD1_ENABLE    (1 << 23)
3690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_SHIFT_THRESHOLD1        16
3700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_MASK_THRESHOLD1          (0x7f << THERM_SHIFT_THRESHOLD1)
3710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_STATUS_THRESHOLD0        (1 << 6)
3720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_LOG_THRESHOLD0           (1 << 7)
3730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_STATUS_THRESHOLD1        (1 << 8)
3740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define THERM_LOG_THRESHOLD1           (1 << 9)
3750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* MISC_ENABLE bits: architectural */
377314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_FAST_STRING_BIT		0
378314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_FAST_STRING		(1ULL << MSR_IA32_MISC_ENABLE_FAST_STRING_BIT)
379314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TCC_BIT			1
380314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TCC			(1ULL << MSR_IA32_MISC_ENABLE_TCC_BIT)
381314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_EMON_BIT			7
382314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_EMON			(1ULL << MSR_IA32_MISC_ENABLE_EMON_BIT)
383314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL_BIT		11
384314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL		(1ULL << MSR_IA32_MISC_ENABLE_BTS_UNAVAIL_BIT)
385314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL_BIT		12
386314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL		(1ULL << MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL_BIT)
387314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP_BIT	16
388314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP		(1ULL << MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP_BIT)
389314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_MWAIT_BIT			18
390314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_MWAIT			(1ULL << MSR_IA32_MISC_ENABLE_MWAIT_BIT)
391314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID_BIT		22
392314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID		(1ULL << MSR_IA32_MISC_ENABLE_LIMIT_CPUID_BIT)
393314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE_BIT		23
394314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_XTPR_DISABLE_BIT)
395314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_XD_DISABLE_BIT		34
396314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_XD_DISABLE			(1ULL << MSR_IA32_MISC_ENABLE_XD_DISABLE_BIT)
3970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
3980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* MISC_ENABLE bits: model-specific, meaning may vary from core to core */
399314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_X87_COMPAT_BIT		2
400314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_X87_COMPAT			(1ULL << MSR_IA32_MISC_ENABLE_X87_COMPAT_BIT)
401314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TM1_BIT			3
402314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TM1			(1ULL << MSR_IA32_MISC_ENABLE_TM1_BIT)
403314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE_BIT	4
404314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE_BIT)
405314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE_BIT	6
406314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE_BIT)
407314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK_BIT		8
408314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK		(1ULL << MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK_BIT)
409314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE_BIT	9
410314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE_BIT)
411314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_FERR_BIT			10
412314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_FERR			(1ULL << MSR_IA32_MISC_ENABLE_FERR_BIT)
413314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX_BIT		10
414314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX		(1ULL << MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX_BIT)
415314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TM2_BIT			13
416314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TM2			(1ULL << MSR_IA32_MISC_ENABLE_TM2_BIT)
417314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE_BIT	19
418314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE_BIT)
419314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK_BIT		20
420314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK		(1ULL << MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK_BIT)
421314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT_BIT		24
422314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT		(1ULL << MSR_IA32_MISC_ENABLE_L1D_CONTEXT_BIT)
423314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE_BIT	37
424314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE_BIT)
425314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE_BIT		38
426314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_TURBO_DISABLE_BIT)
427314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE_BIT	39
428314752488cb92b9f86028836d0b8eabd8acb6a7cChristopher Ferris#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE		(1ULL << MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE_BIT)
4290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
4300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_TSC_DEADLINE		0x000006E0
4310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
4320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* P4/Xeon+ specific */
4330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EAX		0x00000180
4340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EBX		0x00000181
4350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_ECX		0x00000182
4360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EDX		0x00000183
4370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_ESI		0x00000184
4380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EDI		0x00000185
4390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EBP		0x00000186
4400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_ESP		0x00000187
4410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EFLAGS		0x00000188
4420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_EIP		0x00000189
4430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_MCG_RESERVED		0x0000018a
4440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
4450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Pentium IV performance counter MSRs */
4460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_PERFCTR0		0x00000300
4470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_PERFCTR1		0x00000301
4480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_PERFCTR2		0x00000302
4490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_PERFCTR3		0x00000303
4500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_PERFCTR0		0x00000304
4510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_PERFCTR1		0x00000305
4520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_PERFCTR2		0x00000306
4530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_PERFCTR3		0x00000307
4540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_PERFCTR0		0x00000308
4550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_PERFCTR1		0x00000309
4560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_PERFCTR2		0x0000030a
4570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_PERFCTR3		0x0000030b
4580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_PERFCTR0		0x0000030c
4590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_PERFCTR1		0x0000030d
4600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_PERFCTR2		0x0000030e
4610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_PERFCTR3		0x0000030f
4620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_PERFCTR4		0x00000310
4630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_PERFCTR5		0x00000311
4640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_CCCR0		0x00000360
4650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_CCCR1		0x00000361
4660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_CCCR2		0x00000362
4670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_CCCR3		0x00000363
4680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_CCCR0			0x00000364
4690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_CCCR1			0x00000365
4700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_CCCR2			0x00000366
4710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_CCCR3			0x00000367
4720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_CCCR0		0x00000368
4730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_CCCR1		0x00000369
4740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_CCCR2		0x0000036a
4750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_CCCR3		0x0000036b
4760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_CCCR0			0x0000036c
4770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_CCCR1			0x0000036d
4780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_CCCR2			0x0000036e
4790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_CCCR3			0x0000036f
4800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_CCCR4			0x00000370
4810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_CCCR5			0x00000371
4820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_ALF_ESCR0		0x000003ca
4830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_ALF_ESCR1		0x000003cb
4840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_ESCR0		0x000003b2
4850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BPU_ESCR1		0x000003b3
4860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BSU_ESCR0		0x000003a0
4870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_BSU_ESCR1		0x000003a1
4880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_CRU_ESCR0		0x000003b8
4890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_CRU_ESCR1		0x000003b9
4900437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_CRU_ESCR2		0x000003cc
4910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_CRU_ESCR3		0x000003cd
4920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_CRU_ESCR4		0x000003e0
4930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_CRU_ESCR5		0x000003e1
4940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_DAC_ESCR0		0x000003a8
4950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_DAC_ESCR1		0x000003a9
4960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FIRM_ESCR0		0x000003a4
4970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FIRM_ESCR1		0x000003a5
4980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_ESCR0		0x000003a6
4990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FLAME_ESCR1		0x000003a7
5000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FSB_ESCR0		0x000003a2
5010437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_FSB_ESCR1		0x000003a3
5020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_ESCR0			0x000003ba
5030437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IQ_ESCR1			0x000003bb
5040437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IS_ESCR0			0x000003b4
5050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IS_ESCR1			0x000003b5
5060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_ITLB_ESCR0		0x000003b6
5070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_ITLB_ESCR1		0x000003b7
5080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IX_ESCR0			0x000003c8
5090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_IX_ESCR1			0x000003c9
5100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MOB_ESCR0		0x000003aa
5110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MOB_ESCR1		0x000003ab
5120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_ESCR0			0x000003c0
5130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_MS_ESCR1			0x000003c1
5140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_PMH_ESCR0		0x000003ac
5150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_PMH_ESCR1		0x000003ad
5160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_RAT_ESCR0		0x000003bc
5170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_RAT_ESCR1		0x000003bd
5180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_SAAT_ESCR0		0x000003ae
5190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_SAAT_ESCR1		0x000003af
5200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_SSU_ESCR0		0x000003be
5210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_SSU_ESCR1		0x000003bf /* guess: not in manual */
5220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_TBPU_ESCR0		0x000003c2
5240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_TBPU_ESCR1		0x000003c3
5250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_TC_ESCR0			0x000003c4
5260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_TC_ESCR1			0x000003c5
5270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_U2L_ESCR0		0x000003b0
5280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_U2L_ESCR1		0x000003b1
5290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_P4_PEBS_MATRIX_VERT		0x000003f2
5310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Intel Core-based CPU performance counters */
5330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_FIXED_CTR0	0x00000309
5340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_FIXED_CTR1	0x0000030a
5350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_FIXED_CTR2	0x0000030b
5360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_FIXED_CTR_CTRL	0x0000038d
5370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_GLOBAL_STATUS	0x0000038e
5380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_GLOBAL_CTRL	0x0000038f
5390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_CORE_PERF_GLOBAL_OVF_CTRL	0x00000390
5400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Geode defined MSRs */
5420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_GEODE_BUSCONT_CONF0		0x00001900
5430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Intel VT MSRs */
5450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_BASIC              0x00000480
5460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_PINBASED_CTLS      0x00000481
5470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_PROCBASED_CTLS     0x00000482
5480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_EXIT_CTLS          0x00000483
5490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_ENTRY_CTLS         0x00000484
5500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_MISC               0x00000485
5510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_CR0_FIXED0         0x00000486
5520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_CR0_FIXED1         0x00000487
5530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_CR4_FIXED0         0x00000488
5540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_CR4_FIXED1         0x00000489
5550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_VMCS_ENUM          0x0000048a
5560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_PROCBASED_CTLS2    0x0000048b
5570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_EPT_VPID_CAP       0x0000048c
5580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_TRUE_PINBASED_CTLS  0x0000048d
5590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_TRUE_PROCBASED_CTLS 0x0000048e
5600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_TRUE_EXIT_CTLS      0x0000048f
5610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_TRUE_ENTRY_CTLS     0x00000490
562e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris#define MSR_IA32_VMX_VMFUNC             0x00000491
5630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* VMX_BASIC bits and bitmasks */
5650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define VMX_BASIC_VMCS_SIZE_SHIFT	32
5667c0b639731767acd9b3788628d81174c641fa6b9Christopher Ferris#define VMX_BASIC_TRUE_CTLS		(1ULL << 55)
5670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define VMX_BASIC_64		0x0001000000000000LLU
5680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define VMX_BASIC_MEM_TYPE_SHIFT	50
5690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define VMX_BASIC_MEM_TYPE_MASK	0x003c000000000000LLU
5700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define VMX_BASIC_MEM_TYPE_WB	6LLU
5710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define VMX_BASIC_INOUT		0x0040000000000000LLU
5720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* MSR_IA32_VMX_MISC bits */
5740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_IA32_VMX_MISC_VMWRITE_SHADOW_RO_FIELDS (1ULL << 29)
575e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris#define MSR_IA32_VMX_MISC_PREEMPTION_TIMER_SCALE   0x1F
5760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* AMD-V MSRs */
5770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VM_CR                       0xc0010114
5790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VM_IGNNE                    0xc0010115
5800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MSR_VM_HSAVE_PA                 0xc0010117
5810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
5820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* _ASM_X86_MSR_INDEX_H */
583