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

Table Of Contents
Vol. 3 G-1
APPENDIX G
VMX CAPABILITY REPORTING FACILITY
The ability of a processor to support VMX operation and related instructions is indi-
cated by CPUID.1:ECX.VMX[bit 5] = 1. A value 1 in this bit indicates support for VMX
features.
Support for specific features detailed in Chapter 20 and other VMX chapters is deter-
mined by reading values from a set of capability MSRs. These MSRs are indexed
starting at MSR address 480H. VMX capability MSRs are read-only; an attempt to
write them (with WRMSR) produces a general-protection exception (#GP(0)). They
do not exist on processors that do not support VMX operation; an attempt to read
them (with RDMSR) on such processors produces a general-protection exception
(#GP(0)).
G.1 BASIC VMX INFORMATION
The IA32_VMX_BASIC MSR (index 480H) consists of the following fields:
Bits 31:0 contain the 32-bit VMCS revision identifier used by the processor.
Logical processors that use the same VMCS revision identifier use the same size
for VMCS regions (see next item)
Bits 44:32 report the number of bytes that software should allocate for the
VMXON region and any VMCS region. It is a value greater than 0 and at most
4096 (bit 44 is set if and only if bits 43:32 are clear).
Bit 48 indicates the width of the physical addresses that may be used for the
VMXON region, each VMCS, and data structures referenced by pointers in a VMCS
(I/O bitmaps, virtual-APIC page, MSR areas for VMX transitions). If the bit is 0,
these addresses are limited to the processor’s physical-address width.
1
If the bit
is 1, these addresses are limited to 32 bits. This bit is always 0 for processors that
support Intel 64 architecture and is always 1 for processors that do not support
Intel 64 architecture.
If bit 49 is read as 1, the logical processor supports the dual-monitor treatment
of system-management interrupts and system-management mode. See Section
25.15 for details of this treatment.
Bits 53:50 report the memory type that the logical processor uses to access the
VMCS for VMREAD and VMWRITE and to access the VMCS, data structures
referenced by pointers in the VMCS (I/O bitmaps, virtual-APIC page, MSR areas
for VMX transitions), and the MSEG header during VM entries, VM exits, and in
VMX non-root operation.
2
1. On processors that support Intel 64 architecture, the pointer must not set bits beyond the pro-
cessor's physical address width.