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

Table Of Contents
25-6 Vol. 3
SYSTEM MANAGEMENT
25.4.1 SMRAM State Save Map
When an IA-32 processor that does not support Intel 64 architecture initially enters
SMM, it writes its state to the state save area of the SMRAM. The state save area
begins at [SMBASE + 8000H + 7FFFH] and extends down to [SMBASE + 8000H +
7E00H]. Table 25-1 shows the state save map. The offset in column 1 is relative to
the SMBASE value plus 8000H. Reserved spaces should not be used by software.
Some of the registers in the SMRAM state save area (marked YES in column 3) may
be read and changed by the SMI handler, with the changed values restored to the
processor registers by the RSM instruction. Some register images are read-only, and
must not be modified (modifying these registers will result in unpredictable
behavior). An SMI handler should not rely on any values stored in an area that is
marked as reserved.
Figure 25-1. SMRAM Usage
Table 25-1. SMRAM State Save Map
Offset
(Added to SMBASE +
8000H)
Register Writable?
7FFCH CR0 No
7FF8H CR3 No
7FF4H EFLAGS Yes
7FF0H EIP Yes
7FECH EDI Yes
7FE8H ESI Yes
7FE4H EBP Yes
7FE0H ESP Yes
Start of State Save Area
SMBASE + FFFFH
SMBASE
SMBASE + 8000H
SMRAM
SMI Handler Entry Point