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

Table Of Contents
Vol. 3 25-35
SYSTEM MANAGEMENT
To ensure proper behavior in VMX operation, software should maintain the MSEG
header in writeback cacheable memory. Future implementations may allow or
require a different memory type.
1
Software should consult the VMX capability MSR
IA32_VMX_BASIC (see Appendix G.1).
SMM code should enable the dual-monitor treatment (by setting the valid bit in
IA32_SMM_MONITOR_CTL MSR) only after establishing the content of the MSEG
header as follows:
Bytes 3:0 contain the MSEG revision identifier. Different processors may use
different MSEG revision identifiers. These identifiers enable software to avoid
using an MSEG header formatted for one processor on a processor that uses a
different format. Software can discover the MSEG revision identifier that a
processor uses by reading the VMX capability MSR IA32_VMX_MISC (see
Appendix G.6).
Bytes 7:4 contain the SMM-monitor features field. Bits 31:1 of this field are
reserved and must be zero. Bit 0 of the field is the IA-32e mode SMM feature
bit.
2
It indicates whether the logical processor will be in IA-32e mode after the
SMM monitor is activated (see Section 25.15.6).
Bytes 31:8 contain fields that determine how processor state is loaded when the
SMM monitor is activated (see Section 25.15.6.4). SMM code should establish
these fields so that activating of the SMM monitor invokes the SMM monitors
initialization code.
16 CS selector
20 EIP offset
24 ESP offset
28 CR3 offset
1. Alternatively, software may map the MSEG header with the UC memory type; this may be neces-
sary, depending on how memory is organized. Doing so is strongly discouraged unless necessary
as it will cause the performance of transitions using those structures to suffer significantly. In
addition, the processor will continue to use the memory type reported in the VMX capability MSR
IA32_VMX_BASIC with exceptions noted in Appendix G.1.
2. Note that use of IA-32e mode address-translation mechanism is not currently supported in SMM.
Thus, setting the IA-32e mode SMM feature bit to 1 is not currently supported. See note in
Section 25.1.
Table 25-10. Format of MSEG Header (Contd.)
Byte Offset Field