UefiCpuPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check
authorMichael Kinney <michael.d.kinney@intel.com>
Tue, 17 May 2016 18:15:33 +0000 (11:15 -0700)
committerMichael Kinney <michael.d.kinney@intel.com>
Thu, 19 May 2016 17:04:27 +0000 (10:04 -0700)
commit728de7a0734bff830edede8686397efbe860d321
tree094b37c9d21f96e8bd43eb68e89457be50ff14eb
parent758ea94651545896309725b53407e57e79477f28
UefiCpuPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check

SMRR range size and alignment should follow the rules like MTRR:
a. The minimum range size is 4 KBytes and the base address of the
   range must be on at least a 4-KByte boundary.
b. For ranges greater than 4 KBytes, each range must be of length
   2^n and its base address must be aligned on a 2^n boundary, where
   n is a value equal to or greater than 12. The base-address
   alignment value cannot be less than its length.
Thus, it could meet "Address_Within_Range AND PhysMask = PhysBase
AND PhysMask".

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c