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

Table Of Contents
Vol. 3 19-5
INTRODUCTION TO VIRTUAL-MACHINE EXTENSIONS
is provided in an operand to VMXON. Section 20.10.4, “VMXON Region,” details how
software should initialize and access the VMXON region.
19.8 RESTRICTIONS ON VMX OPERATION
VMX operation places restrictions on processor operation. These are detailed below:
In VMX operation, processors may fix certain bits in CR0 and CR4 to specific
values and not support other values. VMXON fails if any of these bits contains an
unsupported value (see “VMXON—Enter VMX Operation” in Chapter 6 of the
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2B).
Any attempt to set one of these bits to an unsupported value while in VMX
operation (including VMX root operation) using any of the CLTS, LMSW, or MOV
CR instructions causes a general-protection exception. VM entry or VM exit
cannot set any of these bits to an unsupported value.
2
NOTE
The first processors to support VMX operation require that the
following bits be 1 in VMX operation: CR0.PE, CR0.NE, CR0.PG, and
CR4.VMXE. The restrictions on CR0.PE and CR0.PG imply that VMX
operation is supported only in paged protected mode (including
IA-32e mode). Therefore, guest software cannot be run in unpaged
protected mode or in real-address mode. See Section 26.2,
“Supporting Processor Operating Modes in Guest Environments,” for
a discussion of how a VMM might support guest software that expects
to run in unpaged protected mode or in real-address mode.
VMXON fails if a logical processor is in A20M mode (see “VMXONEnter VMX
Operation” in Chapter 6 of the Intel® 64 and IA-32 Architectures Software
Developer’s Manual, Volume 2B). Once the processor is in VMX operation, A20M
interrupts are blocked. Thus, it is impossible to be in A20M mode in VMX
operation.
The INIT signal is blocked whenever a logical processor is in VMX root operation.
It is not blocked in VMX non-root operation. Instead, INITs cause VM exits (see
Section 21.3, “Other Causes of VM Exits”).
2. Software should consult the VMX capability MSRs IA32_VMX_CR0_FIXED0 and
IA32_VMX_CR0_FIXED1 to determine how bits in CR0 are set. (see Appendix G.7). For CR4, soft-
ware should consult the VMX capability MSRs IA32_VMX_CR4_FIXED0 and
IA32_VMX_CR4_FIXED1 (see Appendix G.8).