]> git.proxmox.com Git - mirror_edk2.git/blame - UefiCpuPkg/Include/Register/Msr/PentiumMsr.h
UefiCpuPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / UefiCpuPkg / Include / Register / Msr / PentiumMsr.h
CommitLineData
a1e8e34d
MK
1/** @file\r
2 MSR Definitions for Pentium Processors.\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
ba1a2d11 9 Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>\r
0acd8697 10 SPDX-License-Identifier: BSD-2-Clause-Patent\r
a1e8e34d
MK
11\r
12 @par Specification Reference:\r
ba1a2d11
ED
13 Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 4,\r
14 May 2018, Volume 4: Model-Specific-Registers (MSR)\r
a1e8e34d
MK
15\r
16**/\r
17\r
18#ifndef __PENTIUM_MSR_H__\r
19#define __PENTIUM_MSR_H__\r
20\r
21#include <Register/ArchitecturalMsr.h>\r
22\r
f4c982bf
JF
23/**\r
24 Is Pentium Processors?\r
25\r
26 @param DisplayFamily Display Family ID\r
27 @param DisplayModel Display Model ID\r
28\r
29 @retval TRUE Yes, it is.\r
30 @retval FALSE No, it isn't.\r
31**/\r
32#define IS_PENTIUM_PROCESSOR(DisplayFamily, DisplayModel) \\r
33 (DisplayFamily == 0x05 && \\r
34 ( \\r
35 DisplayModel == 0x01 || \\r
36 DisplayModel == 0x02 || \\r
37 DisplayModel == 0x04 \\r
38 ) \\r
39 )\r
40\r
a1e8e34d
MK
41/**\r
42 See Section 15.10.2, "Pentium Processor Machine-Check Exception Handling.".\r
43\r
44 @param ECX MSR_PENTIUM_P5_MC_ADDR (0x00000000)\r
45 @param EAX Lower 32-bits of MSR value.\r
46 @param EDX Upper 32-bits of MSR value.\r
47\r
48 <b>Example usage</b>\r
49 @code\r
50 UINT64 Msr;\r
51\r
52 Msr = AsmReadMsr64 (MSR_PENTIUM_P5_MC_ADDR);\r
53 AsmWriteMsr64 (MSR_PENTIUM_P5_MC_ADDR, Msr);\r
54 @endcode\r
634429c0 55 @note MSR_PENTIUM_P5_MC_ADDR is defined as P5_MC_ADDR in SDM.\r
a1e8e34d
MK
56**/\r
57#define MSR_PENTIUM_P5_MC_ADDR 0x00000000\r
58\r
59\r
60/**\r
61 See Section 15.10.2, "Pentium Processor Machine-Check Exception Handling.".\r
62\r
63 @param ECX MSR_PENTIUM_P5_MC_TYPE (0x00000001)\r
64 @param EAX Lower 32-bits of MSR value.\r
65 @param EDX Upper 32-bits of MSR value.\r
66\r
67 <b>Example usage</b>\r
68 @code\r
69 UINT64 Msr;\r
70\r
71 Msr = AsmReadMsr64 (MSR_PENTIUM_P5_MC_TYPE);\r
72 AsmWriteMsr64 (MSR_PENTIUM_P5_MC_TYPE, Msr);\r
73 @endcode\r
634429c0 74 @note MSR_PENTIUM_P5_MC_TYPE is defined as P5_MC_TYPE in SDM.\r
a1e8e34d
MK
75**/\r
76#define MSR_PENTIUM_P5_MC_TYPE 0x00000001\r
77\r
78\r
79/**\r
ba1a2d11 80 See Section 17.17, "Time-Stamp Counter.".\r
a1e8e34d
MK
81\r
82 @param ECX MSR_PENTIUM_TSC (0x00000010)\r
83 @param EAX Lower 32-bits of MSR value.\r
84 @param EDX Upper 32-bits of MSR value.\r
85\r
86 <b>Example usage</b>\r
87 @code\r
88 UINT64 Msr;\r
89\r
90 Msr = AsmReadMsr64 (MSR_PENTIUM_TSC);\r
91 AsmWriteMsr64 (MSR_PENTIUM_TSC, Msr);\r
92 @endcode\r
634429c0 93 @note MSR_PENTIUM_TSC is defined as TSC in SDM.\r
a1e8e34d
MK
94**/\r
95#define MSR_PENTIUM_TSC 0x00000010\r
96\r
97\r
98/**\r
ba1a2d11 99 See Section 18.6.9.1, "Control and Event Select Register (CESR).".\r
a1e8e34d
MK
100\r
101 @param ECX MSR_PENTIUM_CESR (0x00000011)\r
102 @param EAX Lower 32-bits of MSR value.\r
103 @param EDX Upper 32-bits of MSR value.\r
104\r
105 <b>Example usage</b>\r
106 @code\r
107 UINT64 Msr;\r
108\r
109 Msr = AsmReadMsr64 (MSR_PENTIUM_CESR);\r
110 AsmWriteMsr64 (MSR_PENTIUM_CESR, Msr);\r
111 @endcode\r
634429c0 112 @note MSR_PENTIUM_CESR is defined as CESR in SDM.\r
a1e8e34d
MK
113**/\r
114#define MSR_PENTIUM_CESR 0x00000011\r
115\r
116\r
117/**\r
ba1a2d11 118 Section 18.6.9.3, "Events Counted.".\r
a1e8e34d
MK
119\r
120 @param ECX MSR_PENTIUM_CTRn\r
121 @param EAX Lower 32-bits of MSR value.\r
122 @param EDX Upper 32-bits of MSR value.\r
123\r
124 <b>Example usage</b>\r
125 @code\r
126 UINT64 Msr;\r
127\r
128 Msr = AsmReadMsr64 (MSR_PENTIUM_CTR0);\r
129 AsmWriteMsr64 (MSR_PENTIUM_CTR0, Msr);\r
130 @endcode\r
634429c0
JF
131 @note MSR_PENTIUM_CTR0 is defined as CTR0 in SDM.\r
132 MSR_PENTIUM_CTR1 is defined as CTR1 in SDM.\r
a1e8e34d
MK
133 @{\r
134**/\r
135#define MSR_PENTIUM_CTR0 0x00000012\r
136#define MSR_PENTIUM_CTR1 0x00000013\r
137/// @}\r
138\r
139#endif\r