minix/drivers/dpeth
David van Moolenbroek 9ba65d2ea8 This patch switches the MINIX3 ethernet driver stack from a port-based
model to an instance-based model. Each ethernet driver instance is now
responsible for exactly one network interface card. The port field in
/etc/inet.conf now acts as an instance field instead.

This patch also updates the data link protocol. This update:
- eliminates the concept of ports entirely;
- eliminates DL_GETNAME entirely;
- standardizes on using m_source for IPC and DL_ENDPT for safecopies;
- removes error codes from TASK/STAT replies, as they were unused;
- removes a number of other old or unused fields;
- names and renames a few other fields.

All ethernet drivers have been changed to:
- conform to the new protocol, and exactly that;
- take on an instance number based on a given "instance" argument;
- skip that number of PCI devices in probe iterations;
- use config tables and environment variables based on that number;
- no longer be limited to a predefined maximum of cards in any way;
- get rid of any leftover non-safecopy support and other ancient junk;
- have a correct banner protocol figure, or none at all.

Other changes:
* Inet.conf is now taken to be line-based, and supports #-comments.
  No existing installations are expected to be affected by this.
* A new, select-based asynchio library replaces the old one.
  Kindly contributed by Kees J. Bot.
* Inet now supports use of select() on IP devices.
  Combined, the last two changes together speed up dhcpd
  considerably in the presence of multiple interfaces.
* A small bug has been fixed in nonamed.
2010-05-17 22:22:53 +00:00
..
3c501.c Lots of const correctness, other cleanup. 2010-04-01 12:51:31 +00:00
3c501.h Import of dpeth 3c501/3c509b/.. ethernet driver by 2005-06-29 10:16:46 +00:00
3c503.c Convert drivers/ and servers/ over to bsdmake 2010-03-22 21:25:22 +00:00
3c503.h Import of dpeth 3c501/3c509b/.. ethernet driver by 2005-06-29 10:16:46 +00:00
3c509.c Lots of const correctness, other cleanup. 2010-04-01 12:51:31 +00:00
3c509.h Import of dpeth 3c501/3c509b/.. ethernet driver by 2005-06-29 10:16:46 +00:00
8390.c Code cleanup: remove unused #include, variables and code, 2010-04-15 18:49:36 +00:00
8390.h Remove double-blank lines (Al) 2005-08-22 15:17:42 +00:00
devio.c More use of endpoint_t. Other code cleanup. 2010-03-30 14:07:15 +00:00
dp.c This patch switches the MINIX3 ethernet driver stack from a port-based 2010-05-17 22:22:53 +00:00
dp.h This patch switches the MINIX3 ethernet driver stack from a port-based 2010-05-17 22:22:53 +00:00
Makefile Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
ne.c Convert drivers/ and servers/ over to bsdmake 2010-03-22 21:25:22 +00:00
ne.h Import of dpeth 3c501/3c509b/.. ethernet driver by 2005-06-29 10:16:46 +00:00
netbuff.c Convert drivers/ and servers/ over to bsdmake 2010-03-22 21:25:22 +00:00
README Import of dpeth 3c501/3c509b/.. ethernet driver by 2005-06-29 10:16:46 +00:00
wd.c Convert drivers/ and servers/ over to bsdmake 2010-03-22 21:25:22 +00:00
wd.h Remove double-blank lines (Al) 2005-08-22 15:17:42 +00:00

This is my implementation of a new network task 
for the Minix kernel.  I did it initially to handle
a 3c501 board (Etherlink), but those board are so
unstable that it is not worth using them except for
learning how to implement a driver.  When I got a
3c509b board (Etherlink III) it was easier to
write the code to handle them.  

The Minix code in 'dp8390.c' is too specific for the
National chip set, so what I did was to remove as 
much as I needed of the code dependant from the chip
and produce a generic task that, I hope, will be able
to handle many more cards.

$Log$
Revision 1.1  2005/06/29 10:16:46  beng
Import of dpeth 3c501/3c509b/.. ethernet driver by
Giovanni Falzoni <fgalzoni@inwind.it>.

Revision 1.3  2004/04/14 12:49:07  lsodgf0
Changes for porting to Minix 2.0.4 run on BOCHS

Revision 1.2  2002/03/25 14:16:09  lsodgf0
The driver for the NEx000 has been rewritten to be
operational with the ACCTON 18xx (an NE1000 clone)
The I/O routines for 16 bit cards are still untested..

Revision 1.1  2002/02/09 09:35:09  lsodgf0
Initial revision
The package is not fully tested, i.e. I had only 3Com
boards (3c501, 3c503, 3c503/16 and 3c509b) and WD8003.
I got also a NE1000 clone but it was not fully
operational and I could not appreciate the results.
For this reason the changes done to the interface
to I/O for 8 and 16 bits are not tested.
  
$Id$