Intel MultiProcessor Computer Hardware User Manual


 
Version 1.4 B-1
B
Operating System
Programming Guidelines
The goal of the MP specification is to transfer enough information about the hardware environment
to the operating system that a single, shrink-wrapped, operating-system binary can boot-up and
fully utilize a wide variety of multiprocessor systems. The following sections explain how the
operating system can take advantage of this specification to handle these operations:
1. Operating-system boot-up.
2. Self configuration.
3. Interrupt mode initialization.
4. Application processor startup.
5. Application processor shutdown.
6. Dynamic interrupt masking.
7. Support for unequal processors.
B.1 Operating System Boot-up
While all processors in an MP-compliant system are functionally identical, one of the processors
will be designated as the boot processor (BSP) at system initialization by the system hardware or
by the system hardware in conjunction with the BIOS. The rest of the processors are designated as
the application processors (APs). The BSP is responsible for booting the operating system. Once
the MP operating system is up and running, the BSP functions as an AP.
Usually a processor is designated as the BSP because it is capable of controlling all system
hardware, including AP startup and shutdown. The operating system must determine and
remember the
APIC ID of the designated BSP, so it can keep the BSP operating as the last running
processor during system shutdown. The BSP is not necessarily the first processor, especially in
fault-tolerant MP systems in which any available processor can be designated as the BSP.
At the time that the first instruction of the operating system is executed, the APs are in the
following state:
The APs have been restrained (either by the BIOS or by the hardware) from executing
operating system code.
The APs are in a halted condition with interrupts
disabled. This means that the AP’s local
APICs are passively monitoring the APIC bus and will react only to INIT or STARTUP
interprocessor interrupts (IPIs).