2 MSR Definitions for Intel(R) Xeon(R) Processor E7 Family.
4 Provides defines for Machine Specific Registers(MSR) indexes. Data structures
5 are provided for MSRs that contain one or more bit fields. If the MSR value
6 returned is a single 32-bit or 64-bit value, then a data structure is not
9 Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
10 SPDX-License-Identifier: BSD-2-Clause-Patent
12 @par Specification Reference:
13 Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 4,
14 May 2018, Volume 4: Model-Specific-Registers (MSR)
18 #ifndef __XEON_E7_MSR_H__
19 #define __XEON_E7_MSR_H__
21 #include <Register/ArchitecturalMsr.h>
24 Is Intel(R) Xeon(R) Processor E7 Family?
26 @param DisplayFamily Display Family ID
27 @param DisplayModel Display Model ID
29 @retval TRUE Yes, it is.
30 @retval FALSE No, it isn't.
32 #define IS_XEON_E7_PROCESSOR(DisplayFamily, DisplayModel) \
33 (DisplayFamily == 0x06 && \
35 DisplayModel == 0x2F \
40 Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP
41 handler to handle unsuccessful read of this MSR.
43 @param ECX MSR_XEON_E7_FEATURE_CONFIG (0x0000013C)
44 @param EAX Lower 32-bits of MSR value.
45 Described by the type MSR_XEON_E7_FEATURE_CONFIG_REGISTER.
46 @param EDX Upper 32-bits of MSR value.
47 Described by the type MSR_XEON_E7_FEATURE_CONFIG_REGISTER.
51 MSR_XEON_E7_FEATURE_CONFIG_REGISTER Msr;
53 Msr.Uint64 = AsmReadMsr64 (MSR_XEON_E7_FEATURE_CONFIG);
54 AsmWriteMsr64 (MSR_XEON_E7_FEATURE_CONFIG, Msr.Uint64);
56 @note MSR_XEON_E7_FEATURE_CONFIG is defined as MSR_FEATURE_CONFIG in SDM.
58 #define MSR_XEON_E7_FEATURE_CONFIG 0x0000013C
61 MSR information returned for MSR index #MSR_XEON_E7_FEATURE_CONFIG
65 /// Individual bit fields
69 /// [Bits 1:0] AES Configuration (RW-L) Upon a successful read of this
70 /// MSR, the configuration of AES instruction set availability is as
71 /// follows: 11b: AES instructions are not available until next RESET.
72 /// otherwise, AES instructions are available. Note, AES instruction set
73 /// is not available if read is unsuccessful. If the configuration is not
74 /// 01b, AES instruction can be mis-configured if a privileged agent
75 /// unintentionally writes 11b.
77 UINT32 AESConfiguration
:2;
82 /// All bit fields as a 32-bit value
86 /// All bit fields as a 64-bit value
89 } MSR_XEON_E7_FEATURE_CONFIG_REGISTER
;
93 Thread. Offcore Response Event Select Register (R/W).
95 @param ECX MSR_XEON_E7_OFFCORE_RSP_1 (0x000001A7)
96 @param EAX Lower 32-bits of MSR value.
97 @param EDX Upper 32-bits of MSR value.
103 Msr = AsmReadMsr64 (MSR_XEON_E7_OFFCORE_RSP_1);
104 AsmWriteMsr64 (MSR_XEON_E7_OFFCORE_RSP_1, Msr);
106 @note MSR_XEON_E7_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.
108 #define MSR_XEON_E7_OFFCORE_RSP_1 0x000001A7
112 Package. Reserved Attempt to read/write will cause #UD.
114 @param ECX MSR_XEON_E7_TURBO_RATIO_LIMIT (0x000001AD)
115 @param EAX Lower 32-bits of MSR value.
116 @param EDX Upper 32-bits of MSR value.
122 Msr = AsmReadMsr64 (MSR_XEON_E7_TURBO_RATIO_LIMIT);
123 AsmWriteMsr64 (MSR_XEON_E7_TURBO_RATIO_LIMIT, Msr);
125 @note MSR_XEON_E7_TURBO_RATIO_LIMIT is defined as MSR_TURBO_RATIO_LIMIT in SDM.
127 #define MSR_XEON_E7_TURBO_RATIO_LIMIT 0x000001AD
131 Package. Uncore C-box 8 perfmon local box control MSR.
133 @param ECX MSR_XEON_E7_C8_PMON_BOX_CTRL (0x00000F40)
134 @param EAX Lower 32-bits of MSR value.
135 @param EDX Upper 32-bits of MSR value.
141 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_BOX_CTRL);
142 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_BOX_CTRL, Msr);
144 @note MSR_XEON_E7_C8_PMON_BOX_CTRL is defined as MSR_C8_PMON_BOX_CTRL in SDM.
146 #define MSR_XEON_E7_C8_PMON_BOX_CTRL 0x00000F40
150 Package. Uncore C-box 8 perfmon local box status MSR.
152 @param ECX MSR_XEON_E7_C8_PMON_BOX_STATUS (0x00000F41)
153 @param EAX Lower 32-bits of MSR value.
154 @param EDX Upper 32-bits of MSR value.
160 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_BOX_STATUS);
161 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_BOX_STATUS, Msr);
163 @note MSR_XEON_E7_C8_PMON_BOX_STATUS is defined as MSR_C8_PMON_BOX_STATUS in SDM.
165 #define MSR_XEON_E7_C8_PMON_BOX_STATUS 0x00000F41
169 Package. Uncore C-box 8 perfmon local box overflow control MSR.
171 @param ECX MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL (0x00000F42)
172 @param EAX Lower 32-bits of MSR value.
173 @param EDX Upper 32-bits of MSR value.
179 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL);
180 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL, Msr);
182 @note MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL is defined as MSR_C8_PMON_BOX_OVF_CTRL in SDM.
184 #define MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL 0x00000F42
188 Package. Uncore C-box 8 perfmon event select MSR.
190 @param ECX MSR_XEON_E7_C8_PMON_EVNT_SELn
191 @param EAX Lower 32-bits of MSR value.
192 @param EDX Upper 32-bits of MSR value.
198 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_EVNT_SEL0);
199 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_EVNT_SEL0, Msr);
201 @note MSR_XEON_E7_C8_PMON_EVNT_SEL0 is defined as MSR_C8_PMON_EVNT_SEL0 in SDM.
202 MSR_XEON_E7_C8_PMON_EVNT_SEL1 is defined as MSR_C8_PMON_EVNT_SEL1 in SDM.
203 MSR_XEON_E7_C8_PMON_EVNT_SEL2 is defined as MSR_C8_PMON_EVNT_SEL2 in SDM.
204 MSR_XEON_E7_C8_PMON_EVNT_SEL3 is defined as MSR_C8_PMON_EVNT_SEL3 in SDM.
205 MSR_XEON_E7_C8_PMON_EVNT_SEL4 is defined as MSR_C8_PMON_EVNT_SEL4 in SDM.
206 MSR_XEON_E7_C8_PMON_EVNT_SEL5 is defined as MSR_C8_PMON_EVNT_SEL5 in SDM.
209 #define MSR_XEON_E7_C8_PMON_EVNT_SEL0 0x00000F50
210 #define MSR_XEON_E7_C8_PMON_EVNT_SEL1 0x00000F52
211 #define MSR_XEON_E7_C8_PMON_EVNT_SEL2 0x00000F54
212 #define MSR_XEON_E7_C8_PMON_EVNT_SEL3 0x00000F56
213 #define MSR_XEON_E7_C8_PMON_EVNT_SEL4 0x00000F58
214 #define MSR_XEON_E7_C8_PMON_EVNT_SEL5 0x00000F5A
219 Package. Uncore C-box 8 perfmon counter MSR.
221 @param ECX MSR_XEON_E7_C8_PMON_CTRn
222 @param EAX Lower 32-bits of MSR value.
223 @param EDX Upper 32-bits of MSR value.
229 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_CTR0);
230 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_CTR0, Msr);
232 @note MSR_XEON_E7_C8_PMON_CTR0 is defined as MSR_C8_PMON_CTR0 in SDM.
233 MSR_XEON_E7_C8_PMON_CTR1 is defined as MSR_C8_PMON_CTR1 in SDM.
234 MSR_XEON_E7_C8_PMON_CTR2 is defined as MSR_C8_PMON_CTR2 in SDM.
235 MSR_XEON_E7_C8_PMON_CTR3 is defined as MSR_C8_PMON_CTR3 in SDM.
236 MSR_XEON_E7_C8_PMON_CTR4 is defined as MSR_C8_PMON_CTR4 in SDM.
237 MSR_XEON_E7_C8_PMON_CTR5 is defined as MSR_C8_PMON_CTR5 in SDM.
240 #define MSR_XEON_E7_C8_PMON_CTR0 0x00000F51
241 #define MSR_XEON_E7_C8_PMON_CTR1 0x00000F53
242 #define MSR_XEON_E7_C8_PMON_CTR2 0x00000F55
243 #define MSR_XEON_E7_C8_PMON_CTR3 0x00000F57
244 #define MSR_XEON_E7_C8_PMON_CTR4 0x00000F59
245 #define MSR_XEON_E7_C8_PMON_CTR5 0x00000F5B
250 Package. Uncore C-box 9 perfmon local box control MSR.
252 @param ECX MSR_XEON_E7_C9_PMON_BOX_CTRL (0x00000FC0)
253 @param EAX Lower 32-bits of MSR value.
254 @param EDX Upper 32-bits of MSR value.
260 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_BOX_CTRL);
261 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_BOX_CTRL, Msr);
263 @note MSR_XEON_E7_C9_PMON_BOX_CTRL is defined as MSR_C9_PMON_BOX_CTRL in SDM.
265 #define MSR_XEON_E7_C9_PMON_BOX_CTRL 0x00000FC0
269 Package. Uncore C-box 9 perfmon local box status MSR.
271 @param ECX MSR_XEON_E7_C9_PMON_BOX_STATUS (0x00000FC1)
272 @param EAX Lower 32-bits of MSR value.
273 @param EDX Upper 32-bits of MSR value.
279 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_BOX_STATUS);
280 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_BOX_STATUS, Msr);
282 @note MSR_XEON_E7_C9_PMON_BOX_STATUS is defined as MSR_C9_PMON_BOX_STATUS in SDM.
284 #define MSR_XEON_E7_C9_PMON_BOX_STATUS 0x00000FC1
288 Package. Uncore C-box 9 perfmon local box overflow control MSR.
290 @param ECX MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL (0x00000FC2)
291 @param EAX Lower 32-bits of MSR value.
292 @param EDX Upper 32-bits of MSR value.
298 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL);
299 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL, Msr);
301 @note MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL is defined as MSR_C9_PMON_BOX_OVF_CTRL in SDM.
303 #define MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL 0x00000FC2
307 Package. Uncore C-box 9 perfmon event select MSR.
309 @param ECX MSR_XEON_E7_C9_PMON_EVNT_SELn
310 @param EAX Lower 32-bits of MSR value.
311 @param EDX Upper 32-bits of MSR value.
317 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_EVNT_SEL0);
318 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_EVNT_SEL0, Msr);
320 @note MSR_XEON_E7_C9_PMON_EVNT_SEL0 is defined as MSR_C9_PMON_EVNT_SEL0 in SDM.
321 MSR_XEON_E7_C9_PMON_EVNT_SEL1 is defined as MSR_C9_PMON_EVNT_SEL1 in SDM.
322 MSR_XEON_E7_C9_PMON_EVNT_SEL2 is defined as MSR_C9_PMON_EVNT_SEL2 in SDM.
323 MSR_XEON_E7_C9_PMON_EVNT_SEL3 is defined as MSR_C9_PMON_EVNT_SEL3 in SDM.
324 MSR_XEON_E7_C9_PMON_EVNT_SEL4 is defined as MSR_C9_PMON_EVNT_SEL4 in SDM.
325 MSR_XEON_E7_C9_PMON_EVNT_SEL5 is defined as MSR_C9_PMON_EVNT_SEL5 in SDM.
328 #define MSR_XEON_E7_C9_PMON_EVNT_SEL0 0x00000FD0
329 #define MSR_XEON_E7_C9_PMON_EVNT_SEL1 0x00000FD2
330 #define MSR_XEON_E7_C9_PMON_EVNT_SEL2 0x00000FD4
331 #define MSR_XEON_E7_C9_PMON_EVNT_SEL3 0x00000FD6
332 #define MSR_XEON_E7_C9_PMON_EVNT_SEL4 0x00000FD8
333 #define MSR_XEON_E7_C9_PMON_EVNT_SEL5 0x00000FDA
338 Package. Uncore C-box 9 perfmon counter MSR.
340 @param ECX MSR_XEON_E7_C9_PMON_CTRn
341 @param EAX Lower 32-bits of MSR value.
342 @param EDX Upper 32-bits of MSR value.
348 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_CTR0);
349 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_CTR0, Msr);
351 @note MSR_XEON_E7_C9_PMON_CTR0 is defined as MSR_C9_PMON_CTR0 in SDM.
352 MSR_XEON_E7_C9_PMON_CTR1 is defined as MSR_C9_PMON_CTR1 in SDM.
353 MSR_XEON_E7_C9_PMON_CTR2 is defined as MSR_C9_PMON_CTR2 in SDM.
354 MSR_XEON_E7_C9_PMON_CTR3 is defined as MSR_C9_PMON_CTR3 in SDM.
355 MSR_XEON_E7_C9_PMON_CTR4 is defined as MSR_C9_PMON_CTR4 in SDM.
356 MSR_XEON_E7_C9_PMON_CTR5 is defined as MSR_C9_PMON_CTR5 in SDM.
359 #define MSR_XEON_E7_C9_PMON_CTR0 0x00000FD1
360 #define MSR_XEON_E7_C9_PMON_CTR1 0x00000FD3
361 #define MSR_XEON_E7_C9_PMON_CTR2 0x00000FD5
362 #define MSR_XEON_E7_C9_PMON_CTR3 0x00000FD7
363 #define MSR_XEON_E7_C9_PMON_CTR4 0x00000FD9
364 #define MSR_XEON_E7_C9_PMON_CTR5 0x00000FDB