INTEL
®
CELERON® PROCESSOR SPECIFICATION UPDATE
28
C6.
I/O Restart in SMM May Fail After Simultaneous MCE
Problem:
If an I/O instruction (IN, INS, REP INS, OUT, OUTS, or REP OUTS) is being executed, and if the
data for this instruction becomes corrupted, the Celeron processor will signal a machine check exception
(MCE). If the instruction is directed at a device which is powered down, the processor may also receive an
assertion of SMI#. Since MCEs have higher priority, the processor will call the MCE handler, and the SMI#
assertion will remain pending. However, upon attempting to execute the first instruction of the MCE handler,
the SMI# will be recognized and the processor will attempt to execute the SMM handler. If the SMM handler is
completed successfully, it will attempt to restart the I/O instruction, but will not have the correct machine state,
due to the call to the MCE handler.
Implication:
A simultaneous MCE and SMI# assertion may occur for one of the I/O instructions above. The
SMM handler may attempt to restart such an I/O instruction, but will have corrupted state due to the MCE
handler call, leading to failure of the restart and shutdown of the processor.
Workaround:
If a system implementation must support both SMM and MCEs, the first thing the SMM
handler code (when an I/O restart is to be performed) should do is check for a pending MCE. If there is an
MCE pending, the SMM handler should immediately exit via an RSM instruction and allow the machine check
exception handler to execute. If there is not, the SMM handler may proceed with its normal operation.
Status:
For the steppings affected see the
Summary of Changes
at the beginning of this section.
C7.
Branch Traps Do Not Function If BTMs Are Also Enabled
Problem:
If branch traps or branch trace messages (BTMs) are enabled alone, both function as expected.
However, if both are enabled, only the BTMs will function, and the branch traps will be ignored.
Implication:
The branch traps and branch trace message debugging features cannot be used together.
Workaround:
If branch trap functionality is desired, BTMs must be disabled.
Status:
For the steppings affected see the
Summary of Changes
at the beginning of this section.
C8.
Machine Check Exception Handler May Not Always Execute
Successfully
Problem:
An asynchronous machine check exception (MCE), such as a BINIT# event, which occurs during
an access that splits a 4-Kbyte page boundary may leave some internal registers in an indeterminate state.
Thus, MCE handler code may not always run successfully if an asynchronous MCE has occurred previously.
Implication:
An MCE may not always result in the successful execution of the MCE handler. However,
asynchronous MCEs usually occur upon detection of a catastrophic system condition that would also hang the
processor. Leaving MCEs disabled will result in the condition which caused the asynchronous MCE instead
causing the processor to enter shutdown. Therefore, leaving MCEs disabled may not improve overall system
behavior.
Workaround:
No workaround which would guarantee successful MCE handler execution under this
condition has been identified.
Status:
For the steppings affected see the
Summary of Changes
at the beginning of this section.