background image

Vol. 3D A-7

VMX CAPABILITY REPORTING FACILITY

0 (with value 0 in both MSRs), fixed to 1 (1 in both MSRs), or flexible (0 in IA32_VMX_CR4_FIXED0 and 1 in 
IA32_VMX_CR4_FIXED1).

A.9 VMCS 

ENUMERATION

The IA32_VMX_VMCS_ENUM MSR (index 48AH) provides information to assist software in enumerating fields in 
the VMCS.
As noted in Section 24.11.2, each field in the VMCS is associated with a 32-bit encoding which is structured as 
follows:

•

Bits 31:15 are reserved (must be 0).

•

Bits 14:13 indicate the field’s width.

•

Bit 12 is reserved (must be 0).

•

Bits 11:10 indicate the field’s type.

•

Bits 9:1 is an index field that distinguishes different fields with the same width and type.

•

Bit 0 indicates access type.

IA32_VMX_VMCS_ENUM indicates to software the highest index value used in the encoding of any field supported 
by the processor:

•

Bits 9:1 contain the highest index value used for any VMCS encoding.

•

Bit 0 and bits 63:10 are reserved and are read as 0.

A.10 

VPID AND EPT CAPABILITIES

The IA32_VMX_EPT_VPID_CAP MSR (index 48CH) reports information about the capabilities of the logical 
processor with regard to virtual-processor identifiers (VPIDs, Section 28.1) and extended page tables (EPT, Section 
28.2):

•

If bit 0 is read as 1, the logical processor allows software to configure EPT paging-structure entries in which 
bits 2:0 have value 100b (indicating an execute-only translation). 

•

Bit 6 indicates support for a page-walk length of 4.

•

If bit 8 is read as 1, the logical processor allows software to configure the EPT paging-structure memory type 
to be uncacheable (UC); see Section 24.6.11.

•

If bit 14 is read as 1, the logical processor allows software to configure the EPT paging-structure memory type 
to be write-back (WB).

•

If bit 16 is read as 1, the logical processor allows software to configure a EPT PDE to map a 2-Mbyte page (by 
setting bit 7 in the EPT PDE). 

•

If bit 17 is read as 1, the logical processor allows software to configure a EPT PDPTE to map a 1-Gbyte page (by 
setting bit 7 in the EPT PDPTE). 

•

Support for the INVEPT instruction (see Chapter 30 and Section 28.3.3.1).
— If bit 20 is read as 1, the INVEPT instruction is supported.
— If bit 25 is read as 1, the single-context INVEPT type is supported.
— If bit 26 is read as 1, the all-context INVEPT type is supported.

•

If bit 21 is read as 1, accessed and dirty flags for EPT are supported (see Section 28.2.4).

•

Support for the INVVPID instruction (see Chapter 30 and Section 28.3.3.1).
— If bit 32 is read as 1, the INVVPID instruction is supported.
— If bit 40 is read as 1, the individual-address INVVPID type is supported.
— If bit 41 is read as 1, the single-context INVVPID type is supported.