Added support to boot ROS in VirtualBox and KVM. Expanded MPTables scan, fixed IOAPIC...
authorPaul Pearce <pearce@eecs.berkeley.edu>
Sat, 8 Aug 2009 01:31:29 +0000 (18:31 -0700)
committerPaul Pearce <pearce@eecs.berkeley.edu>
Tue, 18 Aug 2009 01:10:25 +0000 (18:10 -0700)
commitb55514599381938a6416fbc6e80e082763e8559b
tree3635c9dff04dcd8510ae8859dbfbb679401ddcf6
parentc3095793fe10978e4c1d3f9b5cf6bb254ff1f9bd
Added support to boot ROS in VirtualBox and KVM. Expanded MPTables scan, fixed IOAPIC bug.

Added another range of memory for mptables.c to scan looking for the mptable. This was required for
VirtualBox. This is also done in BSD.

Fixed a misplaced bit in the IOAPIC that was causing entries to not mask properly when disabling an
IRQ route. This was revealed by VirtualBox's behavior with routing IRQ's.

Increased the wait time in smp_boot() to detect how many cores we have. This was needed as
VirtualBox was occasionally getting the wrong number of cores.

Reworked ioapic pit test. Fixed the name, and changed the timer divisor to be within range.

Both PCI and ISA interrupts are now working inside KVM. Slight note: We can't route IRQ 0
to any core by 0 inside KVM. This is due to a hard coded check inside the kvm kernel module
that was inserted to deal with some TSC instability encountered by the linux guys.

To deal with the KVM situation, I added a check in ioapic_route_irq() that throws a warning
should you try to reroute irq 0 to a core other than 0. This was signed off on by Barret.
.gitignore
kern/arch/i386/ioapic.h
kern/arch/i386/smp_boot.c
kern/include/mptables.h
kern/include/testing.h
kern/src/ioapic.c
kern/src/mptables.c
kern/src/ne2k.c
kern/src/rl8168.c
kern/src/testing.c