Can LAPIC / IOAPIC be present but not usable??
Posted: Sat Jul 03, 2010 8:50 am
Hi guys,
I have been testing my os on various computers today, and i have discovered something wierd.
It works well in bochs,virtualbox,vmware, Lenovo T60 latptop, HP w/atom, Dell Quad Xeon, and on a Dual Pentium PRO my code works. But not for this fucking HP NC8230 laptop..
My timer code uses the LAPIC timer if LAPIC is present, with fallback to PIT+PIC. SMP is used if APIC found, and IPI sendt to all cpu's except self. Code works really well actually.
Now on a HP NC8230 (Pentium M 1.86Ghz) i get a strange error.. The computer have an LAPIC (CPUID indicates it, and MSR finds it), wich i initialize. It returns reasonable values and everything looks promising.. (Can also see the counter counting down by reading out counter value). But interrupt never fires! So no fun!
I also noticed that it has an IOAPIC. This also reports back reasonable values, but for the redirect entries it looks like only a few of them are writable..?? All the others have **STRANGE** values. Im able to reprogram KEYBOARD + PS2MOUSE, but seems that IOAPIC is not working at all..
So now my question is. Can it be that the APIC and/or IOAPIC is present but not in use? I did not find it parsing MPTABLES or ACPI.. On the NC8230 there is no MPTABLE by the way...
Anyone got an idea if it actually can be that the LAPIC is not usable on this CPU??
-
Thomas
I have been testing my os on various computers today, and i have discovered something wierd.
It works well in bochs,virtualbox,vmware, Lenovo T60 latptop, HP w/atom, Dell Quad Xeon, and on a Dual Pentium PRO my code works. But not for this fucking HP NC8230 laptop..
My timer code uses the LAPIC timer if LAPIC is present, with fallback to PIT+PIC. SMP is used if APIC found, and IPI sendt to all cpu's except self. Code works really well actually.
Now on a HP NC8230 (Pentium M 1.86Ghz) i get a strange error.. The computer have an LAPIC (CPUID indicates it, and MSR finds it), wich i initialize. It returns reasonable values and everything looks promising.. (Can also see the counter counting down by reading out counter value). But interrupt never fires! So no fun!
I also noticed that it has an IOAPIC. This also reports back reasonable values, but for the redirect entries it looks like only a few of them are writable..?? All the others have **STRANGE** values. Im able to reprogram KEYBOARD + PS2MOUSE, but seems that IOAPIC is not working at all..
So now my question is. Can it be that the APIC and/or IOAPIC is present but not in use? I did not find it parsing MPTABLES or ACPI.. On the NC8230 there is no MPTABLE by the way...
Anyone got an idea if it actually can be that the LAPIC is not usable on this CPU??
-
Thomas