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

Table Of Contents
C-4 Vol. 3
MP INITIALIZATION FOR P6 FAMILY PROCESSORS
priate. At the completion of the initialization procedure, the AP executes a CLI
instruction (to clear the IF flag in the EFLAGS register) and halts itself.
11. When each of the APs has gained access to the semaphore and executed the AP
initialization code and all written their APIC IDs into the appropriate places in the
ACPI and MP tables, the BSP establishes a count for the number of processors
connected to the system bus, completes executing the BIOS boot-strap code,
and then begins executing operating-system boot-strap and start-up code.
12. While the BSP is executing operating-system boot-strap and start-up code, the
APs remain in the halted state. In this state they will respond only to INITs, NMIs,
and SMIs. They will also respond to snoops and to assertions of the STPCLK# pin.
See Section 7.5.4, “MP Initialization Example,” for an annotated example the use of
the MP protocol to boot IA-32 processors in an MP. This code should run on any IA-32
processor that used the MP protocol.
C.2.1 Error Detection and Handling During the MP Initialization
Protocol
Errors may occur on the APIC bus during the MP initialization phase. These errors
may be transient or permanent and can be caused by a variety of failure mechanisms
(for example, broken traces, soft errors during bus usage, etc.). All serial bus related
errors will result in an APIC checksum or acceptance error.
The MP initialization protocol makes the following assumptions regarding errors that
occur during initialization:
If errors are detected on the APIC bus during execution of the MP initialization
protocol, the processors that detect the errors are shut down.
The MP initialization protocol will be executed by processors even if they fail their
BIST sequences.