]> git.proxmox.com Git - mirror_edk2.git/blame - UefiCpuPkg/Include/Register/Msr/SandyBridgeMsr.h
UefiCpuPkg/Include: Update MSR header files with SDM (Sep.2016)
[mirror_edk2.git] / UefiCpuPkg / Include / Register / Msr / SandyBridgeMsr.h
CommitLineData
dc5d621c
MK
1/** @file\r
2 MSR Definitions for Intel processors based on the Sandy Bridge microarchitecture.\r
3\r
4 Provides defines for Machine Specific Registers(MSR) indexes. Data structures\r
5 are provided for MSRs that contain one or more bit fields. If the MSR value\r
6 returned is a single 32-bit or 64-bit value, then a data structure is not\r
7 provided for that MSR.\r
8\r
9 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
10 This program and the accompanying materials\r
11 are licensed and made available under the terms and conditions of the BSD License\r
12 which accompanies this distribution. The full text of the license may be found at\r
13 http://opensource.org/licenses/bsd-license.php\r
14\r
15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
16 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
17\r
18 @par Specification Reference:\r
19 Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,\r
0f16be6d 20 September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.9.\r
dc5d621c
MK
21\r
22**/\r
23\r
24#ifndef __SANDY_BRIDGE_MSR_H__\r
25#define __SANDY_BRIDGE_MSR_H__\r
26\r
27#include <Register/ArchitecturalMsr.h>\r
28\r
29/**\r
30 Thread. SMI Counter (R/O).\r
31\r
32 @param ECX MSR_SANDY_BRIDGE_SMI_COUNT (0x00000034)\r
33 @param EAX Lower 32-bits of MSR value.\r
34 Described by the type MSR_SANDY_BRIDGE_SMI_COUNT_REGISTER.\r
35 @param EDX Upper 32-bits of MSR value.\r
36 Described by the type MSR_SANDY_BRIDGE_SMI_COUNT_REGISTER.\r
37\r
38 <b>Example usage</b>\r
39 @code\r
40 MSR_SANDY_BRIDGE_SMI_COUNT_REGISTER Msr;\r
41\r
42 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_SMI_COUNT);\r
43 @endcode\r
367f5c9c 44 @note MSR_SANDY_BRIDGE_SMI_COUNT is defined as MSR_SMI_COUNT in SDM.\r
dc5d621c
MK
45**/\r
46#define MSR_SANDY_BRIDGE_SMI_COUNT 0x00000034\r
47\r
48/**\r
49 MSR information returned for MSR index #MSR_SANDY_BRIDGE_SMI_COUNT\r
50**/\r
51typedef union {\r
52 ///\r
53 /// Individual bit fields\r
54 ///\r
55 struct {\r
56 ///\r
57 /// [Bits 31:0] SMI Count (R/O) Count SMIs.\r
58 ///\r
59 UINT32 SMICount:32;\r
60 UINT32 Reserved:32;\r
61 } Bits;\r
62 ///\r
63 /// All bit fields as a 32-bit value\r
64 ///\r
65 UINT32 Uint32;\r
66 ///\r
67 /// All bit fields as a 64-bit value\r
68 ///\r
69 UINT64 Uint64;\r
70} MSR_SANDY_BRIDGE_SMI_COUNT_REGISTER;\r
71\r
72\r
73/**\r
74 Package. See http://biosbits.org.\r
75\r
76 @param ECX MSR_SANDY_BRIDGE_PLATFORM_INFO (0x000000CE)\r
77 @param EAX Lower 32-bits of MSR value.\r
78 Described by the type MSR_SANDY_BRIDGE_PLATFORM_INFO_REGISTER.\r
79 @param EDX Upper 32-bits of MSR value.\r
80 Described by the type MSR_SANDY_BRIDGE_PLATFORM_INFO_REGISTER.\r
81\r
82 <b>Example usage</b>\r
83 @code\r
84 MSR_SANDY_BRIDGE_PLATFORM_INFO_REGISTER Msr;\r
85\r
86 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PLATFORM_INFO);\r
87 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PLATFORM_INFO, Msr.Uint64);\r
88 @endcode\r
367f5c9c 89 @note MSR_SANDY_BRIDGE_PLATFORM_INFO is defined as MSR_PLATFORM_INFO in SDM.\r
dc5d621c
MK
90**/\r
91#define MSR_SANDY_BRIDGE_PLATFORM_INFO 0x000000CE\r
92\r
93/**\r
94 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PLATFORM_INFO\r
95**/\r
96typedef union {\r
97 ///\r
98 /// Individual bit fields\r
99 ///\r
100 struct {\r
101 UINT32 Reserved1:8;\r
102 ///\r
103 /// [Bits 15:8] Package. Maximum Non-Turbo Ratio (R/O) The is the ratio\r
104 /// of the frequency that invariant TSC runs at. Frequency = ratio * 100\r
105 /// MHz.\r
106 ///\r
107 UINT32 MaximumNonTurboRatio:8;\r
108 UINT32 Reserved2:12;\r
109 ///\r
110 /// [Bit 28] Package. Programmable Ratio Limit for Turbo Mode (R/O) When\r
111 /// set to 1, indicates that Programmable Ratio Limits for Turbo mode is\r
112 /// enabled, and when set to 0, indicates Programmable Ratio Limits for\r
113 /// Turbo mode is disabled.\r
114 ///\r
115 UINT32 RatioLimit:1;\r
116 ///\r
117 /// [Bit 29] Package. Programmable TDP Limit for Turbo Mode (R/O) When\r
118 /// set to 1, indicates that TDP Limits for Turbo mode are programmable,\r
119 /// and when set to 0, indicates TDP Limit for Turbo mode is not\r
120 /// programmable.\r
121 ///\r
122 UINT32 TDPLimit:1;\r
123 UINT32 Reserved3:2;\r
124 UINT32 Reserved4:8;\r
125 ///\r
126 /// [Bits 47:40] Package. Maximum Efficiency Ratio (R/O) The is the\r
127 /// minimum ratio (maximum efficiency) that the processor can operates, in\r
128 /// units of 100MHz.\r
129 ///\r
130 UINT32 MaximumEfficiencyRatio:8;\r
131 UINT32 Reserved5:16;\r
132 } Bits;\r
133 ///\r
134 /// All bit fields as a 64-bit value\r
135 ///\r
136 UINT64 Uint64;\r
137} MSR_SANDY_BRIDGE_PLATFORM_INFO_REGISTER;\r
138\r
139\r
140/**\r
141 Core. C-State Configuration Control (R/W) Note: C-state values are\r
142 processor specific C-state code names, unrelated to MWAIT extension C-state\r
143 parameters or ACPI CStates. See http://biosbits.org.\r
144\r
145 @param ECX MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL (0x000000E2)\r
146 @param EAX Lower 32-bits of MSR value.\r
147 Described by the type MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL_REGISTER.\r
148 @param EDX Upper 32-bits of MSR value.\r
149 Described by the type MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL_REGISTER.\r
150\r
151 <b>Example usage</b>\r
152 @code\r
153 MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL_REGISTER Msr;\r
154\r
155 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL);\r
156 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL, Msr.Uint64);\r
157 @endcode\r
367f5c9c 158 @note MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL is defined as MSR_PKG_CST_CONFIG_CONTROL in SDM.\r
dc5d621c
MK
159**/\r
160#define MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL 0x000000E2\r
161\r
162/**\r
163 MSR information returned for MSR index\r
164 #MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL\r
165**/\r
166typedef union {\r
167 ///\r
168 /// Individual bit fields\r
169 ///\r
170 struct {\r
171 ///\r
172 /// [Bits 2:0] Package C-State Limit (R/W) Specifies the lowest\r
173 /// processor-specific C-state code name (consuming the least power). for\r
174 /// the package. The default is set as factory-configured package C-state\r
175 /// limit. The following C-state code name encodings are supported: 000b:\r
176 /// C0/C1 (no package C-sate support) 001b: C2 010b: C6 no retention 011b:\r
177 /// C6 retention 100b: C7 101b: C7s 111: No package C-state limit. Note:\r
178 /// This field cannot be used to limit package C-state to C3.\r
179 ///\r
180 UINT32 Limit:3;\r
181 UINT32 Reserved1:7;\r
182 ///\r
183 /// [Bit 10] I/O MWAIT Redirection Enable (R/W) When set, will map\r
184 /// IO_read instructions sent to IO register specified by\r
185 /// MSR_PMG_IO_CAPTURE_BASE to MWAIT instructions.\r
186 ///\r
187 UINT32 IO_MWAIT:1;\r
188 UINT32 Reserved2:4;\r
189 ///\r
190 /// [Bit 15] CFG Lock (R/WO) When set, lock bits 15:0 of this register\r
191 /// until next reset.\r
192 ///\r
193 UINT32 CFGLock:1;\r
194 UINT32 Reserved3:9;\r
195 ///\r
196 /// [Bit 25] C3 state auto demotion enable (R/W) When set, the processor\r
197 /// will conditionally demote C6/C7 requests to C3 based on uncore\r
198 /// auto-demote information.\r
199 ///\r
200 UINT32 C3AutoDemotion:1;\r
201 ///\r
202 /// [Bit 26] C1 state auto demotion enable (R/W) When set, the processor\r
203 /// will conditionally demote C3/C6/C7 requests to C1 based on uncore\r
204 /// auto-demote information.\r
205 ///\r
206 UINT32 C1AutoDemotion:1;\r
207 ///\r
208 /// [Bit 27] Enable C3 undemotion (R/W) When set, enables undemotion from\r
209 /// demoted C3.\r
210 ///\r
211 UINT32 C3Undemotion:1;\r
212 ///\r
213 /// [Bit 28] Enable C1 undemotion (R/W) When set, enables undemotion from\r
214 /// demoted C1.\r
215 ///\r
216 UINT32 C1Undemotion:1;\r
217 UINT32 Reserved4:3;\r
218 UINT32 Reserved5:32;\r
219 } Bits;\r
220 ///\r
221 /// All bit fields as a 32-bit value\r
222 ///\r
223 UINT32 Uint32;\r
224 ///\r
225 /// All bit fields as a 64-bit value\r
226 ///\r
227 UINT64 Uint64;\r
228} MSR_SANDY_BRIDGE_PKG_CST_CONFIG_CONTROL_REGISTER;\r
229\r
230\r
231/**\r
232 Core. Power Management IO Redirection in C-state (R/W) See\r
233 http://biosbits.org.\r
234\r
235 @param ECX MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE (0x000000E4)\r
236 @param EAX Lower 32-bits of MSR value.\r
237 Described by the type MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE_REGISTER.\r
238 @param EDX Upper 32-bits of MSR value.\r
239 Described by the type MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE_REGISTER.\r
240\r
241 <b>Example usage</b>\r
242 @code\r
243 MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE_REGISTER Msr;\r
244\r
245 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE);\r
246 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE, Msr.Uint64);\r
247 @endcode\r
367f5c9c 248 @note MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE is defined as MSR_PMG_IO_CAPTURE_BASE in SDM.\r
dc5d621c
MK
249**/\r
250#define MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE 0x000000E4\r
251\r
252/**\r
253 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE\r
254**/\r
255typedef union {\r
256 ///\r
257 /// Individual bit fields\r
258 ///\r
259 struct {\r
260 ///\r
261 /// [Bits 15:0] LVL_2 Base Address (R/W) Specifies the base address\r
262 /// visible to software for IO redirection. If IO MWAIT Redirection is\r
263 /// enabled, reads to this address will be consumed by the power\r
264 /// management logic and decoded to MWAIT instructions. When IO port\r
265 /// address redirection is enabled, this is the IO port address reported\r
266 /// to the OS/software.\r
267 ///\r
268 UINT32 Lvl2Base:16;\r
269 ///\r
270 /// [Bits 18:16] C-state Range (R/W) Specifies the encoding value of the\r
271 /// maximum C-State code name to be included when IO read to MWAIT\r
272 /// redirection is enabled by MSR_PKG_CST_CONFIG_CONTROL[bit10]: 000b - C3\r
273 /// is the max C-State to include 001b - C6 is the max C-State to include\r
274 /// 010b - C7 is the max C-State to include.\r
275 ///\r
276 UINT32 CStateRange:3;\r
277 UINT32 Reserved1:13;\r
278 UINT32 Reserved2:32;\r
279 } Bits;\r
280 ///\r
281 /// All bit fields as a 32-bit value\r
282 ///\r
283 UINT32 Uint32;\r
284 ///\r
285 /// All bit fields as a 64-bit value\r
286 ///\r
287 UINT64 Uint64;\r
288} MSR_SANDY_BRIDGE_PMG_IO_CAPTURE_BASE_REGISTER;\r
289\r
290\r
291/**\r
292 Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP\r
293 handler to handle unsuccessful read of this MSR.\r
294\r
295 @param ECX MSR_SANDY_BRIDGE_FEATURE_CONFIG (0x0000013C)\r
296 @param EAX Lower 32-bits of MSR value.\r
297 Described by the type MSR_SANDY_BRIDGE_FEATURE_CONFIG_REGISTER.\r
298 @param EDX Upper 32-bits of MSR value.\r
299 Described by the type MSR_SANDY_BRIDGE_FEATURE_CONFIG_REGISTER.\r
300\r
301 <b>Example usage</b>\r
302 @code\r
303 MSR_SANDY_BRIDGE_FEATURE_CONFIG_REGISTER Msr;\r
304\r
305 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_FEATURE_CONFIG);\r
306 AsmWriteMsr64 (MSR_SANDY_BRIDGE_FEATURE_CONFIG, Msr.Uint64);\r
307 @endcode\r
367f5c9c 308 @note MSR_SANDY_BRIDGE_FEATURE_CONFIG is defined as MSR_FEATURE_CONFIG in SDM.\r
dc5d621c
MK
309**/\r
310#define MSR_SANDY_BRIDGE_FEATURE_CONFIG 0x0000013C\r
311\r
312/**\r
313 MSR information returned for MSR index #MSR_SANDY_BRIDGE_FEATURE_CONFIG\r
314**/\r
315typedef union {\r
316 ///\r
317 /// Individual bit fields\r
318 ///\r
319 struct {\r
320 ///\r
321 /// [Bits 1:0] AES Configuration (RW-L) Upon a successful read of this\r
322 /// MSR, the configuration of AES instruction set availability is as\r
323 /// follows: 11b: AES instructions are not available until next RESET.\r
324 /// otherwise, AES instructions are available. Note, AES instruction set\r
325 /// is not available if read is unsuccessful. If the configuration is not\r
326 /// 01b, AES instruction can be mis-configured if a privileged agent\r
327 /// unintentionally writes 11b.\r
328 ///\r
329 UINT32 AESConfiguration:2;\r
330 UINT32 Reserved1:30;\r
331 UINT32 Reserved2:32;\r
332 } Bits;\r
333 ///\r
334 /// All bit fields as a 32-bit value\r
335 ///\r
336 UINT32 Uint32;\r
337 ///\r
338 /// All bit fields as a 64-bit value\r
339 ///\r
340 UINT64 Uint64;\r
341} MSR_SANDY_BRIDGE_FEATURE_CONFIG_REGISTER;\r
342\r
343\r
344/**\r
345 Core. See Table 35-2; If CPUID.0AH:EAX[15:8] = 8.\r
346\r
347 @param ECX MSR_SANDY_BRIDGE_IA32_PERFEVTSELn\r
348 @param EAX Lower 32-bits of MSR value.\r
349 @param EDX Upper 32-bits of MSR value.\r
350\r
351 <b>Example usage</b>\r
352 @code\r
353 UINT64 Msr;\r
354\r
355 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_PERFEVTSEL4);\r
356 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_PERFEVTSEL4, Msr);\r
357 @endcode\r
367f5c9c
JF
358 @note MSR_SANDY_BRIDGE_IA32_PERFEVTSEL4 is defined as IA32_PERFEVTSEL4 in SDM.\r
359 MSR_SANDY_BRIDGE_IA32_PERFEVTSEL5 is defined as IA32_PERFEVTSEL5 in SDM.\r
360 MSR_SANDY_BRIDGE_IA32_PERFEVTSEL6 is defined as IA32_PERFEVTSEL6 in SDM.\r
361 MSR_SANDY_BRIDGE_IA32_PERFEVTSEL7 is defined as IA32_PERFEVTSEL7 in SDM.\r
dc5d621c
MK
362 @{\r
363**/\r
364#define MSR_SANDY_BRIDGE_IA32_PERFEVTSEL4 0x0000018A\r
365#define MSR_SANDY_BRIDGE_IA32_PERFEVTSEL5 0x0000018B\r
366#define MSR_SANDY_BRIDGE_IA32_PERFEVTSEL6 0x0000018C\r
367#define MSR_SANDY_BRIDGE_IA32_PERFEVTSEL7 0x0000018D\r
368/// @}\r
369\r
370\r
371/**\r
372 Package.\r
373\r
374 @param ECX MSR_SANDY_BRIDGE_PERF_STATUS (0x00000198)\r
375 @param EAX Lower 32-bits of MSR value.\r
376 Described by the type MSR_SANDY_BRIDGE_PERF_STATUS_REGISTER.\r
377 @param EDX Upper 32-bits of MSR value.\r
378 Described by the type MSR_SANDY_BRIDGE_PERF_STATUS_REGISTER.\r
379\r
380 <b>Example usage</b>\r
381 @code\r
382 MSR_SANDY_BRIDGE_PERF_STATUS_REGISTER Msr;\r
383\r
384 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PERF_STATUS);\r
385 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PERF_STATUS, Msr.Uint64);\r
386 @endcode\r
367f5c9c 387 @note MSR_SANDY_BRIDGE_PERF_STATUS is defined as MSR_PERF_STATUS in SDM.\r
dc5d621c
MK
388**/\r
389#define MSR_SANDY_BRIDGE_PERF_STATUS 0x00000198\r
390\r
391/**\r
392 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PERF_STATUS\r
393**/\r
394typedef union {\r
395 ///\r
396 /// Individual bit fields\r
397 ///\r
398 struct {\r
399 UINT32 Reserved1:32;\r
400 ///\r
401 /// [Bits 47:32] Core Voltage (R/O) P-state core voltage can be computed\r
402 /// by MSR_PERF_STATUS[37:32] * (float) 1/(2^13).\r
403 ///\r
404 UINT32 CoreVoltage:16;\r
405 UINT32 Reserved2:16;\r
406 } Bits;\r
407 ///\r
408 /// All bit fields as a 64-bit value\r
409 ///\r
410 UINT64 Uint64;\r
411} MSR_SANDY_BRIDGE_PERF_STATUS_REGISTER;\r
412\r
413\r
414/**\r
415 Thread. Clock Modulation (R/W) See Table 35-2 IA32_CLOCK_MODULATION MSR was\r
416 originally named IA32_THERM_CONTROL MSR.\r
417\r
418 @param ECX MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION (0x0000019A)\r
419 @param EAX Lower 32-bits of MSR value.\r
420 Described by the type MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION_REGISTER.\r
421 @param EDX Upper 32-bits of MSR value.\r
422 Described by the type MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION_REGISTER.\r
423\r
424 <b>Example usage</b>\r
425 @code\r
426 MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION_REGISTER Msr;\r
427\r
428 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION);\r
429 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION, Msr.Uint64);\r
430 @endcode\r
367f5c9c 431 @note MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION is defined as IA32_CLOCK_MODULATION in SDM.\r
dc5d621c
MK
432**/\r
433#define MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION 0x0000019A\r
434\r
435/**\r
436 MSR information returned for MSR index\r
437 #MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION\r
438**/\r
439typedef union {\r
440 ///\r
441 /// Individual bit fields\r
442 ///\r
443 struct {\r
444 ///\r
445 /// [Bits 3:0] On demand Clock Modulation Duty Cycle (R/W) In 6.25%\r
446 /// increment.\r
447 ///\r
448 UINT32 OnDemandClockModulationDutyCycle:4;\r
449 ///\r
450 /// [Bit 4] On demand Clock Modulation Enable (R/W).\r
451 ///\r
452 UINT32 OnDemandClockModulationEnable:1;\r
453 UINT32 Reserved1:27;\r
454 UINT32 Reserved2:32;\r
455 } Bits;\r
456 ///\r
457 /// All bit fields as a 32-bit value\r
458 ///\r
459 UINT32 Uint32;\r
460 ///\r
461 /// All bit fields as a 64-bit value\r
462 ///\r
463 UINT64 Uint64;\r
464} MSR_SANDY_BRIDGE_IA32_CLOCK_MODULATION_REGISTER;\r
465\r
466\r
467/**\r
468 Enable Misc. Processor Features (R/W) Allows a variety of processor\r
469 functions to be enabled and disabled.\r
470\r
471 @param ECX MSR_SANDY_BRIDGE_IA32_MISC_ENABLE (0x000001A0)\r
472 @param EAX Lower 32-bits of MSR value.\r
473 Described by the type MSR_SANDY_BRIDGE_IA32_MISC_ENABLE_REGISTER.\r
474 @param EDX Upper 32-bits of MSR value.\r
475 Described by the type MSR_SANDY_BRIDGE_IA32_MISC_ENABLE_REGISTER.\r
476\r
477 <b>Example usage</b>\r
478 @code\r
479 MSR_SANDY_BRIDGE_IA32_MISC_ENABLE_REGISTER Msr;\r
480\r
481 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_MISC_ENABLE);\r
482 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_MISC_ENABLE, Msr.Uint64);\r
483 @endcode\r
367f5c9c 484 @note MSR_SANDY_BRIDGE_IA32_MISC_ENABLE is defined as IA32_MISC_ENABLE in SDM.\r
dc5d621c
MK
485**/\r
486#define MSR_SANDY_BRIDGE_IA32_MISC_ENABLE 0x000001A0\r
487\r
488/**\r
489 MSR information returned for MSR index #MSR_SANDY_BRIDGE_IA32_MISC_ENABLE\r
490**/\r
491typedef union {\r
492 ///\r
493 /// Individual bit fields\r
494 ///\r
495 struct {\r
496 ///\r
497 /// [Bit 0] Thread. Fast-Strings Enable See Table 35-2.\r
498 ///\r
499 UINT32 FastStrings:1;\r
500 UINT32 Reserved1:6;\r
501 ///\r
502 /// [Bit 7] Thread. Performance Monitoring Available (R) See Table 35-2.\r
503 ///\r
504 UINT32 PerformanceMonitoring:1;\r
505 UINT32 Reserved2:3;\r
506 ///\r
507 /// [Bit 11] Thread. Branch Trace Storage Unavailable (RO) See Table 35-2.\r
508 ///\r
509 UINT32 BTS:1;\r
510 ///\r
0f16be6d 511 /// [Bit 12] Thread. Processor Event Based Sampling Unavailable (RO) See\r
dc5d621c
MK
512 /// Table 35-2.\r
513 ///\r
514 UINT32 PEBS:1;\r
515 UINT32 Reserved3:3;\r
516 ///\r
517 /// [Bit 16] Package. Enhanced Intel SpeedStep Technology Enable (R/W) See\r
518 /// Table 35-2.\r
519 ///\r
520 UINT32 EIST:1;\r
521 UINT32 Reserved4:1;\r
522 ///\r
523 /// [Bit 18] Thread. ENABLE MONITOR FSM. (R/W) See Table 35-2.\r
524 ///\r
525 UINT32 MONITOR:1;\r
526 UINT32 Reserved5:3;\r
527 ///\r
528 /// [Bit 22] Thread. Limit CPUID Maxval (R/W) See Table 35-2.\r
529 ///\r
530 UINT32 LimitCpuidMaxval:1;\r
531 ///\r
532 /// [Bit 23] Thread. xTPR Message Disable (R/W) See Table 35-2.\r
533 ///\r
534 UINT32 xTPR_Message_Disable:1;\r
535 UINT32 Reserved6:8;\r
536 UINT32 Reserved7:2;\r
537 ///\r
538 /// [Bit 34] Thread. XD Bit Disable (R/W) See Table 35-2.\r
539 ///\r
540 UINT32 XD:1;\r
541 UINT32 Reserved8:3;\r
542 ///\r
543 /// [Bit 38] Package. Turbo Mode Disable (R/W) When set to 1 on processors\r
544 /// that support Intel Turbo Boost Technology, the turbo mode feature is\r
545 /// disabled and the IDA_Enable feature flag will be clear (CPUID.06H:\r
546 /// EAX[1]=0). When set to a 0 on processors that support IDA, CPUID.06H:\r
547 /// EAX[1] reports the processor's support of turbo mode is enabled. Note:\r
548 /// the power-on default value is used by BIOS to detect hardware support\r
549 /// of turbo mode. If power-on default value is 1, turbo mode is available\r
550 /// in the processor. If power-on default value is 0, turbo mode is not\r
551 /// available.\r
552 ///\r
553 UINT32 TurboModeDisable:1;\r
554 UINT32 Reserved9:25;\r
555 } Bits;\r
556 ///\r
557 /// All bit fields as a 64-bit value\r
558 ///\r
559 UINT64 Uint64;\r
560} MSR_SANDY_BRIDGE_IA32_MISC_ENABLE_REGISTER;\r
561\r
562\r
563/**\r
564 Unique.\r
565\r
566 @param ECX MSR_SANDY_BRIDGE_TEMPERATURE_TARGET (0x000001A2)\r
567 @param EAX Lower 32-bits of MSR value.\r
568 Described by the type MSR_SANDY_BRIDGE_TEMPERATURE_TARGET_REGISTER.\r
569 @param EDX Upper 32-bits of MSR value.\r
570 Described by the type MSR_SANDY_BRIDGE_TEMPERATURE_TARGET_REGISTER.\r
571\r
572 <b>Example usage</b>\r
573 @code\r
574 MSR_SANDY_BRIDGE_TEMPERATURE_TARGET_REGISTER Msr;\r
575\r
576 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_TEMPERATURE_TARGET);\r
577 AsmWriteMsr64 (MSR_SANDY_BRIDGE_TEMPERATURE_TARGET, Msr.Uint64);\r
578 @endcode\r
367f5c9c 579 @note MSR_SANDY_BRIDGE_TEMPERATURE_TARGET is defined as MSR_TEMPERATURE_TARGET in SDM.\r
dc5d621c
MK
580**/\r
581#define MSR_SANDY_BRIDGE_TEMPERATURE_TARGET 0x000001A2\r
582\r
583/**\r
584 MSR information returned for MSR index #MSR_SANDY_BRIDGE_TEMPERATURE_TARGET\r
585**/\r
586typedef union {\r
587 ///\r
588 /// Individual bit fields\r
589 ///\r
590 struct {\r
591 UINT32 Reserved1:16;\r
592 ///\r
593 /// [Bits 23:16] Temperature Target (R) The minimum temperature at which\r
594 /// PROCHOT# will be asserted. The value is degree C.\r
595 ///\r
596 UINT32 TemperatureTarget:8;\r
597 UINT32 Reserved2:8;\r
598 UINT32 Reserved3:32;\r
599 } Bits;\r
600 ///\r
601 /// All bit fields as a 32-bit value\r
602 ///\r
603 UINT32 Uint32;\r
604 ///\r
605 /// All bit fields as a 64-bit value\r
606 ///\r
607 UINT64 Uint64;\r
608} MSR_SANDY_BRIDGE_TEMPERATURE_TARGET_REGISTER;\r
609\r
610\r
611/**\r
612 Miscellaneous Feature Control (R/W).\r
613\r
614 @param ECX MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL (0x000001A4)\r
615 @param EAX Lower 32-bits of MSR value.\r
616 Described by the type MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL_REGISTER.\r
617 @param EDX Upper 32-bits of MSR value.\r
618 Described by the type MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL_REGISTER.\r
619\r
620 <b>Example usage</b>\r
621 @code\r
622 MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL_REGISTER Msr;\r
623\r
624 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL);\r
625 AsmWriteMsr64 (MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL, Msr.Uint64);\r
626 @endcode\r
367f5c9c 627 @note MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL is defined as MSR_MISC_FEATURE_CONTROL in SDM.\r
dc5d621c
MK
628**/\r
629#define MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL 0x000001A4\r
630\r
631/**\r
632 MSR information returned for MSR index #MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL\r
633**/\r
634typedef union {\r
635 ///\r
636 /// Individual bit fields\r
637 ///\r
638 struct {\r
639 ///\r
640 /// [Bit 0] Core. L2 Hardware Prefetcher Disable (R/W) If 1, disables the\r
641 /// L2 hardware prefetcher, which fetches additional lines of code or data\r
642 /// into the L2 cache.\r
643 ///\r
644 UINT32 L2HardwarePrefetcherDisable:1;\r
645 ///\r
646 /// [Bit 1] Core. L2 Adjacent Cache Line Prefetcher Disable (R/W) If 1,\r
647 /// disables the adjacent cache line prefetcher, which fetches the cache\r
648 /// line that comprises a cache line pair (128 bytes).\r
649 ///\r
650 UINT32 L2AdjacentCacheLinePrefetcherDisable:1;\r
651 ///\r
652 /// [Bit 2] Core. DCU Hardware Prefetcher Disable (R/W) If 1, disables\r
653 /// the L1 data cache prefetcher, which fetches the next cache line into\r
654 /// L1 data cache.\r
655 ///\r
656 UINT32 DCUHardwarePrefetcherDisable:1;\r
657 ///\r
658 /// [Bit 3] Core. DCU IP Prefetcher Disable (R/W) If 1, disables the L1\r
659 /// data cache IP prefetcher, which uses sequential load history (based on\r
660 /// instruction Pointer of previous loads) to determine whether to\r
661 /// prefetch additional lines.\r
662 ///\r
663 UINT32 DCUIPPrefetcherDisable:1;\r
664 UINT32 Reserved1:28;\r
665 UINT32 Reserved2:32;\r
666 } Bits;\r
667 ///\r
668 /// All bit fields as a 32-bit value\r
669 ///\r
670 UINT32 Uint32;\r
671 ///\r
672 /// All bit fields as a 64-bit value\r
673 ///\r
674 UINT64 Uint64;\r
675} MSR_SANDY_BRIDGE_MISC_FEATURE_CONTROL_REGISTER;\r
676\r
677\r
678/**\r
679 Thread. Offcore Response Event Select Register (R/W).\r
680\r
681 @param ECX MSR_SANDY_BRIDGE_OFFCORE_RSP_0 (0x000001A6)\r
682 @param EAX Lower 32-bits of MSR value.\r
683 @param EDX Upper 32-bits of MSR value.\r
684\r
685 <b>Example usage</b>\r
686 @code\r
687 UINT64 Msr;\r
688\r
689 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_OFFCORE_RSP_0);\r
690 AsmWriteMsr64 (MSR_SANDY_BRIDGE_OFFCORE_RSP_0, Msr);\r
691 @endcode\r
367f5c9c 692 @note MSR_SANDY_BRIDGE_OFFCORE_RSP_0 is defined as MSR_OFFCORE_RSP_0 in SDM.\r
dc5d621c
MK
693**/\r
694#define MSR_SANDY_BRIDGE_OFFCORE_RSP_0 0x000001A6\r
695\r
696\r
697/**\r
698 Thread. Offcore Response Event Select Register (R/W).\r
699\r
700 @param ECX MSR_SANDY_BRIDGE_OFFCORE_RSP_1 (0x000001A7)\r
701 @param EAX Lower 32-bits of MSR value.\r
702 @param EDX Upper 32-bits of MSR value.\r
703\r
704 <b>Example usage</b>\r
705 @code\r
706 UINT64 Msr;\r
707\r
708 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_OFFCORE_RSP_1);\r
709 AsmWriteMsr64 (MSR_SANDY_BRIDGE_OFFCORE_RSP_1, Msr);\r
710 @endcode\r
367f5c9c 711 @note MSR_SANDY_BRIDGE_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.\r
dc5d621c
MK
712**/\r
713#define MSR_SANDY_BRIDGE_OFFCORE_RSP_1 0x000001A7\r
714\r
715\r
716/**\r
717 See http://biosbits.org.\r
718\r
719 @param ECX MSR_SANDY_BRIDGE_MISC_PWR_MGMT (0x000001AA)\r
720 @param EAX Lower 32-bits of MSR value.\r
721 @param EDX Upper 32-bits of MSR value.\r
722\r
723 <b>Example usage</b>\r
724 @code\r
725 UINT64 Msr;\r
726\r
727 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_MISC_PWR_MGMT);\r
728 AsmWriteMsr64 (MSR_SANDY_BRIDGE_MISC_PWR_MGMT, Msr);\r
729 @endcode\r
367f5c9c 730 @note MSR_SANDY_BRIDGE_MISC_PWR_MGMT is defined as MSR_MISC_PWR_MGMT in SDM.\r
dc5d621c
MK
731**/\r
732#define MSR_SANDY_BRIDGE_MISC_PWR_MGMT 0x000001AA\r
733\r
734\r
735/**\r
736 Thread. Last Branch Record Filtering Select Register (R/W) See Section\r
0f16be6d 737 17.7.2, "Filtering of Last Branch Records.".\r
dc5d621c
MK
738\r
739 @param ECX MSR_SANDY_BRIDGE_LBR_SELECT (0x000001C8)\r
740 @param EAX Lower 32-bits of MSR value.\r
741 Described by the type MSR_SANDY_BRIDGE_LBR_SELECT_REGISTER.\r
742 @param EDX Upper 32-bits of MSR value.\r
743 Described by the type MSR_SANDY_BRIDGE_LBR_SELECT_REGISTER.\r
744\r
745 <b>Example usage</b>\r
746 @code\r
747 MSR_SANDY_BRIDGE_LBR_SELECT_REGISTER Msr;\r
748\r
749 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_LBR_SELECT);\r
750 AsmWriteMsr64 (MSR_SANDY_BRIDGE_LBR_SELECT, Msr.Uint64);\r
751 @endcode\r
367f5c9c 752 @note MSR_SANDY_BRIDGE_LBR_SELECT is defined as MSR_LBR_SELECT in SDM.\r
dc5d621c
MK
753**/\r
754#define MSR_SANDY_BRIDGE_LBR_SELECT 0x000001C8\r
755\r
756/**\r
757 MSR information returned for MSR index #MSR_SANDY_BRIDGE_LBR_SELECT\r
758**/\r
759typedef union {\r
760 ///\r
761 /// Individual bit fields\r
762 ///\r
763 struct {\r
764 ///\r
765 /// [Bit 0] CPL_EQ_0.\r
766 ///\r
767 UINT32 CPL_EQ_0:1;\r
768 ///\r
769 /// [Bit 1] CPL_NEQ_0.\r
770 ///\r
771 UINT32 CPL_NEQ_0:1;\r
772 ///\r
773 /// [Bit 2] JCC.\r
774 ///\r
775 UINT32 JCC:1;\r
776 ///\r
777 /// [Bit 3] NEAR_REL_CALL.\r
778 ///\r
779 UINT32 NEAR_REL_CALL:1;\r
780 ///\r
781 /// [Bit 4] NEAR_IND_CALL.\r
782 ///\r
783 UINT32 NEAR_IND_CALL:1;\r
784 ///\r
785 /// [Bit 5] NEAR_RET.\r
786 ///\r
787 UINT32 NEAR_RET:1;\r
788 ///\r
789 /// [Bit 6] NEAR_IND_JMP.\r
790 ///\r
791 UINT32 NEAR_IND_JMP:1;\r
792 ///\r
793 /// [Bit 7] NEAR_REL_JMP.\r
794 ///\r
795 UINT32 NEAR_REL_JMP:1;\r
796 ///\r
797 /// [Bit 8] FAR_BRANCH.\r
798 ///\r
799 UINT32 FAR_BRANCH:1;\r
800 UINT32 Reserved1:23;\r
801 UINT32 Reserved2:32;\r
802 } Bits;\r
803 ///\r
804 /// All bit fields as a 32-bit value\r
805 ///\r
806 UINT32 Uint32;\r
807 ///\r
808 /// All bit fields as a 64-bit value\r
809 ///\r
810 UINT64 Uint64;\r
811} MSR_SANDY_BRIDGE_LBR_SELECT_REGISTER;\r
812\r
813\r
814/**\r
815 Thread. Last Branch Record Stack TOS (R/W) Contains an index (bits 0-3)\r
816 that points to the MSR containing the most recent branch record. See\r
817 MSR_LASTBRANCH_0_FROM_IP (at 680H).\r
818\r
819 @param ECX MSR_SANDY_BRIDGE_LASTBRANCH_TOS (0x000001C9)\r
820 @param EAX Lower 32-bits of MSR value.\r
821 @param EDX Upper 32-bits of MSR value.\r
822\r
823 <b>Example usage</b>\r
824 @code\r
825 UINT64 Msr;\r
826\r
827 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_LASTBRANCH_TOS);\r
828 AsmWriteMsr64 (MSR_SANDY_BRIDGE_LASTBRANCH_TOS, Msr);\r
829 @endcode\r
367f5c9c 830 @note MSR_SANDY_BRIDGE_LASTBRANCH_TOS is defined as MSR_LASTBRANCH_TOS in SDM.\r
dc5d621c
MK
831**/\r
832#define MSR_SANDY_BRIDGE_LASTBRANCH_TOS 0x000001C9\r
833\r
834\r
835/**\r
836 Thread. Last Exception Record From Linear IP (R) Contains a pointer to the\r
837 last branch instruction that the processor executed prior to the last\r
838 exception that was generated or the last interrupt that was handled.\r
839\r
840 @param ECX MSR_SANDY_BRIDGE_LER_FROM_LIP (0x000001DD)\r
841 @param EAX Lower 32-bits of MSR value.\r
842 @param EDX Upper 32-bits of MSR value.\r
843\r
844 <b>Example usage</b>\r
845 @code\r
846 UINT64 Msr;\r
847\r
848 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_LER_FROM_LIP);\r
849 @endcode\r
367f5c9c 850 @note MSR_SANDY_BRIDGE_LER_FROM_LIP is defined as MSR_LER_FROM_LIP in SDM.\r
dc5d621c
MK
851**/\r
852#define MSR_SANDY_BRIDGE_LER_FROM_LIP 0x000001DD\r
853\r
854\r
855/**\r
856 Thread. Last Exception Record To Linear IP (R) This area contains a pointer\r
857 to the target of the last branch instruction that the processor executed\r
858 prior to the last exception that was generated or the last interrupt that\r
859 was handled.\r
860\r
861 @param ECX MSR_SANDY_BRIDGE_LER_TO_LIP (0x000001DE)\r
862 @param EAX Lower 32-bits of MSR value.\r
863 @param EDX Upper 32-bits of MSR value.\r
864\r
865 <b>Example usage</b>\r
866 @code\r
867 UINT64 Msr;\r
868\r
869 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_LER_TO_LIP);\r
870 @endcode\r
367f5c9c 871 @note MSR_SANDY_BRIDGE_LER_TO_LIP is defined as MSR_LER_TO_LIP in SDM.\r
dc5d621c
MK
872**/\r
873#define MSR_SANDY_BRIDGE_LER_TO_LIP 0x000001DE\r
874\r
875\r
876/**\r
877 Core. See http://biosbits.org.\r
878\r
879 @param ECX MSR_SANDY_BRIDGE_POWER_CTL (0x000001FC)\r
880 @param EAX Lower 32-bits of MSR value.\r
881 @param EDX Upper 32-bits of MSR value.\r
882\r
883 <b>Example usage</b>\r
884 @code\r
885 UINT64 Msr;\r
886\r
887 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_POWER_CTL);\r
888 AsmWriteMsr64 (MSR_SANDY_BRIDGE_POWER_CTL, Msr);\r
889 @endcode\r
367f5c9c 890 @note MSR_SANDY_BRIDGE_POWER_CTL is defined as MSR_POWER_CTL in SDM.\r
dc5d621c
MK
891**/\r
892#define MSR_SANDY_BRIDGE_POWER_CTL 0x000001FC\r
893\r
894\r
895/**\r
896 Package. Always 0 (CMCI not supported).\r
897\r
0f16be6d 898 @param ECX MSR_SANDY_BRIDGE_IA32_MC4_CTL2 (0x00000284)\r
dc5d621c
MK
899 @param EAX Lower 32-bits of MSR value.\r
900 @param EDX Upper 32-bits of MSR value.\r
901\r
902 <b>Example usage</b>\r
903 @code\r
904 UINT64 Msr;\r
905\r
0f16be6d
HW
906 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL2);\r
907 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL2, Msr);\r
dc5d621c 908 @endcode\r
0f16be6d 909 @note MSR_SANDY_BRIDGE_IA32_MC4_CTL2 is defined as IA32_MC4_CTL2 in SDM.\r
dc5d621c 910**/\r
0f16be6d 911#define MSR_SANDY_BRIDGE_IA32_MC4_CTL2 0x00000284\r
dc5d621c
MK
912\r
913\r
914/**\r
915 See Table 35-2. See Section 18.4.2, "Global Counter Control Facilities.".\r
916\r
0f16be6d 917 @param ECX MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS (0x0000038E)\r
dc5d621c 918 @param EAX Lower 32-bits of MSR value.\r
0f16be6d 919 Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER.\r
dc5d621c 920 @param EDX Upper 32-bits of MSR value.\r
0f16be6d 921 Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER.\r
dc5d621c
MK
922\r
923 <b>Example usage</b>\r
924 @code\r
0f16be6d 925 MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER Msr;\r
dc5d621c 926\r
0f16be6d
HW
927 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS);\r
928 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS, Msr.Uint64);\r
dc5d621c 929 @endcode\r
0f16be6d 930 @note MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS is defined as IA32_PERF_GLOBAL_STATUS in SDM.\r
dc5d621c 931**/\r
0f16be6d 932#define MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS 0x0000038E\r
dc5d621c
MK
933\r
934/**\r
935 MSR information returned for MSR index\r
0f16be6d 936 #MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS\r
dc5d621c
MK
937**/\r
938typedef union {\r
939 ///\r
940 /// Individual bit fields\r
941 ///\r
942 struct {\r
943 ///\r
944 /// [Bit 0] Thread. Ovf_PMC0.\r
945 ///\r
946 UINT32 Ovf_PMC0:1;\r
947 ///\r
948 /// [Bit 1] Thread. Ovf_PMC1.\r
949 ///\r
950 UINT32 Ovf_PMC1:1;\r
951 ///\r
952 /// [Bit 2] Thread. Ovf_PMC2.\r
953 ///\r
954 UINT32 Ovf_PMC2:1;\r
955 ///\r
956 /// [Bit 3] Thread. Ovf_PMC3.\r
957 ///\r
958 UINT32 Ovf_PMC3:1;\r
959 ///\r
960 /// [Bit 4] Core. Ovf_PMC4 (if CPUID.0AH:EAX[15:8] > 4).\r
961 ///\r
962 UINT32 Ovf_PMC4:1;\r
963 ///\r
964 /// [Bit 5] Core. Ovf_PMC5 (if CPUID.0AH:EAX[15:8] > 5).\r
965 ///\r
966 UINT32 Ovf_PMC5:1;\r
967 ///\r
968 /// [Bit 6] Core. Ovf_PMC6 (if CPUID.0AH:EAX[15:8] > 6).\r
969 ///\r
970 UINT32 Ovf_PMC6:1;\r
971 ///\r
972 /// [Bit 7] Core. Ovf_PMC7 (if CPUID.0AH:EAX[15:8] > 7).\r
973 ///\r
974 UINT32 Ovf_PMC7:1;\r
975 UINT32 Reserved1:24;\r
976 ///\r
977 /// [Bit 32] Thread. Ovf_FixedCtr0.\r
978 ///\r
979 UINT32 Ovf_FixedCtr0:1;\r
980 ///\r
981 /// [Bit 33] Thread. Ovf_FixedCtr1.\r
982 ///\r
983 UINT32 Ovf_FixedCtr1:1;\r
984 ///\r
985 /// [Bit 34] Thread. Ovf_FixedCtr2.\r
986 ///\r
987 UINT32 Ovf_FixedCtr2:1;\r
988 UINT32 Reserved2:26;\r
989 ///\r
990 /// [Bit 61] Thread. Ovf_Uncore.\r
991 ///\r
992 UINT32 Ovf_Uncore:1;\r
993 ///\r
994 /// [Bit 62] Thread. Ovf_BufDSSAVE.\r
995 ///\r
996 UINT32 Ovf_BufDSSAVE:1;\r
997 ///\r
998 /// [Bit 63] Thread. CondChgd.\r
999 ///\r
1000 UINT32 CondChgd:1;\r
1001 } Bits;\r
1002 ///\r
1003 /// All bit fields as a 64-bit value\r
1004 ///\r
1005 UINT64 Uint64;\r
0f16be6d 1006} MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_STATUS_REGISTER;\r
dc5d621c
MK
1007\r
1008\r
1009/**\r
1010 Thread. See Table 35-2. See Section 18.4.2, "Global Counter Control\r
1011 Facilities.".\r
1012\r
1013 @param ECX MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL (0x0000038F)\r
1014 @param EAX Lower 32-bits of MSR value.\r
1015 Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL_REGISTER.\r
1016 @param EDX Upper 32-bits of MSR value.\r
1017 Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL_REGISTER.\r
1018\r
1019 <b>Example usage</b>\r
1020 @code\r
1021 MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL_REGISTER Msr;\r
1022\r
1023 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL);\r
1024 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL, Msr.Uint64);\r
1025 @endcode\r
367f5c9c 1026 @note MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL is defined as IA32_PERF_GLOBAL_CTRL in SDM.\r
dc5d621c
MK
1027**/\r
1028#define MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL 0x0000038F\r
1029\r
1030/**\r
1031 MSR information returned for MSR index\r
1032 #MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL\r
1033**/\r
1034typedef union {\r
1035 ///\r
1036 /// Individual bit fields\r
1037 ///\r
1038 struct {\r
1039 ///\r
1040 /// [Bit 0] Thread. Set 1 to enable PMC0 to count.\r
1041 ///\r
1042 UINT32 PCM0_EN:1;\r
1043 ///\r
1044 /// [Bit 1] Thread. Set 1 to enable PMC1 to count.\r
1045 ///\r
1046 UINT32 PCM1_EN:1;\r
1047 ///\r
1048 /// [Bit 2] Thread. Set 1 to enable PMC2 to count.\r
1049 ///\r
1050 UINT32 PCM2_EN:1;\r
1051 ///\r
1052 /// [Bit 3] Thread. Set 1 to enable PMC3 to count.\r
1053 ///\r
1054 UINT32 PCM3_EN:1;\r
1055 ///\r
1056 /// [Bit 4] Core. Set 1 to enable PMC4 to count (if CPUID.0AH:EAX[15:8] >\r
1057 /// 4).\r
1058 ///\r
1059 UINT32 PCM4_EN:1;\r
1060 ///\r
1061 /// [Bit 5] Core. Set 1 to enable PMC5 to count (if CPUID.0AH:EAX[15:8] >\r
1062 /// 5).\r
1063 ///\r
1064 UINT32 PCM5_EN:1;\r
1065 ///\r
1066 /// [Bit 6] Core. Set 1 to enable PMC6 to count (if CPUID.0AH:EAX[15:8] >\r
1067 /// 6).\r
1068 ///\r
1069 UINT32 PCM6_EN:1;\r
1070 ///\r
1071 /// [Bit 7] Core. Set 1 to enable PMC7 to count (if CPUID.0AH:EAX[15:8] >\r
1072 /// 7).\r
1073 ///\r
1074 UINT32 PCM7_EN:1;\r
1075 UINT32 Reserved1:24;\r
1076 ///\r
1077 /// [Bit 32] Thread. Set 1 to enable FixedCtr0 to count.\r
1078 ///\r
1079 UINT32 FIXED_CTR0:1;\r
1080 ///\r
1081 /// [Bit 33] Thread. Set 1 to enable FixedCtr1 to count.\r
1082 ///\r
1083 UINT32 FIXED_CTR1:1;\r
1084 ///\r
1085 /// [Bit 34] Thread. Set 1 to enable FixedCtr2 to count.\r
1086 ///\r
1087 UINT32 FIXED_CTR2:1;\r
1088 UINT32 Reserved2:29;\r
1089 } Bits;\r
1090 ///\r
1091 /// All bit fields as a 64-bit value\r
1092 ///\r
1093 UINT64 Uint64;\r
1094} MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_CTRL_REGISTER;\r
1095\r
1096\r
1097/**\r
1098 See Table 35-2. See Section 18.4.2, "Global Counter Control Facilities.".\r
1099\r
1100 @param ECX MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL (0x00000390)\r
1101 @param EAX Lower 32-bits of MSR value.\r
1102 Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL_REGISTER.\r
1103 @param EDX Upper 32-bits of MSR value.\r
1104 Described by the type MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL_REGISTER.\r
1105\r
1106 <b>Example usage</b>\r
1107 @code\r
1108 MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL_REGISTER Msr;\r
1109\r
1110 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL);\r
1111 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL, Msr.Uint64);\r
1112 @endcode\r
367f5c9c 1113 @note MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL is defined as IA32_PERF_GLOBAL_OVF_CTRL in SDM.\r
dc5d621c
MK
1114**/\r
1115#define MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL 0x00000390\r
1116\r
1117/**\r
1118 MSR information returned for MSR index\r
1119 #MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL\r
1120**/\r
1121typedef union {\r
1122 ///\r
1123 /// Individual bit fields\r
1124 ///\r
1125 struct {\r
1126 ///\r
1127 /// [Bit 0] Thread. Set 1 to clear Ovf_PMC0.\r
1128 ///\r
1129 UINT32 Ovf_PMC0:1;\r
1130 ///\r
1131 /// [Bit 1] Thread. Set 1 to clear Ovf_PMC1.\r
1132 ///\r
1133 UINT32 Ovf_PMC1:1;\r
1134 ///\r
1135 /// [Bit 2] Thread. Set 1 to clear Ovf_PMC2.\r
1136 ///\r
1137 UINT32 Ovf_PMC2:1;\r
1138 ///\r
1139 /// [Bit 3] Thread. Set 1 to clear Ovf_PMC3.\r
1140 ///\r
1141 UINT32 Ovf_PMC3:1;\r
1142 ///\r
1143 /// [Bit 4] Core. Set 1 to clear Ovf_PMC4 (if CPUID.0AH:EAX[15:8] > 4).\r
1144 ///\r
1145 UINT32 Ovf_PMC4:1;\r
1146 ///\r
1147 /// [Bit 5] Core. Set 1 to clear Ovf_PMC5 (if CPUID.0AH:EAX[15:8] > 5).\r
1148 ///\r
1149 UINT32 Ovf_PMC5:1;\r
1150 ///\r
1151 /// [Bit 6] Core. Set 1 to clear Ovf_PMC6 (if CPUID.0AH:EAX[15:8] > 6).\r
1152 ///\r
1153 UINT32 Ovf_PMC6:1;\r
1154 ///\r
1155 /// [Bit 7] Core. Set 1 to clear Ovf_PMC7 (if CPUID.0AH:EAX[15:8] > 7).\r
1156 ///\r
1157 UINT32 Ovf_PMC7:1;\r
1158 UINT32 Reserved1:24;\r
1159 ///\r
1160 /// [Bit 32] Thread. Set 1 to clear Ovf_FixedCtr0.\r
1161 ///\r
1162 UINT32 Ovf_FixedCtr0:1;\r
1163 ///\r
1164 /// [Bit 33] Thread. Set 1 to clear Ovf_FixedCtr1.\r
1165 ///\r
1166 UINT32 Ovf_FixedCtr1:1;\r
1167 ///\r
1168 /// [Bit 34] Thread. Set 1 to clear Ovf_FixedCtr2.\r
1169 ///\r
1170 UINT32 Ovf_FixedCtr2:1;\r
1171 UINT32 Reserved2:26;\r
1172 ///\r
1173 /// [Bit 61] Thread. Set 1 to clear Ovf_Uncore.\r
1174 ///\r
1175 UINT32 Ovf_Uncore:1;\r
1176 ///\r
1177 /// [Bit 62] Thread. Set 1 to clear Ovf_BufDSSAVE.\r
1178 ///\r
1179 UINT32 Ovf_BufDSSAVE:1;\r
1180 ///\r
1181 /// [Bit 63] Thread. Set 1 to clear CondChgd.\r
1182 ///\r
1183 UINT32 CondChgd:1;\r
1184 } Bits;\r
1185 ///\r
1186 /// All bit fields as a 64-bit value\r
1187 ///\r
1188 UINT64 Uint64;\r
1189} MSR_SANDY_BRIDGE_IA32_PERF_GLOBAL_OVF_CTRL_REGISTER;\r
1190\r
1191\r
1192/**\r
0f16be6d 1193 Thread. See Section 18.8.1.1, "Processor Event Based Sampling (PEBS).".\r
dc5d621c
MK
1194\r
1195 @param ECX MSR_SANDY_BRIDGE_PEBS_ENABLE (0x000003F1)\r
1196 @param EAX Lower 32-bits of MSR value.\r
1197 Described by the type MSR_SANDY_BRIDGE_PEBS_ENABLE_REGISTER.\r
1198 @param EDX Upper 32-bits of MSR value.\r
1199 Described by the type MSR_SANDY_BRIDGE_PEBS_ENABLE_REGISTER.\r
1200\r
1201 <b>Example usage</b>\r
1202 @code\r
1203 MSR_SANDY_BRIDGE_PEBS_ENABLE_REGISTER Msr;\r
1204\r
1205 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PEBS_ENABLE);\r
1206 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PEBS_ENABLE, Msr.Uint64);\r
1207 @endcode\r
367f5c9c 1208 @note MSR_SANDY_BRIDGE_PEBS_ENABLE is defined as MSR_PEBS_ENABLE in SDM.\r
dc5d621c
MK
1209**/\r
1210#define MSR_SANDY_BRIDGE_PEBS_ENABLE 0x000003F1\r
1211\r
1212/**\r
1213 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PEBS_ENABLE\r
1214**/\r
1215typedef union {\r
1216 ///\r
1217 /// Individual bit fields\r
1218 ///\r
1219 struct {\r
1220 ///\r
1221 /// [Bit 0] Enable PEBS on IA32_PMC0. (R/W).\r
1222 ///\r
1223 UINT32 PEBS_EN_PMC0:1;\r
1224 ///\r
1225 /// [Bit 1] Enable PEBS on IA32_PMC1. (R/W).\r
1226 ///\r
1227 UINT32 PEBS_EN_PMC1:1;\r
1228 ///\r
1229 /// [Bit 2] Enable PEBS on IA32_PMC2. (R/W).\r
1230 ///\r
1231 UINT32 PEBS_EN_PMC2:1;\r
1232 ///\r
1233 /// [Bit 3] Enable PEBS on IA32_PMC3. (R/W).\r
1234 ///\r
1235 UINT32 PEBS_EN_PMC3:1;\r
1236 UINT32 Reserved1:28;\r
1237 ///\r
1238 /// [Bit 32] Enable Load Latency on IA32_PMC0. (R/W).\r
1239 ///\r
1240 UINT32 LL_EN_PMC0:1;\r
1241 ///\r
1242 /// [Bit 33] Enable Load Latency on IA32_PMC1. (R/W).\r
1243 ///\r
1244 UINT32 LL_EN_PMC1:1;\r
1245 ///\r
1246 /// [Bit 34] Enable Load Latency on IA32_PMC2. (R/W).\r
1247 ///\r
1248 UINT32 LL_EN_PMC2:1;\r
1249 ///\r
1250 /// [Bit 35] Enable Load Latency on IA32_PMC3. (R/W).\r
1251 ///\r
1252 UINT32 LL_EN_PMC3:1;\r
1253 UINT32 Reserved2:27;\r
1254 ///\r
1255 /// [Bit 63] Enable Precise Store. (R/W).\r
1256 ///\r
1257 UINT32 PS_EN:1;\r
1258 } Bits;\r
1259 ///\r
1260 /// All bit fields as a 64-bit value\r
1261 ///\r
1262 UINT64 Uint64;\r
1263} MSR_SANDY_BRIDGE_PEBS_ENABLE_REGISTER;\r
1264\r
1265\r
1266/**\r
0f16be6d 1267 Thread. see See Section 18.8.1.2, "Load Latency Performance Monitoring\r
dc5d621c
MK
1268 Facility.".\r
1269\r
1270 @param ECX MSR_SANDY_BRIDGE_PEBS_LD_LAT (0x000003F6)\r
1271 @param EAX Lower 32-bits of MSR value.\r
1272 Described by the type MSR_SANDY_BRIDGE_PEBS_LD_LAT_REGISTER.\r
1273 @param EDX Upper 32-bits of MSR value.\r
1274 Described by the type MSR_SANDY_BRIDGE_PEBS_LD_LAT_REGISTER.\r
1275\r
1276 <b>Example usage</b>\r
1277 @code\r
1278 MSR_SANDY_BRIDGE_PEBS_LD_LAT_REGISTER Msr;\r
1279\r
1280 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PEBS_LD_LAT);\r
1281 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PEBS_LD_LAT, Msr.Uint64);\r
1282 @endcode\r
367f5c9c 1283 @note MSR_SANDY_BRIDGE_PEBS_LD_LAT is defined as MSR_PEBS_LD_LAT in SDM.\r
dc5d621c
MK
1284**/\r
1285#define MSR_SANDY_BRIDGE_PEBS_LD_LAT 0x000003F6\r
1286\r
1287/**\r
1288 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PEBS_LD_LAT\r
1289**/\r
1290typedef union {\r
1291 ///\r
1292 /// Individual bit fields\r
1293 ///\r
1294 struct {\r
1295 ///\r
1296 /// [Bits 15:0] Minimum threshold latency value of tagged load operation\r
1297 /// that will be counted. (R/W).\r
1298 ///\r
1299 UINT32 MinimumThreshold:16;\r
1300 UINT32 Reserved1:16;\r
1301 UINT32 Reserved2:32;\r
1302 } Bits;\r
1303 ///\r
1304 /// All bit fields as a 32-bit value\r
1305 ///\r
1306 UINT32 Uint32;\r
1307 ///\r
1308 /// All bit fields as a 64-bit value\r
1309 ///\r
1310 UINT64 Uint64;\r
1311} MSR_SANDY_BRIDGE_PEBS_LD_LAT_REGISTER;\r
1312\r
1313\r
1314/**\r
1315 Package. Note: C-state values are processor specific C-state code names,\r
1316 unrelated to MWAIT extension C-state parameters or ACPI CStates. Package C3\r
1317 Residency Counter. (R/O) Value since last reset that this package is in\r
1318 processor-specific C3 states. Count at the same frequency as the TSC.\r
1319\r
1320 @param ECX MSR_SANDY_BRIDGE_PKG_C3_RESIDENCY (0x000003F8)\r
1321 @param EAX Lower 32-bits of MSR value.\r
1322 @param EDX Upper 32-bits of MSR value.\r
1323\r
1324 <b>Example usage</b>\r
1325 @code\r
1326 UINT64 Msr;\r
1327\r
1328 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_C3_RESIDENCY);\r
1329 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_C3_RESIDENCY, Msr);\r
1330 @endcode\r
367f5c9c 1331 @note MSR_SANDY_BRIDGE_PKG_C3_RESIDENCY is defined as MSR_PKG_C3_RESIDENCY in SDM.\r
dc5d621c
MK
1332**/\r
1333#define MSR_SANDY_BRIDGE_PKG_C3_RESIDENCY 0x000003F8\r
1334\r
1335\r
1336/**\r
1337 Package. Note: C-state values are processor specific C-state code names,\r
1338 unrelated to MWAIT extension C-state parameters or ACPI CStates. Package C6\r
1339 Residency Counter. (R/O) Value since last reset that this package is in\r
1340 processor-specific C6 states. Count at the same frequency as the TSC.\r
1341\r
1342 @param ECX MSR_SANDY_BRIDGE_PKG_C6_RESIDENCY (0x000003F9)\r
1343 @param EAX Lower 32-bits of MSR value.\r
1344 @param EDX Upper 32-bits of MSR value.\r
1345\r
1346 <b>Example usage</b>\r
1347 @code\r
1348 UINT64 Msr;\r
1349\r
1350 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_C6_RESIDENCY);\r
1351 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_C6_RESIDENCY, Msr);\r
1352 @endcode\r
367f5c9c 1353 @note MSR_SANDY_BRIDGE_PKG_C6_RESIDENCY is defined as MSR_PKG_C6_RESIDENCY in SDM.\r
dc5d621c
MK
1354**/\r
1355#define MSR_SANDY_BRIDGE_PKG_C6_RESIDENCY 0x000003F9\r
1356\r
1357\r
1358/**\r
1359 Package. Note: C-state values are processor specific C-state code names,\r
1360 unrelated to MWAIT extension C-state parameters or ACPI CStates. Package C7\r
1361 Residency Counter. (R/O) Value since last reset that this package is in\r
1362 processor-specific C7 states. Count at the same frequency as the TSC.\r
1363\r
1364 @param ECX MSR_SANDY_BRIDGE_PKG_C7_RESIDENCY (0x000003FA)\r
1365 @param EAX Lower 32-bits of MSR value.\r
1366 @param EDX Upper 32-bits of MSR value.\r
1367\r
1368 <b>Example usage</b>\r
1369 @code\r
1370 UINT64 Msr;\r
1371\r
1372 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_C7_RESIDENCY);\r
1373 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_C7_RESIDENCY, Msr);\r
1374 @endcode\r
367f5c9c 1375 @note MSR_SANDY_BRIDGE_PKG_C7_RESIDENCY is defined as MSR_PKG_C7_RESIDENCY in SDM.\r
dc5d621c
MK
1376**/\r
1377#define MSR_SANDY_BRIDGE_PKG_C7_RESIDENCY 0x000003FA\r
1378\r
1379\r
1380/**\r
1381 Core. Note: C-state values are processor specific C-state code names,\r
1382 unrelated to MWAIT extension C-state parameters or ACPI CStates. CORE C3\r
1383 Residency Counter. (R/O) Value since last reset that this core is in\r
1384 processor-specific C3 states. Count at the same frequency as the TSC.\r
1385\r
1386 @param ECX MSR_SANDY_BRIDGE_CORE_C3_RESIDENCY (0x000003FC)\r
1387 @param EAX Lower 32-bits of MSR value.\r
1388 @param EDX Upper 32-bits of MSR value.\r
1389\r
1390 <b>Example usage</b>\r
1391 @code\r
1392 UINT64 Msr;\r
1393\r
1394 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_CORE_C3_RESIDENCY);\r
1395 AsmWriteMsr64 (MSR_SANDY_BRIDGE_CORE_C3_RESIDENCY, Msr);\r
1396 @endcode\r
367f5c9c 1397 @note MSR_SANDY_BRIDGE_CORE_C3_RESIDENCY is defined as MSR_CORE_C3_RESIDENCY in SDM.\r
dc5d621c
MK
1398**/\r
1399#define MSR_SANDY_BRIDGE_CORE_C3_RESIDENCY 0x000003FC\r
1400\r
1401\r
1402/**\r
1403 Core. Note: C-state values are processor specific C-state code names,\r
1404 unrelated to MWAIT extension C-state parameters or ACPI CStates. CORE C6\r
1405 Residency Counter. (R/O) Value since last reset that this core is in\r
1406 processor-specific C6 states. Count at the same frequency as the TSC.\r
1407\r
1408 @param ECX MSR_SANDY_BRIDGE_CORE_C6_RESIDENCY (0x000003FD)\r
1409 @param EAX Lower 32-bits of MSR value.\r
1410 @param EDX Upper 32-bits of MSR value.\r
1411\r
1412 <b>Example usage</b>\r
1413 @code\r
1414 UINT64 Msr;\r
1415\r
1416 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_CORE_C6_RESIDENCY);\r
1417 AsmWriteMsr64 (MSR_SANDY_BRIDGE_CORE_C6_RESIDENCY, Msr);\r
1418 @endcode\r
367f5c9c 1419 @note MSR_SANDY_BRIDGE_CORE_C6_RESIDENCY is defined as MSR_CORE_C6_RESIDENCY in SDM.\r
dc5d621c
MK
1420**/\r
1421#define MSR_SANDY_BRIDGE_CORE_C6_RESIDENCY 0x000003FD\r
1422\r
1423\r
1424/**\r
1425 Core. Note: C-state values are processor specific C-state code names,\r
1426 unrelated to MWAIT extension C-state parameters or ACPI CStates. CORE C7\r
1427 Residency Counter. (R/O) Value since last reset that this core is in\r
1428 processor-specific C7 states. Count at the same frequency as the TSC.\r
1429\r
1430 @param ECX MSR_SANDY_BRIDGE_CORE_C7_RESIDENCY (0x000003FE)\r
1431 @param EAX Lower 32-bits of MSR value.\r
1432 @param EDX Upper 32-bits of MSR value.\r
1433\r
1434 <b>Example usage</b>\r
1435 @code\r
1436 UINT64 Msr;\r
1437\r
1438 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_CORE_C7_RESIDENCY);\r
1439 AsmWriteMsr64 (MSR_SANDY_BRIDGE_CORE_C7_RESIDENCY, Msr);\r
1440 @endcode\r
367f5c9c 1441 @note MSR_SANDY_BRIDGE_CORE_C7_RESIDENCY is defined as MSR_CORE_C7_RESIDENCY in SDM.\r
dc5d621c
MK
1442**/\r
1443#define MSR_SANDY_BRIDGE_CORE_C7_RESIDENCY 0x000003FE\r
1444\r
1445\r
1446/**\r
1447 Core. See Section 15.3.2.1, "IA32_MCi_CTL MSRs.".\r
1448\r
0f16be6d 1449 @param ECX MSR_SANDY_BRIDGE_IA32_MC4_CTL (0x00000410)\r
dc5d621c 1450 @param EAX Lower 32-bits of MSR value.\r
0f16be6d 1451 Described by the type MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER.\r
dc5d621c 1452 @param EDX Upper 32-bits of MSR value.\r
0f16be6d 1453 Described by the type MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER.\r
dc5d621c
MK
1454\r
1455 <b>Example usage</b>\r
1456 @code\r
0f16be6d 1457 MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER Msr;\r
dc5d621c 1458\r
0f16be6d
HW
1459 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL);\r
1460 AsmWriteMsr64 (MSR_SANDY_BRIDGE_IA32_MC4_CTL, Msr.Uint64);\r
dc5d621c 1461 @endcode\r
0f16be6d 1462 @note MSR_SANDY_BRIDGE_IA32_MC4_CTL is defined as IA32_MC4_CTL in SDM.\r
dc5d621c 1463**/\r
0f16be6d 1464#define MSR_SANDY_BRIDGE_IA32_MC4_CTL 0x00000410\r
dc5d621c
MK
1465\r
1466/**\r
0f16be6d 1467 MSR information returned for MSR index #MSR_SANDY_BRIDGE_IA32_MC4_CTL\r
dc5d621c
MK
1468**/\r
1469typedef union {\r
1470 ///\r
1471 /// Individual bit fields\r
1472 ///\r
1473 struct {\r
1474 ///\r
1475 /// [Bit 0] PCU Hardware Error (R/W) When set, enables signaling of PCU\r
1476 /// hardware detected errors.\r
1477 ///\r
1478 UINT32 PCUHardwareError:1;\r
1479 ///\r
1480 /// [Bit 1] PCU Controller Error (R/W) When set, enables signaling of PCU\r
1481 /// controller detected errors.\r
1482 ///\r
1483 UINT32 PCUControllerError:1;\r
1484 ///\r
1485 /// [Bit 2] PCU Firmware Error (R/W) When set, enables signaling of PCU\r
1486 /// firmware detected errors.\r
1487 ///\r
1488 UINT32 PCUFirmwareError:1;\r
1489 UINT32 Reserved1:29;\r
1490 UINT32 Reserved2:32;\r
1491 } Bits;\r
1492 ///\r
1493 /// All bit fields as a 32-bit value\r
1494 ///\r
1495 UINT32 Uint32;\r
1496 ///\r
1497 /// All bit fields as a 64-bit value\r
1498 ///\r
1499 UINT64 Uint64;\r
0f16be6d 1500} MSR_SANDY_BRIDGE_IA32_MC4_CTL_REGISTER;\r
dc5d621c
MK
1501\r
1502\r
1503/**\r
1504 Thread. Capability Reporting Register of EPT and VPID (R/O) See Table 35-2.\r
1505\r
1506 @param ECX MSR_SANDY_BRIDGE_IA32_VMX_EPT_VPID_ENUM (0x0000048C)\r
1507 @param EAX Lower 32-bits of MSR value.\r
1508 @param EDX Upper 32-bits of MSR value.\r
1509\r
1510 <b>Example usage</b>\r
1511 @code\r
1512 UINT64 Msr;\r
1513\r
1514 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_IA32_VMX_EPT_VPID_ENUM);\r
1515 @endcode\r
367f5c9c 1516 @note MSR_SANDY_BRIDGE_IA32_VMX_EPT_VPID_ENUM is defined as IA32_VMX_EPT_VPID_ENUM in SDM.\r
dc5d621c
MK
1517**/\r
1518#define MSR_SANDY_BRIDGE_IA32_VMX_EPT_VPID_ENUM 0x0000048C\r
1519\r
1520\r
1521/**\r
1522 Package. Unit Multipliers used in RAPL Interfaces (R/O) See Section 14.9.1,\r
1523 "RAPL Interfaces.".\r
1524\r
1525 @param ECX MSR_SANDY_BRIDGE_RAPL_POWER_UNIT (0x00000606)\r
1526 @param EAX Lower 32-bits of MSR value.\r
1527 @param EDX Upper 32-bits of MSR value.\r
1528\r
1529 <b>Example usage</b>\r
1530 @code\r
1531 UINT64 Msr;\r
1532\r
1533 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_RAPL_POWER_UNIT);\r
1534 @endcode\r
367f5c9c 1535 @note MSR_SANDY_BRIDGE_RAPL_POWER_UNIT is defined as MSR_RAPL_POWER_UNIT in SDM.\r
dc5d621c
MK
1536**/\r
1537#define MSR_SANDY_BRIDGE_RAPL_POWER_UNIT 0x00000606\r
1538\r
1539\r
1540/**\r
1541 Package. Package C3 Interrupt Response Limit (R/W) Note: C-state values are\r
1542 processor specific C-state code names, unrelated to MWAIT extension C-state\r
1543 parameters or ACPI CStates.\r
1544\r
1545 @param ECX MSR_SANDY_BRIDGE_PKGC3_IRTL (0x0000060A)\r
1546 @param EAX Lower 32-bits of MSR value.\r
1547 Described by the type MSR_SANDY_BRIDGE_PKGC3_IRTL_REGISTER.\r
1548 @param EDX Upper 32-bits of MSR value.\r
1549 Described by the type MSR_SANDY_BRIDGE_PKGC3_IRTL_REGISTER.\r
1550\r
1551 <b>Example usage</b>\r
1552 @code\r
1553 MSR_SANDY_BRIDGE_PKGC3_IRTL_REGISTER Msr;\r
1554\r
1555 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKGC3_IRTL);\r
1556 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKGC3_IRTL, Msr.Uint64);\r
1557 @endcode\r
367f5c9c 1558 @note MSR_SANDY_BRIDGE_PKGC3_IRTL is defined as MSR_PKGC3_IRTL in SDM.\r
dc5d621c
MK
1559**/\r
1560#define MSR_SANDY_BRIDGE_PKGC3_IRTL 0x0000060A\r
1561\r
1562/**\r
1563 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PKGC3_IRTL\r
1564**/\r
1565typedef union {\r
1566 ///\r
1567 /// Individual bit fields\r
1568 ///\r
1569 struct {\r
1570 ///\r
1571 /// [Bits 9:0] Interrupt response time limit (R/W) Specifies the limit\r
1572 /// that should be used to decide if the package should be put into a\r
1573 /// package C3 state.\r
1574 ///\r
1575 UINT32 TimeLimit:10;\r
1576 ///\r
1577 /// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time\r
1578 /// unit of the interrupt response time limit. The following time unit\r
1579 /// encodings are supported: 000b: 1 ns 001b: 32 ns 010b: 1024 ns 011b:\r
1580 /// 32768 ns 100b: 1048576 ns 101b: 33554432 ns.\r
1581 ///\r
1582 UINT32 TimeUnit:3;\r
1583 UINT32 Reserved1:2;\r
1584 ///\r
1585 /// [Bit 15] Valid (R/W) Indicates whether the values in bits 12:0 are\r
1586 /// valid and can be used by the processor for package C-sate management.\r
1587 ///\r
1588 UINT32 Valid:1;\r
1589 UINT32 Reserved2:16;\r
1590 UINT32 Reserved3:32;\r
1591 } Bits;\r
1592 ///\r
1593 /// All bit fields as a 32-bit value\r
1594 ///\r
1595 UINT32 Uint32;\r
1596 ///\r
1597 /// All bit fields as a 64-bit value\r
1598 ///\r
1599 UINT64 Uint64;\r
1600} MSR_SANDY_BRIDGE_PKGC3_IRTL_REGISTER;\r
1601\r
1602\r
1603/**\r
1604 Package. Package C6 Interrupt Response Limit (R/W) This MSR defines the\r
1605 budget allocated for the package to exit from C6 to a C0 state, where\r
1606 interrupt request can be delivered to the core and serviced. Additional\r
1607 core-exit latency amy be applicable depending on the actual C-state the core\r
1608 is in. Note: C-state values are processor specific C-state code names,\r
1609 unrelated to MWAIT extension C-state parameters or ACPI CStates.\r
1610\r
1611 @param ECX MSR_SANDY_BRIDGE_PKGC6_IRTL (0x0000060B)\r
1612 @param EAX Lower 32-bits of MSR value.\r
1613 Described by the type MSR_SANDY_BRIDGE_PKGC6_IRTL_REGISTER.\r
1614 @param EDX Upper 32-bits of MSR value.\r
1615 Described by the type MSR_SANDY_BRIDGE_PKGC6_IRTL_REGISTER.\r
1616\r
1617 <b>Example usage</b>\r
1618 @code\r
1619 MSR_SANDY_BRIDGE_PKGC6_IRTL_REGISTER Msr;\r
1620\r
1621 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKGC6_IRTL);\r
1622 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKGC6_IRTL, Msr.Uint64);\r
1623 @endcode\r
367f5c9c 1624 @note MSR_SANDY_BRIDGE_PKGC6_IRTL is defined as MSR_PKGC6_IRTL in SDM.\r
dc5d621c
MK
1625**/\r
1626#define MSR_SANDY_BRIDGE_PKGC6_IRTL 0x0000060B\r
1627\r
1628/**\r
1629 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PKGC6_IRTL\r
1630**/\r
1631typedef union {\r
1632 ///\r
1633 /// Individual bit fields\r
1634 ///\r
1635 struct {\r
1636 ///\r
1637 /// [Bits 9:0] Interrupt response time limit (R/W) Specifies the limit\r
1638 /// that should be used to decide if the package should be put into a\r
1639 /// package C6 state.\r
1640 ///\r
1641 UINT32 TimeLimit:10;\r
1642 ///\r
1643 /// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time\r
1644 /// unit of the interrupt response time limit. The following time unit\r
1645 /// encodings are supported: 000b: 1 ns 001b: 32 ns 010b: 1024 ns 011b:\r
1646 /// 32768 ns 100b: 1048576 ns 101b: 33554432 ns.\r
1647 ///\r
1648 UINT32 TimeUnit:3;\r
1649 UINT32 Reserved1:2;\r
1650 ///\r
1651 /// [Bit 15] Valid (R/W) Indicates whether the values in bits 12:0 are\r
1652 /// valid and can be used by the processor for package C-sate management.\r
1653 ///\r
1654 UINT32 Valid:1;\r
1655 UINT32 Reserved2:16;\r
1656 UINT32 Reserved3:32;\r
1657 } Bits;\r
1658 ///\r
1659 /// All bit fields as a 32-bit value\r
1660 ///\r
1661 UINT32 Uint32;\r
1662 ///\r
1663 /// All bit fields as a 64-bit value\r
1664 ///\r
1665 UINT64 Uint64;\r
1666} MSR_SANDY_BRIDGE_PKGC6_IRTL_REGISTER;\r
1667\r
1668\r
1669/**\r
1670 Package. Note: C-state values are processor specific C-state code names,\r
1671 unrelated to MWAIT extension C-state parameters or ACPI CStates. Package C2\r
1672 Residency Counter. (R/O) Value since last reset that this package is in\r
1673 processor-specific C2 states. Count at the same frequency as the TSC.\r
1674\r
1675 @param ECX MSR_SANDY_BRIDGE_PKG_C2_RESIDENCY (0x0000060D)\r
1676 @param EAX Lower 32-bits of MSR value.\r
1677 @param EDX Upper 32-bits of MSR value.\r
1678\r
1679 <b>Example usage</b>\r
1680 @code\r
1681 UINT64 Msr;\r
1682\r
1683 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_C2_RESIDENCY);\r
1684 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_C2_RESIDENCY, Msr);\r
1685 @endcode\r
367f5c9c 1686 @note MSR_SANDY_BRIDGE_PKG_C2_RESIDENCY is defined as MSR_PKG_C2_RESIDENCY in SDM.\r
dc5d621c
MK
1687**/\r
1688#define MSR_SANDY_BRIDGE_PKG_C2_RESIDENCY 0x0000060D\r
1689\r
1690\r
1691/**\r
1692 Package. PKG RAPL Power Limit Control (R/W) See Section 14.9.3, "Package\r
1693 RAPL Domain.".\r
1694\r
1695 @param ECX MSR_SANDY_BRIDGE_PKG_POWER_LIMIT (0x00000610)\r
1696 @param EAX Lower 32-bits of MSR value.\r
1697 @param EDX Upper 32-bits of MSR value.\r
1698\r
1699 <b>Example usage</b>\r
1700 @code\r
1701 UINT64 Msr;\r
1702\r
1703 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_POWER_LIMIT);\r
1704 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_POWER_LIMIT, Msr);\r
1705 @endcode\r
367f5c9c 1706 @note MSR_SANDY_BRIDGE_PKG_POWER_LIMIT is defined as MSR_PKG_POWER_LIMIT in SDM.\r
dc5d621c
MK
1707**/\r
1708#define MSR_SANDY_BRIDGE_PKG_POWER_LIMIT 0x00000610\r
1709\r
1710\r
1711/**\r
1712 Package. PKG Energy Status (R/O) See Section 14.9.3, "Package RAPL Domain.".\r
1713\r
1714 @param ECX MSR_SANDY_BRIDGE_PKG_ENERGY_STATUS (0x00000611)\r
1715 @param EAX Lower 32-bits of MSR value.\r
1716 @param EDX Upper 32-bits of MSR value.\r
1717\r
1718 <b>Example usage</b>\r
1719 @code\r
1720 UINT64 Msr;\r
1721\r
1722 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_ENERGY_STATUS);\r
1723 @endcode\r
367f5c9c 1724 @note MSR_SANDY_BRIDGE_PKG_ENERGY_STATUS is defined as MSR_PKG_ENERGY_STATUS in SDM.\r
dc5d621c
MK
1725**/\r
1726#define MSR_SANDY_BRIDGE_PKG_ENERGY_STATUS 0x00000611\r
1727\r
1728\r
1729/**\r
1730 Package. PKG RAPL Parameters (R/W) See Section 14.9.3, "Package RAPL\r
1731 Domain.".\r
1732\r
1733 @param ECX MSR_SANDY_BRIDGE_PKG_POWER_INFO (0x00000614)\r
1734 @param EAX Lower 32-bits of MSR value.\r
1735 @param EDX Upper 32-bits of MSR value.\r
1736\r
1737 <b>Example usage</b>\r
1738 @code\r
1739 UINT64 Msr;\r
1740\r
1741 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_POWER_INFO);\r
1742 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKG_POWER_INFO, Msr);\r
1743 @endcode\r
367f5c9c 1744 @note MSR_SANDY_BRIDGE_PKG_POWER_INFO is defined as MSR_PKG_POWER_INFO in SDM.\r
dc5d621c
MK
1745**/\r
1746#define MSR_SANDY_BRIDGE_PKG_POWER_INFO 0x00000614\r
1747\r
1748\r
1749/**\r
1750 Package. PP0 RAPL Power Limit Control (R/W) See Section 14.9.4, "PP0/PP1\r
1751 RAPL Domains.".\r
1752\r
1753 @param ECX MSR_SANDY_BRIDGE_PP0_POWER_LIMIT (0x00000638)\r
1754 @param EAX Lower 32-bits of MSR value.\r
1755 @param EDX Upper 32-bits of MSR value.\r
1756\r
1757 <b>Example usage</b>\r
1758 @code\r
1759 UINT64 Msr;\r
1760\r
1761 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PP0_POWER_LIMIT);\r
1762 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PP0_POWER_LIMIT, Msr);\r
1763 @endcode\r
367f5c9c 1764 @note MSR_SANDY_BRIDGE_PP0_POWER_LIMIT is defined as MSR_PP0_POWER_LIMIT in SDM.\r
dc5d621c
MK
1765**/\r
1766#define MSR_SANDY_BRIDGE_PP0_POWER_LIMIT 0x00000638\r
1767\r
1768\r
1769/**\r
1770 Package. PP0 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL\r
1771 Domains.".\r
1772\r
1773 @param ECX MSR_SANDY_BRIDGE_PP0_ENERGY_STATUS (0x00000639)\r
1774 @param EAX Lower 32-bits of MSR value.\r
1775 @param EDX Upper 32-bits of MSR value.\r
1776\r
1777 <b>Example usage</b>\r
1778 @code\r
1779 UINT64 Msr;\r
1780\r
1781 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PP0_ENERGY_STATUS);\r
1782 @endcode\r
367f5c9c 1783 @note MSR_SANDY_BRIDGE_PP0_ENERGY_STATUS is defined as MSR_PP0_ENERGY_STATUS in SDM.\r
dc5d621c
MK
1784**/\r
1785#define MSR_SANDY_BRIDGE_PP0_ENERGY_STATUS 0x00000639\r
1786\r
1787\r
1788/**\r
1789 Thread. Last Branch Record n From IP (R/W) One of sixteen pairs of last\r
1790 branch record registers on the last branch record stack. This part of the\r
1791 stack contains pointers to the source instruction. See also: - Last Branch\r
0f16be6d
HW
1792 Record Stack TOS at 1C9H - Section 17.7.1 and record format in Section\r
1793 17.4.8.1.\r
dc5d621c
MK
1794\r
1795 @param ECX MSR_SANDY_BRIDGE_LASTBRANCH_n_FROM_IP\r
1796 @param EAX Lower 32-bits of MSR value.\r
1797 @param EDX Upper 32-bits of MSR value.\r
1798\r
1799 <b>Example usage</b>\r
1800 @code\r
1801 UINT64 Msr;\r
1802\r
1803 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_LASTBRANCH_0_FROM_IP);\r
1804 AsmWriteMsr64 (MSR_SANDY_BRIDGE_LASTBRANCH_0_FROM_IP, Msr);\r
1805 @endcode\r
367f5c9c
JF
1806 @note MSR_SANDY_BRIDGE_LASTBRANCH_0_FROM_IP is defined as MSR_LASTBRANCH_0_FROM_IP in SDM.\r
1807 MSR_SANDY_BRIDGE_LASTBRANCH_1_FROM_IP is defined as MSR_LASTBRANCH_1_FROM_IP in SDM.\r
1808 MSR_SANDY_BRIDGE_LASTBRANCH_2_FROM_IP is defined as MSR_LASTBRANCH_2_FROM_IP in SDM.\r
1809 MSR_SANDY_BRIDGE_LASTBRANCH_3_FROM_IP is defined as MSR_LASTBRANCH_3_FROM_IP in SDM.\r
1810 MSR_SANDY_BRIDGE_LASTBRANCH_4_FROM_IP is defined as MSR_LASTBRANCH_4_FROM_IP in SDM.\r
1811 MSR_SANDY_BRIDGE_LASTBRANCH_5_FROM_IP is defined as MSR_LASTBRANCH_5_FROM_IP in SDM.\r
1812 MSR_SANDY_BRIDGE_LASTBRANCH_6_FROM_IP is defined as MSR_LASTBRANCH_6_FROM_IP in SDM.\r
1813 MSR_SANDY_BRIDGE_LASTBRANCH_7_FROM_IP is defined as MSR_LASTBRANCH_7_FROM_IP in SDM.\r
1814 MSR_SANDY_BRIDGE_LASTBRANCH_8_FROM_IP is defined as MSR_LASTBRANCH_8_FROM_IP in SDM.\r
1815 MSR_SANDY_BRIDGE_LASTBRANCH_9_FROM_IP is defined as MSR_LASTBRANCH_9_FROM_IP in SDM.\r
1816 MSR_SANDY_BRIDGE_LASTBRANCH_10_FROM_IP is defined as MSR_LASTBRANCH_10_FROM_IP in SDM.\r
1817 MSR_SANDY_BRIDGE_LASTBRANCH_11_FROM_IP is defined as MSR_LASTBRANCH_11_FROM_IP in SDM.\r
1818 MSR_SANDY_BRIDGE_LASTBRANCH_12_FROM_IP is defined as MSR_LASTBRANCH_12_FROM_IP in SDM.\r
1819 MSR_SANDY_BRIDGE_LASTBRANCH_13_FROM_IP is defined as MSR_LASTBRANCH_13_FROM_IP in SDM.\r
1820 MSR_SANDY_BRIDGE_LASTBRANCH_14_FROM_IP is defined as MSR_LASTBRANCH_14_FROM_IP in SDM.\r
1821 MSR_SANDY_BRIDGE_LASTBRANCH_15_FROM_IP is defined as MSR_LASTBRANCH_15_FROM_IP in SDM.\r
dc5d621c
MK
1822 @{\r
1823**/\r
1824#define MSR_SANDY_BRIDGE_LASTBRANCH_0_FROM_IP 0x00000680\r
1825#define MSR_SANDY_BRIDGE_LASTBRANCH_1_FROM_IP 0x00000681\r
1826#define MSR_SANDY_BRIDGE_LASTBRANCH_2_FROM_IP 0x00000682\r
1827#define MSR_SANDY_BRIDGE_LASTBRANCH_3_FROM_IP 0x00000683\r
1828#define MSR_SANDY_BRIDGE_LASTBRANCH_4_FROM_IP 0x00000684\r
1829#define MSR_SANDY_BRIDGE_LASTBRANCH_5_FROM_IP 0x00000685\r
1830#define MSR_SANDY_BRIDGE_LASTBRANCH_6_FROM_IP 0x00000686\r
1831#define MSR_SANDY_BRIDGE_LASTBRANCH_7_FROM_IP 0x00000687\r
1832#define MSR_SANDY_BRIDGE_LASTBRANCH_8_FROM_IP 0x00000688\r
1833#define MSR_SANDY_BRIDGE_LASTBRANCH_9_FROM_IP 0x00000689\r
1834#define MSR_SANDY_BRIDGE_LASTBRANCH_10_FROM_IP 0x0000068A\r
1835#define MSR_SANDY_BRIDGE_LASTBRANCH_11_FROM_IP 0x0000068B\r
1836#define MSR_SANDY_BRIDGE_LASTBRANCH_12_FROM_IP 0x0000068C\r
1837#define MSR_SANDY_BRIDGE_LASTBRANCH_13_FROM_IP 0x0000068D\r
1838#define MSR_SANDY_BRIDGE_LASTBRANCH_14_FROM_IP 0x0000068E\r
1839#define MSR_SANDY_BRIDGE_LASTBRANCH_15_FROM_IP 0x0000068F\r
1840/// @}\r
1841\r
1842\r
1843/**\r
1844 Thread. Last Branch Record n To IP (R/W) One of sixteen pairs of last branch\r
1845 record registers on the last branch record stack. This part of the stack\r
1846 contains pointers to the destination instruction.\r
1847\r
1848 @param ECX MSR_SANDY_BRIDGE_LASTBRANCH_n_TO_IP\r
1849 @param EAX Lower 32-bits of MSR value.\r
1850 @param EDX Upper 32-bits of MSR value.\r
1851\r
1852 <b>Example usage</b>\r
1853 @code\r
1854 UINT64 Msr;\r
1855\r
1856 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_LASTBRANCH_0_TO_IP);\r
1857 AsmWriteMsr64 (MSR_SANDY_BRIDGE_LASTBRANCH_0_TO_IP, Msr);\r
1858 @endcode\r
367f5c9c
JF
1859 @note MSR_SANDY_BRIDGE_LASTBRANCH_0_TO_IP is defined as MSR_LASTBRANCH_0_TO_IP in SDM.\r
1860 MSR_SANDY_BRIDGE_LASTBRANCH_1_TO_IP is defined as MSR_LASTBRANCH_1_TO_IP in SDM.\r
1861 MSR_SANDY_BRIDGE_LASTBRANCH_2_TO_IP is defined as MSR_LASTBRANCH_2_TO_IP in SDM.\r
1862 MSR_SANDY_BRIDGE_LASTBRANCH_3_TO_IP is defined as MSR_LASTBRANCH_3_TO_IP in SDM.\r
1863 MSR_SANDY_BRIDGE_LASTBRANCH_4_TO_IP is defined as MSR_LASTBRANCH_4_TO_IP in SDM.\r
1864 MSR_SANDY_BRIDGE_LASTBRANCH_5_TO_IP is defined as MSR_LASTBRANCH_5_TO_IP in SDM.\r
1865 MSR_SANDY_BRIDGE_LASTBRANCH_6_TO_IP is defined as MSR_LASTBRANCH_6_TO_IP in SDM.\r
1866 MSR_SANDY_BRIDGE_LASTBRANCH_7_TO_IP is defined as MSR_LASTBRANCH_7_TO_IP in SDM.\r
1867 MSR_SANDY_BRIDGE_LASTBRANCH_8_TO_IP is defined as MSR_LASTBRANCH_8_TO_IP in SDM.\r
1868 MSR_SANDY_BRIDGE_LASTBRANCH_9_TO_IP is defined as MSR_LASTBRANCH_9_TO_IP in SDM.\r
1869 MSR_SANDY_BRIDGE_LASTBRANCH_10_TO_IP is defined as MSR_LASTBRANCH_10_TO_IP in SDM.\r
1870 MSR_SANDY_BRIDGE_LASTBRANCH_11_TO_IP is defined as MSR_LASTBRANCH_11_TO_IP in SDM.\r
1871 MSR_SANDY_BRIDGE_LASTBRANCH_12_TO_IP is defined as MSR_LASTBRANCH_12_TO_IP in SDM.\r
1872 MSR_SANDY_BRIDGE_LASTBRANCH_13_TO_IP is defined as MSR_LASTBRANCH_13_TO_IP in SDM.\r
1873 MSR_SANDY_BRIDGE_LASTBRANCH_14_TO_IP is defined as MSR_LASTBRANCH_14_TO_IP in SDM.\r
1874 MSR_SANDY_BRIDGE_LASTBRANCH_15_TO_IP is defined as MSR_LASTBRANCH_15_TO_IP in SDM.\r
dc5d621c
MK
1875 @{\r
1876**/\r
1877#define MSR_SANDY_BRIDGE_LASTBRANCH_0_TO_IP 0x000006C0\r
1878#define MSR_SANDY_BRIDGE_LASTBRANCH_1_TO_IP 0x000006C1\r
1879#define MSR_SANDY_BRIDGE_LASTBRANCH_2_TO_IP 0x000006C2\r
1880#define MSR_SANDY_BRIDGE_LASTBRANCH_3_TO_IP 0x000006C3\r
1881#define MSR_SANDY_BRIDGE_LASTBRANCH_4_TO_IP 0x000006C4\r
1882#define MSR_SANDY_BRIDGE_LASTBRANCH_5_TO_IP 0x000006C5\r
1883#define MSR_SANDY_BRIDGE_LASTBRANCH_6_TO_IP 0x000006C6\r
1884#define MSR_SANDY_BRIDGE_LASTBRANCH_7_TO_IP 0x000006C7\r
1885#define MSR_SANDY_BRIDGE_LASTBRANCH_8_TO_IP 0x000006C8\r
1886#define MSR_SANDY_BRIDGE_LASTBRANCH_9_TO_IP 0x000006C9\r
1887#define MSR_SANDY_BRIDGE_LASTBRANCH_10_TO_IP 0x000006CA\r
1888#define MSR_SANDY_BRIDGE_LASTBRANCH_11_TO_IP 0x000006CB\r
1889#define MSR_SANDY_BRIDGE_LASTBRANCH_12_TO_IP 0x000006CC\r
1890#define MSR_SANDY_BRIDGE_LASTBRANCH_13_TO_IP 0x000006CD\r
1891#define MSR_SANDY_BRIDGE_LASTBRANCH_14_TO_IP 0x000006CE\r
1892#define MSR_SANDY_BRIDGE_LASTBRANCH_15_TO_IP 0x000006CF\r
1893/// @}\r
1894\r
1895\r
1896/**\r
1897 Package. Maximum Ratio Limit of Turbo Mode RO if MSR_PLATFORM_INFO.[28] = 0,\r
1898 RW if MSR_PLATFORM_INFO.[28] = 1.\r
1899\r
1900 @param ECX MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT (0x000001AD)\r
1901 @param EAX Lower 32-bits of MSR value.\r
1902 Described by the type MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT_REGISTER.\r
1903 @param EDX Upper 32-bits of MSR value.\r
1904 Described by the type MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT_REGISTER.\r
1905\r
1906 <b>Example usage</b>\r
1907 @code\r
1908 MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT_REGISTER Msr;\r
1909\r
1910 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT);\r
1911 @endcode\r
367f5c9c 1912 @note MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT is defined as MSR_TURBO_RATIO_LIMIT in SDM.\r
dc5d621c
MK
1913**/\r
1914#define MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT 0x000001AD\r
1915\r
1916/**\r
1917 MSR information returned for MSR index #MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT\r
1918**/\r
1919typedef union {\r
1920 ///\r
1921 /// Individual bit fields\r
1922 ///\r
1923 struct {\r
1924 ///\r
1925 /// [Bits 7:0] Package. Maximum Ratio Limit for 1C Maximum turbo ratio\r
1926 /// limit of 1 core active.\r
1927 ///\r
1928 UINT32 Maximum1C:8;\r
1929 ///\r
1930 /// [Bits 15:8] Package. Maximum Ratio Limit for 2C Maximum turbo ratio\r
1931 /// limit of 2 core active.\r
1932 ///\r
1933 UINT32 Maximum2C:8;\r
1934 ///\r
1935 /// [Bits 23:16] Package. Maximum Ratio Limit for 3C Maximum turbo ratio\r
1936 /// limit of 3 core active.\r
1937 ///\r
1938 UINT32 Maximum3C:8;\r
1939 ///\r
1940 /// [Bits 31:24] Package. Maximum Ratio Limit for 4C Maximum turbo ratio\r
1941 /// limit of 4 core active.\r
1942 ///\r
1943 UINT32 Maximum4C:8;\r
1944 ///\r
1945 /// [Bits 39:32] Package. Maximum Ratio Limit for 5C Maximum turbo ratio\r
1946 /// limit of 5 core active.\r
1947 ///\r
1948 UINT32 Maximum5C:8;\r
1949 ///\r
1950 /// [Bits 47:40] Package. Maximum Ratio Limit for 6C Maximum turbo ratio\r
1951 /// limit of 6 core active.\r
1952 ///\r
1953 UINT32 Maximum6C:8;\r
1954 ///\r
1955 /// [Bits 55:48] Package. Maximum Ratio Limit for 7C Maximum turbo ratio\r
1956 /// limit of 7 core active.\r
1957 ///\r
1958 UINT32 Maximum7C:8;\r
1959 ///\r
1960 /// [Bits 63:56] Package. Maximum Ratio Limit for 8C Maximum turbo ratio\r
1961 /// limit of 8 core active.\r
1962 ///\r
1963 UINT32 Maximum8C:8;\r
1964 } Bits;\r
1965 ///\r
1966 /// All bit fields as a 64-bit value\r
1967 ///\r
1968 UINT64 Uint64;\r
1969} MSR_SANDY_BRIDGE_TURBO_RATIO_LIMIT_REGISTER;\r
1970\r
1971\r
1972/**\r
1973 Package. Uncore PMU global control.\r
1974\r
1975 @param ECX MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL (0x00000391)\r
1976 @param EAX Lower 32-bits of MSR value.\r
1977 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL_REGISTER.\r
1978 @param EDX Upper 32-bits of MSR value.\r
1979 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL_REGISTER.\r
1980\r
1981 <b>Example usage</b>\r
1982 @code\r
1983 MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL_REGISTER Msr;\r
1984\r
1985 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL);\r
1986 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL, Msr.Uint64);\r
1987 @endcode\r
367f5c9c 1988 @note MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL is defined as MSR_UNC_PERF_GLOBAL_CTRL in SDM.\r
dc5d621c
MK
1989**/\r
1990#define MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL 0x00000391\r
1991\r
1992/**\r
1993 MSR information returned for MSR index #MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL\r
1994**/\r
1995typedef union {\r
1996 ///\r
1997 /// Individual bit fields\r
1998 ///\r
1999 struct {\r
2000 ///\r
0f16be6d 2001 /// [Bit 0] Slice 0 select.\r
dc5d621c 2002 ///\r
0f16be6d 2003 UINT32 PMI_Sel_Slice0:1;\r
dc5d621c 2004 ///\r
0f16be6d 2005 /// [Bit 1] Slice 1 select.\r
dc5d621c 2006 ///\r
0f16be6d 2007 UINT32 PMI_Sel_Slice1:1;\r
dc5d621c 2008 ///\r
0f16be6d 2009 /// [Bit 2] Slice 2 select.\r
dc5d621c 2010 ///\r
0f16be6d 2011 UINT32 PMI_Sel_Slice2:1;\r
dc5d621c 2012 ///\r
0f16be6d 2013 /// [Bit 3] Slice 3 select.\r
dc5d621c 2014 ///\r
0f16be6d
HW
2015 UINT32 PMI_Sel_Slice3:1;\r
2016 ///\r
2017 /// [Bit 4] Slice 4 select.\r
2018 ///\r
2019 UINT32 PMI_Sel_Slice4:1;\r
2020 UINT32 Reserved1:14;\r
dc5d621c
MK
2021 UINT32 Reserved2:10;\r
2022 ///\r
2023 /// [Bit 29] Enable all uncore counters.\r
2024 ///\r
2025 UINT32 EN:1;\r
2026 ///\r
2027 /// [Bit 30] Enable wake on PMI.\r
2028 ///\r
2029 UINT32 WakePMI:1;\r
2030 ///\r
2031 /// [Bit 31] Enable Freezing counter when overflow.\r
2032 ///\r
2033 UINT32 FREEZE:1;\r
2034 UINT32 Reserved3:32;\r
2035 } Bits;\r
2036 ///\r
2037 /// All bit fields as a 32-bit value\r
2038 ///\r
2039 UINT32 Uint32;\r
2040 ///\r
2041 /// All bit fields as a 64-bit value\r
2042 ///\r
2043 UINT64 Uint64;\r
2044} MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_CTRL_REGISTER;\r
2045\r
2046\r
2047/**\r
2048 Package. Uncore PMU main status.\r
2049\r
2050 @param ECX MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS (0x00000392)\r
2051 @param EAX Lower 32-bits of MSR value.\r
2052 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS_REGISTER.\r
2053 @param EDX Upper 32-bits of MSR value.\r
2054 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS_REGISTER.\r
2055\r
2056 <b>Example usage</b>\r
2057 @code\r
2058 MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS_REGISTER Msr;\r
2059\r
2060 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS);\r
2061 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS, Msr.Uint64);\r
2062 @endcode\r
367f5c9c 2063 @note MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS is defined as MSR_UNC_PERF_GLOBAL_STATUS in SDM.\r
dc5d621c
MK
2064**/\r
2065#define MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS 0x00000392\r
2066\r
2067/**\r
2068 MSR information returned for MSR index\r
2069 #MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS\r
2070**/\r
2071typedef union {\r
2072 ///\r
2073 /// Individual bit fields\r
2074 ///\r
2075 struct {\r
2076 ///\r
2077 /// [Bit 0] Fixed counter overflowed.\r
2078 ///\r
2079 UINT32 Fixed:1;\r
2080 ///\r
2081 /// [Bit 1] An ARB counter overflowed.\r
2082 ///\r
2083 UINT32 ARB:1;\r
2084 UINT32 Reserved1:1;\r
2085 ///\r
2086 /// [Bit 3] A CBox counter overflowed (on any slice).\r
2087 ///\r
2088 UINT32 CBox:1;\r
2089 UINT32 Reserved2:28;\r
2090 UINT32 Reserved3:32;\r
2091 } Bits;\r
2092 ///\r
2093 /// All bit fields as a 32-bit value\r
2094 ///\r
2095 UINT32 Uint32;\r
2096 ///\r
2097 /// All bit fields as a 64-bit value\r
2098 ///\r
2099 UINT64 Uint64;\r
2100} MSR_SANDY_BRIDGE_UNC_PERF_GLOBAL_STATUS_REGISTER;\r
2101\r
2102\r
2103/**\r
2104 Package. Uncore fixed counter control (R/W).\r
2105\r
2106 @param ECX MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL (0x00000394)\r
2107 @param EAX Lower 32-bits of MSR value.\r
2108 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL_REGISTER.\r
2109 @param EDX Upper 32-bits of MSR value.\r
2110 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL_REGISTER.\r
2111\r
2112 <b>Example usage</b>\r
2113 @code\r
2114 MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL_REGISTER Msr;\r
2115\r
2116 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL);\r
2117 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL, Msr.Uint64);\r
2118 @endcode\r
367f5c9c 2119 @note MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL is defined as MSR_UNC_PERF_FIXED_CTRL in SDM.\r
dc5d621c
MK
2120**/\r
2121#define MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL 0x00000394\r
2122\r
2123/**\r
2124 MSR information returned for MSR index #MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL\r
2125**/\r
2126typedef union {\r
2127 ///\r
2128 /// Individual bit fields\r
2129 ///\r
2130 struct {\r
2131 UINT32 Reserved1:20;\r
2132 ///\r
2133 /// [Bit 20] Enable overflow propagation.\r
2134 ///\r
2135 UINT32 EnableOverflow:1;\r
2136 UINT32 Reserved2:1;\r
2137 ///\r
2138 /// [Bit 22] Enable counting.\r
2139 ///\r
2140 UINT32 EnableCounting:1;\r
2141 UINT32 Reserved3:9;\r
2142 UINT32 Reserved4:32;\r
2143 } Bits;\r
2144 ///\r
2145 /// All bit fields as a 32-bit value\r
2146 ///\r
2147 UINT32 Uint32;\r
2148 ///\r
2149 /// All bit fields as a 64-bit value\r
2150 ///\r
2151 UINT64 Uint64;\r
2152} MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTRL_REGISTER;\r
2153\r
2154\r
2155/**\r
2156 Package. Uncore fixed counter.\r
2157\r
2158 @param ECX MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR (0x00000395)\r
2159 @param EAX Lower 32-bits of MSR value.\r
2160 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR_REGISTER.\r
2161 @param EDX Upper 32-bits of MSR value.\r
2162 Described by the type MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR_REGISTER.\r
2163\r
2164 <b>Example usage</b>\r
2165 @code\r
2166 MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR_REGISTER Msr;\r
2167\r
2168 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR);\r
2169 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR, Msr.Uint64);\r
2170 @endcode\r
367f5c9c 2171 @note MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR is defined as MSR_UNC_PERF_FIXED_CTR in SDM.\r
dc5d621c
MK
2172**/\r
2173#define MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR 0x00000395\r
2174\r
2175/**\r
2176 MSR information returned for MSR index #MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR\r
2177**/\r
2178typedef union {\r
2179 ///\r
2180 /// Individual bit fields\r
2181 ///\r
2182 struct {\r
2183 ///\r
2184 /// [Bits 31:0] Current count.\r
2185 ///\r
2186 UINT32 CurrentCount:32;\r
2187 ///\r
2188 /// [Bits 47:32] Current count.\r
2189 ///\r
2190 UINT32 CurrentCountHi:16;\r
2191 UINT32 Reserved:16;\r
2192 } Bits;\r
2193 ///\r
2194 /// All bit fields as a 64-bit value\r
2195 ///\r
2196 UINT64 Uint64;\r
2197} MSR_SANDY_BRIDGE_UNC_PERF_FIXED_CTR_REGISTER;\r
2198\r
2199\r
2200/**\r
2201 Package. Uncore C-Box configuration information (R/O).\r
2202\r
2203 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_CONFIG (0x00000396)\r
2204 @param EAX Lower 32-bits of MSR value.\r
2205 Described by the type MSR_SANDY_BRIDGE_UNC_CBO_CONFIG_REGISTER.\r
2206 @param EDX Upper 32-bits of MSR value.\r
2207 Described by the type MSR_SANDY_BRIDGE_UNC_CBO_CONFIG_REGISTER.\r
2208\r
2209 <b>Example usage</b>\r
2210 @code\r
2211 MSR_SANDY_BRIDGE_UNC_CBO_CONFIG_REGISTER Msr;\r
2212\r
2213 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_CONFIG);\r
2214 @endcode\r
367f5c9c 2215 @note MSR_SANDY_BRIDGE_UNC_CBO_CONFIG is defined as MSR_UNC_CBO_CONFIG in SDM.\r
dc5d621c
MK
2216**/\r
2217#define MSR_SANDY_BRIDGE_UNC_CBO_CONFIG 0x00000396\r
2218\r
2219/**\r
2220 MSR information returned for MSR index #MSR_SANDY_BRIDGE_UNC_CBO_CONFIG\r
2221**/\r
2222typedef union {\r
2223 ///\r
2224 /// Individual bit fields\r
2225 ///\r
2226 struct {\r
2227 ///\r
0f16be6d
HW
2228 /// [Bits 3:0] Report the number of C-Box units with performance counters,\r
2229 /// including processor cores and processor graphics".\r
dc5d621c
MK
2230 ///\r
2231 UINT32 CBox:4;\r
2232 UINT32 Reserved1:28;\r
2233 UINT32 Reserved2:32;\r
2234 } Bits;\r
2235 ///\r
2236 /// All bit fields as a 32-bit value\r
2237 ///\r
2238 UINT32 Uint32;\r
2239 ///\r
2240 /// All bit fields as a 64-bit value\r
2241 ///\r
2242 UINT64 Uint64;\r
2243} MSR_SANDY_BRIDGE_UNC_CBO_CONFIG_REGISTER;\r
2244\r
2245\r
2246/**\r
2247 Package. Uncore Arb unit, performance counter 0.\r
2248\r
2249 @param ECX MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR0 (0x000003B0)\r
2250 @param EAX Lower 32-bits of MSR value.\r
2251 @param EDX Upper 32-bits of MSR value.\r
2252\r
2253 <b>Example usage</b>\r
2254 @code\r
2255 UINT64 Msr;\r
2256\r
2257 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR0);\r
2258 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR0, Msr);\r
2259 @endcode\r
367f5c9c 2260 @note MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR0 is defined as MSR_UNC_ARB_PERFCTR0 in SDM.\r
dc5d621c
MK
2261**/\r
2262#define MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR0 0x000003B0\r
2263\r
2264\r
2265/**\r
2266 Package. Uncore Arb unit, performance counter 1.\r
2267\r
2268 @param ECX MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR1 (0x000003B1)\r
2269 @param EAX Lower 32-bits of MSR value.\r
2270 @param EDX Upper 32-bits of MSR value.\r
2271\r
2272 <b>Example usage</b>\r
2273 @code\r
2274 UINT64 Msr;\r
2275\r
2276 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR1);\r
2277 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR1, Msr);\r
2278 @endcode\r
367f5c9c 2279 @note MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR1 is defined as MSR_UNC_ARB_PERFCTR1 in SDM.\r
dc5d621c
MK
2280**/\r
2281#define MSR_SANDY_BRIDGE_UNC_ARB_PERFCTR1 0x000003B1\r
2282\r
2283\r
2284/**\r
2285 Package. Uncore Arb unit, counter 0 event select MSR.\r
2286\r
2287 @param ECX MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL0 (0x000003B2)\r
2288 @param EAX Lower 32-bits of MSR value.\r
2289 @param EDX Upper 32-bits of MSR value.\r
2290\r
2291 <b>Example usage</b>\r
2292 @code\r
2293 UINT64 Msr;\r
2294\r
2295 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL0);\r
2296 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL0, Msr);\r
2297 @endcode\r
367f5c9c 2298 @note MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL0 is defined as MSR_UNC_ARB_PERFEVTSEL0 in SDM.\r
dc5d621c
MK
2299**/\r
2300#define MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL0 0x000003B2\r
2301\r
2302\r
2303/**\r
2304 Package. Uncore Arb unit, counter 1 event select MSR.\r
2305\r
2306 @param ECX MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL1 (0x000003B3)\r
2307 @param EAX Lower 32-bits of MSR value.\r
2308 @param EDX Upper 32-bits of MSR value.\r
2309\r
2310 <b>Example usage</b>\r
2311 @code\r
2312 UINT64 Msr;\r
2313\r
2314 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL1);\r
2315 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL1, Msr);\r
2316 @endcode\r
367f5c9c 2317 @note MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL1 is defined as MSR_UNC_ARB_PERFEVTSEL1 in SDM.\r
dc5d621c
MK
2318**/\r
2319#define MSR_SANDY_BRIDGE_UNC_ARB_PERFEVTSEL1 0x000003B3\r
2320\r
2321\r
2322/**\r
2323 Package. Package C7 Interrupt Response Limit (R/W) This MSR defines the\r
2324 budget allocated for the package to exit from C7 to a C0 state, where\r
2325 interrupt request can be delivered to the core and serviced. Additional\r
2326 core-exit latency amy be applicable depending on the actual C-state the core\r
2327 is in. Note: C-state values are processor specific C-state code names,\r
2328 unrelated to MWAIT extension C-state parameters or ACPI CStates.\r
2329\r
2330 @param ECX MSR_SANDY_BRIDGE_PKGC7_IRTL (0x0000060C)\r
2331 @param EAX Lower 32-bits of MSR value.\r
2332 Described by the type MSR_SANDY_BRIDGE_PKGC7_IRTL_REGISTER.\r
2333 @param EDX Upper 32-bits of MSR value.\r
2334 Described by the type MSR_SANDY_BRIDGE_PKGC7_IRTL_REGISTER.\r
2335\r
2336 <b>Example usage</b>\r
2337 @code\r
2338 MSR_SANDY_BRIDGE_PKGC7_IRTL_REGISTER Msr;\r
2339\r
2340 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKGC7_IRTL);\r
2341 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PKGC7_IRTL, Msr.Uint64);\r
2342 @endcode\r
367f5c9c 2343 @note MSR_SANDY_BRIDGE_PKGC7_IRTL is defined as MSR_PKGC7_IRTL in SDM.\r
dc5d621c
MK
2344**/\r
2345#define MSR_SANDY_BRIDGE_PKGC7_IRTL 0x0000060C\r
2346\r
2347/**\r
2348 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PKGC7_IRTL\r
2349**/\r
2350typedef union {\r
2351 ///\r
2352 /// Individual bit fields\r
2353 ///\r
2354 struct {\r
2355 ///\r
2356 /// [Bits 9:0] Interrupt response time limit (R/W) Specifies the limit\r
2357 /// that should be used to decide if the package should be put into a\r
2358 /// package C7 state.\r
2359 ///\r
2360 UINT32 TimeLimit:10;\r
2361 ///\r
2362 /// [Bits 12:10] Time Unit (R/W) Specifies the encoding value of time\r
2363 /// unit of the interrupt response time limit. The following time unit\r
2364 /// encodings are supported: 000b: 1 ns 001b: 32 ns 010b: 1024 ns 011b:\r
2365 /// 32768 ns 100b: 1048576 ns 101b: 33554432 ns.\r
2366 ///\r
2367 UINT32 TimeUnit:3;\r
2368 UINT32 Reserved1:2;\r
2369 ///\r
2370 /// [Bit 15] Valid (R/W) Indicates whether the values in bits 12:0 are\r
2371 /// valid and can be used by the processor for package C-sate management.\r
2372 ///\r
2373 UINT32 Valid:1;\r
2374 UINT32 Reserved2:16;\r
2375 UINT32 Reserved3:32;\r
2376 } Bits;\r
2377 ///\r
2378 /// All bit fields as a 32-bit value\r
2379 ///\r
2380 UINT32 Uint32;\r
2381 ///\r
2382 /// All bit fields as a 64-bit value\r
2383 ///\r
2384 UINT64 Uint64;\r
2385} MSR_SANDY_BRIDGE_PKGC7_IRTL_REGISTER;\r
2386\r
2387\r
2388/**\r
2389 Package. PP0 Balance Policy (R/W) See Section 14.9.4, "PP0/PP1 RAPL\r
2390 Domains.".\r
2391\r
2392 @param ECX MSR_SANDY_BRIDGE_PP0_POLICY (0x0000063A)\r
2393 @param EAX Lower 32-bits of MSR value.\r
2394 @param EDX Upper 32-bits of MSR value.\r
2395\r
2396 <b>Example usage</b>\r
2397 @code\r
2398 UINT64 Msr;\r
2399\r
2400 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PP0_POLICY);\r
2401 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PP0_POLICY, Msr);\r
2402 @endcode\r
367f5c9c 2403 @note MSR_SANDY_BRIDGE_PP0_POLICY is defined as MSR_PP0_POLICY in SDM.\r
dc5d621c
MK
2404**/\r
2405#define MSR_SANDY_BRIDGE_PP0_POLICY 0x0000063A\r
2406\r
2407\r
2408/**\r
2409 Package. PP1 RAPL Power Limit Control (R/W) See Section 14.9.4, "PP0/PP1\r
2410 RAPL Domains.".\r
2411\r
2412 @param ECX MSR_SANDY_BRIDGE_PP1_POWER_LIMIT (0x00000640)\r
2413 @param EAX Lower 32-bits of MSR value.\r
2414 @param EDX Upper 32-bits of MSR value.\r
2415\r
2416 <b>Example usage</b>\r
2417 @code\r
2418 UINT64 Msr;\r
2419\r
2420 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PP1_POWER_LIMIT);\r
2421 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PP1_POWER_LIMIT, Msr);\r
2422 @endcode\r
367f5c9c 2423 @note MSR_SANDY_BRIDGE_PP1_POWER_LIMIT is defined as MSR_PP1_POWER_LIMIT in SDM.\r
dc5d621c
MK
2424**/\r
2425#define MSR_SANDY_BRIDGE_PP1_POWER_LIMIT 0x00000640\r
2426\r
2427\r
2428/**\r
2429 Package. PP1 Energy Status (R/O) See Section 14.9.4, "PP0/PP1 RAPL\r
2430 Domains.".\r
2431\r
2432 @param ECX MSR_SANDY_BRIDGE_PP1_ENERGY_STATUS (0x00000641)\r
2433 @param EAX Lower 32-bits of MSR value.\r
2434 @param EDX Upper 32-bits of MSR value.\r
2435\r
2436 <b>Example usage</b>\r
2437 @code\r
2438 UINT64 Msr;\r
2439\r
2440 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PP1_ENERGY_STATUS);\r
2441 @endcode\r
367f5c9c 2442 @note MSR_SANDY_BRIDGE_PP1_ENERGY_STATUS is defined as MSR_PP1_ENERGY_STATUS in SDM.\r
dc5d621c
MK
2443**/\r
2444#define MSR_SANDY_BRIDGE_PP1_ENERGY_STATUS 0x00000641\r
2445\r
2446\r
2447/**\r
2448 Package. PP1 Balance Policy (R/W) See Section 14.9.4, "PP0/PP1 RAPL\r
2449 Domains.".\r
2450\r
2451 @param ECX MSR_SANDY_BRIDGE_PP1_POLICY (0x00000642)\r
2452 @param EAX Lower 32-bits of MSR value.\r
2453 @param EDX Upper 32-bits of MSR value.\r
2454\r
2455 <b>Example usage</b>\r
2456 @code\r
2457 UINT64 Msr;\r
2458\r
2459 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PP1_POLICY);\r
2460 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PP1_POLICY, Msr);\r
2461 @endcode\r
367f5c9c 2462 @note MSR_SANDY_BRIDGE_PP1_POLICY is defined as MSR_PP1_POLICY in SDM.\r
dc5d621c
MK
2463**/\r
2464#define MSR_SANDY_BRIDGE_PP1_POLICY 0x00000642\r
2465\r
2466\r
2467/**\r
0f16be6d 2468 Package. Uncore C-Box 0, counter n event select MSR.\r
dc5d621c 2469\r
0f16be6d 2470 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSELn\r
dc5d621c
MK
2471 @param EAX Lower 32-bits of MSR value.\r
2472 @param EDX Upper 32-bits of MSR value.\r
2473\r
2474 <b>Example usage</b>\r
2475 @code\r
2476 UINT64 Msr;\r
2477\r
2478 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0);\r
2479 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0, Msr);\r
2480 @endcode\r
367f5c9c 2481 @note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 is defined as MSR_UNC_CBO_0_PERFEVTSEL0 in SDM.\r
0f16be6d
HW
2482 MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 is defined as MSR_UNC_CBO_0_PERFEVTSEL1 in SDM.\r
2483 MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL2 is defined as MSR_UNC_CBO_0_PERFEVTSEL2 in SDM.\r
2484 MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL3 is defined as MSR_UNC_CBO_0_PERFEVTSEL3 in SDM.\r
2485 @{\r
dc5d621c
MK
2486**/\r
2487#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL0 0x00000700\r
0f16be6d
HW
2488#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL1 0x00000701\r
2489#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL2 0x00000702\r
2490#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFEVTSEL3 0x00000703\r
2491/// @}\r
dc5d621c
MK
2492\r
2493\r
2494/**\r
0f16be6d 2495 Package. Uncore C-Box n, unit status for counter 0-3.\r
dc5d621c 2496\r
0f16be6d 2497 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_n_UNIT_STATUS\r
dc5d621c
MK
2498 @param EAX Lower 32-bits of MSR value.\r
2499 @param EDX Upper 32-bits of MSR value.\r
2500\r
2501 <b>Example usage</b>\r
2502 @code\r
2503 UINT64 Msr;\r
2504\r
0f16be6d
HW
2505 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS);\r
2506 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS, Msr);\r
dc5d621c 2507 @endcode\r
0f16be6d
HW
2508 @note MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS is defined as MSR_UNC_CBO_0_UNIT_STATUS in SDM.\r
2509 MSR_SANDY_BRIDGE_UNC_CBO_1_UNIT_STATUS is defined as MSR_UNC_CBO_1_UNIT_STATUS in SDM.\r
2510 MSR_SANDY_BRIDGE_UNC_CBO_2_UNIT_STATUS is defined as MSR_UNC_CBO_2_UNIT_STATUS in SDM.\r
2511 MSR_SANDY_BRIDGE_UNC_CBO_3_UNIT_STATUS is defined as MSR_UNC_CBO_3_UNIT_STATUS in SDM.\r
2512 MSR_SANDY_BRIDGE_UNC_CBO_4_UNIT_STATUS is defined as MSR_UNC_CBO_4_UNIT_STATUS in SDM.\r
2513 @{\r
dc5d621c 2514**/\r
0f16be6d
HW
2515#define MSR_SANDY_BRIDGE_UNC_CBO_0_UNIT_STATUS 0x00000705\r
2516#define MSR_SANDY_BRIDGE_UNC_CBO_1_UNIT_STATUS 0x00000715\r
2517#define MSR_SANDY_BRIDGE_UNC_CBO_2_UNIT_STATUS 0x00000725\r
2518#define MSR_SANDY_BRIDGE_UNC_CBO_3_UNIT_STATUS 0x00000735\r
2519#define MSR_SANDY_BRIDGE_UNC_CBO_4_UNIT_STATUS 0x00000745\r
2520/// @}\r
dc5d621c
MK
2521\r
2522\r
2523/**\r
0f16be6d 2524 Package. Uncore C-Box 0, performance counter n.\r
dc5d621c 2525\r
0f16be6d 2526 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTRn\r
dc5d621c
MK
2527 @param EAX Lower 32-bits of MSR value.\r
2528 @param EDX Upper 32-bits of MSR value.\r
2529\r
2530 <b>Example usage</b>\r
2531 @code\r
2532 UINT64 Msr;\r
2533\r
2534 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0);\r
2535 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0, Msr);\r
2536 @endcode\r
367f5c9c 2537 @note MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 is defined as MSR_UNC_CBO_0_PERFCTR0 in SDM.\r
0f16be6d
HW
2538 MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 is defined as MSR_UNC_CBO_0_PERFCTR1 in SDM.\r
2539 MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR2 is defined as MSR_UNC_CBO_0_PERFCTR2 in SDM.\r
2540 MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR3 is defined as MSR_UNC_CBO_0_PERFCTR3 in SDM.\r
2541 @{\r
dc5d621c
MK
2542**/\r
2543#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR0 0x00000706\r
dc5d621c 2544#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR1 0x00000707\r
0f16be6d
HW
2545#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR2 0x00000708\r
2546#define MSR_SANDY_BRIDGE_UNC_CBO_0_PERFCTR3 0x00000709\r
2547/// @}\r
dc5d621c
MK
2548\r
2549\r
2550/**\r
0f16be6d 2551 Package. Uncore C-Box 1, counter n event select MSR.\r
dc5d621c 2552\r
0f16be6d 2553 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSELn\r
dc5d621c
MK
2554 @param EAX Lower 32-bits of MSR value.\r
2555 @param EDX Upper 32-bits of MSR value.\r
2556\r
2557 <b>Example usage</b>\r
2558 @code\r
2559 UINT64 Msr;\r
2560\r
2561 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0);\r
2562 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0, Msr);\r
2563 @endcode\r
367f5c9c 2564 @note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 is defined as MSR_UNC_CBO_1_PERFEVTSEL0 in SDM.\r
0f16be6d
HW
2565 MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 is defined as MSR_UNC_CBO_1_PERFEVTSEL1 in SDM.\r
2566 MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL2 is defined as MSR_UNC_CBO_1_PERFEVTSEL2 in SDM.\r
2567 MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL3 is defined as MSR_UNC_CBO_1_PERFEVTSEL3 in SDM.\r
2568 @{\r
dc5d621c
MK
2569**/\r
2570#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL0 0x00000710\r
dc5d621c 2571#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL1 0x00000711\r
0f16be6d
HW
2572#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL2 0x00000712\r
2573#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFEVTSEL3 0x00000713\r
2574/// @}\r
dc5d621c
MK
2575\r
2576\r
2577/**\r
0f16be6d 2578 Package. Uncore C-Box 1, performance counter n.\r
dc5d621c 2579\r
0f16be6d 2580 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTRn\r
dc5d621c
MK
2581 @param EAX Lower 32-bits of MSR value.\r
2582 @param EDX Upper 32-bits of MSR value.\r
2583\r
2584 <b>Example usage</b>\r
2585 @code\r
2586 UINT64 Msr;\r
2587\r
2588 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0);\r
2589 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0, Msr);\r
2590 @endcode\r
367f5c9c 2591 @note MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 is defined as MSR_UNC_CBO_1_PERFCTR0 in SDM.\r
0f16be6d
HW
2592 MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 is defined as MSR_UNC_CBO_1_PERFCTR1 in SDM.\r
2593 MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR2 is defined as MSR_UNC_CBO_1_PERFCTR2 in SDM.\r
2594 MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR3 is defined as MSR_UNC_CBO_1_PERFCTR3 in SDM.\r
2595 @{\r
dc5d621c
MK
2596**/\r
2597#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR0 0x00000716\r
dc5d621c 2598#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR1 0x00000717\r
0f16be6d
HW
2599#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR2 0x00000718\r
2600#define MSR_SANDY_BRIDGE_UNC_CBO_1_PERFCTR3 0x00000719\r
2601/// @}\r
dc5d621c
MK
2602\r
2603\r
2604/**\r
0f16be6d 2605 Package. Uncore C-Box 2, counter n event select MSR.\r
dc5d621c 2606\r
0f16be6d 2607 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSELn\r
dc5d621c
MK
2608 @param EAX Lower 32-bits of MSR value.\r
2609 @param EDX Upper 32-bits of MSR value.\r
2610\r
2611 <b>Example usage</b>\r
2612 @code\r
2613 UINT64 Msr;\r
2614\r
2615 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0);\r
2616 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0, Msr);\r
2617 @endcode\r
367f5c9c 2618 @note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 is defined as MSR_UNC_CBO_2_PERFEVTSEL0 in SDM.\r
0f16be6d
HW
2619 MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 is defined as MSR_UNC_CBO_2_PERFEVTSEL1 in SDM.\r
2620 MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL2 is defined as MSR_UNC_CBO_2_PERFEVTSEL2 in SDM.\r
2621 MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL3 is defined as MSR_UNC_CBO_2_PERFEVTSEL3 in SDM.\r
2622 @{\r
dc5d621c
MK
2623**/\r
2624#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL0 0x00000720\r
dc5d621c 2625#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL1 0x00000721\r
0f16be6d
HW
2626#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL2 0x00000722\r
2627#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFEVTSEL3 0x00000723\r
2628/// @}\r
dc5d621c
MK
2629\r
2630\r
2631/**\r
0f16be6d 2632 Package. Uncore C-Box 2, performance counter n.\r
dc5d621c 2633\r
0f16be6d 2634 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTRn\r
dc5d621c
MK
2635 @param EAX Lower 32-bits of MSR value.\r
2636 @param EDX Upper 32-bits of MSR value.\r
2637\r
2638 <b>Example usage</b>\r
2639 @code\r
2640 UINT64 Msr;\r
2641\r
2642 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0);\r
2643 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0, Msr);\r
2644 @endcode\r
367f5c9c 2645 @note MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 is defined as MSR_UNC_CBO_2_PERFCTR0 in SDM.\r
0f16be6d
HW
2646 MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 is defined as MSR_UNC_CBO_2_PERFCTR1 in SDM.\r
2647 MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR2 is defined as MSR_UNC_CBO_2_PERFCTR2 in SDM.\r
2648 MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR3 is defined as MSR_UNC_CBO_2_PERFCTR3 in SDM.\r
2649 @{\r
dc5d621c
MK
2650**/\r
2651#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR0 0x00000726\r
dc5d621c 2652#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR1 0x00000727\r
0f16be6d
HW
2653#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR2 0x00000728\r
2654#define MSR_SANDY_BRIDGE_UNC_CBO_2_PERFCTR3 0x00000729\r
2655/// @}\r
dc5d621c
MK
2656\r
2657\r
2658/**\r
0f16be6d 2659 Package. Uncore C-Box 3, counter n event select MSR.\r
dc5d621c 2660\r
0f16be6d 2661 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSELn\r
dc5d621c
MK
2662 @param EAX Lower 32-bits of MSR value.\r
2663 @param EDX Upper 32-bits of MSR value.\r
2664\r
2665 <b>Example usage</b>\r
2666 @code\r
2667 UINT64 Msr;\r
2668\r
2669 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0);\r
2670 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0, Msr);\r
2671 @endcode\r
367f5c9c 2672 @note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 is defined as MSR_UNC_CBO_3_PERFEVTSEL0 in SDM.\r
0f16be6d
HW
2673 MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 is defined as MSR_UNC_CBO_3_PERFEVTSEL1 in SDM.\r
2674 MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL2 is defined as MSR_UNC_CBO_3_PERFEVTSEL2 in SDM.\r
2675 MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL3 is defined as MSR_UNC_CBO_3_PERFEVTSEL3 in SDM.\r
2676 @{\r
dc5d621c
MK
2677**/\r
2678#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL0 0x00000730\r
0f16be6d
HW
2679#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL1 0x00000731\r
2680#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL2 0x00000732\r
2681#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFEVTSEL3 0x00000733\r
2682/// @}\r
dc5d621c
MK
2683\r
2684\r
2685/**\r
0f16be6d 2686 Package. Uncore C-Box 3, performance counter n.\r
dc5d621c 2687\r
0f16be6d 2688 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTRn\r
dc5d621c
MK
2689 @param EAX Lower 32-bits of MSR value.\r
2690 @param EDX Upper 32-bits of MSR value.\r
2691\r
2692 <b>Example usage</b>\r
2693 @code\r
2694 UINT64 Msr;\r
2695\r
0f16be6d
HW
2696 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0);\r
2697 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0, Msr);\r
dc5d621c 2698 @endcode\r
0f16be6d
HW
2699 @note MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 is defined as MSR_UNC_CBO_3_PERFCTR0 in SDM.\r
2700 MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 is defined as MSR_UNC_CBO_3_PERFCTR1 in SDM.\r
2701 MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR2 is defined as MSR_UNC_CBO_3_PERFCTR2 in SDM.\r
2702 MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR3 is defined as MSR_UNC_CBO_3_PERFCTR3 in SDM.\r
2703 @{\r
dc5d621c 2704**/\r
0f16be6d
HW
2705#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR0 0x00000736\r
2706#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR1 0x00000737\r
2707#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR2 0x00000738\r
2708#define MSR_SANDY_BRIDGE_UNC_CBO_3_PERFCTR3 0x00000739\r
2709/// @}\r
dc5d621c
MK
2710\r
2711\r
2712/**\r
0f16be6d 2713 Package. Uncore C-Box 4, counter n event select MSR.\r
dc5d621c 2714\r
0f16be6d 2715 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSELn\r
dc5d621c
MK
2716 @param EAX Lower 32-bits of MSR value.\r
2717 @param EDX Upper 32-bits of MSR value.\r
2718\r
2719 <b>Example usage</b>\r
2720 @code\r
2721 UINT64 Msr;\r
2722\r
0f16be6d
HW
2723 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0);\r
2724 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0, Msr);\r
dc5d621c 2725 @endcode\r
0f16be6d
HW
2726 @note MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0 is defined as MSR_UNC_CBO_4_PERFEVTSEL0 in SDM.\r
2727 MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL1 is defined as MSR_UNC_CBO_4_PERFEVTSEL1 in SDM.\r
2728 MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL2 is defined as MSR_UNC_CBO_4_PERFEVTSEL2 in SDM.\r
2729 MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL3 is defined as MSR_UNC_CBO_4_PERFEVTSEL3 in SDM.\r
2730 @{\r
dc5d621c 2731**/\r
0f16be6d
HW
2732#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL0 0x00000740\r
2733#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL1 0x00000741\r
2734#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL2 0x00000742\r
2735#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFEVTSEL3 0x00000743\r
2736/// @}\r
dc5d621c
MK
2737\r
2738\r
2739/**\r
0f16be6d 2740 Package. Uncore C-Box 4, performance counter n.\r
dc5d621c 2741\r
0f16be6d 2742 @param ECX MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTRn\r
dc5d621c
MK
2743 @param EAX Lower 32-bits of MSR value.\r
2744 @param EDX Upper 32-bits of MSR value.\r
2745\r
2746 <b>Example usage</b>\r
2747 @code\r
2748 UINT64 Msr;\r
2749\r
0f16be6d
HW
2750 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0);\r
2751 AsmWriteMsr64 (MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0, Msr);\r
dc5d621c 2752 @endcode\r
0f16be6d
HW
2753 @note MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0 is defined as MSR_UNC_CBO_4_PERFCTR0 in SDM.\r
2754 MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR1 is defined as MSR_UNC_CBO_4_PERFCTR1 in SDM.\r
2755 MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR2 is defined as MSR_UNC_CBO_4_PERFCTR2 in SDM.\r
2756 MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR3 is defined as MSR_UNC_CBO_4_PERFCTR3 in SDM.\r
2757 @{\r
dc5d621c 2758**/\r
0f16be6d
HW
2759#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR0 0x00000746\r
2760#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR1 0x00000747\r
2761#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR2 0x00000748\r
2762#define MSR_SANDY_BRIDGE_UNC_CBO_4_PERFCTR3 0x00000749\r
2763/// @}\r
dc5d621c
MK
2764\r
2765\r
2766/**\r
2767 Package. MC Bank Error Configuration (R/W).\r
2768\r
2769 @param ECX MSR_SANDY_BRIDGE_ERROR_CONTROL (0x0000017F)\r
2770 @param EAX Lower 32-bits of MSR value.\r
2771 Described by the type MSR_SANDY_BRIDGE_ERROR_CONTROL_REGISTER.\r
2772 @param EDX Upper 32-bits of MSR value.\r
2773 Described by the type MSR_SANDY_BRIDGE_ERROR_CONTROL_REGISTER.\r
2774\r
2775 <b>Example usage</b>\r
2776 @code\r
2777 MSR_SANDY_BRIDGE_ERROR_CONTROL_REGISTER Msr;\r
2778\r
2779 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_ERROR_CONTROL);\r
2780 AsmWriteMsr64 (MSR_SANDY_BRIDGE_ERROR_CONTROL, Msr.Uint64);\r
2781 @endcode\r
367f5c9c 2782 @note MSR_SANDY_BRIDGE_ERROR_CONTROL is defined as MSR_ERROR_CONTROL in SDM.\r
dc5d621c
MK
2783**/\r
2784#define MSR_SANDY_BRIDGE_ERROR_CONTROL 0x0000017F\r
2785\r
2786/**\r
2787 MSR information returned for MSR index #MSR_SANDY_BRIDGE_ERROR_CONTROL\r
2788**/\r
2789typedef union {\r
2790 ///\r
2791 /// Individual bit fields\r
2792 ///\r
2793 struct {\r
2794 UINT32 Reserved1:1;\r
2795 ///\r
2796 /// [Bit 1] MemError Log Enable (R/W) When set, enables IMC status bank\r
2797 /// to log additional info in bits 36:32.\r
2798 ///\r
2799 UINT32 MemErrorLogEnable:1;\r
2800 UINT32 Reserved2:30;\r
2801 UINT32 Reserved3:32;\r
2802 } Bits;\r
2803 ///\r
2804 /// All bit fields as a 32-bit value\r
2805 ///\r
2806 UINT32 Uint32;\r
2807 ///\r
2808 /// All bit fields as a 64-bit value\r
2809 ///\r
2810 UINT64 Uint64;\r
2811} MSR_SANDY_BRIDGE_ERROR_CONTROL_REGISTER;\r
2812\r
2813\r
2814/**\r
2815 Package.\r
2816\r
2817 @param ECX MSR_SANDY_BRIDGE_PEBS_NUM_ALT (0x0000039C)\r
2818 @param EAX Lower 32-bits of MSR value.\r
2819 Described by the type MSR_SANDY_BRIDGE_PEBS_NUM_ALT_REGISTER.\r
2820 @param EDX Upper 32-bits of MSR value.\r
2821 Described by the type MSR_SANDY_BRIDGE_PEBS_NUM_ALT_REGISTER.\r
2822\r
2823 <b>Example usage</b>\r
2824 @code\r
2825 MSR_SANDY_BRIDGE_PEBS_NUM_ALT_REGISTER Msr;\r
2826\r
2827 Msr.Uint64 = AsmReadMsr64 (MSR_SANDY_BRIDGE_PEBS_NUM_ALT);\r
2828 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PEBS_NUM_ALT, Msr.Uint64);\r
2829 @endcode\r
367f5c9c 2830 @note MSR_SANDY_BRIDGE_PEBS_NUM_ALT is defined as MSR_PEBS_NUM_ALT in SDM.\r
dc5d621c
MK
2831**/\r
2832#define MSR_SANDY_BRIDGE_PEBS_NUM_ALT 0x0000039C\r
2833\r
2834/**\r
2835 MSR information returned for MSR index #MSR_SANDY_BRIDGE_PEBS_NUM_ALT\r
2836**/\r
2837typedef union {\r
2838 ///\r
2839 /// Individual bit fields\r
2840 ///\r
2841 struct {\r
2842 ///\r
2843 /// [Bit 0] ENABLE_PEBS_NUM_ALT (RW) Write 1 to enable alternate PEBS\r
2844 /// counting logic for specific events requiring additional configuration,\r
0f16be6d 2845 /// see Table 19-15.\r
dc5d621c
MK
2846 ///\r
2847 UINT32 ENABLE_PEBS_NUM_ALT:1;\r
2848 UINT32 Reserved1:31;\r
2849 UINT32 Reserved2:32;\r
2850 } Bits;\r
2851 ///\r
2852 /// All bit fields as a 32-bit value\r
2853 ///\r
2854 UINT32 Uint32;\r
2855 ///\r
2856 /// All bit fields as a 64-bit value\r
2857 ///\r
2858 UINT64 Uint64;\r
2859} MSR_SANDY_BRIDGE_PEBS_NUM_ALT_REGISTER;\r
2860\r
2861\r
dc5d621c
MK
2862/**\r
2863 Package. Package RAPL Perf Status (R/O).\r
2864\r
2865 @param ECX MSR_SANDY_BRIDGE_PKG_PERF_STATUS (0x00000613)\r
2866 @param EAX Lower 32-bits of MSR value.\r
2867 @param EDX Upper 32-bits of MSR value.\r
2868\r
2869 <b>Example usage</b>\r
2870 @code\r
2871 UINT64 Msr;\r
2872\r
2873 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PKG_PERF_STATUS);\r
2874 @endcode\r
367f5c9c 2875 @note MSR_SANDY_BRIDGE_PKG_PERF_STATUS is defined as MSR_PKG_PERF_STATUS in SDM.\r
dc5d621c
MK
2876**/\r
2877#define MSR_SANDY_BRIDGE_PKG_PERF_STATUS 0x00000613\r
2878\r
2879\r
2880/**\r
2881 Package. DRAM RAPL Power Limit Control (R/W) See Section 14.9.5, "DRAM RAPL\r
2882 Domain.".\r
2883\r
2884 @param ECX MSR_SANDY_BRIDGE_DRAM_POWER_LIMIT (0x00000618)\r
2885 @param EAX Lower 32-bits of MSR value.\r
2886 @param EDX Upper 32-bits of MSR value.\r
2887\r
2888 <b>Example usage</b>\r
2889 @code\r
2890 UINT64 Msr;\r
2891\r
2892 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_DRAM_POWER_LIMIT);\r
2893 AsmWriteMsr64 (MSR_SANDY_BRIDGE_DRAM_POWER_LIMIT, Msr);\r
2894 @endcode\r
367f5c9c 2895 @note MSR_SANDY_BRIDGE_DRAM_POWER_LIMIT is defined as MSR_DRAM_POWER_LIMIT in SDM.\r
dc5d621c
MK
2896**/\r
2897#define MSR_SANDY_BRIDGE_DRAM_POWER_LIMIT 0x00000618\r
2898\r
2899\r
2900/**\r
2901 Package. DRAM Energy Status (R/O) See Section 14.9.5, "DRAM RAPL Domain.".\r
2902\r
2903 @param ECX MSR_SANDY_BRIDGE_DRAM_ENERGY_STATUS (0x00000619)\r
2904 @param EAX Lower 32-bits of MSR value.\r
2905 @param EDX Upper 32-bits of MSR value.\r
2906\r
2907 <b>Example usage</b>\r
2908 @code\r
2909 UINT64 Msr;\r
2910\r
2911 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_DRAM_ENERGY_STATUS);\r
2912 @endcode\r
367f5c9c 2913 @note MSR_SANDY_BRIDGE_DRAM_ENERGY_STATUS is defined as MSR_DRAM_ENERGY_STATUS in SDM.\r
dc5d621c
MK
2914**/\r
2915#define MSR_SANDY_BRIDGE_DRAM_ENERGY_STATUS 0x00000619\r
2916\r
2917\r
2918/**\r
2919 Package. DRAM Performance Throttling Status (R/O) See Section 14.9.5, "DRAM\r
2920 RAPL Domain.".\r
2921\r
2922 @param ECX MSR_SANDY_BRIDGE_DRAM_PERF_STATUS (0x0000061B)\r
2923 @param EAX Lower 32-bits of MSR value.\r
2924 @param EDX Upper 32-bits of MSR value.\r
2925\r
2926 <b>Example usage</b>\r
2927 @code\r
2928 UINT64 Msr;\r
2929\r
2930 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_DRAM_PERF_STATUS);\r
2931 @endcode\r
367f5c9c 2932 @note MSR_SANDY_BRIDGE_DRAM_PERF_STATUS is defined as MSR_DRAM_PERF_STATUS in SDM.\r
dc5d621c
MK
2933**/\r
2934#define MSR_SANDY_BRIDGE_DRAM_PERF_STATUS 0x0000061B\r
2935\r
2936\r
2937/**\r
2938 Package. DRAM RAPL Parameters (R/W) See Section 14.9.5, "DRAM RAPL Domain.".\r
2939\r
2940 @param ECX MSR_SANDY_BRIDGE_DRAM_POWER_INFO (0x0000061C)\r
2941 @param EAX Lower 32-bits of MSR value.\r
2942 @param EDX Upper 32-bits of MSR value.\r
2943\r
2944 <b>Example usage</b>\r
2945 @code\r
2946 UINT64 Msr;\r
2947\r
2948 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_DRAM_POWER_INFO);\r
2949 AsmWriteMsr64 (MSR_SANDY_BRIDGE_DRAM_POWER_INFO, Msr);\r
2950 @endcode\r
367f5c9c 2951 @note MSR_SANDY_BRIDGE_DRAM_POWER_INFO is defined as MSR_DRAM_POWER_INFO in SDM.\r
dc5d621c
MK
2952**/\r
2953#define MSR_SANDY_BRIDGE_DRAM_POWER_INFO 0x0000061C\r
2954\r
2955\r
2956/**\r
2957 Package. Uncore U-box UCLK fixed counter control.\r
2958\r
2959 @param ECX MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTL (0x00000C08)\r
2960 @param EAX Lower 32-bits of MSR value.\r
2961 @param EDX Upper 32-bits of MSR value.\r
2962\r
2963 <b>Example usage</b>\r
2964 @code\r
2965 UINT64 Msr;\r
2966\r
2967 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTL);\r
2968 AsmWriteMsr64 (MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTL, Msr);\r
2969 @endcode\r
367f5c9c 2970 @note MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTL is defined as MSR_U_PMON_UCLK_FIXED_CTL in SDM.\r
dc5d621c
MK
2971**/\r
2972#define MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTL 0x00000C08\r
2973\r
2974\r
2975/**\r
2976 Package. Uncore U-box UCLK fixed counter.\r
2977\r
2978 @param ECX MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTR (0x00000C09)\r
2979 @param EAX Lower 32-bits of MSR value.\r
2980 @param EDX Upper 32-bits of MSR value.\r
2981\r
2982 <b>Example usage</b>\r
2983 @code\r
2984 UINT64 Msr;\r
2985\r
2986 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTR);\r
2987 AsmWriteMsr64 (MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTR, Msr);\r
2988 @endcode\r
367f5c9c 2989 @note MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTR is defined as MSR_U_PMON_UCLK_FIXED_CTR in SDM.\r
dc5d621c
MK
2990**/\r
2991#define MSR_SANDY_BRIDGE_U_PMON_UCLK_FIXED_CTR 0x00000C09\r
2992\r
2993\r
2994/**\r
2995 Package. Uncore U-box perfmon event select for U-box counter 0.\r
2996\r
2997 @param ECX MSR_SANDY_BRIDGE_U_PMON_EVNTSEL0 (0x00000C10)\r
2998 @param EAX Lower 32-bits of MSR value.\r
2999 @param EDX Upper 32-bits of MSR value.\r
3000\r
3001 <b>Example usage</b>\r
3002 @code\r
3003 UINT64 Msr;\r
3004\r
3005 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_U_PMON_EVNTSEL0);\r
3006 AsmWriteMsr64 (MSR_SANDY_BRIDGE_U_PMON_EVNTSEL0, Msr);\r
3007 @endcode\r
367f5c9c 3008 @note MSR_SANDY_BRIDGE_U_PMON_EVNTSEL0 is defined as MSR_U_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
3009**/\r
3010#define MSR_SANDY_BRIDGE_U_PMON_EVNTSEL0 0x00000C10\r
3011\r
3012\r
3013/**\r
3014 Package. Uncore U-box perfmon event select for U-box counter 1.\r
3015\r
3016 @param ECX MSR_SANDY_BRIDGE_U_PMON_EVNTSEL1 (0x00000C11)\r
3017 @param EAX Lower 32-bits of MSR value.\r
3018 @param EDX Upper 32-bits of MSR value.\r
3019\r
3020 <b>Example usage</b>\r
3021 @code\r
3022 UINT64 Msr;\r
3023\r
3024 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_U_PMON_EVNTSEL1);\r
3025 AsmWriteMsr64 (MSR_SANDY_BRIDGE_U_PMON_EVNTSEL1, Msr);\r
3026 @endcode\r
367f5c9c 3027 @note MSR_SANDY_BRIDGE_U_PMON_EVNTSEL1 is defined as MSR_U_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
3028**/\r
3029#define MSR_SANDY_BRIDGE_U_PMON_EVNTSEL1 0x00000C11\r
3030\r
3031\r
3032/**\r
3033 Package. Uncore U-box perfmon counter 0.\r
3034\r
3035 @param ECX MSR_SANDY_BRIDGE_U_PMON_CTR0 (0x00000C16)\r
3036 @param EAX Lower 32-bits of MSR value.\r
3037 @param EDX Upper 32-bits of MSR value.\r
3038\r
3039 <b>Example usage</b>\r
3040 @code\r
3041 UINT64 Msr;\r
3042\r
3043 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_U_PMON_CTR0);\r
3044 AsmWriteMsr64 (MSR_SANDY_BRIDGE_U_PMON_CTR0, Msr);\r
3045 @endcode\r
367f5c9c 3046 @note MSR_SANDY_BRIDGE_U_PMON_CTR0 is defined as MSR_U_PMON_CTR0 in SDM.\r
dc5d621c
MK
3047**/\r
3048#define MSR_SANDY_BRIDGE_U_PMON_CTR0 0x00000C16\r
3049\r
3050\r
3051/**\r
3052 Package. Uncore U-box perfmon counter 1.\r
3053\r
3054 @param ECX MSR_SANDY_BRIDGE_U_PMON_CTR1 (0x00000C17)\r
3055 @param EAX Lower 32-bits of MSR value.\r
3056 @param EDX Upper 32-bits of MSR value.\r
3057\r
3058 <b>Example usage</b>\r
3059 @code\r
3060 UINT64 Msr;\r
3061\r
3062 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_U_PMON_CTR1);\r
3063 AsmWriteMsr64 (MSR_SANDY_BRIDGE_U_PMON_CTR1, Msr);\r
3064 @endcode\r
367f5c9c 3065 @note MSR_SANDY_BRIDGE_U_PMON_CTR1 is defined as MSR_U_PMON_CTR1 in SDM.\r
dc5d621c
MK
3066**/\r
3067#define MSR_SANDY_BRIDGE_U_PMON_CTR1 0x00000C17\r
3068\r
3069\r
3070/**\r
3071 Package. Uncore PCU perfmon for PCU-box-wide control.\r
3072\r
3073 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_BOX_CTL (0x00000C24)\r
3074 @param EAX Lower 32-bits of MSR value.\r
3075 @param EDX Upper 32-bits of MSR value.\r
3076\r
3077 <b>Example usage</b>\r
3078 @code\r
3079 UINT64 Msr;\r
3080\r
3081 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_BOX_CTL);\r
3082 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_BOX_CTL, Msr);\r
3083 @endcode\r
367f5c9c 3084 @note MSR_SANDY_BRIDGE_PCU_PMON_BOX_CTL is defined as MSR_PCU_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
3085**/\r
3086#define MSR_SANDY_BRIDGE_PCU_PMON_BOX_CTL 0x00000C24\r
3087\r
3088\r
3089/**\r
3090 Package. Uncore PCU perfmon event select for PCU counter 0.\r
3091\r
3092 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL0 (0x00000C30)\r
3093 @param EAX Lower 32-bits of MSR value.\r
3094 @param EDX Upper 32-bits of MSR value.\r
3095\r
3096 <b>Example usage</b>\r
3097 @code\r
3098 UINT64 Msr;\r
3099\r
3100 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL0);\r
3101 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL0, Msr);\r
3102 @endcode\r
367f5c9c 3103 @note MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL0 is defined as MSR_PCU_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
3104**/\r
3105#define MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL0 0x00000C30\r
3106\r
3107\r
3108/**\r
3109 Package. Uncore PCU perfmon event select for PCU counter 1.\r
3110\r
3111 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL1 (0x00000C31)\r
3112 @param EAX Lower 32-bits of MSR value.\r
3113 @param EDX Upper 32-bits of MSR value.\r
3114\r
3115 <b>Example usage</b>\r
3116 @code\r
3117 UINT64 Msr;\r
3118\r
3119 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL1);\r
3120 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL1, Msr);\r
3121 @endcode\r
367f5c9c 3122 @note MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL1 is defined as MSR_PCU_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
3123**/\r
3124#define MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL1 0x00000C31\r
3125\r
3126\r
3127/**\r
3128 Package. Uncore PCU perfmon event select for PCU counter 2.\r
3129\r
3130 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL2 (0x00000C32)\r
3131 @param EAX Lower 32-bits of MSR value.\r
3132 @param EDX Upper 32-bits of MSR value.\r
3133\r
3134 <b>Example usage</b>\r
3135 @code\r
3136 UINT64 Msr;\r
3137\r
3138 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL2);\r
3139 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL2, Msr);\r
3140 @endcode\r
367f5c9c 3141 @note MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL2 is defined as MSR_PCU_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
3142**/\r
3143#define MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL2 0x00000C32\r
3144\r
3145\r
3146/**\r
3147 Package. Uncore PCU perfmon event select for PCU counter 3.\r
3148\r
3149 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL3 (0x00000C33)\r
3150 @param EAX Lower 32-bits of MSR value.\r
3151 @param EDX Upper 32-bits of MSR value.\r
3152\r
3153 <b>Example usage</b>\r
3154 @code\r
3155 UINT64 Msr;\r
3156\r
3157 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL3);\r
3158 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL3, Msr);\r
3159 @endcode\r
367f5c9c 3160 @note MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL3 is defined as MSR_PCU_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
3161**/\r
3162#define MSR_SANDY_BRIDGE_PCU_PMON_EVNTSEL3 0x00000C33\r
3163\r
3164\r
3165/**\r
3166 Package. Uncore PCU perfmon box-wide filter.\r
3167\r
3168 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_BOX_FILTER (0x00000C34)\r
3169 @param EAX Lower 32-bits of MSR value.\r
3170 @param EDX Upper 32-bits of MSR value.\r
3171\r
3172 <b>Example usage</b>\r
3173 @code\r
3174 UINT64 Msr;\r
3175\r
3176 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_BOX_FILTER);\r
3177 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_BOX_FILTER, Msr);\r
3178 @endcode\r
367f5c9c 3179 @note MSR_SANDY_BRIDGE_PCU_PMON_BOX_FILTER is defined as MSR_PCU_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
3180**/\r
3181#define MSR_SANDY_BRIDGE_PCU_PMON_BOX_FILTER 0x00000C34\r
3182\r
3183\r
3184/**\r
3185 Package. Uncore PCU perfmon counter 0.\r
3186\r
3187 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_CTR0 (0x00000C36)\r
3188 @param EAX Lower 32-bits of MSR value.\r
3189 @param EDX Upper 32-bits of MSR value.\r
3190\r
3191 <b>Example usage</b>\r
3192 @code\r
3193 UINT64 Msr;\r
3194\r
3195 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR0);\r
3196 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR0, Msr);\r
3197 @endcode\r
367f5c9c 3198 @note MSR_SANDY_BRIDGE_PCU_PMON_CTR0 is defined as MSR_PCU_PMON_CTR0 in SDM.\r
dc5d621c
MK
3199**/\r
3200#define MSR_SANDY_BRIDGE_PCU_PMON_CTR0 0x00000C36\r
3201\r
3202\r
3203/**\r
3204 Package. Uncore PCU perfmon counter 1.\r
3205\r
3206 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_CTR1 (0x00000C37)\r
3207 @param EAX Lower 32-bits of MSR value.\r
3208 @param EDX Upper 32-bits of MSR value.\r
3209\r
3210 <b>Example usage</b>\r
3211 @code\r
3212 UINT64 Msr;\r
3213\r
3214 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR1);\r
3215 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR1, Msr);\r
3216 @endcode\r
367f5c9c 3217 @note MSR_SANDY_BRIDGE_PCU_PMON_CTR1 is defined as MSR_PCU_PMON_CTR1 in SDM.\r
dc5d621c
MK
3218**/\r
3219#define MSR_SANDY_BRIDGE_PCU_PMON_CTR1 0x00000C37\r
3220\r
3221\r
3222/**\r
3223 Package. Uncore PCU perfmon counter 2.\r
3224\r
3225 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_CTR2 (0x00000C38)\r
3226 @param EAX Lower 32-bits of MSR value.\r
3227 @param EDX Upper 32-bits of MSR value.\r
3228\r
3229 <b>Example usage</b>\r
3230 @code\r
3231 UINT64 Msr;\r
3232\r
3233 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR2);\r
3234 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR2, Msr);\r
3235 @endcode\r
367f5c9c 3236 @note MSR_SANDY_BRIDGE_PCU_PMON_CTR2 is defined as MSR_PCU_PMON_CTR2 in SDM.\r
dc5d621c
MK
3237**/\r
3238#define MSR_SANDY_BRIDGE_PCU_PMON_CTR2 0x00000C38\r
3239\r
3240\r
3241/**\r
3242 Package. Uncore PCU perfmon counter 3.\r
3243\r
3244 @param ECX MSR_SANDY_BRIDGE_PCU_PMON_CTR3 (0x00000C39)\r
3245 @param EAX Lower 32-bits of MSR value.\r
3246 @param EDX Upper 32-bits of MSR value.\r
3247\r
3248 <b>Example usage</b>\r
3249 @code\r
3250 UINT64 Msr;\r
3251\r
3252 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR3);\r
3253 AsmWriteMsr64 (MSR_SANDY_BRIDGE_PCU_PMON_CTR3, Msr);\r
3254 @endcode\r
367f5c9c 3255 @note MSR_SANDY_BRIDGE_PCU_PMON_CTR3 is defined as MSR_PCU_PMON_CTR3 in SDM.\r
dc5d621c
MK
3256**/\r
3257#define MSR_SANDY_BRIDGE_PCU_PMON_CTR3 0x00000C39\r
3258\r
3259\r
3260/**\r
3261 Package. Uncore C-box 0 perfmon local box wide control.\r
3262\r
3263 @param ECX MSR_SANDY_BRIDGE_C0_PMON_BOX_CTL (0x00000D04)\r
3264 @param EAX Lower 32-bits of MSR value.\r
3265 @param EDX Upper 32-bits of MSR value.\r
3266\r
3267 <b>Example usage</b>\r
3268 @code\r
3269 UINT64 Msr;\r
3270\r
3271 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_BOX_CTL);\r
3272 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_BOX_CTL, Msr);\r
3273 @endcode\r
367f5c9c 3274 @note MSR_SANDY_BRIDGE_C0_PMON_BOX_CTL is defined as MSR_C0_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
3275**/\r
3276#define MSR_SANDY_BRIDGE_C0_PMON_BOX_CTL 0x00000D04\r
3277\r
3278\r
3279/**\r
3280 Package. Uncore C-box 0 perfmon event select for C-box 0 counter 0.\r
3281\r
3282 @param ECX MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL0 (0x00000D10)\r
3283 @param EAX Lower 32-bits of MSR value.\r
3284 @param EDX Upper 32-bits of MSR value.\r
3285\r
3286 <b>Example usage</b>\r
3287 @code\r
3288 UINT64 Msr;\r
3289\r
3290 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL0);\r
3291 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL0, Msr);\r
3292 @endcode\r
367f5c9c 3293 @note MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL0 is defined as MSR_C0_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
3294**/\r
3295#define MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL0 0x00000D10\r
3296\r
3297\r
3298/**\r
3299 Package. Uncore C-box 0 perfmon event select for C-box 0 counter 1.\r
3300\r
3301 @param ECX MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL1 (0x00000D11)\r
3302 @param EAX Lower 32-bits of MSR value.\r
3303 @param EDX Upper 32-bits of MSR value.\r
3304\r
3305 <b>Example usage</b>\r
3306 @code\r
3307 UINT64 Msr;\r
3308\r
3309 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL1);\r
3310 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL1, Msr);\r
3311 @endcode\r
367f5c9c 3312 @note MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL1 is defined as MSR_C0_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
3313**/\r
3314#define MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL1 0x00000D11\r
3315\r
3316\r
3317/**\r
3318 Package. Uncore C-box 0 perfmon event select for C-box 0 counter 2.\r
3319\r
3320 @param ECX MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL2 (0x00000D12)\r
3321 @param EAX Lower 32-bits of MSR value.\r
3322 @param EDX Upper 32-bits of MSR value.\r
3323\r
3324 <b>Example usage</b>\r
3325 @code\r
3326 UINT64 Msr;\r
3327\r
3328 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL2);\r
3329 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL2, Msr);\r
3330 @endcode\r
367f5c9c 3331 @note MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL2 is defined as MSR_C0_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
3332**/\r
3333#define MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL2 0x00000D12\r
3334\r
3335\r
3336/**\r
3337 Package. Uncore C-box 0 perfmon event select for C-box 0 counter 3.\r
3338\r
3339 @param ECX MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL3 (0x00000D13)\r
3340 @param EAX Lower 32-bits of MSR value.\r
3341 @param EDX Upper 32-bits of MSR value.\r
3342\r
3343 <b>Example usage</b>\r
3344 @code\r
3345 UINT64 Msr;\r
3346\r
3347 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL3);\r
3348 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL3, Msr);\r
3349 @endcode\r
367f5c9c 3350 @note MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL3 is defined as MSR_C0_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
3351**/\r
3352#define MSR_SANDY_BRIDGE_C0_PMON_EVNTSEL3 0x00000D13\r
3353\r
3354\r
3355/**\r
3356 Package. Uncore C-box 0 perfmon box wide filter.\r
3357\r
3358 @param ECX MSR_SANDY_BRIDGE_C0_PMON_BOX_FILTER (0x00000D14)\r
3359 @param EAX Lower 32-bits of MSR value.\r
3360 @param EDX Upper 32-bits of MSR value.\r
3361\r
3362 <b>Example usage</b>\r
3363 @code\r
3364 UINT64 Msr;\r
3365\r
3366 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_BOX_FILTER);\r
3367 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_BOX_FILTER, Msr);\r
3368 @endcode\r
367f5c9c 3369 @note MSR_SANDY_BRIDGE_C0_PMON_BOX_FILTER is defined as MSR_C0_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
3370**/\r
3371#define MSR_SANDY_BRIDGE_C0_PMON_BOX_FILTER 0x00000D14\r
3372\r
3373\r
3374/**\r
3375 Package. Uncore C-box 0 perfmon counter 0.\r
3376\r
3377 @param ECX MSR_SANDY_BRIDGE_C0_PMON_CTR0 (0x00000D16)\r
3378 @param EAX Lower 32-bits of MSR value.\r
3379 @param EDX Upper 32-bits of MSR value.\r
3380\r
3381 <b>Example usage</b>\r
3382 @code\r
3383 UINT64 Msr;\r
3384\r
3385 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR0);\r
3386 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR0, Msr);\r
3387 @endcode\r
367f5c9c 3388 @note MSR_SANDY_BRIDGE_C0_PMON_CTR0 is defined as MSR_C0_PMON_CTR0 in SDM.\r
dc5d621c
MK
3389**/\r
3390#define MSR_SANDY_BRIDGE_C0_PMON_CTR0 0x00000D16\r
3391\r
3392\r
3393/**\r
3394 Package. Uncore C-box 0 perfmon counter 1.\r
3395\r
3396 @param ECX MSR_SANDY_BRIDGE_C0_PMON_CTR1 (0x00000D17)\r
3397 @param EAX Lower 32-bits of MSR value.\r
3398 @param EDX Upper 32-bits of MSR value.\r
3399\r
3400 <b>Example usage</b>\r
3401 @code\r
3402 UINT64 Msr;\r
3403\r
3404 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR1);\r
3405 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR1, Msr);\r
3406 @endcode\r
367f5c9c 3407 @note MSR_SANDY_BRIDGE_C0_PMON_CTR1 is defined as MSR_C0_PMON_CTR1 in SDM.\r
dc5d621c
MK
3408**/\r
3409#define MSR_SANDY_BRIDGE_C0_PMON_CTR1 0x00000D17\r
3410\r
3411\r
3412/**\r
3413 Package. Uncore C-box 0 perfmon counter 2.\r
3414\r
3415 @param ECX MSR_SANDY_BRIDGE_C0_PMON_CTR2 (0x00000D18)\r
3416 @param EAX Lower 32-bits of MSR value.\r
3417 @param EDX Upper 32-bits of MSR value.\r
3418\r
3419 <b>Example usage</b>\r
3420 @code\r
3421 UINT64 Msr;\r
3422\r
3423 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR2);\r
3424 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR2, Msr);\r
3425 @endcode\r
367f5c9c 3426 @note MSR_SANDY_BRIDGE_C0_PMON_CTR2 is defined as MSR_C0_PMON_CTR2 in SDM.\r
dc5d621c
MK
3427**/\r
3428#define MSR_SANDY_BRIDGE_C0_PMON_CTR2 0x00000D18\r
3429\r
3430\r
3431/**\r
3432 Package. Uncore C-box 0 perfmon counter 3.\r
3433\r
3434 @param ECX MSR_SANDY_BRIDGE_C0_PMON_CTR3 (0x00000D19)\r
3435 @param EAX Lower 32-bits of MSR value.\r
3436 @param EDX Upper 32-bits of MSR value.\r
3437\r
3438 <b>Example usage</b>\r
3439 @code\r
3440 UINT64 Msr;\r
3441\r
3442 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR3);\r
3443 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C0_PMON_CTR3, Msr);\r
3444 @endcode\r
367f5c9c 3445 @note MSR_SANDY_BRIDGE_C0_PMON_CTR3 is defined as MSR_C0_PMON_CTR3 in SDM.\r
dc5d621c
MK
3446**/\r
3447#define MSR_SANDY_BRIDGE_C0_PMON_CTR3 0x00000D19\r
3448\r
3449\r
3450/**\r
3451 Package. Uncore C-box 1 perfmon local box wide control.\r
3452\r
3453 @param ECX MSR_SANDY_BRIDGE_C1_PMON_BOX_CTL (0x00000D24)\r
3454 @param EAX Lower 32-bits of MSR value.\r
3455 @param EDX Upper 32-bits of MSR value.\r
3456\r
3457 <b>Example usage</b>\r
3458 @code\r
3459 UINT64 Msr;\r
3460\r
3461 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_BOX_CTL);\r
3462 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_BOX_CTL, Msr);\r
3463 @endcode\r
367f5c9c 3464 @note MSR_SANDY_BRIDGE_C1_PMON_BOX_CTL is defined as MSR_C1_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
3465**/\r
3466#define MSR_SANDY_BRIDGE_C1_PMON_BOX_CTL 0x00000D24\r
3467\r
3468\r
3469/**\r
3470 Package. Uncore C-box 1 perfmon event select for C-box 1 counter 0.\r
3471\r
3472 @param ECX MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL0 (0x00000D30)\r
3473 @param EAX Lower 32-bits of MSR value.\r
3474 @param EDX Upper 32-bits of MSR value.\r
3475\r
3476 <b>Example usage</b>\r
3477 @code\r
3478 UINT64 Msr;\r
3479\r
3480 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL0);\r
3481 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL0, Msr);\r
3482 @endcode\r
367f5c9c 3483 @note MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL0 is defined as MSR_C1_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
3484**/\r
3485#define MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL0 0x00000D30\r
3486\r
3487\r
3488/**\r
3489 Package. Uncore C-box 1 perfmon event select for C-box 1 counter 1.\r
3490\r
3491 @param ECX MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL1 (0x00000D31)\r
3492 @param EAX Lower 32-bits of MSR value.\r
3493 @param EDX Upper 32-bits of MSR value.\r
3494\r
3495 <b>Example usage</b>\r
3496 @code\r
3497 UINT64 Msr;\r
3498\r
3499 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL1);\r
3500 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL1, Msr);\r
3501 @endcode\r
367f5c9c 3502 @note MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL1 is defined as MSR_C1_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
3503**/\r
3504#define MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL1 0x00000D31\r
3505\r
3506\r
3507/**\r
3508 Package. Uncore C-box 1 perfmon event select for C-box 1 counter 2.\r
3509\r
3510 @param ECX MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL2 (0x00000D32)\r
3511 @param EAX Lower 32-bits of MSR value.\r
3512 @param EDX Upper 32-bits of MSR value.\r
3513\r
3514 <b>Example usage</b>\r
3515 @code\r
3516 UINT64 Msr;\r
3517\r
3518 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL2);\r
3519 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL2, Msr);\r
3520 @endcode\r
367f5c9c 3521 @note MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL2 is defined as MSR_C1_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
3522**/\r
3523#define MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL2 0x00000D32\r
3524\r
3525\r
3526/**\r
3527 Package. Uncore C-box 1 perfmon event select for C-box 1 counter 3.\r
3528\r
3529 @param ECX MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL3 (0x00000D33)\r
3530 @param EAX Lower 32-bits of MSR value.\r
3531 @param EDX Upper 32-bits of MSR value.\r
3532\r
3533 <b>Example usage</b>\r
3534 @code\r
3535 UINT64 Msr;\r
3536\r
3537 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL3);\r
3538 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL3, Msr);\r
3539 @endcode\r
367f5c9c 3540 @note MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL3 is defined as MSR_C1_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
3541**/\r
3542#define MSR_SANDY_BRIDGE_C1_PMON_EVNTSEL3 0x00000D33\r
3543\r
3544\r
3545/**\r
3546 Package. Uncore C-box 1 perfmon box wide filter.\r
3547\r
3548 @param ECX MSR_SANDY_BRIDGE_C1_PMON_BOX_FILTER (0x00000D34)\r
3549 @param EAX Lower 32-bits of MSR value.\r
3550 @param EDX Upper 32-bits of MSR value.\r
3551\r
3552 <b>Example usage</b>\r
3553 @code\r
3554 UINT64 Msr;\r
3555\r
3556 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_BOX_FILTER);\r
3557 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_BOX_FILTER, Msr);\r
3558 @endcode\r
367f5c9c 3559 @note MSR_SANDY_BRIDGE_C1_PMON_BOX_FILTER is defined as MSR_C1_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
3560**/\r
3561#define MSR_SANDY_BRIDGE_C1_PMON_BOX_FILTER 0x00000D34\r
3562\r
3563\r
3564/**\r
3565 Package. Uncore C-box 1 perfmon counter 0.\r
3566\r
3567 @param ECX MSR_SANDY_BRIDGE_C1_PMON_CTR0 (0x00000D36)\r
3568 @param EAX Lower 32-bits of MSR value.\r
3569 @param EDX Upper 32-bits of MSR value.\r
3570\r
3571 <b>Example usage</b>\r
3572 @code\r
3573 UINT64 Msr;\r
3574\r
3575 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR0);\r
3576 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR0, Msr);\r
3577 @endcode\r
367f5c9c 3578 @note MSR_SANDY_BRIDGE_C1_PMON_CTR0 is defined as MSR_C1_PMON_CTR0 in SDM.\r
dc5d621c
MK
3579**/\r
3580#define MSR_SANDY_BRIDGE_C1_PMON_CTR0 0x00000D36\r
3581\r
3582\r
3583/**\r
3584 Package. Uncore C-box 1 perfmon counter 1.\r
3585\r
3586 @param ECX MSR_SANDY_BRIDGE_C1_PMON_CTR1 (0x00000D37)\r
3587 @param EAX Lower 32-bits of MSR value.\r
3588 @param EDX Upper 32-bits of MSR value.\r
3589\r
3590 <b>Example usage</b>\r
3591 @code\r
3592 UINT64 Msr;\r
3593\r
3594 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR1);\r
3595 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR1, Msr);\r
3596 @endcode\r
367f5c9c 3597 @note MSR_SANDY_BRIDGE_C1_PMON_CTR1 is defined as MSR_C1_PMON_CTR1 in SDM.\r
dc5d621c
MK
3598**/\r
3599#define MSR_SANDY_BRIDGE_C1_PMON_CTR1 0x00000D37\r
3600\r
3601\r
3602/**\r
3603 Package. Uncore C-box 1 perfmon counter 2.\r
3604\r
3605 @param ECX MSR_SANDY_BRIDGE_C1_PMON_CTR2 (0x00000D38)\r
3606 @param EAX Lower 32-bits of MSR value.\r
3607 @param EDX Upper 32-bits of MSR value.\r
3608\r
3609 <b>Example usage</b>\r
3610 @code\r
3611 UINT64 Msr;\r
3612\r
3613 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR2);\r
3614 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR2, Msr);\r
3615 @endcode\r
367f5c9c 3616 @note MSR_SANDY_BRIDGE_C1_PMON_CTR2 is defined as MSR_C1_PMON_CTR2 in SDM.\r
dc5d621c
MK
3617**/\r
3618#define MSR_SANDY_BRIDGE_C1_PMON_CTR2 0x00000D38\r
3619\r
3620\r
3621/**\r
3622 Package. Uncore C-box 1 perfmon counter 3.\r
3623\r
3624 @param ECX MSR_SANDY_BRIDGE_C1_PMON_CTR3 (0x00000D39)\r
3625 @param EAX Lower 32-bits of MSR value.\r
3626 @param EDX Upper 32-bits of MSR value.\r
3627\r
3628 <b>Example usage</b>\r
3629 @code\r
3630 UINT64 Msr;\r
3631\r
3632 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR3);\r
3633 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C1_PMON_CTR3, Msr);\r
3634 @endcode\r
367f5c9c 3635 @note MSR_SANDY_BRIDGE_C1_PMON_CTR3 is defined as MSR_C1_PMON_CTR3 in SDM.\r
dc5d621c
MK
3636**/\r
3637#define MSR_SANDY_BRIDGE_C1_PMON_CTR3 0x00000D39\r
3638\r
3639\r
3640/**\r
3641 Package. Uncore C-box 2 perfmon local box wide control.\r
3642\r
3643 @param ECX MSR_SANDY_BRIDGE_C2_PMON_BOX_CTL (0x00000D44)\r
3644 @param EAX Lower 32-bits of MSR value.\r
3645 @param EDX Upper 32-bits of MSR value.\r
3646\r
3647 <b>Example usage</b>\r
3648 @code\r
3649 UINT64 Msr;\r
3650\r
3651 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_BOX_CTL);\r
3652 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_BOX_CTL, Msr);\r
3653 @endcode\r
367f5c9c 3654 @note MSR_SANDY_BRIDGE_C2_PMON_BOX_CTL is defined as MSR_C2_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
3655**/\r
3656#define MSR_SANDY_BRIDGE_C2_PMON_BOX_CTL 0x00000D44\r
3657\r
3658\r
3659/**\r
3660 Package. Uncore C-box 2 perfmon event select for C-box 2 counter 0.\r
3661\r
3662 @param ECX MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL0 (0x00000D50)\r
3663 @param EAX Lower 32-bits of MSR value.\r
3664 @param EDX Upper 32-bits of MSR value.\r
3665\r
3666 <b>Example usage</b>\r
3667 @code\r
3668 UINT64 Msr;\r
3669\r
3670 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL0);\r
3671 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL0, Msr);\r
3672 @endcode\r
367f5c9c 3673 @note MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL0 is defined as MSR_C2_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
3674**/\r
3675#define MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL0 0x00000D50\r
3676\r
3677\r
3678/**\r
3679 Package. Uncore C-box 2 perfmon event select for C-box 2 counter 1.\r
3680\r
3681 @param ECX MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL1 (0x00000D51)\r
3682 @param EAX Lower 32-bits of MSR value.\r
3683 @param EDX Upper 32-bits of MSR value.\r
3684\r
3685 <b>Example usage</b>\r
3686 @code\r
3687 UINT64 Msr;\r
3688\r
3689 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL1);\r
3690 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL1, Msr);\r
3691 @endcode\r
367f5c9c 3692 @note MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL1 is defined as MSR_C2_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
3693**/\r
3694#define MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL1 0x00000D51\r
3695\r
3696\r
3697/**\r
3698 Package. Uncore C-box 2 perfmon event select for C-box 2 counter 2.\r
3699\r
3700 @param ECX MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL2 (0x00000D52)\r
3701 @param EAX Lower 32-bits of MSR value.\r
3702 @param EDX Upper 32-bits of MSR value.\r
3703\r
3704 <b>Example usage</b>\r
3705 @code\r
3706 UINT64 Msr;\r
3707\r
3708 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL2);\r
3709 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL2, Msr);\r
3710 @endcode\r
367f5c9c 3711 @note MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL2 is defined as MSR_C2_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
3712**/\r
3713#define MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL2 0x00000D52\r
3714\r
3715\r
3716/**\r
3717 Package. Uncore C-box 2 perfmon event select for C-box 2 counter 3.\r
3718\r
3719 @param ECX MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL3 (0x00000D53)\r
3720 @param EAX Lower 32-bits of MSR value.\r
3721 @param EDX Upper 32-bits of MSR value.\r
3722\r
3723 <b>Example usage</b>\r
3724 @code\r
3725 UINT64 Msr;\r
3726\r
3727 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL3);\r
3728 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL3, Msr);\r
3729 @endcode\r
367f5c9c 3730 @note MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL3 is defined as MSR_C2_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
3731**/\r
3732#define MSR_SANDY_BRIDGE_C2_PMON_EVNTSEL3 0x00000D53\r
3733\r
3734\r
3735/**\r
3736 Package. Uncore C-box 2 perfmon box wide filter.\r
3737\r
3738 @param ECX MSR_SANDY_BRIDGE_C2_PMON_BOX_FILTER (0x00000D54)\r
3739 @param EAX Lower 32-bits of MSR value.\r
3740 @param EDX Upper 32-bits of MSR value.\r
3741\r
3742 <b>Example usage</b>\r
3743 @code\r
3744 UINT64 Msr;\r
3745\r
3746 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_BOX_FILTER);\r
3747 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_BOX_FILTER, Msr);\r
3748 @endcode\r
367f5c9c 3749 @note MSR_SANDY_BRIDGE_C2_PMON_BOX_FILTER is defined as MSR_C2_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
3750**/\r
3751#define MSR_SANDY_BRIDGE_C2_PMON_BOX_FILTER 0x00000D54\r
3752\r
3753\r
3754/**\r
3755 Package. Uncore C-box 2 perfmon counter 0.\r
3756\r
3757 @param ECX MSR_SANDY_BRIDGE_C2_PMON_CTR0 (0x00000D56)\r
3758 @param EAX Lower 32-bits of MSR value.\r
3759 @param EDX Upper 32-bits of MSR value.\r
3760\r
3761 <b>Example usage</b>\r
3762 @code\r
3763 UINT64 Msr;\r
3764\r
3765 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR0);\r
3766 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR0, Msr);\r
3767 @endcode\r
367f5c9c 3768 @note MSR_SANDY_BRIDGE_C2_PMON_CTR0 is defined as MSR_C2_PMON_CTR0 in SDM.\r
dc5d621c
MK
3769**/\r
3770#define MSR_SANDY_BRIDGE_C2_PMON_CTR0 0x00000D56\r
3771\r
3772\r
3773/**\r
3774 Package. Uncore C-box 2 perfmon counter 1.\r
3775\r
3776 @param ECX MSR_SANDY_BRIDGE_C2_PMON_CTR1 (0x00000D57)\r
3777 @param EAX Lower 32-bits of MSR value.\r
3778 @param EDX Upper 32-bits of MSR value.\r
3779\r
3780 <b>Example usage</b>\r
3781 @code\r
3782 UINT64 Msr;\r
3783\r
3784 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR1);\r
3785 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR1, Msr);\r
3786 @endcode\r
367f5c9c 3787 @note MSR_SANDY_BRIDGE_C2_PMON_CTR1 is defined as MSR_C2_PMON_CTR1 in SDM.\r
dc5d621c
MK
3788**/\r
3789#define MSR_SANDY_BRIDGE_C2_PMON_CTR1 0x00000D57\r
3790\r
3791\r
3792/**\r
3793 Package. Uncore C-box 2 perfmon counter 2.\r
3794\r
3795 @param ECX MSR_SANDY_BRIDGE_C2_PMON_CTR2 (0x00000D58)\r
3796 @param EAX Lower 32-bits of MSR value.\r
3797 @param EDX Upper 32-bits of MSR value.\r
3798\r
3799 <b>Example usage</b>\r
3800 @code\r
3801 UINT64 Msr;\r
3802\r
3803 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR2);\r
3804 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR2, Msr);\r
3805 @endcode\r
367f5c9c 3806 @note MSR_SANDY_BRIDGE_C2_PMON_CTR2 is defined as MSR_C2_PMON_CTR2 in SDM.\r
dc5d621c
MK
3807**/\r
3808#define MSR_SANDY_BRIDGE_C2_PMON_CTR2 0x00000D58\r
3809\r
3810\r
3811/**\r
3812 Package. Uncore C-box 2 perfmon counter 3.\r
3813\r
3814 @param ECX MSR_SANDY_BRIDGE_C2_PMON_CTR3 (0x00000D59)\r
3815 @param EAX Lower 32-bits of MSR value.\r
3816 @param EDX Upper 32-bits of MSR value.\r
3817\r
3818 <b>Example usage</b>\r
3819 @code\r
3820 UINT64 Msr;\r
3821\r
3822 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR3);\r
3823 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C2_PMON_CTR3, Msr);\r
3824 @endcode\r
367f5c9c 3825 @note MSR_SANDY_BRIDGE_C2_PMON_CTR3 is defined as MSR_C2_PMON_CTR3 in SDM.\r
dc5d621c
MK
3826**/\r
3827#define MSR_SANDY_BRIDGE_C2_PMON_CTR3 0x00000D59\r
3828\r
3829\r
3830/**\r
3831 Package. Uncore C-box 3 perfmon local box wide control.\r
3832\r
3833 @param ECX MSR_SANDY_BRIDGE_C3_PMON_BOX_CTL (0x00000D64)\r
3834 @param EAX Lower 32-bits of MSR value.\r
3835 @param EDX Upper 32-bits of MSR value.\r
3836\r
3837 <b>Example usage</b>\r
3838 @code\r
3839 UINT64 Msr;\r
3840\r
3841 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_BOX_CTL);\r
3842 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_BOX_CTL, Msr);\r
3843 @endcode\r
367f5c9c 3844 @note MSR_SANDY_BRIDGE_C3_PMON_BOX_CTL is defined as MSR_C3_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
3845**/\r
3846#define MSR_SANDY_BRIDGE_C3_PMON_BOX_CTL 0x00000D64\r
3847\r
3848\r
3849/**\r
3850 Package. Uncore C-box 3 perfmon event select for C-box 3 counter 0.\r
3851\r
3852 @param ECX MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL0 (0x00000D70)\r
3853 @param EAX Lower 32-bits of MSR value.\r
3854 @param EDX Upper 32-bits of MSR value.\r
3855\r
3856 <b>Example usage</b>\r
3857 @code\r
3858 UINT64 Msr;\r
3859\r
3860 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL0);\r
3861 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL0, Msr);\r
3862 @endcode\r
367f5c9c 3863 @note MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL0 is defined as MSR_C3_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
3864**/\r
3865#define MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL0 0x00000D70\r
3866\r
3867\r
3868/**\r
3869 Package. Uncore C-box 3 perfmon event select for C-box 3 counter 1.\r
3870\r
3871 @param ECX MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL1 (0x00000D71)\r
3872 @param EAX Lower 32-bits of MSR value.\r
3873 @param EDX Upper 32-bits of MSR value.\r
3874\r
3875 <b>Example usage</b>\r
3876 @code\r
3877 UINT64 Msr;\r
3878\r
3879 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL1);\r
3880 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL1, Msr);\r
3881 @endcode\r
367f5c9c 3882 @note MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL1 is defined as MSR_C3_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
3883**/\r
3884#define MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL1 0x00000D71\r
3885\r
3886\r
3887/**\r
3888 Package. Uncore C-box 3 perfmon event select for C-box 3 counter 2.\r
3889\r
3890 @param ECX MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL2 (0x00000D72)\r
3891 @param EAX Lower 32-bits of MSR value.\r
3892 @param EDX Upper 32-bits of MSR value.\r
3893\r
3894 <b>Example usage</b>\r
3895 @code\r
3896 UINT64 Msr;\r
3897\r
3898 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL2);\r
3899 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL2, Msr);\r
3900 @endcode\r
367f5c9c 3901 @note MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL2 is defined as MSR_C3_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
3902**/\r
3903#define MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL2 0x00000D72\r
3904\r
3905\r
3906/**\r
3907 Package. Uncore C-box 3 perfmon event select for C-box 3 counter 3.\r
3908\r
3909 @param ECX MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL3 (0x00000D73)\r
3910 @param EAX Lower 32-bits of MSR value.\r
3911 @param EDX Upper 32-bits of MSR value.\r
3912\r
3913 <b>Example usage</b>\r
3914 @code\r
3915 UINT64 Msr;\r
3916\r
3917 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL3);\r
3918 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL3, Msr);\r
3919 @endcode\r
367f5c9c 3920 @note MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL3 is defined as MSR_C3_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
3921**/\r
3922#define MSR_SANDY_BRIDGE_C3_PMON_EVNTSEL3 0x00000D73\r
3923\r
3924\r
3925/**\r
3926 Package. Uncore C-box 3 perfmon box wide filter.\r
3927\r
3928 @param ECX MSR_SANDY_BRIDGE_C3_PMON_BOX_FILTER (0x00000D74)\r
3929 @param EAX Lower 32-bits of MSR value.\r
3930 @param EDX Upper 32-bits of MSR value.\r
3931\r
3932 <b>Example usage</b>\r
3933 @code\r
3934 UINT64 Msr;\r
3935\r
3936 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_BOX_FILTER);\r
3937 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_BOX_FILTER, Msr);\r
3938 @endcode\r
367f5c9c 3939 @note MSR_SANDY_BRIDGE_C3_PMON_BOX_FILTER is defined as MSR_C3_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
3940**/\r
3941#define MSR_SANDY_BRIDGE_C3_PMON_BOX_FILTER 0x00000D74\r
3942\r
3943\r
3944/**\r
3945 Package. Uncore C-box 3 perfmon counter 0.\r
3946\r
3947 @param ECX MSR_SANDY_BRIDGE_C3_PMON_CTR0 (0x00000D76)\r
3948 @param EAX Lower 32-bits of MSR value.\r
3949 @param EDX Upper 32-bits of MSR value.\r
3950\r
3951 <b>Example usage</b>\r
3952 @code\r
3953 UINT64 Msr;\r
3954\r
3955 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR0);\r
3956 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR0, Msr);\r
3957 @endcode\r
367f5c9c 3958 @note MSR_SANDY_BRIDGE_C3_PMON_CTR0 is defined as MSR_C3_PMON_CTR0 in SDM.\r
dc5d621c
MK
3959**/\r
3960#define MSR_SANDY_BRIDGE_C3_PMON_CTR0 0x00000D76\r
3961\r
3962\r
3963/**\r
3964 Package. Uncore C-box 3 perfmon counter 1.\r
3965\r
3966 @param ECX MSR_SANDY_BRIDGE_C3_PMON_CTR1 (0x00000D77)\r
3967 @param EAX Lower 32-bits of MSR value.\r
3968 @param EDX Upper 32-bits of MSR value.\r
3969\r
3970 <b>Example usage</b>\r
3971 @code\r
3972 UINT64 Msr;\r
3973\r
3974 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR1);\r
3975 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR1, Msr);\r
3976 @endcode\r
367f5c9c 3977 @note MSR_SANDY_BRIDGE_C3_PMON_CTR1 is defined as MSR_C3_PMON_CTR1 in SDM.\r
dc5d621c
MK
3978**/\r
3979#define MSR_SANDY_BRIDGE_C3_PMON_CTR1 0x00000D77\r
3980\r
3981\r
3982/**\r
3983 Package. Uncore C-box 3 perfmon counter 2.\r
3984\r
3985 @param ECX MSR_SANDY_BRIDGE_C3_PMON_CTR2 (0x00000D78)\r
3986 @param EAX Lower 32-bits of MSR value.\r
3987 @param EDX Upper 32-bits of MSR value.\r
3988\r
3989 <b>Example usage</b>\r
3990 @code\r
3991 UINT64 Msr;\r
3992\r
3993 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR2);\r
3994 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR2, Msr);\r
3995 @endcode\r
367f5c9c 3996 @note MSR_SANDY_BRIDGE_C3_PMON_CTR2 is defined as MSR_C3_PMON_CTR2 in SDM.\r
dc5d621c
MK
3997**/\r
3998#define MSR_SANDY_BRIDGE_C3_PMON_CTR2 0x00000D78\r
3999\r
4000\r
4001/**\r
4002 Package. Uncore C-box 3 perfmon counter 3.\r
4003\r
4004 @param ECX MSR_SANDY_BRIDGE_C3_PMON_CTR3 (0x00000D79)\r
4005 @param EAX Lower 32-bits of MSR value.\r
4006 @param EDX Upper 32-bits of MSR value.\r
4007\r
4008 <b>Example usage</b>\r
4009 @code\r
4010 UINT64 Msr;\r
4011\r
4012 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR3);\r
4013 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C3_PMON_CTR3, Msr);\r
4014 @endcode\r
367f5c9c 4015 @note MSR_SANDY_BRIDGE_C3_PMON_CTR3 is defined as MSR_C3_PMON_CTR3 in SDM.\r
dc5d621c
MK
4016**/\r
4017#define MSR_SANDY_BRIDGE_C3_PMON_CTR3 0x00000D79\r
4018\r
4019\r
4020/**\r
4021 Package. Uncore C-box 4 perfmon local box wide control.\r
4022\r
4023 @param ECX MSR_SANDY_BRIDGE_C4_PMON_BOX_CTL (0x00000D84)\r
4024 @param EAX Lower 32-bits of MSR value.\r
4025 @param EDX Upper 32-bits of MSR value.\r
4026\r
4027 <b>Example usage</b>\r
4028 @code\r
4029 UINT64 Msr;\r
4030\r
4031 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_BOX_CTL);\r
4032 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_BOX_CTL, Msr);\r
4033 @endcode\r
367f5c9c 4034 @note MSR_SANDY_BRIDGE_C4_PMON_BOX_CTL is defined as MSR_C4_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
4035**/\r
4036#define MSR_SANDY_BRIDGE_C4_PMON_BOX_CTL 0x00000D84\r
4037\r
4038\r
4039/**\r
4040 Package. Uncore C-box 4 perfmon event select for C-box 4 counter 0.\r
4041\r
4042 @param ECX MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL0 (0x00000D90)\r
4043 @param EAX Lower 32-bits of MSR value.\r
4044 @param EDX Upper 32-bits of MSR value.\r
4045\r
4046 <b>Example usage</b>\r
4047 @code\r
4048 UINT64 Msr;\r
4049\r
4050 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL0);\r
4051 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL0, Msr);\r
4052 @endcode\r
367f5c9c 4053 @note MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL0 is defined as MSR_C4_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
4054**/\r
4055#define MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL0 0x00000D90\r
4056\r
4057\r
4058/**\r
4059 Package. Uncore C-box 4 perfmon event select for C-box 4 counter 1.\r
4060\r
4061 @param ECX MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL1 (0x00000D91)\r
4062 @param EAX Lower 32-bits of MSR value.\r
4063 @param EDX Upper 32-bits of MSR value.\r
4064\r
4065 <b>Example usage</b>\r
4066 @code\r
4067 UINT64 Msr;\r
4068\r
4069 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL1);\r
4070 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL1, Msr);\r
4071 @endcode\r
367f5c9c 4072 @note MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL1 is defined as MSR_C4_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
4073**/\r
4074#define MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL1 0x00000D91\r
4075\r
4076\r
4077/**\r
4078 Package. Uncore C-box 4 perfmon event select for C-box 4 counter 2.\r
4079\r
4080 @param ECX MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL2 (0x00000D92)\r
4081 @param EAX Lower 32-bits of MSR value.\r
4082 @param EDX Upper 32-bits of MSR value.\r
4083\r
4084 <b>Example usage</b>\r
4085 @code\r
4086 UINT64 Msr;\r
4087\r
4088 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL2);\r
4089 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL2, Msr);\r
4090 @endcode\r
367f5c9c 4091 @note MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL2 is defined as MSR_C4_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
4092**/\r
4093#define MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL2 0x00000D92\r
4094\r
4095\r
4096/**\r
4097 Package. Uncore C-box 4 perfmon event select for C-box 4 counter 3.\r
4098\r
4099 @param ECX MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL3 (0x00000D93)\r
4100 @param EAX Lower 32-bits of MSR value.\r
4101 @param EDX Upper 32-bits of MSR value.\r
4102\r
4103 <b>Example usage</b>\r
4104 @code\r
4105 UINT64 Msr;\r
4106\r
4107 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL3);\r
4108 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL3, Msr);\r
4109 @endcode\r
367f5c9c 4110 @note MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL3 is defined as MSR_C4_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
4111**/\r
4112#define MSR_SANDY_BRIDGE_C4_PMON_EVNTSEL3 0x00000D93\r
4113\r
4114\r
4115/**\r
4116 Package. Uncore C-box 4 perfmon box wide filter.\r
4117\r
4118 @param ECX MSR_SANDY_BRIDGE_C4_PMON_BOX_FILTER (0x00000D94)\r
4119 @param EAX Lower 32-bits of MSR value.\r
4120 @param EDX Upper 32-bits of MSR value.\r
4121\r
4122 <b>Example usage</b>\r
4123 @code\r
4124 UINT64 Msr;\r
4125\r
4126 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_BOX_FILTER);\r
4127 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_BOX_FILTER, Msr);\r
4128 @endcode\r
367f5c9c 4129 @note MSR_SANDY_BRIDGE_C4_PMON_BOX_FILTER is defined as MSR_C4_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
4130**/\r
4131#define MSR_SANDY_BRIDGE_C4_PMON_BOX_FILTER 0x00000D94\r
4132\r
4133\r
4134/**\r
4135 Package. Uncore C-box 4 perfmon counter 0.\r
4136\r
4137 @param ECX MSR_SANDY_BRIDGE_C4_PMON_CTR0 (0x00000D96)\r
4138 @param EAX Lower 32-bits of MSR value.\r
4139 @param EDX Upper 32-bits of MSR value.\r
4140\r
4141 <b>Example usage</b>\r
4142 @code\r
4143 UINT64 Msr;\r
4144\r
4145 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR0);\r
4146 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR0, Msr);\r
4147 @endcode\r
367f5c9c 4148 @note MSR_SANDY_BRIDGE_C4_PMON_CTR0 is defined as MSR_C4_PMON_CTR0 in SDM.\r
dc5d621c
MK
4149**/\r
4150#define MSR_SANDY_BRIDGE_C4_PMON_CTR0 0x00000D96\r
4151\r
4152\r
4153/**\r
4154 Package. Uncore C-box 4 perfmon counter 1.\r
4155\r
4156 @param ECX MSR_SANDY_BRIDGE_C4_PMON_CTR1 (0x00000D97)\r
4157 @param EAX Lower 32-bits of MSR value.\r
4158 @param EDX Upper 32-bits of MSR value.\r
4159\r
4160 <b>Example usage</b>\r
4161 @code\r
4162 UINT64 Msr;\r
4163\r
4164 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR1);\r
4165 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR1, Msr);\r
4166 @endcode\r
367f5c9c 4167 @note MSR_SANDY_BRIDGE_C4_PMON_CTR1 is defined as MSR_C4_PMON_CTR1 in SDM.\r
dc5d621c
MK
4168**/\r
4169#define MSR_SANDY_BRIDGE_C4_PMON_CTR1 0x00000D97\r
4170\r
4171\r
4172/**\r
4173 Package. Uncore C-box 4 perfmon counter 2.\r
4174\r
4175 @param ECX MSR_SANDY_BRIDGE_C4_PMON_CTR2 (0x00000D98)\r
4176 @param EAX Lower 32-bits of MSR value.\r
4177 @param EDX Upper 32-bits of MSR value.\r
4178\r
4179 <b>Example usage</b>\r
4180 @code\r
4181 UINT64 Msr;\r
4182\r
4183 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR2);\r
4184 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR2, Msr);\r
4185 @endcode\r
367f5c9c 4186 @note MSR_SANDY_BRIDGE_C4_PMON_CTR2 is defined as MSR_C4_PMON_CTR2 in SDM.\r
dc5d621c
MK
4187**/\r
4188#define MSR_SANDY_BRIDGE_C4_PMON_CTR2 0x00000D98\r
4189\r
4190\r
4191/**\r
4192 Package. Uncore C-box 4 perfmon counter 3.\r
4193\r
4194 @param ECX MSR_SANDY_BRIDGE_C4_PMON_CTR3 (0x00000D99)\r
4195 @param EAX Lower 32-bits of MSR value.\r
4196 @param EDX Upper 32-bits of MSR value.\r
4197\r
4198 <b>Example usage</b>\r
4199 @code\r
4200 UINT64 Msr;\r
4201\r
4202 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR3);\r
4203 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C4_PMON_CTR3, Msr);\r
4204 @endcode\r
367f5c9c 4205 @note MSR_SANDY_BRIDGE_C4_PMON_CTR3 is defined as MSR_C4_PMON_CTR3 in SDM.\r
dc5d621c
MK
4206**/\r
4207#define MSR_SANDY_BRIDGE_C4_PMON_CTR3 0x00000D99\r
4208\r
4209\r
4210/**\r
4211 Package. Uncore C-box 5 perfmon local box wide control.\r
4212\r
4213 @param ECX MSR_SANDY_BRIDGE_C5_PMON_BOX_CTL (0x00000DA4)\r
4214 @param EAX Lower 32-bits of MSR value.\r
4215 @param EDX Upper 32-bits of MSR value.\r
4216\r
4217 <b>Example usage</b>\r
4218 @code\r
4219 UINT64 Msr;\r
4220\r
4221 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_BOX_CTL);\r
4222 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_BOX_CTL, Msr);\r
4223 @endcode\r
367f5c9c 4224 @note MSR_SANDY_BRIDGE_C5_PMON_BOX_CTL is defined as MSR_C5_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
4225**/\r
4226#define MSR_SANDY_BRIDGE_C5_PMON_BOX_CTL 0x00000DA4\r
4227\r
4228\r
4229/**\r
4230 Package. Uncore C-box 5 perfmon event select for C-box 5 counter 0.\r
4231\r
4232 @param ECX MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL0 (0x00000DB0)\r
4233 @param EAX Lower 32-bits of MSR value.\r
4234 @param EDX Upper 32-bits of MSR value.\r
4235\r
4236 <b>Example usage</b>\r
4237 @code\r
4238 UINT64 Msr;\r
4239\r
4240 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL0);\r
4241 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL0, Msr);\r
4242 @endcode\r
367f5c9c 4243 @note MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL0 is defined as MSR_C5_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
4244**/\r
4245#define MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL0 0x00000DB0\r
4246\r
4247\r
4248/**\r
4249 Package. Uncore C-box 5 perfmon event select for C-box 5 counter 1.\r
4250\r
4251 @param ECX MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL1 (0x00000DB1)\r
4252 @param EAX Lower 32-bits of MSR value.\r
4253 @param EDX Upper 32-bits of MSR value.\r
4254\r
4255 <b>Example usage</b>\r
4256 @code\r
4257 UINT64 Msr;\r
4258\r
4259 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL1);\r
4260 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL1, Msr);\r
4261 @endcode\r
367f5c9c 4262 @note MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL1 is defined as MSR_C5_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
4263**/\r
4264#define MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL1 0x00000DB1\r
4265\r
4266\r
4267/**\r
4268 Package. Uncore C-box 5 perfmon event select for C-box 5 counter 2.\r
4269\r
4270 @param ECX MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL2 (0x00000DB2)\r
4271 @param EAX Lower 32-bits of MSR value.\r
4272 @param EDX Upper 32-bits of MSR value.\r
4273\r
4274 <b>Example usage</b>\r
4275 @code\r
4276 UINT64 Msr;\r
4277\r
4278 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL2);\r
4279 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL2, Msr);\r
4280 @endcode\r
367f5c9c 4281 @note MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL2 is defined as MSR_C5_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
4282**/\r
4283#define MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL2 0x00000DB2\r
4284\r
4285\r
4286/**\r
4287 Package. Uncore C-box 5 perfmon event select for C-box 5 counter 3.\r
4288\r
4289 @param ECX MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL3 (0x00000DB3)\r
4290 @param EAX Lower 32-bits of MSR value.\r
4291 @param EDX Upper 32-bits of MSR value.\r
4292\r
4293 <b>Example usage</b>\r
4294 @code\r
4295 UINT64 Msr;\r
4296\r
4297 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL3);\r
4298 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL3, Msr);\r
4299 @endcode\r
367f5c9c 4300 @note MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL3 is defined as MSR_C5_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
4301**/\r
4302#define MSR_SANDY_BRIDGE_C5_PMON_EVNTSEL3 0x00000DB3\r
4303\r
4304\r
4305/**\r
4306 Package. Uncore C-box 5 perfmon box wide filter.\r
4307\r
4308 @param ECX MSR_SANDY_BRIDGE_C5_PMON_BOX_FILTER (0x00000DB4)\r
4309 @param EAX Lower 32-bits of MSR value.\r
4310 @param EDX Upper 32-bits of MSR value.\r
4311\r
4312 <b>Example usage</b>\r
4313 @code\r
4314 UINT64 Msr;\r
4315\r
4316 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_BOX_FILTER);\r
4317 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_BOX_FILTER, Msr);\r
4318 @endcode\r
367f5c9c 4319 @note MSR_SANDY_BRIDGE_C5_PMON_BOX_FILTER is defined as MSR_C5_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
4320**/\r
4321#define MSR_SANDY_BRIDGE_C5_PMON_BOX_FILTER 0x00000DB4\r
4322\r
4323\r
4324/**\r
4325 Package. Uncore C-box 5 perfmon counter 0.\r
4326\r
4327 @param ECX MSR_SANDY_BRIDGE_C5_PMON_CTR0 (0x00000DB6)\r
4328 @param EAX Lower 32-bits of MSR value.\r
4329 @param EDX Upper 32-bits of MSR value.\r
4330\r
4331 <b>Example usage</b>\r
4332 @code\r
4333 UINT64 Msr;\r
4334\r
4335 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR0);\r
4336 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR0, Msr);\r
4337 @endcode\r
367f5c9c 4338 @note MSR_SANDY_BRIDGE_C5_PMON_CTR0 is defined as MSR_C5_PMON_CTR0 in SDM.\r
dc5d621c
MK
4339**/\r
4340#define MSR_SANDY_BRIDGE_C5_PMON_CTR0 0x00000DB6\r
4341\r
4342\r
4343/**\r
4344 Package. Uncore C-box 5 perfmon counter 1.\r
4345\r
4346 @param ECX MSR_SANDY_BRIDGE_C5_PMON_CTR1 (0x00000DB7)\r
4347 @param EAX Lower 32-bits of MSR value.\r
4348 @param EDX Upper 32-bits of MSR value.\r
4349\r
4350 <b>Example usage</b>\r
4351 @code\r
4352 UINT64 Msr;\r
4353\r
4354 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR1);\r
4355 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR1, Msr);\r
4356 @endcode\r
367f5c9c 4357 @note MSR_SANDY_BRIDGE_C5_PMON_CTR1 is defined as MSR_C5_PMON_CTR1 in SDM.\r
dc5d621c
MK
4358**/\r
4359#define MSR_SANDY_BRIDGE_C5_PMON_CTR1 0x00000DB7\r
4360\r
4361\r
4362/**\r
4363 Package. Uncore C-box 5 perfmon counter 2.\r
4364\r
4365 @param ECX MSR_SANDY_BRIDGE_C5_PMON_CTR2 (0x00000DB8)\r
4366 @param EAX Lower 32-bits of MSR value.\r
4367 @param EDX Upper 32-bits of MSR value.\r
4368\r
4369 <b>Example usage</b>\r
4370 @code\r
4371 UINT64 Msr;\r
4372\r
4373 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR2);\r
4374 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR2, Msr);\r
4375 @endcode\r
367f5c9c 4376 @note MSR_SANDY_BRIDGE_C5_PMON_CTR2 is defined as MSR_C5_PMON_CTR2 in SDM.\r
dc5d621c
MK
4377**/\r
4378#define MSR_SANDY_BRIDGE_C5_PMON_CTR2 0x00000DB8\r
4379\r
4380\r
4381/**\r
4382 Package. Uncore C-box 5 perfmon counter 3.\r
4383\r
4384 @param ECX MSR_SANDY_BRIDGE_C5_PMON_CTR3 (0x00000DB9)\r
4385 @param EAX Lower 32-bits of MSR value.\r
4386 @param EDX Upper 32-bits of MSR value.\r
4387\r
4388 <b>Example usage</b>\r
4389 @code\r
4390 UINT64 Msr;\r
4391\r
4392 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR3);\r
4393 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C5_PMON_CTR3, Msr);\r
4394 @endcode\r
367f5c9c 4395 @note MSR_SANDY_BRIDGE_C5_PMON_CTR3 is defined as MSR_C5_PMON_CTR3 in SDM.\r
dc5d621c
MK
4396**/\r
4397#define MSR_SANDY_BRIDGE_C5_PMON_CTR3 0x00000DB9\r
4398\r
4399\r
4400/**\r
4401 Package. Uncore C-box 6 perfmon local box wide control.\r
4402\r
4403 @param ECX MSR_SANDY_BRIDGE_C6_PMON_BOX_CTL (0x00000DC4)\r
4404 @param EAX Lower 32-bits of MSR value.\r
4405 @param EDX Upper 32-bits of MSR value.\r
4406\r
4407 <b>Example usage</b>\r
4408 @code\r
4409 UINT64 Msr;\r
4410\r
4411 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_BOX_CTL);\r
4412 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_BOX_CTL, Msr);\r
4413 @endcode\r
367f5c9c 4414 @note MSR_SANDY_BRIDGE_C6_PMON_BOX_CTL is defined as MSR_C6_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
4415**/\r
4416#define MSR_SANDY_BRIDGE_C6_PMON_BOX_CTL 0x00000DC4\r
4417\r
4418\r
4419/**\r
4420 Package. Uncore C-box 6 perfmon event select for C-box 6 counter 0.\r
4421\r
4422 @param ECX MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL0 (0x00000DD0)\r
4423 @param EAX Lower 32-bits of MSR value.\r
4424 @param EDX Upper 32-bits of MSR value.\r
4425\r
4426 <b>Example usage</b>\r
4427 @code\r
4428 UINT64 Msr;\r
4429\r
4430 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL0);\r
4431 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL0, Msr);\r
4432 @endcode\r
367f5c9c 4433 @note MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL0 is defined as MSR_C6_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
4434**/\r
4435#define MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL0 0x00000DD0\r
4436\r
4437\r
4438/**\r
4439 Package. Uncore C-box 6 perfmon event select for C-box 6 counter 1.\r
4440\r
4441 @param ECX MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL1 (0x00000DD1)\r
4442 @param EAX Lower 32-bits of MSR value.\r
4443 @param EDX Upper 32-bits of MSR value.\r
4444\r
4445 <b>Example usage</b>\r
4446 @code\r
4447 UINT64 Msr;\r
4448\r
4449 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL1);\r
4450 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL1, Msr);\r
4451 @endcode\r
367f5c9c 4452 @note MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL1 is defined as MSR_C6_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
4453**/\r
4454#define MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL1 0x00000DD1\r
4455\r
4456\r
4457/**\r
4458 Package. Uncore C-box 6 perfmon event select for C-box 6 counter 2.\r
4459\r
4460 @param ECX MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL2 (0x00000DD2)\r
4461 @param EAX Lower 32-bits of MSR value.\r
4462 @param EDX Upper 32-bits of MSR value.\r
4463\r
4464 <b>Example usage</b>\r
4465 @code\r
4466 UINT64 Msr;\r
4467\r
4468 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL2);\r
4469 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL2, Msr);\r
4470 @endcode\r
367f5c9c 4471 @note MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL2 is defined as MSR_C6_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
4472**/\r
4473#define MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL2 0x00000DD2\r
4474\r
4475\r
4476/**\r
4477 Package. Uncore C-box 6 perfmon event select for C-box 6 counter 3.\r
4478\r
4479 @param ECX MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL3 (0x00000DD3)\r
4480 @param EAX Lower 32-bits of MSR value.\r
4481 @param EDX Upper 32-bits of MSR value.\r
4482\r
4483 <b>Example usage</b>\r
4484 @code\r
4485 UINT64 Msr;\r
4486\r
4487 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL3);\r
4488 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL3, Msr);\r
4489 @endcode\r
367f5c9c 4490 @note MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL3 is defined as MSR_C6_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
4491**/\r
4492#define MSR_SANDY_BRIDGE_C6_PMON_EVNTSEL3 0x00000DD3\r
4493\r
4494\r
4495/**\r
4496 Package. Uncore C-box 6 perfmon box wide filter.\r
4497\r
4498 @param ECX MSR_SANDY_BRIDGE_C6_PMON_BOX_FILTER (0x00000DD4)\r
4499 @param EAX Lower 32-bits of MSR value.\r
4500 @param EDX Upper 32-bits of MSR value.\r
4501\r
4502 <b>Example usage</b>\r
4503 @code\r
4504 UINT64 Msr;\r
4505\r
4506 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_BOX_FILTER);\r
4507 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_BOX_FILTER, Msr);\r
4508 @endcode\r
367f5c9c 4509 @note MSR_SANDY_BRIDGE_C6_PMON_BOX_FILTER is defined as MSR_C6_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
4510**/\r
4511#define MSR_SANDY_BRIDGE_C6_PMON_BOX_FILTER 0x00000DD4\r
4512\r
4513\r
4514/**\r
4515 Package. Uncore C-box 6 perfmon counter 0.\r
4516\r
4517 @param ECX MSR_SANDY_BRIDGE_C6_PMON_CTR0 (0x00000DD6)\r
4518 @param EAX Lower 32-bits of MSR value.\r
4519 @param EDX Upper 32-bits of MSR value.\r
4520\r
4521 <b>Example usage</b>\r
4522 @code\r
4523 UINT64 Msr;\r
4524\r
4525 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR0);\r
4526 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR0, Msr);\r
4527 @endcode\r
367f5c9c 4528 @note MSR_SANDY_BRIDGE_C6_PMON_CTR0 is defined as MSR_C6_PMON_CTR0 in SDM.\r
dc5d621c
MK
4529**/\r
4530#define MSR_SANDY_BRIDGE_C6_PMON_CTR0 0x00000DD6\r
4531\r
4532\r
4533/**\r
4534 Package. Uncore C-box 6 perfmon counter 1.\r
4535\r
4536 @param ECX MSR_SANDY_BRIDGE_C6_PMON_CTR1 (0x00000DD7)\r
4537 @param EAX Lower 32-bits of MSR value.\r
4538 @param EDX Upper 32-bits of MSR value.\r
4539\r
4540 <b>Example usage</b>\r
4541 @code\r
4542 UINT64 Msr;\r
4543\r
4544 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR1);\r
4545 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR1, Msr);\r
4546 @endcode\r
367f5c9c 4547 @note MSR_SANDY_BRIDGE_C6_PMON_CTR1 is defined as MSR_C6_PMON_CTR1 in SDM.\r
dc5d621c
MK
4548**/\r
4549#define MSR_SANDY_BRIDGE_C6_PMON_CTR1 0x00000DD7\r
4550\r
4551\r
4552/**\r
4553 Package. Uncore C-box 6 perfmon counter 2.\r
4554\r
4555 @param ECX MSR_SANDY_BRIDGE_C6_PMON_CTR2 (0x00000DD8)\r
4556 @param EAX Lower 32-bits of MSR value.\r
4557 @param EDX Upper 32-bits of MSR value.\r
4558\r
4559 <b>Example usage</b>\r
4560 @code\r
4561 UINT64 Msr;\r
4562\r
4563 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR2);\r
4564 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR2, Msr);\r
4565 @endcode\r
367f5c9c 4566 @note MSR_SANDY_BRIDGE_C6_PMON_CTR2 is defined as MSR_C6_PMON_CTR2 in SDM.\r
dc5d621c
MK
4567**/\r
4568#define MSR_SANDY_BRIDGE_C6_PMON_CTR2 0x00000DD8\r
4569\r
4570\r
4571/**\r
4572 Package. Uncore C-box 6 perfmon counter 3.\r
4573\r
4574 @param ECX MSR_SANDY_BRIDGE_C6_PMON_CTR3 (0x00000DD9)\r
4575 @param EAX Lower 32-bits of MSR value.\r
4576 @param EDX Upper 32-bits of MSR value.\r
4577\r
4578 <b>Example usage</b>\r
4579 @code\r
4580 UINT64 Msr;\r
4581\r
4582 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR3);\r
4583 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C6_PMON_CTR3, Msr);\r
4584 @endcode\r
367f5c9c 4585 @note MSR_SANDY_BRIDGE_C6_PMON_CTR3 is defined as MSR_C6_PMON_CTR3 in SDM.\r
dc5d621c
MK
4586**/\r
4587#define MSR_SANDY_BRIDGE_C6_PMON_CTR3 0x00000DD9\r
4588\r
4589\r
4590/**\r
4591 Package. Uncore C-box 7 perfmon local box wide control.\r
4592\r
4593 @param ECX MSR_SANDY_BRIDGE_C7_PMON_BOX_CTL (0x00000DE4)\r
4594 @param EAX Lower 32-bits of MSR value.\r
4595 @param EDX Upper 32-bits of MSR value.\r
4596\r
4597 <b>Example usage</b>\r
4598 @code\r
4599 UINT64 Msr;\r
4600\r
4601 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_BOX_CTL);\r
4602 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_BOX_CTL, Msr);\r
4603 @endcode\r
367f5c9c 4604 @note MSR_SANDY_BRIDGE_C7_PMON_BOX_CTL is defined as MSR_C7_PMON_BOX_CTL in SDM.\r
dc5d621c
MK
4605**/\r
4606#define MSR_SANDY_BRIDGE_C7_PMON_BOX_CTL 0x00000DE4\r
4607\r
4608\r
4609/**\r
4610 Package. Uncore C-box 7 perfmon event select for C-box 7 counter 0.\r
4611\r
4612 @param ECX MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL0 (0x00000DF0)\r
4613 @param EAX Lower 32-bits of MSR value.\r
4614 @param EDX Upper 32-bits of MSR value.\r
4615\r
4616 <b>Example usage</b>\r
4617 @code\r
4618 UINT64 Msr;\r
4619\r
4620 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL0);\r
4621 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL0, Msr);\r
4622 @endcode\r
367f5c9c 4623 @note MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL0 is defined as MSR_C7_PMON_EVNTSEL0 in SDM.\r
dc5d621c
MK
4624**/\r
4625#define MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL0 0x00000DF0\r
4626\r
4627\r
4628/**\r
4629 Package. Uncore C-box 7 perfmon event select for C-box 7 counter 1.\r
4630\r
4631 @param ECX MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL1 (0x00000DF1)\r
4632 @param EAX Lower 32-bits of MSR value.\r
4633 @param EDX Upper 32-bits of MSR value.\r
4634\r
4635 <b>Example usage</b>\r
4636 @code\r
4637 UINT64 Msr;\r
4638\r
4639 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL1);\r
4640 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL1, Msr);\r
4641 @endcode\r
367f5c9c 4642 @note MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL1 is defined as MSR_C7_PMON_EVNTSEL1 in SDM.\r
dc5d621c
MK
4643**/\r
4644#define MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL1 0x00000DF1\r
4645\r
4646\r
4647/**\r
4648 Package. Uncore C-box 7 perfmon event select for C-box 7 counter 2.\r
4649\r
4650 @param ECX MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL2 (0x00000DF2)\r
4651 @param EAX Lower 32-bits of MSR value.\r
4652 @param EDX Upper 32-bits of MSR value.\r
4653\r
4654 <b>Example usage</b>\r
4655 @code\r
4656 UINT64 Msr;\r
4657\r
4658 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL2);\r
4659 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL2, Msr);\r
4660 @endcode\r
367f5c9c 4661 @note MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL2 is defined as MSR_C7_PMON_EVNTSEL2 in SDM.\r
dc5d621c
MK
4662**/\r
4663#define MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL2 0x00000DF2\r
4664\r
4665\r
4666/**\r
4667 Package. Uncore C-box 7 perfmon event select for C-box 7 counter 3.\r
4668\r
4669 @param ECX MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL3 (0x00000DF3)\r
4670 @param EAX Lower 32-bits of MSR value.\r
4671 @param EDX Upper 32-bits of MSR value.\r
4672\r
4673 <b>Example usage</b>\r
4674 @code\r
4675 UINT64 Msr;\r
4676\r
4677 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL3);\r
4678 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL3, Msr);\r
4679 @endcode\r
367f5c9c 4680 @note MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL3 is defined as MSR_C7_PMON_EVNTSEL3 in SDM.\r
dc5d621c
MK
4681**/\r
4682#define MSR_SANDY_BRIDGE_C7_PMON_EVNTSEL3 0x00000DF3\r
4683\r
4684\r
4685/**\r
4686 Package. Uncore C-box 7 perfmon box wide filter.\r
4687\r
4688 @param ECX MSR_SANDY_BRIDGE_C7_PMON_BOX_FILTER (0x00000DF4)\r
4689 @param EAX Lower 32-bits of MSR value.\r
4690 @param EDX Upper 32-bits of MSR value.\r
4691\r
4692 <b>Example usage</b>\r
4693 @code\r
4694 UINT64 Msr;\r
4695\r
4696 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_BOX_FILTER);\r
4697 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_BOX_FILTER, Msr);\r
4698 @endcode\r
367f5c9c 4699 @note MSR_SANDY_BRIDGE_C7_PMON_BOX_FILTER is defined as MSR_C7_PMON_BOX_FILTER in SDM.\r
dc5d621c
MK
4700**/\r
4701#define MSR_SANDY_BRIDGE_C7_PMON_BOX_FILTER 0x00000DF4\r
4702\r
4703\r
4704/**\r
4705 Package. Uncore C-box 7 perfmon counter 0.\r
4706\r
4707 @param ECX MSR_SANDY_BRIDGE_C7_PMON_CTR0 (0x00000DF6)\r
4708 @param EAX Lower 32-bits of MSR value.\r
4709 @param EDX Upper 32-bits of MSR value.\r
4710\r
4711 <b>Example usage</b>\r
4712 @code\r
4713 UINT64 Msr;\r
4714\r
4715 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR0);\r
4716 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR0, Msr);\r
4717 @endcode\r
367f5c9c 4718 @note MSR_SANDY_BRIDGE_C7_PMON_CTR0 is defined as MSR_C7_PMON_CTR0 in SDM.\r
dc5d621c
MK
4719**/\r
4720#define MSR_SANDY_BRIDGE_C7_PMON_CTR0 0x00000DF6\r
4721\r
4722\r
4723/**\r
4724 Package. Uncore C-box 7 perfmon counter 1.\r
4725\r
4726 @param ECX MSR_SANDY_BRIDGE_C7_PMON_CTR1 (0x00000DF7)\r
4727 @param EAX Lower 32-bits of MSR value.\r
4728 @param EDX Upper 32-bits of MSR value.\r
4729\r
4730 <b>Example usage</b>\r
4731 @code\r
4732 UINT64 Msr;\r
4733\r
4734 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR1);\r
4735 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR1, Msr);\r
4736 @endcode\r
367f5c9c 4737 @note MSR_SANDY_BRIDGE_C7_PMON_CTR1 is defined as MSR_C7_PMON_CTR1 in SDM.\r
dc5d621c
MK
4738**/\r
4739#define MSR_SANDY_BRIDGE_C7_PMON_CTR1 0x00000DF7\r
4740\r
4741\r
4742/**\r
4743 Package. Uncore C-box 7 perfmon counter 2.\r
4744\r
4745 @param ECX MSR_SANDY_BRIDGE_C7_PMON_CTR2 (0x00000DF8)\r
4746 @param EAX Lower 32-bits of MSR value.\r
4747 @param EDX Upper 32-bits of MSR value.\r
4748\r
4749 <b>Example usage</b>\r
4750 @code\r
4751 UINT64 Msr;\r
4752\r
4753 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR2);\r
4754 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR2, Msr);\r
4755 @endcode\r
367f5c9c 4756 @note MSR_SANDY_BRIDGE_C7_PMON_CTR2 is defined as MSR_C7_PMON_CTR2 in SDM.\r
dc5d621c
MK
4757**/\r
4758#define MSR_SANDY_BRIDGE_C7_PMON_CTR2 0x00000DF8\r
4759\r
4760\r
4761/**\r
4762 Package. Uncore C-box 7 perfmon counter 3.\r
4763\r
4764 @param ECX MSR_SANDY_BRIDGE_C7_PMON_CTR3 (0x00000DF9)\r
4765 @param EAX Lower 32-bits of MSR value.\r
4766 @param EDX Upper 32-bits of MSR value.\r
4767\r
4768 <b>Example usage</b>\r
4769 @code\r
4770 UINT64 Msr;\r
4771\r
4772 Msr = AsmReadMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR3);\r
4773 AsmWriteMsr64 (MSR_SANDY_BRIDGE_C7_PMON_CTR3, Msr);\r
4774 @endcode\r
367f5c9c 4775 @note MSR_SANDY_BRIDGE_C7_PMON_CTR3 is defined as MSR_C7_PMON_CTR3 in SDM.\r
dc5d621c
MK
4776**/\r
4777#define MSR_SANDY_BRIDGE_C7_PMON_CTR3 0x00000DF9\r
4778\r
4779#endif\r