Added extremely basic code for the PCI NE2K NIC which is emulated in Bochs/KVM. Reorg...
authorPaul Pearce <pearce@eecs.berkeley.edu>
Fri, 7 Aug 2009 03:42:04 +0000 (23:42 -0400)
committerPaul Pearce <pearce@eecs.berkeley.edu>
Fri, 7 Aug 2009 21:27:54 +0000 (17:27 -0400)
commitc3095793fe10978e4c1d3f9b5cf6bb254ff1f9bd
tree3a18173ebed5357a8b81c563853e56bf5e8d7e83
parent49debd3eec50944e1dba53887bf4280bb0952cc3
Added extremely basic code for the PCI NE2K NIC which is emulated in Bochs/KVM. Reorganized NIC related code to support

Went through and added a basic interrupt sanity check for the NE2K Nic. This is so we can determine the functionality
of PCI based interrupts in a virtual (Bochs/KVM) enviroment. If the device is detected it starts the device, generates
two interrupts, then falls back out.

Code was also reoganized to roughly support two nic drivers existing in the same space. This doesn't allow them
to function at the same time, just coexist.

There is a really nasty Bochs bug that causes PCI interrupts to show up at 2 locations in the IOAPIC. The source
of the bug has been determined, and a bug report filed with Bochs. There are two ways to fix it, if they choose
way 1 the code in this commit will allow PCI interrupts to function properly through the IOAPIC. If they choose
way 2 (or some other way I haven't though of) some ioapic_init() code will need to be rewritten to support the
broken mptable case.

Note: There was a line in .gitignore that caused the two new ne2k files to be ignored. This change to gitignore
is critical to correct functionality!
.gitignore
kern/arch/i386/trap.c
kern/include/ne2k.h [new file with mode: 0644]
kern/include/rl8168.h
kern/src/Makefrag
kern/src/init.c
kern/src/mptables.c
kern/src/ne2k.c [new file with mode: 0644]
kern/src/rl8168.c