The Intel® MultiProcessing (MP) 1.4 specification (available for download at the Intel® developers' web site) states that the startup code executed by the BSP is responsible for detecting the presence of processors other than the BSP. As part of this process, two tables are created: the MP Table and the ACPI table. When an MP-aware OS is booted, the OS consults one or the other of these tables to discover how many and what type of processors it has to work with.
According to the Multiprocessor Specification, the BIOS/POST code is responsible for detecting the presence of and initializing the APs. Intel® recommends that this be accomplished as shown in the flowchart in