Use CPUID instead of control registers for virtualization test

This commit is contained in:
Jeremy Soller
2020-08-06 11:36:58 -06:00
committed by Jeremy Soller
parent 26279e8f9a
commit 4f29b65fbe

View File

@@ -725,9 +725,9 @@ STATIC VOID FirmwareConfigurationInformation(VOID) {
HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"Intel Virtualization", NULL); HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"Intel Virtualization", NULL);
Token = STRING_TOKEN (STR_VIRTUALIZATION_STATUS); Token = STRING_TOKEN (STR_VIRTUALIZATION_STATUS);
IA32_CR4 Cr4; CPUID_VERSION_INFO_ECX VersionInfoEcx;
Cr4.UintN = AsmReadCr4 (); AsmCpuid (CPUID_VERSION_INFO, NULL, NULL, &VersionInfoEcx.Uint32, NULL);
if (Cr4.Bits.VMXE) { if (VersionInfoEcx.Bits.VMX) {
HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"VT-x: Active", NULL); HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"VT-x: Active", NULL);
} else { } else {
HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"VT-x: Deactivated", NULL); HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"VT-x: Deactivated", NULL);
@@ -753,9 +753,9 @@ STATIC VOID FirmwareConfigurationInformation(VOID) {
HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"AMD Virtualization", NULL); HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"AMD Virtualization", NULL);
Token = STRING_TOKEN (STR_VIRTUALIZATION_STATUS); Token = STRING_TOKEN (STR_VIRTUALIZATION_STATUS);
MSR_IA32_EFER_REGISTER MsrEfer; CPUID_AMD_EXTENDED_CPU_SIG_ECX AmdExtendedCpuSigEcx;
MsrEfer.Uint64 = AsmReadMsr64 (MSR_CORE_IA32_EFER); AsmCpuid (CPUID_EXTENDED_CPU_SIG, NULL, NULL, &AmdExtendedCpuSigEcx.Uint32, NULL);
if (MsrEfer.Bits.SVME) { if (AmdExtendedCpuSigEcx.Bits.SVM) {
HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"AMD-V: Active", NULL); HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"AMD-V: Active", NULL);
} else { } else {
HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"AMD-V: Deactivated", NULL); HiiSetString (gFrontPagePrivate.HiiHandle, Token, L"AMD-V: Deactivated", NULL);