Disable interrupts before and after reset.
Merge pull request #44 from pkazmier/interrupts

Disable interrupts before and after reset.
intel.lua: Fixed for bug with 64-bit descriptor addresses.

Great detective work by @pkazmier to find the bug an @rahul-mr to
confirm the fix. This seems to make HugeTLB support work reliably.
Descriptor ring addresses were being truncated to 32 bits and this
would break DMA whenever the memory was allocated in high addresses,
tending to happen on physical machines with >4GB RAM more than VMs.

Cool!

See discussion of commit f5a3431ab266786f663c6e1d006c12765c25970b.

Closes issue #39.
Use the correct Ethernet driver based on installed hardware.

As I start to work on the driver for the Intel 82571, I wanted
an easy way to allow for the coexistence of multiple Ethernet
drivers (LUA modules). Here is a summary of the changes:

1. We register the name of a driver module that can support a given
   PCI vendor / device ID combination via `pci.register()`. These are
   registered in `main.lua` for the time being.

2. When searching for suitable devices, instead of hardcoding the
   Intel 82574 device ID, the PCI module will search for any hardware
   for which a driver has been registered with the vendor / device ID.

3. To instantiate a driver, you no longer call `intel.new()`, but
   rather `pci.driver(pciaddress)`, which will load the module and
   return an instance of the driver for your hardware if one
   exists. The file `selftest.lua` has been modified to load the
   driver in this manner.

4. I added a property to the driver object called `M.driver_name`,
   which is used for printing the name of the driver that was
   loaded. It's to give us assurance that this code is loading the
   right driver.

5. For testing purposes, I added the `intel_82571.lua` module which is
   an exact copy of `intel.lua`. The only difference, for now, is that
   the `M.driver_name` correctly identifies itself as an 82571
   driver.

In summary, this commit allows me to hack away at `intel_82571.lua`
without stepping on your toes :-)
Added debugging code for PCI command and status registers.
Removing the PCI debug statements.

This was just a simple Lua exercise for me. There is really no point
in the code as one can examine the value of the pci config register
via od -h /sys/bus/pci/devices/0000\:01\:00.0/config  -j4 -N2
Merge remote-tracking branch 'origin/many-drivers-support' into many-drivers-support