UefiCpuPkg/Include: Update MSR header files with SDM (Sep.2016)
https://bugzilla.tianocore.org/show_bug.cgi?id=176 Update MSR header files of processors (excluding Goldmont and Skylake processors) according to Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3, September 2016, Chapter 35 Model-Specific-Registers (MSR). Summary of incompatible changes: General: 1. MSR (address 38EH) IA32_PERF_GLOBAL_STAUS in processor-specific header files has been removed or renamed to IA32_PERF_GLOBAL_STATUS Typo 'STAUS' has been fixed in SDM. If the MSR definition is the same with architectural MSR, we remove it. Otherwise, we rename the MSR. 2. MSRs (address starting from 400H) MSR_MC{X}_{XXX} (like MSR_MC4_STATUS) in processor-specific header files have been removed or renamed to IA32_MC{X}_{XXX} (like IA32_MC4_STATUS) Register name change from 'MSR_MC{X}_{XXX}' to 'IA32_MC{X}_{XXX}' in SDM. If the MSR definition is the same with architectural MSR, we remove it. Otherwise, we rename the MSR. Please note that for those MSRs still have name like 'MSR_MC{X}_{XXX}' in SDM are still kept in processor-specific header files. HaswellMsr.h: 1. MSR (address C80H) IA32_DEBUG_FEATURE has been removed Register name change from 'IA32_DEBUG_FEATURE' to 'IA32_DEBUG_INTERFACE' in SDM. Since the MSR definition is the same with architectural MSR, we remove it. SandyBridgeMsr.h: 1. MSR (address 391H) MSR_UNC_PERF_GLOBAL_CTRL, name change for bit fields 0:3 Bit description change from 'Core {X} select' to 'Slice {X} select' for bit 0:3 in SDM. SilvermontMsr.h: 1. MSR (address 2AH) MSR_EBL_CR_POWERON, structure definition changed Bit description for this MSR is totally changed in SDM, we modify the structure definition to align with it. XeonDMsr.h: 1. MSRs (address 630H to 632H) MSR_PKG_C8_RESIDENCY, MSR_PKG_C9_RESIDENCY and MSR_PKG_C10_RESIDENCY have been removed Those 3 MSRs are not defined for this processor in SDM, we remove them. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
|
||||
@par Specification Reference:
|
||||
Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3,
|
||||
December 2015, Chapter 35 Model-Specific-Registers (MSR), Section 35-7.
|
||||
September 2016, Chapter 35 Model-Specific-Registers (MSR), Section 35.8.
|
||||
|
||||
**/
|
||||
|
||||
@@ -26,6 +26,78 @@
|
||||
|
||||
#include <Register/ArchitecturalMsr.h>
|
||||
|
||||
/**
|
||||
Core. AES Configuration (RW-L) Privileged post-BIOS agent must provide a #GP
|
||||
handler to handle unsuccessful read of this MSR.
|
||||
|
||||
@param ECX MSR_XEON_E7_FEATURE_CONFIG (0x0000013C)
|
||||
@param EAX Lower 32-bits of MSR value.
|
||||
Described by the type MSR_XEON_E7_FEATURE_CONFIG_REGISTER.
|
||||
@param EDX Upper 32-bits of MSR value.
|
||||
Described by the type MSR_XEON_E7_FEATURE_CONFIG_REGISTER.
|
||||
|
||||
<b>Example usage</b>
|
||||
@code
|
||||
MSR_XEON_E7_FEATURE_CONFIG_REGISTER Msr;
|
||||
|
||||
Msr.Uint64 = AsmReadMsr64 (MSR_XEON_E7_FEATURE_CONFIG);
|
||||
AsmWriteMsr64 (MSR_XEON_E7_FEATURE_CONFIG, Msr.Uint64);
|
||||
@endcode
|
||||
@note MSR_XEON_E7_FEATURE_CONFIG is defined as MSR_FEATURE_CONFIG in SDM.
|
||||
**/
|
||||
#define MSR_XEON_E7_FEATURE_CONFIG 0x0000013C
|
||||
|
||||
/**
|
||||
MSR information returned for MSR index #MSR_XEON_E7_FEATURE_CONFIG
|
||||
**/
|
||||
typedef union {
|
||||
///
|
||||
/// Individual bit fields
|
||||
///
|
||||
struct {
|
||||
///
|
||||
/// [Bits 1:0] AES Configuration (RW-L) Upon a successful read of this
|
||||
/// MSR, the configuration of AES instruction set availability is as
|
||||
/// follows: 11b: AES instructions are not available until next RESET.
|
||||
/// otherwise, AES instructions are available. Note, AES instruction set
|
||||
/// is not available if read is unsuccessful. If the configuration is not
|
||||
/// 01b, AES instruction can be mis-configured if a privileged agent
|
||||
/// unintentionally writes 11b.
|
||||
///
|
||||
UINT32 AESConfiguration:2;
|
||||
UINT32 Reserved1:30;
|
||||
UINT32 Reserved2:32;
|
||||
} Bits;
|
||||
///
|
||||
/// All bit fields as a 32-bit value
|
||||
///
|
||||
UINT32 Uint32;
|
||||
///
|
||||
/// All bit fields as a 64-bit value
|
||||
///
|
||||
UINT64 Uint64;
|
||||
} MSR_XEON_E7_FEATURE_CONFIG_REGISTER;
|
||||
|
||||
|
||||
/**
|
||||
Thread. Offcore Response Event Select Register (R/W).
|
||||
|
||||
@param ECX MSR_XEON_E7_OFFCORE_RSP_1 (0x000001A7)
|
||||
@param EAX Lower 32-bits of MSR value.
|
||||
@param EDX Upper 32-bits of MSR value.
|
||||
|
||||
<b>Example usage</b>
|
||||
@code
|
||||
UINT64 Msr;
|
||||
|
||||
Msr = AsmReadMsr64 (MSR_XEON_E7_OFFCORE_RSP_1);
|
||||
AsmWriteMsr64 (MSR_XEON_E7_OFFCORE_RSP_1, Msr);
|
||||
@endcode
|
||||
@note MSR_XEON_E7_OFFCORE_RSP_1 is defined as MSR_OFFCORE_RSP_1 in SDM.
|
||||
**/
|
||||
#define MSR_XEON_E7_OFFCORE_RSP_1 0x000001A7
|
||||
|
||||
|
||||
/**
|
||||
Package. Reserved Attempt to read/write will cause #UD.
|
||||
|
||||
|
Reference in New Issue
Block a user