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