Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 22-17
VM ENTRIES
If the processor is in SMM and the “entry to SMM” VM-entry control is 0, the
field must not contain the VMXON pointer.
22.3.1.6 Checks on Guest Page-Directory-Pointer-Table Entries
If CR0.PG =1 and CR4.PAE = 1, the logical processor uses the physical-address
extension (PAE). If IA32_EFER.LMA = 0, the logical processor also uses PAE
paging (see Section 3.8 in the Intel® 64 and IA-32 Architectures Software Devel-
oper’s Manual, Volume 3A).
1
When PAE paging is in use, the physical address in CR3
references a table of page-directory-pointer-table entries (PDPTEs). A MOV to
CR3 when PAE paging is in use checks the validity of the PDPTEs.
A VM entry is to a guest that uses PAE paging if (1) bit 5 (corresponding to CR4.PAE)
is set in the CR4 field in the guest-state area; and (2) the “IA-32e mode guest
VM-entry control is 0. Such a VM entry checks the validity of the PDPTEs:
If the “enable EPT” VM-execution control is 0, VM entry checks the validity of the
PDPTEs referenced by the CR3 field in the guest-state area if either (1) PAE
paging was not in use before the VM entry; or (2) the value of CR3 is changing as
a result of the VM entry. VM entry may check their validity even if neither (1) nor
(2) hold.
2
If the “enable EPT” VM-execution control is 1, VM entry checks the validity of the
PDPTE fields in the guest-state area (see Section 20.4.2).
A VM entry to a guest that does not use PAE paging does not check the validity of any
PDPTEs.
A VM entry that checks the validity of the PDPTEs uses the same checks that are used
when CR3 is loaded with MOV to CR3 when PAE paging is in use.
3
If MOV to CR3
would cause a general-protection exception due to the PDPTEs that would be loaded
(e.g., because a reserved bit is set), the VM entry fails.
22.3.2 Loading Guest State
Processor state is updated on VM entries in the following ways:
Some state is loaded from the guest-state area.
1. On processors that support Intel 64 architecture, the physical-address extension may support
more than 36 physical-address bits. Software can determine the number physical-address bits
supported by executing CPUID with 80000008H in EAX. The physical-address width is returned
in bits 7:0 of EAX.
2. Note that “enable EPT” is a secondary processor-based VM-execution control. If bit 31 of the pri-
mary processor-based VM-execution controls is 0, VM entry functions as if the “enable EPT” VM-
execution control were 0. See Section 20.6.2.
3. This implies that (1) bits 11:9 in each PDPTE are ignored; and (2) if bit 0 (present) is clear in one
of the PDPTEs, bits 63:1 of that PDPTE are ignored.