summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i386/i386/apic.h1
-rw-r--r--i386/i386at/ioapic.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/i386/i386/apic.h b/i386/i386/apic.h
index 83f7776c..d63dbfcc 100644
--- a/i386/i386/apic.h
+++ b/i386/i386/apic.h
@@ -173,6 +173,7 @@ extern inline void unmask_irq (unsigned int irq_nr);
# define IMCR_USE_APIC 1
#define LAPIC_ENABLE 0x100
+#define LAPIC_FOCUS 0x200
#define LAPIC_NMI 0x400
#define LAPIC_DISABLE 0x10000
#define LAPIC_TIMER_PERIODIC 0x20000
diff --git a/i386/i386at/ioapic.c b/i386/i386at/ioapic.c
index 016bd941..16836016 100644
--- a/i386/i386at/ioapic.c
+++ b/i386/i386at/ioapic.c
@@ -378,6 +378,9 @@ ioapic_configure(void)
global_enable_apic();
+ /* Enable IOAPIC processor focus */
+ lapic->spurious_vector.r |= LAPIC_FOCUS;
+
/* Enable IOAPIC interrupts */
lapic->spurious_vector.r |= LAPIC_ENABLE;