APIC Timer: Difference between revisions
Jump to navigation
Jump to search
m
→Enabling APIC Timer
[unchecked revision] | [unchecked revision] |
m (is) |
|||
Line 26:
== Enabling APIC Timer ==
Before enabling the local APIC timer, you should setup the rest of the local APIC. This includes:
* After that, you have to specify a spurious interrupt and software enable the APIC (this step is necessary).▼
* Determine the local APIC's physical address (via. ACPI tables or MultiProcessor Specification tables)
▲*
* Make sure the TPR (Task Priority Register) is set (so it won't block/postpone lower priority IRQs)
Once that's done:
* Set the local APIC timer's divide configuration register
* Configure the local APIC timer's interrupt vector and unmask the timer's IRQ
* Set the local APIC timer's initial count
Note: It's recommended to follow the order given above (especially setting the local APIC timer's initial count last). Doing things in a different order (e.g. setting the initial count, then enabling the timer) can lead to problems on some (real or virtual) machines (e.g. everything seems right and counter is decreasing, but IRQ is never sent).
== Initializing ==
|