qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Fix timer interrupt routing for non-ACPI guest
@ 2009-04-11  3:08 Ed Swierk
  2009-04-12 13:51 ` [Qemu-devel] " Sebastian Herbszt
  2009-04-13 16:21 ` [Qemu-devel] " Beth Kon
  0 siblings, 2 replies; 5+ messages in thread
From: Ed Swierk @ 2009-04-11  3:08 UTC (permalink / raw)
  To: bochs-developers, qemu-devel

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 <eswierk@aristanetworks.com>

---
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 */
     }

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-04-13 16:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-11  3:08 [Qemu-devel] [PATCH] Fix timer interrupt routing for non-ACPI guest Ed Swierk
2009-04-12 13:51 ` [Qemu-devel] " Sebastian Herbszt
2009-04-12 21:46   ` Ed Swierk
2009-04-13 15:49     ` Sebastian Herbszt
2009-04-13 16:21 ` [Qemu-devel] " Beth Kon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).