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 - 2019, 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/Intel/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;
78 UINT32 Reserved1
: 30;
79 UINT32 Reserved2
: 32;
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
;
92 Thread. Offcore Response Event Select Register (R/W).
94 @param ECX MSR_XEON_E7_OFFCORE_RSP_1 (0x000001A7)
95 @param EAX Lower 32-bits of MSR value.
96 @param EDX Upper 32-bits of MSR value.
102 Msr = AsmReadMsr64 (MSR_XEON_E7_OFFCORE_RSP_1);
103 AsmWriteMsr64 (MSR_XEON_E7_OFFCORE_RSP_1, Msr);
105 @note MSR_XEON_E7_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.
107 #define MSR_XEON_E7_OFFCORE_RSP_1 0x000001A7
110 Package. Reserved Attempt to read/write will cause #UD.
112 @param ECX MSR_XEON_E7_TURBO_RATIO_LIMIT (0x000001AD)
113 @param EAX Lower 32-bits of MSR value.
114 @param EDX Upper 32-bits of MSR value.
120 Msr = AsmReadMsr64 (MSR_XEON_E7_TURBO_RATIO_LIMIT);
121 AsmWriteMsr64 (MSR_XEON_E7_TURBO_RATIO_LIMIT, Msr);
123 @note MSR_XEON_E7_TURBO_RATIO_LIMIT is defined as MSR_TURBO_RATIO_LIMIT in SDM.
125 #define MSR_XEON_E7_TURBO_RATIO_LIMIT 0x000001AD
128 Package. Uncore C-box 8 perfmon local box control MSR.
130 @param ECX MSR_XEON_E7_C8_PMON_BOX_CTRL (0x00000F40)
131 @param EAX Lower 32-bits of MSR value.
132 @param EDX Upper 32-bits of MSR value.
138 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_BOX_CTRL);
139 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_BOX_CTRL, Msr);
141 @note MSR_XEON_E7_C8_PMON_BOX_CTRL is defined as MSR_C8_PMON_BOX_CTRL in SDM.
143 #define MSR_XEON_E7_C8_PMON_BOX_CTRL 0x00000F40
146 Package. Uncore C-box 8 perfmon local box status MSR.
148 @param ECX MSR_XEON_E7_C8_PMON_BOX_STATUS (0x00000F41)
149 @param EAX Lower 32-bits of MSR value.
150 @param EDX Upper 32-bits of MSR value.
156 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_BOX_STATUS);
157 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_BOX_STATUS, Msr);
159 @note MSR_XEON_E7_C8_PMON_BOX_STATUS is defined as MSR_C8_PMON_BOX_STATUS in SDM.
161 #define MSR_XEON_E7_C8_PMON_BOX_STATUS 0x00000F41
164 Package. Uncore C-box 8 perfmon local box overflow control MSR.
166 @param ECX MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL (0x00000F42)
167 @param EAX Lower 32-bits of MSR value.
168 @param EDX Upper 32-bits of MSR value.
174 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL);
175 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL, Msr);
177 @note MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL is defined as MSR_C8_PMON_BOX_OVF_CTRL in SDM.
179 #define MSR_XEON_E7_C8_PMON_BOX_OVF_CTRL 0x00000F42
182 Package. Uncore C-box 8 perfmon event select MSR.
184 @param ECX MSR_XEON_E7_C8_PMON_EVNT_SELn
185 @param EAX Lower 32-bits of MSR value.
186 @param EDX Upper 32-bits of MSR value.
192 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_EVNT_SEL0);
193 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_EVNT_SEL0, Msr);
195 @note MSR_XEON_E7_C8_PMON_EVNT_SEL0 is defined as MSR_C8_PMON_EVNT_SEL0 in SDM.
196 MSR_XEON_E7_C8_PMON_EVNT_SEL1 is defined as MSR_C8_PMON_EVNT_SEL1 in SDM.
197 MSR_XEON_E7_C8_PMON_EVNT_SEL2 is defined as MSR_C8_PMON_EVNT_SEL2 in SDM.
198 MSR_XEON_E7_C8_PMON_EVNT_SEL3 is defined as MSR_C8_PMON_EVNT_SEL3 in SDM.
199 MSR_XEON_E7_C8_PMON_EVNT_SEL4 is defined as MSR_C8_PMON_EVNT_SEL4 in SDM.
200 MSR_XEON_E7_C8_PMON_EVNT_SEL5 is defined as MSR_C8_PMON_EVNT_SEL5 in SDM.
203 #define MSR_XEON_E7_C8_PMON_EVNT_SEL0 0x00000F50
204 #define MSR_XEON_E7_C8_PMON_EVNT_SEL1 0x00000F52
205 #define MSR_XEON_E7_C8_PMON_EVNT_SEL2 0x00000F54
206 #define MSR_XEON_E7_C8_PMON_EVNT_SEL3 0x00000F56
207 #define MSR_XEON_E7_C8_PMON_EVNT_SEL4 0x00000F58
208 #define MSR_XEON_E7_C8_PMON_EVNT_SEL5 0x00000F5A
212 Package. Uncore C-box 8 perfmon counter MSR.
214 @param ECX MSR_XEON_E7_C8_PMON_CTRn
215 @param EAX Lower 32-bits of MSR value.
216 @param EDX Upper 32-bits of MSR value.
222 Msr = AsmReadMsr64 (MSR_XEON_E7_C8_PMON_CTR0);
223 AsmWriteMsr64 (MSR_XEON_E7_C8_PMON_CTR0, Msr);
225 @note MSR_XEON_E7_C8_PMON_CTR0 is defined as MSR_C8_PMON_CTR0 in SDM.
226 MSR_XEON_E7_C8_PMON_CTR1 is defined as MSR_C8_PMON_CTR1 in SDM.
227 MSR_XEON_E7_C8_PMON_CTR2 is defined as MSR_C8_PMON_CTR2 in SDM.
228 MSR_XEON_E7_C8_PMON_CTR3 is defined as MSR_C8_PMON_CTR3 in SDM.
229 MSR_XEON_E7_C8_PMON_CTR4 is defined as MSR_C8_PMON_CTR4 in SDM.
230 MSR_XEON_E7_C8_PMON_CTR5 is defined as MSR_C8_PMON_CTR5 in SDM.
233 #define MSR_XEON_E7_C8_PMON_CTR0 0x00000F51
234 #define MSR_XEON_E7_C8_PMON_CTR1 0x00000F53
235 #define MSR_XEON_E7_C8_PMON_CTR2 0x00000F55
236 #define MSR_XEON_E7_C8_PMON_CTR3 0x00000F57
237 #define MSR_XEON_E7_C8_PMON_CTR4 0x00000F59
238 #define MSR_XEON_E7_C8_PMON_CTR5 0x00000F5B
242 Package. Uncore C-box 9 perfmon local box control MSR.
244 @param ECX MSR_XEON_E7_C9_PMON_BOX_CTRL (0x00000FC0)
245 @param EAX Lower 32-bits of MSR value.
246 @param EDX Upper 32-bits of MSR value.
252 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_BOX_CTRL);
253 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_BOX_CTRL, Msr);
255 @note MSR_XEON_E7_C9_PMON_BOX_CTRL is defined as MSR_C9_PMON_BOX_CTRL in SDM.
257 #define MSR_XEON_E7_C9_PMON_BOX_CTRL 0x00000FC0
260 Package. Uncore C-box 9 perfmon local box status MSR.
262 @param ECX MSR_XEON_E7_C9_PMON_BOX_STATUS (0x00000FC1)
263 @param EAX Lower 32-bits of MSR value.
264 @param EDX Upper 32-bits of MSR value.
270 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_BOX_STATUS);
271 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_BOX_STATUS, Msr);
273 @note MSR_XEON_E7_C9_PMON_BOX_STATUS is defined as MSR_C9_PMON_BOX_STATUS in SDM.
275 #define MSR_XEON_E7_C9_PMON_BOX_STATUS 0x00000FC1
278 Package. Uncore C-box 9 perfmon local box overflow control MSR.
280 @param ECX MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL (0x00000FC2)
281 @param EAX Lower 32-bits of MSR value.
282 @param EDX Upper 32-bits of MSR value.
288 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL);
289 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL, Msr);
291 @note MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL is defined as MSR_C9_PMON_BOX_OVF_CTRL in SDM.
293 #define MSR_XEON_E7_C9_PMON_BOX_OVF_CTRL 0x00000FC2
296 Package. Uncore C-box 9 perfmon event select MSR.
298 @param ECX MSR_XEON_E7_C9_PMON_EVNT_SELn
299 @param EAX Lower 32-bits of MSR value.
300 @param EDX Upper 32-bits of MSR value.
306 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_EVNT_SEL0);
307 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_EVNT_SEL0, Msr);
309 @note MSR_XEON_E7_C9_PMON_EVNT_SEL0 is defined as MSR_C9_PMON_EVNT_SEL0 in SDM.
310 MSR_XEON_E7_C9_PMON_EVNT_SEL1 is defined as MSR_C9_PMON_EVNT_SEL1 in SDM.
311 MSR_XEON_E7_C9_PMON_EVNT_SEL2 is defined as MSR_C9_PMON_EVNT_SEL2 in SDM.
312 MSR_XEON_E7_C9_PMON_EVNT_SEL3 is defined as MSR_C9_PMON_EVNT_SEL3 in SDM.
313 MSR_XEON_E7_C9_PMON_EVNT_SEL4 is defined as MSR_C9_PMON_EVNT_SEL4 in SDM.
314 MSR_XEON_E7_C9_PMON_EVNT_SEL5 is defined as MSR_C9_PMON_EVNT_SEL5 in SDM.
317 #define MSR_XEON_E7_C9_PMON_EVNT_SEL0 0x00000FD0
318 #define MSR_XEON_E7_C9_PMON_EVNT_SEL1 0x00000FD2
319 #define MSR_XEON_E7_C9_PMON_EVNT_SEL2 0x00000FD4
320 #define MSR_XEON_E7_C9_PMON_EVNT_SEL3 0x00000FD6
321 #define MSR_XEON_E7_C9_PMON_EVNT_SEL4 0x00000FD8
322 #define MSR_XEON_E7_C9_PMON_EVNT_SEL5 0x00000FDA
326 Package. Uncore C-box 9 perfmon counter MSR.
328 @param ECX MSR_XEON_E7_C9_PMON_CTRn
329 @param EAX Lower 32-bits of MSR value.
330 @param EDX Upper 32-bits of MSR value.
336 Msr = AsmReadMsr64 (MSR_XEON_E7_C9_PMON_CTR0);
337 AsmWriteMsr64 (MSR_XEON_E7_C9_PMON_CTR0, Msr);
339 @note MSR_XEON_E7_C9_PMON_CTR0 is defined as MSR_C9_PMON_CTR0 in SDM.
340 MSR_XEON_E7_C9_PMON_CTR1 is defined as MSR_C9_PMON_CTR1 in SDM.
341 MSR_XEON_E7_C9_PMON_CTR2 is defined as MSR_C9_PMON_CTR2 in SDM.
342 MSR_XEON_E7_C9_PMON_CTR3 is defined as MSR_C9_PMON_CTR3 in SDM.
343 MSR_XEON_E7_C9_PMON_CTR4 is defined as MSR_C9_PMON_CTR4 in SDM.
344 MSR_XEON_E7_C9_PMON_CTR5 is defined as MSR_C9_PMON_CTR5 in SDM.
347 #define MSR_XEON_E7_C9_PMON_CTR0 0x00000FD1
348 #define MSR_XEON_E7_C9_PMON_CTR1 0x00000FD3
349 #define MSR_XEON_E7_C9_PMON_CTR2 0x00000FD5
350 #define MSR_XEON_E7_C9_PMON_CTR3 0x00000FD7
351 #define MSR_XEON_E7_C9_PMON_CTR4 0x00000FD9
352 #define MSR_XEON_E7_C9_PMON_CTR5 0x00000FDB