summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-11-15 01:34:45 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-11-15 01:34:45 +0100
commita0b853a5a06e615d0f1a186a2add5ff87b913f55 (patch)
tree88e454ab9041411fa3f527ca183151a9162a08c3
parenta6be0f4d5717f690ee770a442336297c33c7a450 (diff)
x86_64: Add missing int_entry_table entries for APIC
214866d58ac2 ("Add ioapic support disabled by default") missed adding them for x86_64.
-rw-r--r--x86_64/locore.S15
1 files changed, 15 insertions, 0 deletions
diff --git a/x86_64/locore.S b/x86_64/locore.S
index 01184e29..f677aed1 100644
--- a/x86_64/locore.S
+++ b/x86_64/locore.S
@@ -618,6 +618,7 @@ ENTRY(call_continuation)
pushq $0 /* Dummy return address */
jmp *%rax /* goto continuation */
+/* IOAPIC has 24 interrupts, put spurious in the same array */
#define INTERRUPT(n) \
.data 2 ;\
@@ -633,6 +634,7 @@ ENTRY(call_continuation)
.data 2
DATA(int_entry_table)
.text
+/* Legacy APIC interrupts or PIC interrupts */
INTERRUPT(0)
INTERRUPT(1)
INTERRUPT(2)
@@ -649,6 +651,19 @@ INTERRUPT(12)
INTERRUPT(13)
INTERRUPT(14)
INTERRUPT(15)
+#ifdef APIC
+/* APIC PCI interrupts PIRQ A-H */
+INTERRUPT(16)
+INTERRUPT(17)
+INTERRUPT(18)
+INTERRUPT(19)
+INTERRUPT(20)
+INTERRUPT(21)
+INTERRUPT(22)
+INTERRUPT(23)
+/* Spurious interrupt, set irq number to vect number */
+INTERRUPT(255)
+#endif
/* XXX handle NMI - at least print a warning like Linux does. */