REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3394

Using new API GetMaxPlatformAddressBits, MtrrLib Unit Test needs to
provide the value of MSR MSR_IA32_TME_CAPABILITY.

Cc: Eric Dong <eric.d...@intel.com>
Cc: Ray Ni <ray...@intel.com>
Cc: Rahul Kumar <rahul1.ku...@intel.com>
Cc: Gerd Hoffmann <kra...@redhat.com>
Signed-off-by: Zhiguang Liu <zhiguang....@intel.com>
---
 UefiCpuPkg/Library/MtrrLib/UnitTest/Support.c | 7 +++++++
 UefiCpuPkg/Test/UefiCpuPkgHostTest.dsc        | 5 ++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/UefiCpuPkg/Library/MtrrLib/UnitTest/Support.c 
b/UefiCpuPkg/Library/MtrrLib/UnitTest/Support.c
index ba1de10034..25df09f882 100644
--- a/UefiCpuPkg/Library/MtrrLib/UnitTest/Support.c
+++ b/UefiCpuPkg/Library/MtrrLib/UnitTest/Support.c
@@ -18,6 +18,7 @@ MSR_IA32_MTRR_PHYSMASK_REGISTER              
mVariableMtrrsPhysMask[MTRR_NUMBER_
 MSR_IA32_MTRR_DEF_TYPE_REGISTER              mDefTypeMsr;
 MSR_IA32_MTRRCAP_REGISTER                    mMtrrCapMsr;
 MSR_IA32_TME_ACTIVATE_REGISTER               mTmeActivateMsr;
+MSR_IA32_TME_CAPABILITY_REGISTER             mTmeCapabilityMsr;
 CPUID_VERSION_INFO_EDX                       mCpuidVersionInfoEdx;
 CPUID_STRUCTURED_EXTENDED_FEATURE_FLAGS_ECX  mCpuidExtendedFeatureFlagsEcx;
 CPUID_VIR_PHY_ADDRESS_SIZE_EAX               mCpuidVirPhyAddressSizeEax;
@@ -266,6 +267,10 @@ UnitTestMtrrLibAsmReadMsr64 (
     return mTmeActivateMsr.Uint64;
   }
 
+  if (MsrIndex == MSR_IA32_TME_CAPABILITY) {
+    return mTmeCapabilityMsr.Uint64;
+  }
+
   //
   // Should never fall through to here
   //
@@ -393,10 +398,12 @@ InitializeMtrrRegs (
     mCpuidExtendedFeatureFlagsEcx.Bits.TME_EN = 1;
     mTmeActivateMsr.Bits.TmeEnable            = 1;
     mTmeActivateMsr.Bits.MkTmeKeyidBits       = 
SystemParameter->MkTmeKeyidBits;
+    mTmeCapabilityMsr.Bits.MkTmeMaxKeyidBits  = 
SystemParameter->MkTmeKeyidBits;
   } else {
     mCpuidExtendedFeatureFlagsEcx.Bits.TME_EN = 0;
     mTmeActivateMsr.Bits.TmeEnable            = 0;
     mTmeActivateMsr.Bits.MkTmeKeyidBits       = 0;
+    mTmeCapabilityMsr.Bits.MkTmeMaxKeyidBits  = 0;
   }
 
   return UNIT_TEST_PASSED;
diff --git a/UefiCpuPkg/Test/UefiCpuPkgHostTest.dsc 
b/UefiCpuPkg/Test/UefiCpuPkgHostTest.dsc
index e72e4cd622..8f680ef711 100644
--- a/UefiCpuPkg/Test/UefiCpuPkgHostTest.dsc
+++ b/UefiCpuPkg/Test/UefiCpuPkgHostTest.dsc
@@ -32,7 +32,10 @@
   #
   # Build HOST_APPLICATION that tests the MtrrLib
   #
-  UefiCpuPkg/Library/MtrrLib/UnitTest/MtrrLibUnitTestHost.inf
+  UefiCpuPkg/Library/MtrrLib/UnitTest/MtrrLibUnitTestHost.inf {
+    <LibraryClasses>
+      CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
+  }
 
   #
   # Build HOST_APPLICATION that tests the CpuPageTableLib
-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#105912): https://edk2.groups.io/g/devel/message/105912
Mute This Topic: https://groups.io/mt/99399605/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to