Commit Graph

35 Commits

Author SHA1 Message Date
bouyer fb3e100370 Use a properly zero'd buffer to pad the packet to ETHER_MIN_LEN
XXX should it be ETHER_MIN_LEN-ETHER_CRC_LEN ?
2003-01-15 21:56:06 +00:00
bjh21 b9870fb26c Quieten lint a little. 2002-11-03 14:59:06 +00:00
bjh21 00eaefef06 When copying a block with an odd size to or from the card, be very careful
not to overrun the end of it on the host side, since that might just slip over
a page boundary and cause an embarrassing kernel panic.
2002-06-07 00:01:19 +00:00
lukem 2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem a4bae8b066 add/cleanup RCSID 2001-11-13 13:14:31 +00:00
bjh21 479d71be35 Add support for feeding entropy to rnd(4). 2001-11-07 20:01:58 +00:00
thorpej 06ff822b44 bcopy -> strcpy 2001-07-07 15:57:50 +00:00
thorpej c2c26e1362 bcmp -> memcmp 2001-07-07 05:35:39 +00:00
bjh21 770912bb85 Add support for handling full-size 802.1Q packets. 2001-06-26 22:00:44 +00:00
bjh21 abfd1d9e70 ea_mc_reset_8004(): Rather than doing the CRC32 ourselves, call
ether_crc32_be() to do it for us.
2001-06-23 17:32:21 +00:00
bjh21 3177727ba7 Fix bogons in previous commit:
* Remove harmful debugging code from seeq8005_attach().
 * Re-insert variable declarations in ea_mc_reset_8004(), since they aren't
   dead yet.
2001-06-23 13:40:35 +00:00
bjh21 9e396bc385 Attampt support for 8-bit mode. I believe this should work, but I need a more
flexible bus_space on arm26 before I can test it.
2001-06-22 20:31:55 +00:00
bjh21 18e8d752f6 No need to pull in INET or NS headers -- that's all done by ether_ioctl() now. 2001-06-12 20:53:39 +00:00
bjh21 03e45ae8c7 In ea_writembuf(), reset the DMA pointer for each mbuf we copy, since
odd-sized mbufs will confuse things.  This makes transmission of odd-sized
packets work.
2001-04-06 00:02:49 +00:00
bjh21 d109dd795a Add a bit of voodoo code from the old "eb" driver that seems to prevent the
80C04 returning garbage when we read from it.  This driver can now handle flood
pings without dropping packets.
2001-04-05 22:55:46 +00:00
bjh21 0c5b5be69f Tweak product ID printing in light of the 80C04A data sheet.
Split out Rx and Tx interrupt handlers into their own functions for clarity.
2001-04-02 22:25:17 +00:00
bjh21 f6ec9b4ab2 On an 80C04, try not to start reads at addresses of the form xx,ea, xx,ee, or
xx,f0.  This appears to heavily alleviate, but not to eliminate entirely,
the problems I've been seeing with garbage being read from the rx buffer.
I suspect the real solution lies elsewhere.
2001-03-29 20:49:44 +00:00
bjh21 2f6fd6b040 Print a warning message when the DMA FIFO fails to fill or empty before we
time out.
2001-03-29 17:46:39 +00:00
bjh21 758fa94327 Print the address within the Rx buffer whenever anything goes wrong: it seems
to be significant.
2001-03-27 22:17:51 +00:00
bjh21 4beebf7d5d Clean up debugging printfs a little. 2001-03-27 21:43:13 +00:00
bjh21 8fc709ee67 Add some extra diagnostics:
* Use the timer to timoe out transmit operations.
 * Spot when the "next packet" pointer falls outside the recieve buffer and
   reset the interface.
 * Don't reset the interface when we get a bad packet (unless there's
   something else wrong as well).
2001-03-27 20:26:45 +00:00
bjh21 7dae264309 Comment and #ifdef cleanup. 2001-03-27 18:03:04 +00:00
bjh21 39c267bb01 Tweak handling of multicast on 80C04. I think we need to set the match mode
to "multicast" for it to work, but I could be wrong.

Also make ALLMULTI work on 80C04, but this is untested.
2001-03-25 01:06:59 +00:00
bjh21 304809f5f1 Re-arrange board memory to suit the current (crude) transmit code.
Add ea_writembuf() from mark's code, and re-work eatxpacket() to use it.
2001-03-24 23:31:06 +00:00
bjh21 b94b953e92 Enormous pile of changes from mark's (uncommitted) work on this driver.
About the only bit of his code not here is the transmit routines, which I'll
merge in separately.

Also a few bug-fixes, so (for instance) multicast on an 8005 doesn't
immediately fall back to IFF_ALLMULTI.
2001-03-24 20:38:41 +00:00
bjh21 b83b8ac01f Change all the register definitions to match the names using in mark's
improved version of the driver.
2001-03-24 13:40:41 +00:00
bjh21 18db220fba Handle IFF_ALLMULTI correctly. We can now cope with multicast, but for
some reason DAD fails when starting IPv6.
2001-03-24 00:16:41 +00:00
bjh21 a48c9194bb Print the newline after the memory test. This makes it clear that the delay's
related to this driver rather than the next device to be attached.
2000-12-23 16:37:20 +00:00
thorpej 6b16911a43 ALTQ'ify. 2000-12-14 06:27:23 +00:00
thorpej b84f740be0 Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach(). 2000-11-15 01:02:11 +00:00
bjh21 930c4cf062 First attempt at multicast stuff. I suspect it doesn't work.
Use ether_ioctl -- saves 300 bytes of text.
2000-11-03 00:25:36 +00:00
thorpej 7ca3fb9ef0 Move the check for "promisc + unicast + not for us" into ether_input(),
and change Ethernet drivers to always pass all received frames to
ether_input() (with a few exceptions, which are documented in the
code).
2000-10-01 23:32:39 +00:00
bjh21 a48f581877 Substantial overhaul, factoring out of common code, removal of redundancy
and general cleanup.  Still not a beautiful driver, but one I'd be willing to
introduce to my parents now.
2000-09-23 15:13:02 +00:00
bjh21 f3ef35c447 Add rudimentary 80C04 support (basically saying "Oh look, an 80C04!").
Move printing the initial ":" into the board driver, like i82586.c does.
Don't bother printing the amount of RAM, as it's always 64 KB.
2000-09-21 22:20:38 +00:00
bjh21 40aba7cd4d Split the arm26 Ether3 (ea) driver into an MI driver for the SEEQ 8005 chip,
and a front-end driver for the Ether3.  Only semantic change is to remove
ea_claimirq() and ea_releaseirq() on the grounds that the seem too spurious
to warrant a callback to the front-end.
2000-09-18 20:51:14 +00:00