MP Specification

From OSDev.wiki
Jump to navigation Jump to search
This page is a work in progress.
This page may thus be incomplete. Its content may be changed in the near future.

Introduction

The MP specification is designed to make multiprocessing OEM independent. This allows OS support without an OEM driver. Therefore, it makes multiprocessing and all it's problems open to the hobbyist. it is aimed at X86. Please note that X86 multiprocessing is strictly SMP.

Parts

MP Hardware

MP is implemented as PC-AT compatible. One processor runs at boot time, the BSP (Boot System Processor). All other CPUs, APs (Application Processors), are disabled either by hardware or the BIOS (or both). The APs have to be enabled by the OS (hence AT compatibility), via APIC IPIs (INIT & STARTUP). Before enabling, they are in a halt state with interrupts disabled (however INIT & STARTUP IPIs are not masked).

MP BIOS

The BIOS has to construct MP tables based on the detected/known configuration. These are then used by a MP-capable OS.

MP Tables

MP Floating Pointer

MP Configuration Table

See Also

On the Wiki

External Links