Operating System Programming Guidelines
Then the operating system should enable its own local APIC, thereby allowing IPI communications with other
It is the responsibility of the operating system to assign unique IDs to I/O APIC units.
B.4 Application Processor Startup
An AP may be started either by the BSP or by another active AP. The operating system causes application processors to start executing their initial tasks in the operating system code by using the following universal algorithm. The algorithm detailed below consists of a sequence of interprocessor interrupts and short programmatic delays to allow the APs to respond to the wakeup commands. The algorithm shown here in
BSP sends AP an INIT IPI |
| |
BSP DELAYs (10mSec) |
| |
If (APIC_VERSION | is not an | 82489DX) { |
BSP sends AP | a STARTUP | IPI |
BSP DELAYs (200µSEC) |
| |
BSP sends AP | a STARTUP | IPI |
BSP DELAYs (200µSEC) |
|
}
BSP verifies synchronization with executing AP
Example B-1. Universal Start-up Algorithm
If the MP configuration table exists, it provides the IDs of the application processor local APICs. These IDs should be used as the destination addresses in targeted IPIs.
If the MP configuration table does not exist on an
Both INIT IPI and STARTUP IPI are
A local APIC unit indicates successful dispatch of an IPI by resetting the Delivery Status bit in the Interrupt Command Register (ICR). The operating system polls the delivery status bit after sending an INIT or STARTUP IPI until the command has been dispatched.
Version 1.4 |