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

Table Of Contents
Vol. 3 25-3
SYSTEM MANAGEMENT
25.2 SYSTEM MANAGEMENT INTERRUPT (SMI)
The only way to enter SMM is by signaling an SMI through the SMI# pin on the
processor or through an SMI message received through the APIC bus. The SMI is a
nonmaskable external interrupt that operates independently from the processor’s
interrupt- and exception-handling mechanism and the local APIC. The SMI takes
precedence over an NMI and a maskable interrupt. SMM is non-reentrant; that is, the
SMI is disabled while the processor is in SMM.
NOTES
In the Pentium 4, Intel Xeon, and P6 family processors, when a
processor that is designated as an application processor during an MP
initialization sequence is waiting for a startup IPI (SIPI), it is in a
mode where SMIs are masked. However if a SMI is received while an
application processor is in the wait for SIPI mode, the SMI will be
pended. The processor then responds on receipt of a SIPI by
immediately servicing the pended SMI and going into SMM before
handling the SIPI.
An SMI may be blocked for one instruction following execution of STI,
MOV to SS, or POP into SS.
25.3 SWITCHING BETWEEN SMM AND THE OTHER
PROCESSOR OPERATING MODES
Figure 2-3 shows how the processor moves between SMM and the other processor
operating modes (protected, real-address, and virtual-8086). Signaling an SMI while
the processor is in real-address, protected, or virtual-8086 modes always causes the
processor to switch to SMM. Upon execution of the RSM instruction, the processor
always returns to the mode it was in when the SMI occurred.
25.3.1 Entering SMM
The processor always handles an SMI on an architecturally defined “interruptible”
point in program execution (which is commonly at an IA-32 architecture instruction
boundary). When the processor receives an SMI, it waits for all instructions to retire
and for all stores to complete. The processor then saves its current context in SMRAM
(see Section 25.4), enters SMM, and begins to execute the SMI handler.
Upon entering SMM, the processor signals external hardware that SMM handling has
begun. The signaling mechanism used is implementation dependent. For the P6
family processors, an SMI acknowledge transaction is generated on the system bus
and the multiplexed status signal EXF4 is asserted each time a bus transaction is
generated while the processor is in SMM. For the Pentium and Intel486 processors,
the SMIACT# pin is asserted.