]>
git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/Include/Register/Msr/PentiumMsr.h
2 MSR Definitions for Pentium Processors.
4 Provides defines for Machine Specific Registers(MSR) indexes. Data structures
5 are provided for MSRs that contain one or more bit fields. If the MSR value
6 returned is a single 32-bit or 64-bit value, then a data structure is not
9 Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
10 SPDX-License-Identifier: BSD-2-Clause-Patent
12 @par Specification Reference:
13 Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 4,
14 May 2018, Volume 4: Model-Specific-Registers (MSR)
18 #ifndef __PENTIUM_MSR_H__
19 #define __PENTIUM_MSR_H__
21 #include <Register/ArchitecturalMsr.h>
24 Is Pentium Processors?
26 @param DisplayFamily Display Family ID
27 @param DisplayModel Display Model ID
29 @retval TRUE Yes, it is.
30 @retval FALSE No, it isn't.
32 #define IS_PENTIUM_PROCESSOR(DisplayFamily, DisplayModel) \
33 (DisplayFamily == 0x05 && \
35 DisplayModel == 0x01 || \
36 DisplayModel == 0x02 || \
37 DisplayModel == 0x04 \
42 See Section 15.10.2, "Pentium Processor Machine-Check Exception Handling.".
44 @param ECX MSR_PENTIUM_P5_MC_ADDR (0x00000000)
45 @param EAX Lower 32-bits of MSR value.
46 @param EDX Upper 32-bits of MSR value.
52 Msr = AsmReadMsr64 (MSR_PENTIUM_P5_MC_ADDR);
53 AsmWriteMsr64 (MSR_PENTIUM_P5_MC_ADDR, Msr);
55 @note MSR_PENTIUM_P5_MC_ADDR is defined as P5_MC_ADDR in SDM.
57 #define MSR_PENTIUM_P5_MC_ADDR 0x00000000
61 See Section 15.10.2, "Pentium Processor Machine-Check Exception Handling.".
63 @param ECX MSR_PENTIUM_P5_MC_TYPE (0x00000001)
64 @param EAX Lower 32-bits of MSR value.
65 @param EDX Upper 32-bits of MSR value.
71 Msr = AsmReadMsr64 (MSR_PENTIUM_P5_MC_TYPE);
72 AsmWriteMsr64 (MSR_PENTIUM_P5_MC_TYPE, Msr);
74 @note MSR_PENTIUM_P5_MC_TYPE is defined as P5_MC_TYPE in SDM.
76 #define MSR_PENTIUM_P5_MC_TYPE 0x00000001
80 See Section 17.17, "Time-Stamp Counter.".
82 @param ECX MSR_PENTIUM_TSC (0x00000010)
83 @param EAX Lower 32-bits of MSR value.
84 @param EDX Upper 32-bits of MSR value.
90 Msr = AsmReadMsr64 (MSR_PENTIUM_TSC);
91 AsmWriteMsr64 (MSR_PENTIUM_TSC, Msr);
93 @note MSR_PENTIUM_TSC is defined as TSC in SDM.
95 #define MSR_PENTIUM_TSC 0x00000010
99 See Section 18.6.9.1, "Control and Event Select Register (CESR).".
101 @param ECX MSR_PENTIUM_CESR (0x00000011)
102 @param EAX Lower 32-bits of MSR value.
103 @param EDX Upper 32-bits of MSR value.
109 Msr = AsmReadMsr64 (MSR_PENTIUM_CESR);
110 AsmWriteMsr64 (MSR_PENTIUM_CESR, Msr);
112 @note MSR_PENTIUM_CESR is defined as CESR in SDM.
114 #define MSR_PENTIUM_CESR 0x00000011
118 Section 18.6.9.3, "Events Counted.".
120 @param ECX MSR_PENTIUM_CTRn
121 @param EAX Lower 32-bits of MSR value.
122 @param EDX Upper 32-bits of MSR value.
128 Msr = AsmReadMsr64 (MSR_PENTIUM_CTR0);
129 AsmWriteMsr64 (MSR_PENTIUM_CTR0, Msr);
131 @note MSR_PENTIUM_CTR0 is defined as CTR0 in SDM.
132 MSR_PENTIUM_CTR1 is defined as CTR1 in SDM.
135 #define MSR_PENTIUM_CTR0 0x00000012
136 #define MSR_PENTIUM_CTR1 0x00000013