audk/UefiCpuPkg/Library/SmmCpuFeaturesLib
Jeff Fan 4ab4e20f1a UefiCpuPkg/SmmFeatureLib: Check SmmFeatureControl by Code_Access_Chk
Bit SMM_Code_Access_Chk (SMM-RO) in MSR_SMM_MCA_CAP is defined in SDM.
If set to 1 indicates that the SMM code access restriction is supported and the
MSR_SMM_FEATURE_CONTROL is supported.

If this bit is not set, we needn't to access register SmmFetureControl.
Otherwise, #GP exception may happen.
We need to check if SmmFeatureControl support or not by checking
SMM_Code_Access_Chk (SMM-RO) in MSR_SMM_MCA_CAP.

Because MSR_SMM_MCA_CAP is SMM-RO register, we should move this check from
SmmCpuFeaturesLibConstructor (non-SMM) to SmmCpuFeaturesInitializeProcessor
(SMM).

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> 
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18906 6f19259b-4bc3-4df7-8a09-765794883524
2015-11-20 01:23:52 +00:00
..
SmmCpuFeaturesLib.c UefiCpuPkg/SmmFeatureLib: Check SmmFeatureControl by Code_Access_Chk 2015-11-20 01:23:52 +00:00
SmmCpuFeaturesLib.inf UefiCpuPkg: Add SmmCpuFeaturesLib 2015-10-19 19:10:53 +00:00
SmmCpuFeaturesLib.uni UefiCpuPkg: Add SmmCpuFeaturesLib 2015-10-19 19:10:53 +00:00