This NULL CPU common Features Library instance will register some CPU features defined in Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3, September 2016, Chapter 35 Model-Specific-Registers (MSR). Add PCD PcdCpuClockModulationDutyCycle and PcdIsPowerOnReset consumed by NULL CPU Common Features Library instance. v2: 1. Using MSR_IA32_EFER to enable/disable NX feature instead of using MSR_IA32_MISC_ENABLE. 2. Fix bug that SMX and VMX feature is swapped. v3: 1. Add AesniGetConfigData() to get current register state. v5: Move MSR reading from AesniGetConfigData() to AesniSupport(). Cc: Feng Tian <feng.tian@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
69 lines
1.9 KiB
INI
69 lines
1.9 KiB
INI
## @file
|
|
# NULL instance to register CPU features.
|
|
#
|
|
# This library registers CPU features defined in Intel(R) 64 and IA-32
|
|
# Architectures Software Developer's Manual.
|
|
#
|
|
# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = CpuCommonFeaturesLib
|
|
MODULE_UNI_FILE = CpuCommonFeaturesLib.uni
|
|
FILE_GUID = 387A2490-81FC-4E7C-8E0A-3E58C30FCD0B
|
|
MODULE_TYPE = BASE
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = NULL
|
|
|
|
CONSTRUCTOR = CpuCommonFeaturesLibConstructor
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64
|
|
#
|
|
|
|
[Sources]
|
|
CpuCommonFeaturesLib.c
|
|
CpuCommonFeatures.h
|
|
Aesni.c
|
|
C1e.c
|
|
ClockModulation.c
|
|
Eist.c
|
|
ExecuteDisable.c
|
|
FastStrings.c
|
|
FeatureControl.c
|
|
LimitCpuIdMaxval.c
|
|
MachineCheck.c
|
|
MonitorMwait.c
|
|
PendingBreak.c
|
|
X2Apic.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
PcdLib
|
|
DebugLib
|
|
RegisterCpuFeaturesLib
|
|
BaseMemoryLib
|
|
MemoryAllocationLib
|
|
LocalApicLib
|
|
|
|
[Pcd]
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuFeaturesSupport # CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuClockModulationDutyCycle # SOMETIME_CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdIsPowerOnReset # SOMETIME_CONSUMES
|
|
|