Specifications
Intel
®
Quark SoC X1000 Core
October 2013 Developer’s Manual
Order Number: 329679-001US 137
System Management Mode (SMM) Architectures—Intel
®
Quark Core
The EM bit is cleared so that no exceptions are generated. (If the SMM was entered
from Protected Mode, the Real Mode interrupt and exception support is not available.)
The SMI# handler should not use floating-point unit instructions until the FPU is
properly detected (within the SMI# handler) and the exception support is initialized.
Because the segment bases (other than CS) are cleared to 0 and the segment limits
are set to 4 Gbytes, the address space may be treated as a single flat 4-Gbyte linear
space that is unsegmented. The processor is still in Real Mode and when a segment
selector is loaded with a 16-bit value, that value is then shifted left by 4 bits and loaded
into the segment base cache. The limits and attributes are not modified.
In SMM, the processor can access or jump anywhere within the 4-Gbyte logical address
space. The processor can also indirectly access or perform a near jump anywhere
within the 4-Gbyte logical address space.
8.4.3.1 Exceptions and Interrupts within System Management Mode
When the processor enters SMM, it disables INTR interrupts, debug and single-step
traps by clearing the EFLAGS, DR6 and DR7 registers. This prevents a debug
application from accidentally breaking into an SMM handler. This is necessary because
the SMM handler operates from a distinct address space (SMRAM), and hence, the
debug trap does not represent the normal system memory space.
If an SMM handler wishes to use the debug trap feature of the processor to debug SMM
handler code, it must first ensure that an SMM-compliant debug handler is available.
The SMM handler must also ensure DR3:0 is saved to be restored later. The debug
registers DR3:0 and DR7 must then be initialized with the appropriate values.
If the processor wishes to use the single step feature of the processor, it must ensure
that an SMM compliant single step handler is available and then set the trap flag in the
EFLAGS register.
If the system design requires the processor to respond to hardware INTR requests
while in SMM, it must ensure that an SMM compliant interrupt handler is available and
then set the interrupt flag in the EFLAGS register (using the STI instruction). Software
interrupts are not blocked upon entry to SMM, and the system software designer must
provide an SMM compliant interrupt handler before attempting to execute any software
interrupt instructions. Note that in SMM mode, the interrupt vector table has the same
properties and location as the Real Mode vector table.
NMI interrupts are blocked upon entry to the SMM handler. If an NMI request occurs
during the SMM handler, it is latched and serviced after the processor exits SMM. Only
one NMI request is latched during the SMM handler. If an NMI request is pending when
the processor executes the RSM instruction, the NMI is serviced before the next
instruction of the interrupted code sequence.
Although NMI requests are blocked when the processor enters SMM, they may be
enabled through software by executing an IRET instruction. If the SMM handler
requires the use of NMI interrupts, it should invoke a dummy interrupt service routine
for the purpose of executing an IRET instruction. Once an IRET instruction is executed,
NMI interrupt requests are serviced in the same “Real Mode” manner in which they are
handled outside of SMM.










