2 MSR Definitions for Intel(R) Xeon(R) Processor Series 5600.
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_5600_MSR_H__
19 #define __XEON_5600_MSR_H__
21 #include <Register/Intel/ArchitecturalMsr.h>
24 Is Intel(R) Xeon(R) Processor Series 5600?
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_5600_PROCESSOR(DisplayFamily, DisplayModel) \
33 (DisplayFamily == 0x06 && \
35 DisplayModel == 0x25 || \
36 DisplayModel == 0x2C \
41 Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP
42 handler to handle unsuccessful read of this MSR.
44 @param ECX MSR_XEON_5600_FEATURE_CONFIG (0x0000013C)
45 @param EAX Lower 32-bits of MSR value.
46 Described by the type MSR_XEON_5600_FEATURE_CONFIG_REGISTER.
47 @param EDX Upper 32-bits of MSR value.
48 Described by the type MSR_XEON_5600_FEATURE_CONFIG_REGISTER.
52 MSR_XEON_5600_FEATURE_CONFIG_REGISTER Msr;
54 Msr.Uint64 = AsmReadMsr64 (MSR_XEON_5600_FEATURE_CONFIG);
55 AsmWriteMsr64 (MSR_XEON_5600_FEATURE_CONFIG, Msr.Uint64);
57 @note MSR_XEON_5600_FEATURE_CONFIG is defined as MSR_FEATURE_CONFIG in SDM.
59 #define MSR_XEON_5600_FEATURE_CONFIG 0x0000013C
62 MSR information returned for MSR index #MSR_XEON_5600_FEATURE_CONFIG
66 /// Individual bit fields
70 /// [Bits 1:0] AES Configuration (RW-L) Upon a successful read of this
71 /// MSR, the configuration of AES instruction set availability is as
72 /// follows: 11b: AES instructions are not available until next RESET.
73 /// otherwise, AES instructions are available. Note, AES instruction set
74 /// is not available if read is unsuccessful. If the configuration is not
75 /// 01b, AES instruction can be mis-configured if a privileged agent
76 /// unintentionally writes 11b.
78 UINT32 AESConfiguration
: 2;
79 UINT32 Reserved1
: 30;
80 UINT32 Reserved2
: 32;
83 /// All bit fields as a 32-bit value
87 /// All bit fields as a 64-bit value
90 } MSR_XEON_5600_FEATURE_CONFIG_REGISTER
;
93 Thread. Offcore Response Event Select Register (R/W).
95 @param ECX MSR_XEON_5600_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_5600_OFFCORE_RSP_1);
104 AsmWriteMsr64 (MSR_XEON_5600_OFFCORE_RSP_1, Msr);
106 @note MSR_XEON_5600_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.
108 #define MSR_XEON_5600_OFFCORE_RSP_1 0x000001A7
111 Package. Maximum Ratio Limit of Turbo Mode RO if MSR_PLATFORM_INFO.[28] = 0,
112 RW if MSR_PLATFORM_INFO.[28] = 1.
114 @param ECX MSR_XEON_5600_TURBO_RATIO_LIMIT (0x000001AD)
115 @param EAX Lower 32-bits of MSR value.
116 Described by the type MSR_XEON_5600_TURBO_RATIO_LIMIT_REGISTER.
117 @param EDX Upper 32-bits of MSR value.
118 Described by the type MSR_XEON_5600_TURBO_RATIO_LIMIT_REGISTER.
122 MSR_XEON_5600_TURBO_RATIO_LIMIT_REGISTER Msr;
124 Msr.Uint64 = AsmReadMsr64 (MSR_XEON_5600_TURBO_RATIO_LIMIT);
126 @note MSR_XEON_5600_TURBO_RATIO_LIMIT is defined as MSR_TURBO_RATIO_LIMIT in SDM.
128 #define MSR_XEON_5600_TURBO_RATIO_LIMIT 0x000001AD
131 MSR information returned for MSR index #MSR_XEON_5600_TURBO_RATIO_LIMIT_REGISTER
135 /// Individual bit fields
139 /// [Bits 7:0] Package. Maximum Ratio Limit for 1C Maximum turbo ratio
140 /// limit of 1 core active.
142 UINT32 Maximum1C
: 8;
144 /// [Bits 15:8] Package. Maximum Ratio Limit for 2C Maximum turbo ratio
145 /// limit of 2 core active.
147 UINT32 Maximum2C
: 8;
149 /// [Bits 23:16] Package. Maximum Ratio Limit for 3C Maximum turbo ratio
150 /// limit of 3 core active.
152 UINT32 Maximum3C
: 8;
154 /// [Bits 31:24] Package. Maximum Ratio Limit for 4C Maximum turbo ratio
155 /// limit of 4 core active.
157 UINT32 Maximum4C
: 8;
159 /// [Bits 39:32] Package. Maximum Ratio Limit for 5C Maximum turbo ratio
160 /// limit of 5 core active.
162 UINT32 Maximum5C
: 8;
164 /// [Bits 47:40] Package. Maximum Ratio Limit for 6C Maximum turbo ratio
165 /// limit of 6 core active.
167 UINT32 Maximum6C
: 8;
168 UINT32 Reserved
: 16;
171 /// All bit fields as a 64-bit value
174 } MSR_XEON_5600_TURBO_RATIO_LIMIT_REGISTER
;
177 Package. See Table 2-2.
179 @param ECX MSR_XEON_5600_IA32_ENERGY_PERF_BIAS (0x000001B0)
180 @param EAX Lower 32-bits of MSR value.
181 @param EDX Upper 32-bits of MSR value.
187 Msr = AsmReadMsr64 (MSR_XEON_5600_IA32_ENERGY_PERF_BIAS);
188 AsmWriteMsr64 (MSR_XEON_5600_IA32_ENERGY_PERF_BIAS, Msr);
190 @note MSR_XEON_5600_IA32_ENERGY_PERF_BIAS is defined as IA32_ENERGY_PERF_BIAS in SDM.
192 #define MSR_XEON_5600_IA32_ENERGY_PERF_BIAS 0x000001B0