How can I get LAPIC timer to run instead of the PIT timer?
I have two machines, both of which have APIC. Custom built kernels (2.6.21) on both, and both say they found and enabled the local APIC. But one machine uses the LAPIC timer while the other uses the system timer (IRQ 0). What configuration items do I need to set to get the LAPIC timer to be used?
I've read all the kernel code I can for today and done two kernel builds (adding HPET and HPET_TIMER support) but still I can't get the LOC timer to
Thanks in advance for helping on this problem.
Some small progress
Booted Debian reference kernel 2.6.18-4-686 to see what would happen on the
machine which didn't have any lapic interrupts. Both timers were firing with that kernel, don't know why, but that's not what I wanted. Good to know that the hardware and BIOS did indeed support lapic timer. Also, by adding kernel command-line parm 'apic=debug' I could see it calibrating and
initializing the lapic timer.
Recompiled kernel for the lapic/no pit machine to alter a few non-timer related things, booted it up and found that now both pit and lapic timers firing. AAARRRRGHHH. Added kernel command-line parm 'nolapic_timer' to disable and found that made it boot with '0' lapic interrupts (without it,
there are at least a few interrupts for the timer interrupt which is not ultimately chosen; these happen when the kernel is going through the decision tree about which timer(s) to use).
Need to find out how to disable the PIT timer and I think I'll be OK (lapic timer only). The code (/kernel top level/arch/i386/kernel/i8253.c) says
the 'HPET replaces the PIT when enabled", but there's got to be another way
the PIT is disabled because that was what was happening on this machine when I started this thread (before I built the last kernel).
I really wish there was a kernel command line parm for this, then I could at least be in the place I wanted to be and trace my way back to see how I got there lol
|All times are GMT -5. The time now is 11:12 PM.|