Added support for bochs/kvm broken mptables, added pit reroute test, fixed imcr bug
authorPaul Pearce <pearce@eecs.berkeley.edu>
Wed, 29 Jul 2009 02:17:32 +0000 (19:17 -0700)
committerPaul Pearce <pearce@eecs.berkeley.edu>
Wed, 29 Jul 2009 02:17:32 +0000 (19:17 -0700)
commit6e0544d8827dfb21fcd7cb4ba6fbb6b1bd6767f8
tree64e423c8ddfd7aa335ced6085af45c4ba439c313
parentba28fdcba25902d6ed4d7f43afd479228997fc5a
Added support for bochs/kvm broken mptables, added pit reroute test, fixed imcr bug

Added support for mismatched pci bus and mptables settings. Specifically, fixed
an issue where bochs and kvm say there is no pci bus in the mptable, but have
a pci bus that is readable. The missing devices seem to show up as isa devices
in the mptable. This code trys to gracefully handle this. It is untested, in
terms of interrupts coming from pci devices in bochs/kvm, as we don't have a
way to generate such interrupts right now (quickly).

Added test_ioapic_pic_reroute() in testing.c that routes the pit to a core,
using the given ioapic_reroute_irq() interface, enables the pit, then unroutes
it using ioapic_unroute_irq().

Fixed a bug where the interupt mode bit mask in the mptable was a 16 bit field
instead of an 8 bit field.
include/arch/ioapic.h
include/mptables.h
include/testing.h
kern/src/ioapic.c
kern/src/testing.c