[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Fix timer interrupt routing for non-ACPI guest
From: |
Ed Swierk |
Subject: |
[Qemu-devel] [PATCH] Fix timer interrupt routing for non-ACPI guest |
Date: |
Fri, 10 Apr 2009 20:08:38 -0700 |
Qemu 0.10.2 is unable to boot a non-ACPI kernel due to a BIOS bug:
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=0 apic2=-1 pin2=-1
..MP-BIOS bug: 8254 timer not connected to IO-APIC
...trying to set up timer (IRQ0) through the 8259A ...
..... (found apic 0 pin 0) ...
....... failed.
...trying to set up timer as Virtual Wire IRQ...
The interrupt routing table in the MPTABLE needs to route the timer
interrupt (IRQ 0) to IOAPIC pin 2.
A similar bug was recently fixed in the ACPI table code. This patch
fixes the problem for non-ACPI guests.
Signed-off-by: Ed Swierk <address@hidden>
---
diff --git a/bios/rombios32.c b/bios/rombios32.c
index 7be4216..13d5435 100644
--- a/bios/rombios32.c
+++ b/bios/rombios32.c
@@ -1173,7 +1173,7 @@ static void mptable_init(void)
putb(&q, 0); /* flags: po=0, el=0 */
putb(&q, 0);
putb(&q, 0); /* source bus ID = ISA */
- putb(&q, i); /* source bus IRQ */
+ putb(&q, i == 2 ? 0 : i); /* source bus IRQ */
putb(&q, ioapic_id); /* dest I/O APIC ID */
putb(&q, i); /* dest I/O APIC interrupt in */
}
- [Qemu-devel] [PATCH] Fix timer interrupt routing for non-ACPI guest,
Ed Swierk <=