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

Table Of Contents
Vol. 3 25-37
SYSTEM MANAGEMENT
processor’s physical-address width. On processors that do not support
Intel 64 architecture, the address of the last byte in the VM-exit MSR-
store area should not set any bits in the range 63:32. The address of this
last byte is VM-exit MSR-store address + (MSR count * 16) – 1. (The
arithmetic used for the computation uses more bits than the processors
physical-address width.)
If any of these checks fail, subsequent checks are skipped and VMCALL fails. If all
these checks succeed, the logical processor uses the IA32_SMM_MONITOR_CTL MSR
to determine the base address of MSEG. The following checks are performed in the
order indicated:
1. The logical processor reads the 32 bits at the base of MSEG and compares them
to the processor’s MSEG revision identifier.
2. The logical processor reads the SMM-monitor features field:
Bit 0 of the field is the IA-32e mode SMM feature bit, and it indicates whether
the logical processor will be in IA-32e mode after the SMM monitor is
activated.
If the VMCALL is executed on a processor that does not support Intel 64
architecture, the IA-32e mode SMM feature bit must be 0.
If the VMCALL is executed in 64-bit mode, the IA-32e mode SMM feature
bit must be 1.
Bits 31:1 of this field are currently reserved and must be zero.
If any of these checks fail, subsequent checks are skipped and the VMCALL fails.
25.15.6.2 MSEG Checking
SMM VM exits that activate the dual-monitor treatment check the following before
updating the current-VMCS pointer and the executive-VMCS pointer field (see
Section 25.15.2.2):
The 32 bits at the MSEG base address (used as a physical address) must contain
the processor’s MSEG revision identifier.
Bits 31:1 of the SMM-monitor features field in the MSEG header (see
Table 25-10) must be 0. Bit 0 of the field (the IA-32e mode SMM feature bit)
must be 0 if the processor does not support Intel 64 architecture.
If either of these checks fail, execution of VMCALL fails.
25.15.6.3 Updating the Current-VMCS and Executive-VMCS Pointers
Before performing the steps in Section 25.15.2.2, SMM VM exits that activate the
dual-monitor treatment begin by loading the SMM-transfer VMCS pointer with the
value of the current-VMCS pointer.