Commit Graph

24 Commits

Author SHA1 Message Date
tsutsui
25e0185c3d Check revisions and print names of i82551/i82551ER, per Intel manual. 2009-04-17 15:37:43 +00:00
tsutsui
b057550bcf u_intNN_t -> uintNN_t 2009-03-11 13:12:41 +00:00
mrg
ce8a6e2599 - remove FXPF_IPCB flag. it should always/only be used with the code
conditional on FXPF_EXT_TXCB, so, replace all uses with that
- for the pci frontend, reestablish some flags lost the the prior
  changes and simplify one of the cases

this fixes PR 40677 and may fix PR 40431.
2009-02-20 05:49:34 +00:00
tsutsui
540babdae2 Add a workaround for hardware ip4csum-tx bug and enable it.
Confirmed on i82550 rev 12 and UDP fragment packets by ttcp(1).
2008-12-03 15:34:38 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tsutsui
0ac5343d25 Pull several fixes from OpenBSD's fxp.c:
Rev 1.41:
> use a nop with I bit set at the end of the tx chain.  This avoids a race
> between status update and clearing the suspend bit on machines which can't
> write data smaller than 32bits at a time.
This should fix PR port-alpha/30560.

Rev 1.50:
> Fix nasty bug where driver would not correctly catch and handle an rnr
> condition when it was due to the the recieve buffers being exhausted with
> no packet transmits during that time. Symptom was that the fxp would
> simply stop interrupting for the next 15 seconds until the watchdog kicked
> in and reset the chip due to 15 seconds of inactivity, making the fxp very
> poorly behaved when hammered on hard.

Rev 1.61:
> Defer reinitialisation of the RU until after the interrupt handler has had
> a chance to process all pending packets, otherwise the chip may overwrite
> their mbuf clusters after we have freed them.
>
> Eliminates a race that can cause random pool corruption when reconfiguring
> an interface under heavy network load.

And one more change for RX sanity:
- put RU into suspend when the last RFA is processed.

These RNR/RU changes may fix pool corruption problems on fxp.

Tested on AlphaPC164 and i386 with i82559 and i82550.
2007-12-08 15:45:43 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
christos
80f7d2107b - sprinkle const.
- avoid variable shadowing.
2005-05-29 22:10:28 +00:00
perry
f31bd063e9 nuke trailing whitespace 2005-02-27 00:26:58 +00:00
thorpej
56906b900a Patch from HITOSHI Osada:
* Add PAUSE-related event counters.
* Return flow control bits in fxp_mii_mediastatus().
2004-05-16 02:59:04 +00:00
yamt
9324f158e1 support h/w assisted vlan tag removal. 2004-02-19 13:34:51 +00:00
wiz
218b6186ff deferred, not deffered. Inspired by Tom Cosgrove. 2003-11-02 10:50:40 +00:00
yamt
b1286467f1 ip/tcp/udp checksum offloading support for i82550.
largely from FreeBSD.
2003-05-26 16:14:49 +00:00
thorpej
f4f37ed5f5 Define the command block used for loading microcode into the chip. 2002-04-05 05:29:05 +00:00
thorpej
2da55b9a39 Define some extra configuration block bits used on the i82550 (a.k.a.
PRO 100/S), including the extended RFA format.  Don't hard-code the
RFA size to allow us to use the extended format in the future.
2001-06-02 01:04:01 +00:00
hannken
339a9c8de2 Fix two typos in the BYTE_ORDER != LITTLE_ENDIAN case. 2001-05-25 08:54:40 +00:00
thorpej
188e0d6625 Some changes from the new FreeBSD `fxp' driver:
- Add some additional config block bits for the i82558/i82559.
- Change the config block template to only fill in the must-be-one
  reserved bits, leave fxp_init() to fill in all the important things.
- On the i82558/i82559, we can use "Receive Long Frames" rather than
  "Save Bad Frames" to support the VLAN MTU.
- Use 802.3x flow control on the i82558/i82559.  This is all handled
  transparently by the hardware.  When in promiscuous mode, allow
  wire-watchers to see the flow control frames.
- Use the Extended TxCB format on the i82558/i82559.  This places two
  Transmit Buffer Descriptors directly in the TxCB, which should cover
  the vast majority of packets transmitted.  This saves PCI transactions
  that would otherwise be required to fetch the TBD list.

With the tansmit queue length changes from yesterday, this gets us up to
11.5MB/s TCP transmit speed, out of an absolute maximum of 12MB/s possible
on a 100Mb/s link.
2001-05-22 15:29:30 +00:00
thorpej
a5a03e13dd Report 82558, 82559, etc. based on chip revision. Also, remember which
revsion we have for feature enables later.
2001-05-22 01:23:25 +00:00
thorpej
611e112566 A little slight cleanup. 2001-05-22 00:27:01 +00:00
thorpej
fb4607ec45 Add some additional register definitions, from FreeBSD. 2001-05-22 00:07:32 +00:00
thorpej
0064d69faf Re-arrange the transmit control data somewhat so that we can
use the extended TxCB format (that change will happen later).
2001-05-21 23:58:44 +00:00
thorpej
014cd3fcc1 Take a stab at making this work on big-endian systems. 1999-12-12 17:46:36 +00:00
thorpej
3012cf91af Completely rewrite the transmit logic, making it look more like the
EPIC/100 driver's.  Also, fix the "all multicast" logic.  Also do some
general cleanup.
1999-08-03 22:43:28 +00:00
thorpej
206460244e Bus-independent back-end driver for Intel i82557 fast Ethernet chips. 1999-06-20 16:33:28 +00:00