UefiCpuPkg: Add NULL CPU Common Features Library instance
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>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
## @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
|
||||
|
Reference in New Issue
Block a user