void enable_lapic(void)
{
- msr_t msr;
-
- msr = msr_read(MSR_IA32_APICBASE);
- msr.hi &= 0xffffff00;
- msr.lo |= MSR_IA32_APICBASE_ENABLE;
- msr.lo &= ~MSR_IA32_APICBASE_BASE;
- msr.lo |= LAPIC_DEFAULT_BASE;
- msr_write(MSR_IA32_APICBASE, msr);
+ if (!IS_ENABLED(CONFIG_INTEL_QUARK)) {
+ msr_t msr;
+
+ msr = msr_read(MSR_IA32_APICBASE);
+ msr.hi &= 0xffffff00;
+ msr.lo |= MSR_IA32_APICBASE_ENABLE;
+ msr.lo &= ~MSR_IA32_APICBASE_BASE;
+ msr.lo |= LAPIC_DEFAULT_BASE;
+ msr_write(MSR_IA32_APICBASE, msr);
+ }
}
void disable_lapic(void)
{
- msr_t msr;
+ if (!IS_ENABLED(CONFIG_INTEL_QUARK)) {
+ msr_t msr;
- msr = msr_read(MSR_IA32_APICBASE);
- msr.lo &= ~MSR_IA32_APICBASE_ENABLE;
- msr_write(MSR_IA32_APICBASE, msr);
+ msr = msr_read(MSR_IA32_APICBASE);
+ msr.lo &= ~MSR_IA32_APICBASE_ENABLE;
+ msr_write(MSR_IA32_APICBASE, msr);
+ }
}
unsigned long lapicid(void)
void lapic_setup(void)
{
-#ifdef CONFIG_SMP
/* Only Pentium Pro and later have those MSR stuff */
debug("Setting up local apic: ");
LAPIC_DELIVERY_MODE_NMI));
debug("apic_id: 0x%02lx, ", lapicid());
-#else /* !CONFIG_SMP */
- /* Only Pentium Pro and later have those MSR stuff */
- debug("Disabling local apic: ");
- disable_lapic();
-#endif /* CONFIG_SMP */
+
debug("done.\n");
post_code(POST_LAPIC);
}