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

Table Of Contents
22-8 Vol. 3
VM ENTRIES
If the processor is not in SMM, the “entry to SMM” and “deactivate dual-monitor
treatment” VM-entry controls must be 0.
The “entry to SMM” and “deactivate dual-monitor treatment” VM-entry controls
cannot both be 1.
22.2.2 Checks on Host Control Registers and MSRs
The following checks are performed on fields in the host-state area that correspond
to control registers and MSRs:
The CR0 field must not set any bit to a value not supported in VMX operation (see
Section 19.8).
1
The CR4 field must not set any bit to a value not supported in VMX operation (see
Section 19.8).
On processors that support Intel 64 architecture, the CR3 field must be such that
bits 63:52 and bits in the range 51:32 beyond the processor’s physical-address
width must be 0.
2
On processors that support Intel 64 architecture, the IA32_SYSENTER_ESP field
and the IA32_SYSENTER_EIP field must each contain a canonical address.
If the “load IA32_PERF_GLOBAL_CTRL” VM-exit control is 1, bits reserved in the
IA32_PERF_GLOBAL_CTRL MSR must be 0 in the field for that register (see
Figure 18-15).
If the “load IA32_PAT” VM-exit control is 1, the value of the field for the IA32_PAT
MSR must be one that could be written by WRMSR without fault at CPL 0. Specif-
ically, each of the 8 bytes in the field must have one of the values 0 (UC), 1 (WC),
4 (WT), 5 (WP), 6 (WB), or 7 (UC-).
If the “load IA32_EFER” VM-exit control is 1, bits reserved in the IA32_EFER MSR
must be 0 in the field for that register. In addition, the values of the LMA and LME
bits in the field must each be that of the “host address-space size” VM-exit
control.
22.2.3 Checks on Host Segment and Descriptor-Table Registers
The following checks are performed on fields in the host-state area that correspond
to segment and descriptor-table registers:
In the selector field for each of CS, SS, DS, ES, FS, GS and TR, the RPL (bits 1:0)
and the TI flag (bit 2) must be 0.
1. The bits corresponding to NW (bit 29) and CD (bit 30) are never checked because the values of
these bits are not changed by VM exit; see Section 23.5.1.
2. Software can determine a processor’s physical-address width by executing CPUID with
80000008H in EAX. The physical-address width is returned in bits 7:0 of EAX.