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

Table Of Contents
25-30 Vol. 3
SYSTEM MANAGEMENT
25.15.4 VM Entries that Return from SMM
The SMM monitor returns from SMM using a VM entry with the “entry to SMM”
VM-entry control clear. VM entries that return from SMM reverse the effects of an
SMM VM exit (see Section 25.15.2).
VM entries that return from SMM may differ from other VM entries in that they do not
necessarily enter VMX non-root operation. If the executive-VMCS pointer field in the
current VMCS contains the VMXON pointer, the logical processor remains in VMX root
operation after VM entry.
For differences between VM entries that return from SMM and other VM entries see
Sections 25.15.4.1 through 25.15.4.10.
25.15.4.1 Checks on the Executive-VMCS Pointer Field
VM entries that return from SMM perform the following checks on the executive-
VMCS pointer field in the current VMCS:
Bits 11:0 must be 0.
On processors that support Intel 64 architecture, the pointer must not set any
bits beyond the processor’s physical-address width.
1
On processors that do not
support Intel 64 architecture, it must not set any bits in the range 63:32.
The 32 bits located in memory referenced by the physical address in the pointer
must contain the processor’s VMCS revision identifier (see Section 20.2).
The checks above are performed before the checks described in Section 25.15.4.2
and before any of the following checks:
If the “deactivate dual-monitor treatment” VM-entry control is 0, the launch state
of the executive VMCS (the VMCS referenced by the executive-VMCS pointer
field) must be launched (see Section 20.11).
If the “deactivate dual-monitor treatment” VM-entry control is 1, the executive-
VMCS pointer field must contain the VMXON pointer (see Section 25.15.7).
2
25.15.4.2 Checks on VM-Execution Control Fields
VM entries that return from SMM differ from other VM entries with regard to the
checks performed on the VM-execution control fields specified in Section 22.2.1.1.
They do not apply the checks to the current VMCS. Instead, VM-entry behavior
depends on whether the executive-VMCS pointer field contains the VMXON pointer:
If the executive-VMCS pointer field contains the VMXON pointer (the VM entry
remains in VMX root operation), the checks are not performed at all.
1. 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.
2. An SMM monitor can determine the VMXON pointer by reading the executive-VMCS pointer field
in the current VMCS after the SMM VM exit that activates the dual-monitor treatment.