15#ifndef OC_PROCESSOR_INFO_H
16#define OC_PROCESSOR_INFO_H
20#define BRIDGE_BCLK 100
22#define BASE_NHM_CLOCK_SOURCE 133333333ULL
28#define CLIENT_ART_CLOCK_SOURCE 24000000ULL
29#define SERVER_ART_CLOCK_SOURCE 25000000ULL
30#define ATOM_ART_CLOCK_SOURCE 19200000ULL
32#define DEFAULT_ART_CLOCK_SOURCE CLIENT_ART_CLOCK_SOURCE
34#define MSR_PIC_MSG_CONTROL 0x2E
35#define MSR_CORE_THREAD_COUNT 0x35
37#define EFI_PLATFORM_INFORMATION 0x000000CE
38#define N_EFI_PLATFORM_INFO_MIN_RATIO 40
39#define B_EFI_PLATFORM_INFO_RATIO_MASK 0xFF
40#define N_EFI_PLATFORM_INFO_MAX_RATIO 8
41#define B_EFI_PLATFORM_INFO_TDC_TDP_LIMIT (1 << 29)
42#define N_EFI_PLATFORM_INFO_RATIO_LIMIT 28
43#define B_EFI_PLATFORM_INFO_RATIO_LIMIT (1 << 28)
44#define B_EFI_PLATFORM_INFO_SMM_SAVE_CONTROL (1 << 16)
45#define N_EFI_PLATFORM_INFO_PROG_TCC_ACTIVATION_OFFSET 30
46#define B_EFI_PLATFORM_INFO_PROG_TCC_ACTIVATION_OFFSET (1 << 30)
50#define MSR_PMG_IO_CAPTURE_BASE 0xE4
51#define MSR_IA32_EXT_CONFIG 0xEE
52#define MSR_FEATURE_CONFIG 0x13C
53#define MSR_FLEX_RATIO 0x194
54#define FLEX_RATIO_LOCK (1U << 20U)
55#define FLEX_RATIO_EN (1U << 16U)
56#define MSR_IA32_PERF_CONTROL 0x199
57#define MSR_THERM2_CTL 0x19D
59#define TURBO_DISABLE_MASK ((UINT64)1 << 38)
60#define TURBO_MODE_DISABLE_BIT 38
62#define MSR_TEMPERATURE_TARGET 0x1A2
63#define MSR_MISC_PWR_MGMT 0x1AA
64#define MISC_PWR_MGMT_EIST_HW_DIS (1 << 0)
65#define MISC_PWR_MGMT_LOCK (1 << 13)
66#define MAX_RATIO_LIMIT_8C_OFFSET 56
67#define MAX_RATIO_LIMIT_7C_OFFSET 48
68#define MAX_RATIO_LIMIT_6C_OFFSET 40
69#define MAX_RATIO_LIMIT_5C_OFFSET 32
70#define MAX_RATIO_LIMIT_4C_OFFSET 24
71#define MAX_RATIO_LIMIT_3C_OFFSET 16
72#define MAX_RATIO_LIMIT_2C_OFFSET 8
73#define MAX_RATIO_LIMIT_1C_OFFSET 0
74#define MAX_RATIO_LIMIT_MASK 0xff
75#define MSR_IA32_ENERGY_PERFORMANCE_BIAS 0x1B0
76#define ENERGY_POLICY_PERFORMANCE 0
77#define ENERGY_POLICY_NORMAL 6
78#define ENERGY_POLICY_POWERSAVE 15
79#define MSR_POWER_CTL 0x1FC
80#define MSR_LT_LOCK_MEMORY 0x2E7
81#define MSR_IA32_CR_PAT 0x277
84#define MSR_PP0_CURRENT_CONFIG 0x601
85#define PP0_CURRENT_LIMIT (112 << 3)
86#define MSR_PP1_CURRENT_CONFIG 0x602
87#define PP1_CURRENT_LIMIT (35 << 3)
88#define MSR_PKG_POWER_SKU_UNIT 0x606
90#define MSR_PKGC3_IRTL 0x60A
91#define MSR_PKGC6_IRTL 0x60B
92#define MSR_PKGC7_IRTL 0x60C
93#define IRTL_VALID (1 << 15)
94#define IRTL_1_NS (0 << 10)
95#define IRTL_32_NS (1 << 10)
96#define IRTL_1024_NS (2 << 10)
97#define IRTL_32768_NS (3 << 10)
98#define IRTL_1048576_NS (4 << 10)
99#define IRTL_33554432_NS (5 << 10)
100#define IRTL_RESPONSE_MASK (0x3ff)
103#define MSR_PKG_POWER_LIMIT 0x610
104#define PKG_POWER_LIMIT_MASK 0x7fff
105#define PKG_POWER_LIMIT_EN (1 << 15)
106#define PKG_POWER_LIMIT_CLAMP (1 << 16)
107#define PKG_POWER_LIMIT_TIME_SHIFT 17
108#define PKG_POWER_LIMIT_TIME_MASK 0x7f
110#define MSR_PKG_ENERGY_STATUS 0x611
111#define MSR_PKG_PERF_STATUS 0x613
112#define MSR_PKG_POWER_SKU 0x614
115#define MSR_PP0_POWER_LIMIT 0x638
116#define MSR_PP0_ENERGY_STATUS 0x639
117#define MSR_PP0_POLICY 0x63A
118#define MSR_PP0_PERF_STATUS 0x63B
121#define MSR_PP1_POWER_LIMIT 0x640
122#define MSR_PP1_ENERGY_STATUS 0x641
123#define MSR_PP1_POLICY 0x642
126#define MSR_DRAM_POWER_LIMIT 0x618
127#define MSR_DRAM_ENERGY_STATUS 0x619
128#define MSR_DRAM_PERF_STATUS 0x61B
129#define MSR_DRAM_POWER_INFO 0x61C
149#define PAT_ENTRY_BIT_MASK (0xFFU)
154#define PAT_INDEX_MAX 8
159#define SET_PAT_N(PatIndex, PatType) (LShiftU64 ((PatType) * 1ULL, (PatIndex) * 8))
164#define GET_PAT_N(PatMsr, PatIndex) (RShiftU64 ((PatMsr), (PatIndex) * 8) & PAT_ENTRY_BIT_MASK)
169#define MODIFY_PAT_MSR(PatMsr, PatIndex, PatType) (((PatMsr) & ~SET_PAT_N ((PatIndex), PAT_ENTRY_BIT_MASK)) | SET_PAT_N ((PatIndex), (PatType)))
174#define PAT_DEFAULTS ( \
175 SET_PAT_N (0, PatWriteBack) | \
176 SET_PAT_N (1, PatWriteThrough) | \
177 SET_PAT_N (2, PatUncached) | \
178 SET_PAT_N (3, PatUncacheable) | \
179 SET_PAT_N (4, PatWriteBack) | \
180 SET_PAT_N (5, PatWriteThrough) | \
181 SET_PAT_N (6, PatUncached) | \
182 SET_PAT_N (7, PatUncacheable) \
185#define K8_FIDVID_STATUS 0xC0010042
186#define K10_COFVID_STATUS 0xC0010071
187#define K10_PSTATE_STATUS 0xC0010064
189#define CPU_MODEL_WILLAMETTE 0x01
190#define CPU_MODEL_NORTHWOOD 0x02
191#define CPU_MODEL_PRESCOTT 0x03
192#define CPU_MODEL_PRESCOTT_2M 0x04
193#define CPU_MODEL_CEDAR_MILL 0x06
194#define CPU_MODEL_BANIAS 0x09
195#define CPU_MODEL_DOTHAN 0x0D
196#define CPU_MODEL_YONAH 0x0E
197#define CPU_MODEL_MEROM 0x0F
198#define CPU_MODEL_PENRYN 0x17
199#define CPU_MODEL_NEHALEM 0x1A
200#define CPU_MODEL_BONNELL 0x1C
201#define CPU_MODEL_FIELDS 0x1E
202#define CPU_MODEL_DALES 0x1F
203#define CPU_MODEL_NEHALEM_EX 0x2E
204#define CPU_MODEL_DALES_32NM 0x25
205#define CPU_MODEL_BONNELL_MID 0x26
206#define CPU_MODEL_WESTMERE 0x2C
207#define CPU_MODEL_WESTMERE_EX 0x2F
208#define CPU_MODEL_SANDYBRIDGE 0x2A
209#define CPU_MODEL_JAKETOWN 0x2D
210#define CPU_MODEL_SALTWELL 0x36
211#define CPU_MODEL_SILVERMONT 0x37
212#define CPU_MODEL_IVYBRIDGE 0x3A
213#define CPU_MODEL_IVYBRIDGE_EP 0x3E
214#define CPU_MODEL_CRYSTALWELL 0x46
215#define CPU_MODEL_HASWELL 0x3C
216#define CPU_MODEL_HASWELL_EP 0x3F
217#define CPU_MODEL_HASWELL_ULT 0x45
218#define CPU_MODEL_BROADWELL 0x3D
219#define CPU_MODEL_BROADWELL_EP 0x4F
220#define CPU_MODEL_BROADWELL_ULX 0x3D
221#define CPU_MODEL_BROADWELL_ULT 0x3D
222#define CPU_MODEL_BRYSTALWELL 0x47
223#define CPU_MODEL_AIRMONT 0x4C
224#define CPU_MODEL_AVOTON 0x4D
225#define CPU_MODEL_SKYLAKE 0x4E
226#define CPU_MODEL_SKYLAKE_ULT 0x4E
227#define CPU_MODEL_SKYLAKE_ULX 0x4E
228#define CPU_MODEL_SKYLAKE_DT 0x5E
229#define CPU_MODEL_SKYLAKE_W 0x55
230#define CPU_MODEL_GOLDMONT 0x5C
231#define CPU_MODEL_DENVERTON 0x5F
232#define CPU_MODEL_CANNONLAKE 0x66
233#define CPU_MODEL_XEON_MILL 0x85
234#define CPU_MODEL_KABYLAKE 0x8E
235#define CPU_MODEL_KABYLAKE_ULT 0x8E
236#define CPU_MODEL_KABYLAKE_ULX 0x8E
237#define CPU_MODEL_KABYLAKE_DT 0x9E
238#define CPU_MODEL_COFFEELAKE 0x9E
239#define CPU_MODEL_COFFEELAKE_ULT 0x9E
240#define CPU_MODEL_COFFEELAKE_ULX 0x9E
241#define CPU_MODEL_COFFEELAKE_DT 0x9E
242#define CPU_MODEL_ICELAKE_Y 0x7D
243#define CPU_MODEL_ICELAKE_U 0x7E
244#define CPU_MODEL_ICELAKE_SP 0x9F
245#define CPU_MODEL_COMETLAKE_S 0xA5
246#define CPU_MODEL_COMETLAKE_Y 0xA5
247#define CPU_MODEL_COMETLAKE_U 0xA6
248#define CPU_MODEL_ROCKETLAKE_S 0xA7
249#define CPU_MODEL_TIGERLAKE_U 0x8C
250#define CPU_MODEL_ALDERLAKE_S 0x97
251#define CPU_MODEL_RAPTORLAKE_S 0xB7
252#define CPU_MODEL_RAPTORLAKE_HX 0xBF
253#define CPU_MODEL_ARROWLAKE_S 0xC6
254#define CPU_MODEL_ARROWLAKE_HX 0xC5
255#define CPU_MODEL_ARROWLAKE_U 0xB5
257#define AMD_CPU_FAMILY 0xF
258#define AMD_CPU_EXT_FAMILY_0FH 0x0
259#define AMD_CPU_EXT_FAMILY_10H 0x1
260#define AMD_CPU_EXT_FAMILY_15H 0x6
261#define AMD_CPU_EXT_FAMILY_16H 0x7
262#define AMD_CPU_EXT_FAMILY_17H 0x8
263#define AMD_CPU_EXT_FAMILY_19H 0xA
264#define AMD_CPU_EXT_FAMILY_1AH 0xB
@ PatWriteCombining
Special hardware burst mode (not L1-L3) intended for graphics memory (ref. 11.3.1).
CPU_P_STATE_COORDINATION
P-State Coordination.
@ CpuPStateCoordinationSoftwareAll
@ CpuPStateCoordinationHardwareAll
@ CpuPStateCoordinationSoftwareAny