From 06960576d1871779d895c4f4634a38da88cb96c6 Mon Sep 17 00:00:00 2001 From: Jiewen Yao Date: Fri, 28 Oct 2016 21:36:37 +0800 Subject: [PATCH] Support non-paging IA32 guest. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao --- Test/FrmPkg/Core/Init/VmcsInit.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Test/FrmPkg/Core/Init/VmcsInit.c b/Test/FrmPkg/Core/Init/VmcsInit.c index 10c5cd0..4cf026b 100644 --- a/Test/FrmPkg/Core/Init/VmcsInit.c +++ b/Test/FrmPkg/Core/Init/VmcsInit.c @@ -234,5 +234,10 @@ SetVmcsGuestField ( VmWrite64 (VMCS_64_GUEST_IA32_DEBUGCTL_INDEX, AsmReadMsr64 (IA32_DBG_CTL_MSR_INDEX)); VmWrite64 (VMCS_64_GUEST_VMCS_LINK_PTR_INDEX, 0xffffffffffffffff); + if ((mGuestContextCommon.GuestContextPerCpu[mBspIndex].Cr0 & CR0_PG) == 0) { + ASSERT(mGuestContextCommon.GuestContextPerCpu[Index].UnrestrictedGuest); + VmWriteN(VMCS_N_GUEST_CR0_INDEX, VmReadN(VMCS_N_GUEST_CR0_INDEX) & (~CR0_PG)); + } + return ; }