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

Table Of Contents
25-24 Vol. 3
SYSTEM MANAGEMENT
Note that processors that do not support SMI recognition while there is blocking by
STI or by MOV SS need not save the state of such blocking.
If the logical processor supports the 1-setting of the “enable EPT” VM-execution
control and the logical processor was in VMX non-root operation at the time of an
SMI, it saves the value of that control into bit 0 of the 32-bit field at offset SMBASE +
8000H + 7EE0H (SMBASE + FEE0H; see Table 25-3).
1
If the logical processor was
not in VMX non-root operation at the time of the SMI, it saves 0 into that bit. If the
logical processor saves 1 into that bit (it was in VMX non-root operation and the
“enable EPT” VM-execution control was 1), it saves the value of the EPT pointer
(EPTP) into the 64-bit field at offset SMBASE + 8000H + 7ED8H (SMBASE + FED8H).
Because SMI delivery causes a logical processor to leave VMX operation, all the
controls associated with VMX non-root operation are disabled in SMM and thus
cannot cause VM exits while the logical processor in SMM.
25.14.2 Default Treatment of RSM
Ordinary execution of RSM restores processor state from SMRAM. Under the default
treatment, processors that support VMX operation perform RSM as follows:
IF VMXE = 1 in CR4 image in SMRAM
THEN fail and enter shutdown state;
ELSE
restore state normally from SMRAM;
invalidate VPID-tagged mappings and dual-tagged mappings associated with all VPIDs; dual-
tagged mappings are invalidated for all EPTPs (see Section 24.3);
IF the logical processor supports SMX operation andthe Intel® TXT private space was
unlocked at the time of the last SMI (as saved)
THEN unlock the TXT private space;
FI;
CR4.VMXE value stored internally;
IF internal storage indicates that the logical processor
had been in VMX operation (root or non-root)
THEN
enter VMX operation (root or non-root);
restore VMX-critical state as defined in Section 25.14.1;
set to their fixed values any bits in CR0 and CR4 whose values must be fixed in
VMX operation (see Section 19.8);
IF RFLAGS.VM = 0
THEN
CS.RPL SS.DPL;
1. Note that “enable EPT” is a secondary processor-based VM-execution control. If bit 31 of the pri-
mary processor-based VM-execution controls is 0, SMI functions as the “enable EPT” VM-execu-
tion control were 0. See Section 20.6.2.